bt2: Makefile: track dependencies of native_bt.c
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 10 Sep 2019 15:08:43 +0000 (11:08 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 3 Oct 2019 14:45:10 +0000 (10:45 -0400)
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>
src/bindings/python/bt2/Makefile.am

index c74988b14819dc8dd3497deed0ab21aa0c5e551c..e97213455918ec2dccb212ee1942f370beebe537 100644 (file)
@@ -126,7 +126,9 @@ swig_verbose_ = $(swig_verbose_@AM_DEFAULT_V@)
 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)"; \
This page took 0.024845 seconds and 4 git commands to generate.