@@ -22,6 +22,9 @@ BENCHMARK_EXTRA ?=
2222COMPONENTS_BUILD_DIR = $(PROJECT_ROOT ) /tmp/build_components
2323SO_FILE = $(BUILD_DIR ) /modules/ddtrace.so
2424AR_FILE = $(BUILD_DIR ) /modules/ddtrace.a
25+ SIDECAR_BIN_DEBUG = $(BUILD_DIR ) /target/debug/datadog-ipc-helper
26+ SIDECAR_BIN_RELEASE = $(BUILD_DIR ) /target/tracer-release/datadog-ipc-helper
27+ SIDECAR_BIN = $(if $(RUST_DEBUG_BUILD ) ,$(SIDECAR_BIN_DEBUG ) ,$(SIDECAR_BIN_RELEASE ) )
2528WALL_FLAGS = -Wall -Wextra
2629CFLAGS ?= $(shell [ -n "${DD_TRACE_DOCKER_DEBUG}" ] && echo -O0 || echo -O2) -g $(WALL_FLAGS )
2730LDFLAGS ?=
@@ -48,7 +51,7 @@ RUN_TESTS_CMD := DD_SERVICE= DD_ENV= REPORT_EXIT_STATUS=1 TEST_PHP_SRCDIR=$(PROJ
4851
4952C_FILES = $(shell find components components-rs ext src/dogstatsd zend_abstract_interface -name '* .c' -o -name '* .h' | awk '{ printf "$(BUILD_DIR ) /% s\n", $$1 }' )
5053TEST_FILES = $(shell find tests/ext -name '* .php* ' -o -name '* .inc' -o -name '* .json' -o -name '* .yaml' -o -name 'CONFLICTS' | awk '{ printf "$(BUILD_DIR ) /% s\n", $$1 }' )
51- RUST_FILES = $(BUILD_DIR ) /Cargo.toml $(BUILD_DIR ) /Cargo.lock $(shell find components-rs -name '* .c' -o -name '* .rs' -o -name 'Cargo.toml' | awk '{ printf "$(BUILD_DIR ) /% s\n", $$1 }' ) $(shell find libdatadog/{build-common,datadog-ffe,datadog-ipc,datadog-ipc-macros,datadog-live-debugger,datadog-live-debugger-ffi,datadog-remote-config,datadog-sidecar,datadog-sidecar-ffi,datadog-sidecar-macros,libdd-alloc,libdd-common,libdd-common-ffi,libdd-crashtracker,libdd-crashtracker-ffi,libdd-data-pipeline,libdd-ddsketch,libdd-dogstatsd-client,libdd-library-config,libdd-library-config-ffi,libdd-log,libdd-telemetry,libdd-telemetry-ffi,libdd-tinybytes,libdd-trace-* ,spawn_worker,tools/{ cc_utils,sidecar_mockgen} ,libdd-trace-* ,Cargo.toml} \( -type l -o -type f \) \( -path "*/src*" -o -path "*/examples*" -o -path "*Cargo.toml" -o -path "*/build.rs" -o -path "*/tests/dataservice.rs" -o -path "*/tests/service_functional.rs" \) -not -path "*/datadog-ipc/build.rs" -not -path "*/datadog-sidecar-ffi/build.rs")
54+ RUST_FILES = $(BUILD_DIR ) /Cargo.toml $(BUILD_DIR ) /Cargo.lock $(shell find components-rs -name '* .c' -o -name '* .rs' -o -name 'Cargo.toml' | awk '{ printf "$(BUILD_DIR ) /% s\n", $$1 }' ) $(shell find libdatadog/{build-common,datadog-ffe,datadog-ipc,datadog-ipc-macros,datadog-live-debugger,datadog-live-debugger-ffi,datadog-remote-config,datadog-sidecar,datadog-sidecar-ffi,datadog-sidecar-macros,libdd-alloc,libdd-common,libdd-common-ffi,libdd-crashtracker,libdd-crashtracker-ffi,libdd-data-pipeline,libdd-ddsketch,libdd-dogstatsd-client,libdd-library-config,libdd-library-config-ffi,libdd-log,libdd-telemetry,libdd-telemetry-ffi,libdd-tinybytes,libdd-trace-* ,spawn_worker,tools/cc_utils,libdd-trace-* ,Cargo.toml} \( -type l -o -type f \) \( -path "*/src*" -o -path "*/examples*" -o -path "*Cargo.toml" -o -path "*/build.rs" -o -path "*/tests/dataservice.rs" -o -path "*/tests/service_functional.rs" \) -not -path "*/datadog-ipc/build.rs" -not -path "*/datadog-sidecar-ffi/build.rs")
5255ALL_OBJECT_FILES = $(C_FILES ) $(RUST_FILES ) $(BUILD_DIR ) /Makefile
5356TEST_OPCACHE_FILES = $(shell find tests/opcache -name '* .php* ' -o -name '.gitkeep' | awk '{ printf "$(BUILD_DIR ) /% s\n", $$1 }' )
5457TEST_STUB_FILES = $(shell find tests/ext -type d -name 'stubs' -exec find '{}' -type f \; | awk '{ printf "$(BUILD_DIR ) /% s\n", $$1 }' )
6366 SED_I = sed -i ''
6467endif
6568
66- all : $(BUILD_DIR ) /configure $(SO_FILE )
69+ SIDECAR_BIN_IN_MODULES = $(BUILD_DIR ) /modules/datadog-ipc-helper
70+
71+ all : $(BUILD_DIR ) /configure $(SO_FILE ) $(SIDECAR_BIN_IN_MODULES )
6772
6873# The following differentiation exists so we can build only (but always) the relevant files while executing tests
6974# - when a `.phpt` changes, we only copy the file to the build dir and we DO NOT rebuild
@@ -104,8 +109,6 @@ $(BUILD_DIR)/%: %
104109
105110JUNIT_RESULTS_DIR := $(shell pwd)
106111
107- all : $(BUILD_DIR ) /configure $(SO_FILE )
108-
109112$(BUILD_DIR ) /configure : $(M4_FILES ) $(BUILD_DIR ) /ddtrace.sym $(BUILD_DIR ) /VERSION
110113 $(Q ) (cd $( BUILD_DIR) ; phpize && $( SED_I) ' s/\/FAILED/\/\\bFAILED/' $( BUILD_DIR) /run-tests.php) # Fix PHP 5.4 exit code bug when running selected tests (FAILED vs XFAILED)
111114
@@ -116,16 +119,23 @@ $(BUILD_DIR)/run-tests.php: $(if $(ASSUME_COMPILED),, $(BUILD_DIR)/configure)
116119$(BUILD_DIR ) /Makefile : $(BUILD_DIR ) /configure
117120 $(Q ) (cd $( BUILD_DIR) ; $( if $( ASAN) ,CFLAGS=" ${CFLAGS} -DZEND_TRACK_ARENA_ALLOC" ) ./configure --$( if $( RUST_DEBUG_BUILD) ,enable,disable) -ddtrace-rust-debug $( if $( ASAN) , --enable-ddtrace-sanitize) $( EXTRA_CONFIGURE_OPTIONS) )
118121
122+
119123$(SO_FILE ) : $(if $(ASSUME_COMPILED ) ,, $(ALL_OBJECT_FILES ) $(BUILD_DIR ) /compile_rust.sh)
120124 $(if $(ASSUME_COMPILED ) ,,$(Q ) $(MAKE ) -C $(BUILD_DIR ) -j)
121125
126+ $(SIDECAR_BIN_IN_MODULES ) : $(SO_FILE )
127+ $(Q ) cp $(SIDECAR_BIN ) $@
128+
122129$(AR_FILE ) : $(ALL_OBJECT_FILES )
123130 $(Q ) $(MAKE ) -C $(BUILD_DIR ) -j ./modules/ddtrace.a all
124131
125132$(PHP_EXTENSION_DIR ) /ddtrace.so : $(SO_FILE )
126133 $(Q ) $(SUDO ) $(if $(ASSUME_COMPILED ) ,cp $(BUILD_DIR ) /modules/ddtrace.so $(PHP_EXTENSION_DIR ) /ddtrace.so,$(MAKE ) -C $(BUILD_DIR ) install)
127134
128- install : $(PHP_EXTENSION_DIR ) /ddtrace.so
135+ $(PHP_EXTENSION_DIR ) /datadog-ipc-helper : $(SIDECAR_BIN )
136+ $(Q ) $(SUDO ) cp $(SIDECAR_BIN ) $(PHP_EXTENSION_DIR ) /datadog-ipc-helper
137+
138+ install : $(PHP_EXTENSION_DIR ) /ddtrace.so $(PHP_EXTENSION_DIR ) /datadog-ipc-helper
129139
130140set_static_option :
131141 $(eval EXTRA_CONFIGURE_OPTIONS := --enable-ddtrace-rust-library-split)
0 commit comments