summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
242b863)
Building native_bt.c involves including many .h files from include/.
Those dependencies are not tracked by the Makefile, which means that if
you build, modify a .h (which can be simply checking out a different
commit) and build again, native_bt.c won't be re-built (even though it
should).
SWIG has the same kind of features to make dependency tracking easy as
gcc. The -MD switch generates a bt2/native_bt.d file containing a make
target with all files involved in generating bt2/native_bt.c. All we
have to do is to include that file in our Makefile. `-include` is used
so that it's not an error if the file does not exist (which happens the
first time you build).
Change-Id: Iedb187657d42770fa2caeadfa07079351af8a485
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2023
Reviewed-by: Francis Deslauriers <francis.deslauriers@efficios.com>
swig_verbose_0 = @echo " SWIG " $@;
$(builddir)/bt2/native_bt.c: $(SWIG_INTERFACE_FILES)
swig_verbose_0 = @echo " SWIG " $@;
$(builddir)/bt2/native_bt.c: $(SWIG_INTERFACE_FILES)
- $(swig_verbose)$(SWIG) -python -I"$(top_srcdir)/include" -o "$@" "$<"
+ $(swig_verbose)$(SWIG) -MD -python -I"$(top_srcdir)/include" -o "$@" "$<"
+
+-include bt2/native_bt.d
install-exec-local: build-python-bindings.stamp
@opts="--prefix=$(prefix) --record $(INSTALLED_FILES) --verbose --no-compile $(DISTSETUPOPTS)"; \
install-exec-local: build-python-bindings.stamp
@opts="--prefix=$(prefix) --record $(INSTALLED_FILES) --verbose --no-compile $(DISTSETUPOPTS)"; \