From e7fc198592428e74a6b9e63a744d8f9e0a5d3f38 Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Mon, 16 May 2016 12:21:57 +0100 Subject: [PATCH] Allwmake: improved '-update' option to handle out-of-date '.dep' files Patch contributed by Bruno Santos Resolves bug-report http://bugs.openfoam.org/view.php?id=2091 --- wmake/makefiles/files | 2 +- wmake/makefiles/general | 10 ++++++---- wmake/scripts/AllwmakeParseArguments | 3 +++ wmake/wmake | 21 +++++++++++++++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/wmake/makefiles/files b/wmake/makefiles/files index 521d9341ad3..c17179eaaad 100644 --- a/wmake/makefiles/files +++ b/wmake/makefiles/files @@ -47,7 +47,7 @@ SFILES = $(OBJECTS_DIR)/sourceFiles #------------------------------------------------------------------------------ -# Declare dependecy of all make system files on FILES +# Declare dependency of all make system files on FILES # Causes all derived files to be remade if any are changed or missing #------------------------------------------------------------------------------ diff --git a/wmake/makefiles/general b/wmake/makefiles/general index 580e96c7b2e..b9a4f997257 100644 --- a/wmake/makefiles/general +++ b/wmake/makefiles/general @@ -184,7 +184,7 @@ lnInclude: $(MAKE_DIR)/files $(MAKE_DIR)/options #------------------------------------------------------------------------------ -# Declare all qbject files depend on $(OBJECTS_DIR)/options +# Declare all object files depend on $(OBJECTS_DIR)/options #------------------------------------------------------------------------------ $(OBJECTS) : $(OBJECTS_DIR)/options @@ -192,13 +192,15 @@ $(foreach S,$(SOURCE),$(eval $(OBJECTS_DIR)/$(basename $S).o : $(OBJECTS_DIR)/$S #------------------------------------------------------------------------------ -# Set depedency rule and include dependency lists +# Set dependency rule and include dependency lists #------------------------------------------------------------------------------ -.PHONY: dep +.PHONY: dep updatedep dep: $(DEPENDENCIES) -ifeq ($(findstring lnInclude,$(MAKECMDGOALS)),) +updatedep: dep + +ifeq ($(findstring lnInclude,$(MAKECMDGOALS))$(findstring updatedep,$(MAKECMDGOALS)),) -include $(DEPENDENCIES) endif diff --git a/wmake/scripts/AllwmakeParseArguments b/wmake/scripts/AllwmakeParseArguments index 433efafd52d..941ad649285 100644 --- a/wmake/scripts/AllwmakeParseArguments +++ b/wmake/scripts/AllwmakeParseArguments @@ -127,6 +127,9 @@ do -update) wrmdep -update wmakeLnIncludeAll + + # Set WM_UPDATE_DEPENDENCIES, so that wmake will pick up on it + export WM_UPDATE_DEPENDENCIES=yes ;; # Generate documentation doc) diff --git a/wmake/wmake b/wmake/wmake index c09088b99ff..821c5bbf22c 100755 --- a/wmake/wmake +++ b/wmake/wmake @@ -82,6 +82,7 @@ or a special target: libo Compile statically linked lib (.o) libso Compile dynamically linked lib (.so) dep Compile lnInclude and dependencies only + updatedep Compile dependencies only (in case of broken dependencies) USAGE exit 1 @@ -378,6 +379,26 @@ case "$targetType" in esac +#------------------------------------------------------------------------------ +# When WM_UPDATE_DEPENDENCIES is set, use forced dependency files update +#------------------------------------------------------------------------------ + +if [ -n "$WM_UPDATE_DEPENDENCIES" ] +then + + $make -f $WM_DIR/makefiles/general MAKE_DIR=$MakeDir \ + OBJECTS_DIR=$objectsDir updatedep + makeExitCode=$? + + if [ $makeExitCode -ne 0 ] + then + exit $makeExitCode + fi + + unset makeExitCode +fi + + #------------------------------------------------------------------------------ # Make the dependency files or object files and link #------------------------------------------------------------------------------ -- GitLab