From 997f1713cbd4cb23d2ea07fafbc7dc7f839b7dcf Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Sat, 12 Nov 2016 22:01:44 +0000 Subject: [PATCH] wmake: Update '-s' option to print the files processed without the rules Based on patch contributed by Alexey Matveichev Resolves feature request http://bugs.openfoam.org/view.php?id=2328 --- wmake/makefiles/general | 28 +++++++++++++++++----------- wmake/rules/General/bison | 6 ++++-- wmake/rules/General/btyacc | 3 ++- wmake/rules/General/btyacc++ | 3 ++- wmake/rules/General/byacc | 3 ++- wmake/rules/General/flex | 3 ++- wmake/rules/General/flex++ | 3 ++- wmake/rules/General/moc | 5 +++-- wmake/rules/General/transform | 18 ++++++++++++++++-- wmake/src/Makefile | 12 ++++++------ wmake/src/wmkdep.l | 18 ++++++++++++++++-- wmake/wmake | 4 ++-- wmake/wmakeCollect | 13 ++++++++++++- wmake/wmakeLnInclude | 7 +++++-- 14 files changed, 91 insertions(+), 35 deletions(-) diff --git a/wmake/makefiles/general b/wmake/makefiles/general index b7f49358a17..7921ee0add0 100644 --- a/wmake/makefiles/general +++ b/wmake/makefiles/general @@ -130,16 +130,18 @@ LIB_HEADER_DIRS = \ $(EXE): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(EXE) - $(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(call QUIET_MESSAGE, " ld: $(notdir $(EXE))") + $E $(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ $(LINK_LIBS) $(GLIBS) -o $(EXE) exe: $(SEXE) - @echo \'$(SEXE)\' is up to date. + @echo "->> $(SEXE)" $(SEXE):$(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(SEXE) - $(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ + $(call QUIET_MESSAGE, " ld: $(notdir $(SEXE))") + $E $(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) @@ -150,29 +152,33 @@ $(SEXE):$(OBJECTS) objects: $(OBJECTS) libso: $(LIB).$(SO) - @echo \'$(LIB).$(SO)\' is up to date. + @echo "->> $(LIB).$(SO)" $(LIB).$(SO): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) - $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(call QUIET_MESSAGE, " ld: $(notdir $(LIB)).$(SO)") + $E $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) lib: $(LIB).a - @echo \'$(LIB).a\' is up to date. + @echo "->> $(LIB).a" $(LIB).a: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).a - $(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) - $(RANLIB) $(LIB).a + $(call QUIET_MESSAGE, " ar: $(notdir $(LIB))") + $E $(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) + $(call QUIET_MESSAGE, " ranlib: $(notdir $(LIB))") + $E $(RANLIB) $(LIB).a libo: $(LIB).o - @echo \'$(LIB).o\' is up to date. + @echo "->> $(LIB).o" $(LIB).o: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).o - $(LD) -r -o $(LIB).o $(OBJECTS) + $(call QUIET_MESSAGE, " ld: $(notdir $(LIB)).o") + $E $(LD) -r -o $(LIB).o $(OBJECTS) #------------------------------------------------------------------------------ @@ -205,4 +211,4 @@ ifeq ($(findstring lnInclude,$(MAKECMDGOALS))$(findstring updatedep,$(MAKECMDGOA endif -#------------------------------------------------------------------------------ +#----------------------------- vim: set ft=make: ------------------------------ diff --git a/wmake/rules/General/bison b/wmake/rules/General/bison index 4811b0ec1ca..85ce618209a 100644 --- a/wmake/rules/General/bison +++ b/wmake/rules/General/bison @@ -1,11 +1,13 @@ SUFFIXES += .y .Y -ytoo = $(WM_SCHEDULER) bison -v -d -y $< $(AND) \ +ytoo = $E $(call QUIET_MESSAGE, " bison: $(<F)) \ + $(WM_SCHEDULER) bison -v -d -y $< $(AND) \ mv y.tab.c $(@D)/$(<F).c $(AND) \ mv y.tab.h $(@D)/$(<F).h $(AND) \ $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ -Ytoo = $(WM_SCHEDULER) bison -v -d -y $< $(AND) \ +Ytoo = $E $(call QUIET_MESSAGE, " bison: $(<F)) \ + $(WM_SCHEDULER) bison -v -d -y $< $(AND) \ mv y.tab.c $(@D)/$(<F).C $(AND) \ mv y.tab.h $(@D)/$(<F).H $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ diff --git a/wmake/rules/General/btyacc b/wmake/rules/General/btyacc index 90124ebd458..9886c38d53a 100644 --- a/wmake/rules/General/btyacc +++ b/wmake/rules/General/btyacc @@ -1,6 +1,7 @@ SUFFIXES += .y -ytoo = $(WM_SCHEDULER) btyacc -v -d $(SKELETON) $< $(AND) \ +ytoo = $E $(call QUIET_MESSAGE, " btyacc: $(<F)") \ + $(WM_SCHEDULER) btyacc -v -d $(SKELETON) $< $(AND) \ mv y_tab.c $(@D)/$(<F).C $(AND) \ mv y_tab.h $(@D)/$(<F).H $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ diff --git a/wmake/rules/General/btyacc++ b/wmake/rules/General/btyacc++ index 2aa66cc8cb6..632626ad042 100644 --- a/wmake/rules/General/btyacc++ +++ b/wmake/rules/General/btyacc++ @@ -1,6 +1,7 @@ SUFFIXES += .Y -Ytoo = $(WM_SCHEDULER) btyacc++ -v -d $(SKELETON) $< $(AND) \ +Ytoo = $E $(call QUIET_MESSAGE, " btyacc++: $(<F)") \ + $(WM_SCHEDULER) btyacc++ -v -d $(SKELETON) $< $(AND) \ mv y_tab.c $(@D)/$(<F).C $(AND) \ mv y_tab.h $(@D)/$(<F).H $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ diff --git a/wmake/rules/General/byacc b/wmake/rules/General/byacc index 177733805c4..bdb044417f2 100644 --- a/wmake/rules/General/byacc +++ b/wmake/rules/General/byacc @@ -1,6 +1,7 @@ SUFFIXES += .y -ytoo = $(WM_SCHEDULER) byacc -v $(YYPREFIX) -d $< $(AND) \ +ytoo = $E $(call QUIET_MESSAGE, " byacc: $(<F)") \ + $(WM_SCHEDULER) byacc -v $(YYPREFIX) -d $< $(AND) \ mv y.tab.c $(@D)/$(<F).C $(AND) \ mv y.tab.h $(@D)/$(<F).H $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ diff --git a/wmake/rules/General/flex b/wmake/rules/General/flex index 3f2fe373f75..6822775772a 100644 --- a/wmake/rules/General/flex +++ b/wmake/rules/General/flex @@ -1,4 +1,5 @@ SUFFIXES += .l -ltoo = $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ +ltoo = $E $(call QUIET_MESSAGE, " flex: $(<F)") \ + $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ diff --git a/wmake/rules/General/flex++ b/wmake/rules/General/flex++ index 4a140628fc3..98dfd2385a3 100644 --- a/wmake/rules/General/flex++ +++ b/wmake/rules/General/flex++ @@ -1,4 +1,5 @@ SUFFIXES += .L -Ltoo = $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ +Ltoo = $E $(call QUIET_MESSAGE, " flex++: $(<F)") \ + $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@ diff --git a/wmake/rules/General/moc b/wmake/rules/General/moc index 02a075843e0..1ec5cf8906d 100644 --- a/wmake/rules/General/moc +++ b/wmake/rules/General/moc @@ -1,4 +1,5 @@ SUFFIXES += .qt -qttoo = $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ - $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ +qttoo = $E $(call QUIET_MESSAGE, " moc: $(<F)") \ + $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ + $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ diff --git a/wmake/rules/General/transform b/wmake/rules/General/transform index 3fa0152040e..205368f3056 100644 --- a/wmake/rules/General/transform +++ b/wmake/rules/General/transform @@ -1,15 +1,29 @@ #-------------------------------*- makefile -*--------------------------------- +ifneq ("$(WM_QUIET)","") + E=@ + define QUIET_MESSAGE + @echo $1 ; + endef + QUIET_OP=-s +else + E= + define QUIET_MESSAGE + endef + QUIET_OP= +endif + define DEFINE_TRANSFORM $(OBJECTS_DIR)/%.o : %$1 - $$($(subst .,,$(1))too) + $(call QUIET_MESSAGE, " $(subst .,,$(1))too: $(value <F)") + $E $$($(subst .,,$(1))too) endef $(foreach s,$(SUFFIXES),$(eval $(call DEFINE_TRANSFORM,$(s)))) $(OBJECTS_DIR)/%.dep : % @$(WM_SCRIPTS)/makeTargetDir $@ - @$(WMAKE_BIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS) $< | \ + @$(WMAKE_BIN)/wmkdep $(QUIET_OP) -I$(*D) $(LIB_HEADER_DIRS) $< | \ sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ diff --git a/wmake/src/Makefile b/wmake/src/Makefile index f14baad937e..c24ac811f3d 100644 --- a/wmake/src/Makefile +++ b/wmake/src/Makefile @@ -60,18 +60,18 @@ include $(GENERAL_RULES)/general all: $(WMAKE_BIN)/dirToString $(WMAKE_BIN)/wmkdep clean: - rm -f $(WMAKE_BIN)/* 2>/dev/null - + @E rm -f $(WMAKE_BIN)/* 2>/dev/null $(WMAKE_BIN)/dirToString: dirToString.c @mkdir -p $(WMAKE_BIN) - $(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString - + $(call QUIET_MESSAGE, " compile: $<") + $E $(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString $(WMAKE_BIN)/wmkdep: wmkdep.l @mkdir -p $(WMAKE_BIN) - flex wmkdep.l - $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep + $(call QUIET_MESSAGE, " lex: $<") + $E flex wmkdep.l; \ + $E $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep @rm -f lex.yy.c 2>/dev/null diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l index a98a5972787..81bede85699 100644 --- a/wmake/src/wmkdep.l +++ b/wmake/src/wmkdep.l @@ -47,6 +47,7 @@ Usage #include <sys/types.h> #include <dirent.h> #include <errno.h> +#include <libgen.h> void nextFile(const char* fileName); void importFile(const char* fileName); @@ -145,7 +146,7 @@ const char* bufferPaths[FILE_STACK_SIZE]; int main(int argc, char* argv[]) { char *basePos, *dotPos; - int i; + int i, silent; if (argc == 1) { @@ -154,7 +155,20 @@ int main(int argc, char* argv[]) } sourceFile = strdup(argv[argc-1]); - fprintf(stderr, "Making dependency list for source file %s\n", sourceFile); + silent = (strncmp(argv[1], "-s", 2) == 0); + if (silent) + { + fprintf(stderr, " wmkdep: %s\n", basename(sourceFile)); + } + else + { + fprintf + ( + stderr, + "Making dependency list for source file %s\n", + sourceFile + ); + } if ((basePos = strrchr(sourceFile, '/')) == NULL) diff --git a/wmake/wmake b/wmake/wmake index ebf50cd4ba4..989af9fe729 100755 --- a/wmake/wmake +++ b/wmake/wmake @@ -67,7 +67,7 @@ Usage: $Script [OPTION] [dir] $Script [OPTION] target [dir [MakeDir]] options: - -s | -silent 'silent' mode (does not echo commands) + -s | -silent Quiet mode (does not echo commands) -a | -all wmake all sub-directories, running Allwmake if present -q | -queue wmakeQueue all sub-directories, running Allwmake if present -k or -non-stop Compile without stopping when errors occur @@ -138,7 +138,7 @@ do usage ;; -s | -silent) - make="$make -s" + export WM_QUIET=1 ;; -a | -all | all) all="all" diff --git a/wmake/wmakeCollect b/wmake/wmakeCollect index 4f1ca4bf4f9..2aaa2c6eef5 100755 --- a/wmake/wmakeCollect +++ b/wmake/wmakeCollect @@ -99,6 +99,12 @@ then fi +if [ -n "$WM_QUIET" ] +then + E="@" +fi + + # Collected makefile for this build makefile="$WM_COLLECT_DIR.Makefile" @@ -117,6 +123,9 @@ then # Make sure directories exist mkdir -p $WM_COLLECT_DIR + # The current source file + source="${@: -3:1}" + # The current target object="${@: -1:1}" @@ -128,7 +137,9 @@ then # Add the build rule for the current target echo "$object: $makefile" >> $file - echo -e "\tcd $PWD && \\" >> $file + [ -z "$E" ] || + echo -e "\t@echo \" compiling: ${source##*/}\"" >> $file + echo -e "\t$E cd $PWD && \\" >> $file echo -e "\t${@:1:($#-1)} $object" >> $file echo >> $file else diff --git a/wmake/wmakeLnInclude b/wmake/wmakeLnInclude index a9195b96286..3db3802de4c 100755 --- a/wmake/wmakeLnInclude +++ b/wmake/wmakeLnInclude @@ -138,9 +138,12 @@ fi cd $incDir || exit 1 -[ "$silentOpt" = true ] || { +if [ "$silentOpt" = true -o -n "$WM_QUIET" ] +then + echo " ln: $incDir" 1>&2 +else echo "$Script: linking include files to $incDir" 1>&2 -} +fi #------------------------------------------------------------------------------ -- GitLab