From: Florian Sowade Date: Sun, 14 Feb 2021 19:07:54 +0000 (+0100) Subject: Add dependency tracking for header files X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c4d508c2bc09860bfa15b7f520e0ba68425acfc1;p=php Add dependency tracking for header files This ensures all .c files which include a header file directly or indirectly are rebuilt whenever the header file is changed. Closes GH-6693. --- diff --git a/.gitignore b/.gitignore index 1eab1d32ac..78dcc1f7ac 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,9 @@ # Standard object files generated during build process *.o +# Dependency files generated during build process +*.dep + # Cache directories created by Autoconf tools autom4te.cache/ diff --git a/build/Makefile.global b/build/Makefile.global index ae797408b5..c558c107a7 100644 --- a/build/Makefile.global +++ b/build/Makefile.global @@ -111,7 +111,7 @@ test: all clean: find . -name \*.gcno -o -name \*.gcda | xargs rm -f - find . -name \*.lo -o -name \*.o | xargs rm -f + find . -name \*.lo -o -name \*.o -o -name \*.dep | xargs rm -f find . -name \*.la -o -name \*.a | xargs rm -f find . -name \*.so | xargs rm -f find . -name .libs -a -type d|xargs rm -rf @@ -156,9 +156,5 @@ prof-use: fi; \ fi; -# As we don't track includes, this is just a heuristic -%.c: %_arginfo.h - @touch $@ - .PHONY: all clean install distclean test prof-gen prof-clean prof-use .NOEXPORT: diff --git a/build/php.m4 b/build/php.m4 index 70abfc864c..04651f01e2 100644 --- a/build/php.m4 +++ b/build/php.m4 @@ -257,8 +257,12 @@ dnl Choose the right compiler/flags/etc. for the source-file. *.cpp|*.cc|*.cxx[)] ac_comp="$b_cxx_pre $ac_inc $b_cxx_meta $3 -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;; esac +dnl Generate Makefiles with dependencies + ac_comp="$ac_comp -MMD -MF $ac_bdir$ac_obj.dep -MT $ac_bdir[$]ac_obj.lo" + dnl Create a rule for the object/source combo. cat >>Makefile.objects<