diff --git a/wmake/makefiles/files b/wmake/makefiles/files index 521d9341ad30718b9deca408ab1361b8c42afb92..c17179eaaad33232d3c74723a98282261af03dea 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 580e96c7b2e4a3f417de87dc7ce402c36c06b47f..b9a4f9972578712019763e2ee17793669155f225 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 433efafd52d144dd0b95354254563d013b266b92..941ad649285312e3d48abed21ea13adb34ace7b7 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 c09088b99ff8090c0de868b50e9b03c007e9270d..821c5bbf22c527ece69da85db17a8f9878bbf5b1 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 #------------------------------------------------------------------------------