View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002328 | OpenFOAM | Patch | public | 2016-11-11 08:40 | 2016-11-13 22:04 |
Reporter | alexeym | Assigned To | henry | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | GNU/Linux | OS | Fedora | OS Version | 24 |
Product Version | dev | ||||
Fixed in Version | dev | ||||
Summary | 0002328: Silent rules for wmake | ||||
Description | Compilation logs in general contain lots of information in general rather useless to user: full compiler invocation commands with all flags. Patch introduces WM_SILENT_RULES environment variable, so build log files instead of $ wmake $HOME/OpenFOAM/OpenFOAM-dev/applications/solvers/incompressible/icoFoam Making dependency list for source file icoFoam.C g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I$HOME/OpenFOAM/OpenFOAM-dev/src/finiteVolume/lnInclude -I$HOME/OpenFOAM/OpenFOAM-dev/src/meshTools/lnInclude -IlnInclude -I. -I$HOME/OpenFOAM/OpenFOAM-dev/src/OpenFOAM/lnInclude -I$HOME/OpenFOAM/OpenFOAM-dev/src/OSspecific/POSIX/lnInclude -fPIC -c icoFoam.C -o $HOME/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/applications/solvers/incompressible/icoFoam/icoFoam.o g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I$HOME/OpenFOAM/OpenFOAM-dev/src/finiteVolume/lnInclude -I$HOME/OpenFOAM/OpenFOAM-dev/src/meshTools/lnInclude -IlnInclude -I. -I$HOME/OpenFOAM/OpenFOAM-dev/src/OpenFOAM/lnInclude -I$HOME/OpenFOAM/OpenFOAM-dev/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker --no-as-needed $HOME/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/applications/solvers/incompressible/icoFoam/icoFoam.o -L$HOME/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib \ -lfiniteVolume -lmeshTools -lOpenFOAM -ldl \ -lm -o $HOME/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/bin/icoFoam user gets $ wmake $HOME/OpenFOAM/OpenFOAM-dev/applications/solvers/incompressible/icoFoam DEP icoFoam.C CC icoFoam.C LD icoFoam | ||||
Additional Information | To use the feature, set WM_SILENT_RULES to non-empty value. | ||||
Tags | wmake | ||||
|
0003-Silent-rules.patch (12,153 bytes)
From 1996a097d5c41eb5f49bf43d72a886c844e94415 Mon Sep 17 00:00:00 2001 From: Alexey Matveichev <github@matveichev.com> Date: Fri, 11 Nov 2016 08:52:59 +0100 Subject: [PATCH 3/5] Silent rules --- etc/bashrc | 2 ++ wmake/makefiles/general | 49 ++++++++++++++++++++++++++++++++++++++++++- wmake/rules/General/bison | 13 ++++++++++++ wmake/rules/General/btyacc | 8 +++++++ wmake/rules/General/btyacc++ | 7 +++++++ wmake/rules/General/byacc | 7 +++++++ wmake/rules/General/flex | 5 +++++ wmake/rules/General/flex++ | 5 +++++ wmake/rules/General/moc | 6 ++++++ wmake/rules/General/transform | 11 ++++++++++ wmake/src/Makefile | 15 +++++++++++++ wmake/src/wmkdep.l | 14 +++++++++++-- wmake/wmakeLnInclude | 5 +++++ 13 files changed, 144 insertions(+), 3 deletions(-) diff --git a/etc/bashrc b/etc/bashrc index e107f57..089e415 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -138,6 +138,8 @@ export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION # Add in preset user or site preferences: _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh` +[ -n "$WM_SILENT_RULES" ] && export WM_SILENT_RULES + # Evaluate command-line parameters and record settings for later # these can be used to set/unset values, or specify alternative pref files export FOAM_SETTINGS="$@" diff --git a/wmake/makefiles/general b/wmake/makefiles/general index b7f4935..6905b6a 100644 --- a/wmake/makefiles/general +++ b/wmake/makefiles/general @@ -130,17 +130,34 @@ LIB_HEADER_DIRS = \ $(EXE): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(EXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(EXE))" + @$(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ + $(LINK_LIBS) $(GLIBS) -o $(EXE) +else $(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ $(LINK_LIBS) $(GLIBS) -o $(EXE) +endif exe: $(SEXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir SEXE)" +else @echo \'$(SEXE)\' is up to date. +endif $(SEXE):$(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(SEXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(SEXE))" + @$(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ + $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) +else $(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) +endif #------------------------------------------------------------------------------ @@ -150,29 +167,59 @@ $(SEXE):$(OBJECTS) objects: $(OBJECTS) libso: $(LIB).$(SO) +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).$(SO)" +else @echo \'$(LIB).$(SO)\' is up to date. +endif $(LIB).$(SO): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(LIB)).$(SO)" + @$(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) +else $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) +endif lib: $(LIB).a +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).a" +else @echo \'$(LIB).a\' is up to date. +endif $(LIB).a: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).a +ifneq ("$(WM_SILENT_RULES)","") + @echo " AR $(notdir $(LIB))" + @$(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) + @echo "RANLIB $(notdir $(LIB))" + @$(RANLIB) $(LIB).a +else $(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) $(RANLIB) $(LIB).a +endif libo: $(LIB).o +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).o" +else @echo \'$(LIB).o\' is up to date. +endif $(LIB).o: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).o +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(LIB)).o" + @$(LD) -r -o $(LIB).o $(OBJECTS) +else $(LD) -r -o $(LIB).o $(OBJECTS) +endif #------------------------------------------------------------------------------ @@ -205,4 +252,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 4811b0e..7cb4cb5 100644 --- a/wmake/rules/General/bison +++ b/wmake/rules/General/bison @@ -1,5 +1,17 @@ SUFFIXES += .y .Y + +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 = @echo " YY $<"; $(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 $@ +else ytoo = $(WM_SCHEDULER) bison -v -d -y $< $(AND) \ mv y.tab.c $(@D)/$(<F).c $(AND) \ mv y.tab.h $(@D)/$(<F).h $(AND) \ @@ -9,3 +21,4 @@ Ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/btyacc b/wmake/rules/General/btyacc index 90124eb..dac790d 100644 --- a/wmake/rules/General/btyacc +++ b/wmake/rules/General/btyacc @@ -1,6 +1,14 @@ SUFFIXES += .y + +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 $@ +else ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/btyacc++ b/wmake/rules/General/btyacc++ index 2aa66cc..a8f4b4c 100644 --- a/wmake/rules/General/btyacc++ +++ b/wmake/rules/General/btyacc++ @@ -1,6 +1,13 @@ SUFFIXES += .Y +ifneq ("$(WM_SILENT_RULES)","") +Ytoo = @echo " YY $<"; $(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 $@ +else Ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/byacc b/wmake/rules/General/byacc index 1777338..f150ecc 100644 --- a/wmake/rules/General/byacc +++ b/wmake/rules/General/byacc @@ -1,6 +1,13 @@ SUFFIXES += .y +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 $@ +else ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/flex b/wmake/rules/General/flex index 3f2fe37..850f2f6 100644 --- a/wmake/rules/General/flex +++ b/wmake/rules/General/flex @@ -1,4 +1,9 @@ SUFFIXES += .l +ifneq ("$(WM_SILENT_RULES)","") +ltoo = @echo " LEX $<"; $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ + $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ +else ltoo = $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ +endif diff --git a/wmake/rules/General/flex++ b/wmake/rules/General/flex++ index 4a14062..52afe37 100644 --- a/wmake/rules/General/flex++ +++ b/wmake/rules/General/flex++ @@ -1,4 +1,9 @@ SUFFIXES += .L +ifneq ("$(WM_SILENT_RULES)","") +Ltoo = @echo " LEX $<"; $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ + $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@ +else Ltoo = $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@ +endif diff --git a/wmake/rules/General/moc b/wmake/rules/General/moc index 02a0758..0e139f9 100644 --- a/wmake/rules/General/moc +++ b/wmake/rules/General/moc @@ -1,4 +1,10 @@ SUFFIXES += .qt +ifneq ("$(WM_SILENT_RULES)","") +qttoo = @echo " MOC $<"; \ + $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ + $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ +else qttoo = $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ +endif diff --git a/wmake/rules/General/transform b/wmake/rules/General/transform index 3fa0152..5787da7 100644 --- a/wmake/rules/General/transform +++ b/wmake/rules/General/transform @@ -2,15 +2,26 @@ define DEFINE_TRANSFORM $(OBJECTS_DIR)/%.o : %$1 +ifneq ("$(WM_SILENT_RULES)","") + @echo " CC $(value <F)" + @$$($(subst .,,$(1))too) +else $$($(subst .,,$(1))too) +endif endef $(foreach s,$(SUFFIXES),$(eval $(call DEFINE_TRANSFORM,$(s)))) $(OBJECTS_DIR)/%.dep : % @$(WM_SCRIPTS)/makeTargetDir $@ +ifneq ("$(WM_SILENT_RULES)","") @$(WMAKE_BIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS) $< | \ sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +else + @$(WMAKE_BIN)/wmkdep -v -I$(*D) $(LIB_HEADER_DIRS) $< | \ + sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ + -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +endif #------------------------------------------------------------------------------ diff --git a/wmake/src/Makefile b/wmake/src/Makefile index f14baad..3a04e3c 100644 --- a/wmake/src/Makefile +++ b/wmake/src/Makefile @@ -52,6 +52,7 @@ WM_COMPILE_OPTION = Opt GENERAL_RULES = $(WM_DIR)/rules/General include $(GENERAL_RULES)/general +cFLAGS += -Wno-unused-function #------------------------------------------------------------------------------ # Targets @@ -60,18 +61,32 @@ include $(GENERAL_RULES)/general all: $(WMAKE_BIN)/dirToString $(WMAKE_BIN)/wmkdep clean: +ifneq ("$(WM_SILENT_RULES)","") + @rm -f $(WMAKE_BIN)/* 2>/dev/null +else rm -f $(WMAKE_BIN)/* 2>/dev/null +endif $(WMAKE_BIN)/dirToString: dirToString.c @mkdir -p $(WMAKE_BIN) +ifneq ("$(WM_SILENT_RULES)","") + @echo " CC $<" + @$(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString +else $(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString +endif $(WMAKE_BIN)/wmkdep: wmkdep.l @mkdir -p $(WMAKE_BIN) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LEX $<"; flex wmkdep.l; \ + $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep +else flex wmkdep.l $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep +endif @rm -f lex.yy.c 2>/dev/null diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l index a98a597..9246ab1 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, verbose; if (argc == 1) { @@ -154,7 +155,16 @@ int main(int argc, char* argv[]) } sourceFile = strdup(argv[argc-1]); - fprintf(stderr, "Making dependency list for source file %s\n", sourceFile); + verbose = (strncmp(argv[1], "-v", 2) == 0); + if (verbose) + { + fprintf(stderr, "Making dependency list for source file %s\n", + sourceFile); + } + else + { + fprintf(stderr, " DEP %s\n", basename(sourceFile)); + } if ((basePos = strrchr(sourceFile, '/')) == NULL) diff --git a/wmake/wmakeLnInclude b/wmake/wmakeLnInclude index a9195b9..83ac510 100755 --- a/wmake/wmakeLnInclude +++ b/wmake/wmakeLnInclude @@ -139,7 +139,12 @@ fi cd $incDir || exit 1 [ "$silentOpt" = true ] || { +if [ -n "$WM_SILENT_RULES" ] +then + echo " LN $incDir" 1>&2 +else echo "$Script: linking include files to $incDir" 1>&2 +fi } -- 2.7.4 |
|
I think this functionality would be more useful if wmake/Allwmake have a command-line option to set WM_SILENT_RULES. |
|
Added 1. -silent-rules option to wmake. 2. -silentRules option to AllwmakeParseArguments. and kept ability to enable it globally by setting WM_SILENT_RULES environment variable. Tried to guess option construction rules and it seems that for wmake it is -an-option, for AllwmakeParseArguments it is -anOption. Silent-rules.patch (14,639 bytes)
From 6bd01f3f31b23e965601957beafa1fa4ba1bda35 Mon Sep 17 00:00:00 2001 From: Alexey Matveichev <github@matveichev.com> Date: Fri, 11 Nov 2016 22:38:56 +0100 Subject: [PATCH] Silent rules Added WM_SILENT_RULES check to wmake rules to produce compact output: $ ./Allwmake -silentRules Enabling silent compilation rules /home/alexey/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods LN ./lnInclude DEP springRenumber.C DEP randomRenumber.C DEP OppositeFaceCellWaveName.C DEP structuredRenumber.C DEP CuthillMcKeeRenumber.C DEP manualRenumber.C DEP renumberMethod.C CC renumberMethod.C CC manualRenumber.C CC CuthillMcKeeRenumber.C CC randomRenumber.C CC springRenumber.C CC structuredRenumber.C CC OppositeFaceCellWaveName.C LD librenumberMethods.so ->> librenumberMethods.so The behavior is enables by 1. WM_SILENT_RULES environment variable. 2. -silent-rules command line option for wmake. 3. -silentRules command line option for Allwmake. --- etc/bashrc | 2 ++ wmake/makefiles/general | 49 +++++++++++++++++++++++++++++++++++- wmake/rules/General/bison | 13 ++++++++++ wmake/rules/General/btyacc | 8 ++++++ wmake/rules/General/btyacc++ | 7 ++++++ wmake/rules/General/byacc | 7 ++++++ wmake/rules/General/flex | 5 ++++ wmake/rules/General/flex++ | 5 ++++ wmake/rules/General/moc | 6 +++++ wmake/rules/General/transform | 11 ++++++++ wmake/scripts/AllwmakeParseArguments | 7 +++++- wmake/src/Makefile | 15 +++++++++++ wmake/src/wmkdep.l | 14 +++++++++-- wmake/wmake | 5 ++++ wmake/wmakeLnInclude | 5 ++++ 15 files changed, 155 insertions(+), 4 deletions(-) diff --git a/etc/bashrc b/etc/bashrc index 8b59bc2..4457726 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -138,6 +138,8 @@ export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION # Add in preset user or site preferences: _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh` +[ -n "$WM_SILENT_RULES" ] && export WM_SILENT_RULES + # Evaluate command-line parameters and record settings for later # these can be used to set/unset values, or specify alternative pref files export FOAM_SETTINGS="$@" diff --git a/wmake/makefiles/general b/wmake/makefiles/general index b7f4935..6905b6a 100644 --- a/wmake/makefiles/general +++ b/wmake/makefiles/general @@ -130,17 +130,34 @@ LIB_HEADER_DIRS = \ $(EXE): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(EXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(EXE))" + @$(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ + $(LINK_LIBS) $(GLIBS) -o $(EXE) +else $(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ $(LINK_LIBS) $(GLIBS) -o $(EXE) +endif exe: $(SEXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir SEXE)" +else @echo \'$(SEXE)\' is up to date. +endif $(SEXE):$(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(SEXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(SEXE))" + @$(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ + $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) +else $(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) +endif #------------------------------------------------------------------------------ @@ -150,29 +167,59 @@ $(SEXE):$(OBJECTS) objects: $(OBJECTS) libso: $(LIB).$(SO) +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).$(SO)" +else @echo \'$(LIB).$(SO)\' is up to date. +endif $(LIB).$(SO): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(LIB)).$(SO)" + @$(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) +else $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) +endif lib: $(LIB).a +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).a" +else @echo \'$(LIB).a\' is up to date. +endif $(LIB).a: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).a +ifneq ("$(WM_SILENT_RULES)","") + @echo " AR $(notdir $(LIB))" + @$(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) + @echo "RANLIB $(notdir $(LIB))" + @$(RANLIB) $(LIB).a +else $(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) $(RANLIB) $(LIB).a +endif libo: $(LIB).o +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).o" +else @echo \'$(LIB).o\' is up to date. +endif $(LIB).o: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).o +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(LIB)).o" + @$(LD) -r -o $(LIB).o $(OBJECTS) +else $(LD) -r -o $(LIB).o $(OBJECTS) +endif #------------------------------------------------------------------------------ @@ -205,4 +252,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 4811b0e..7cb4cb5 100644 --- a/wmake/rules/General/bison +++ b/wmake/rules/General/bison @@ -1,5 +1,17 @@ SUFFIXES += .y .Y + +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 = @echo " YY $<"; $(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 $@ +else ytoo = $(WM_SCHEDULER) bison -v -d -y $< $(AND) \ mv y.tab.c $(@D)/$(<F).c $(AND) \ mv y.tab.h $(@D)/$(<F).h $(AND) \ @@ -9,3 +21,4 @@ Ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/btyacc b/wmake/rules/General/btyacc index 90124eb..dac790d 100644 --- a/wmake/rules/General/btyacc +++ b/wmake/rules/General/btyacc @@ -1,6 +1,14 @@ SUFFIXES += .y + +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 $@ +else ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/btyacc++ b/wmake/rules/General/btyacc++ index 2aa66cc..a8f4b4c 100644 --- a/wmake/rules/General/btyacc++ +++ b/wmake/rules/General/btyacc++ @@ -1,6 +1,13 @@ SUFFIXES += .Y +ifneq ("$(WM_SILENT_RULES)","") +Ytoo = @echo " YY $<"; $(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 $@ +else Ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/byacc b/wmake/rules/General/byacc index 1777338..f150ecc 100644 --- a/wmake/rules/General/byacc +++ b/wmake/rules/General/byacc @@ -1,6 +1,13 @@ SUFFIXES += .y +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 $@ +else ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/flex b/wmake/rules/General/flex index 3f2fe37..850f2f6 100644 --- a/wmake/rules/General/flex +++ b/wmake/rules/General/flex @@ -1,4 +1,9 @@ SUFFIXES += .l +ifneq ("$(WM_SILENT_RULES)","") +ltoo = @echo " LEX $<"; $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ + $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ +else ltoo = $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ +endif diff --git a/wmake/rules/General/flex++ b/wmake/rules/General/flex++ index 4a14062..52afe37 100644 --- a/wmake/rules/General/flex++ +++ b/wmake/rules/General/flex++ @@ -1,4 +1,9 @@ SUFFIXES += .L +ifneq ("$(WM_SILENT_RULES)","") +Ltoo = @echo " LEX $<"; $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ + $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@ +else Ltoo = $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@ +endif diff --git a/wmake/rules/General/moc b/wmake/rules/General/moc index 02a0758..0e139f9 100644 --- a/wmake/rules/General/moc +++ b/wmake/rules/General/moc @@ -1,4 +1,10 @@ SUFFIXES += .qt +ifneq ("$(WM_SILENT_RULES)","") +qttoo = @echo " MOC $<"; \ + $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ + $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ +else qttoo = $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ +endif diff --git a/wmake/rules/General/transform b/wmake/rules/General/transform index 3fa0152..5787da7 100644 --- a/wmake/rules/General/transform +++ b/wmake/rules/General/transform @@ -2,15 +2,26 @@ define DEFINE_TRANSFORM $(OBJECTS_DIR)/%.o : %$1 +ifneq ("$(WM_SILENT_RULES)","") + @echo " CC $(value <F)" + @$$($(subst .,,$(1))too) +else $$($(subst .,,$(1))too) +endif endef $(foreach s,$(SUFFIXES),$(eval $(call DEFINE_TRANSFORM,$(s)))) $(OBJECTS_DIR)/%.dep : % @$(WM_SCRIPTS)/makeTargetDir $@ +ifneq ("$(WM_SILENT_RULES)","") @$(WMAKE_BIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS) $< | \ sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +else + @$(WMAKE_BIN)/wmkdep -v -I$(*D) $(LIB_HEADER_DIRS) $< | \ + sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ + -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +endif #------------------------------------------------------------------------------ diff --git a/wmake/scripts/AllwmakeParseArguments b/wmake/scripts/AllwmakeParseArguments index c8bb3cc..fe396b7 100644 --- a/wmake/scripts/AllwmakeParseArguments +++ b/wmake/scripts/AllwmakeParseArguments @@ -59,6 +59,7 @@ USAGE fromWmake= qOpt= +silentRulesOpt= for arg in "$@" do @@ -79,6 +80,10 @@ do # Permanently remove arg continue ;; + -silentRules) + silentRulesOpt="-silent-rules" + continue + ;; # Target type lib | libo | libso | dep | objects) targetType=$arg @@ -96,7 +101,7 @@ done if [ -z "$fromWmake" ] then - exec wmake -all $qOpt $* + exec wmake -all $qOpt $silentRulesOpt $* fi diff --git a/wmake/src/Makefile b/wmake/src/Makefile index f14baad..3a04e3c 100644 --- a/wmake/src/Makefile +++ b/wmake/src/Makefile @@ -52,6 +52,7 @@ WM_COMPILE_OPTION = Opt GENERAL_RULES = $(WM_DIR)/rules/General include $(GENERAL_RULES)/general +cFLAGS += -Wno-unused-function #------------------------------------------------------------------------------ # Targets @@ -60,18 +61,32 @@ include $(GENERAL_RULES)/general all: $(WMAKE_BIN)/dirToString $(WMAKE_BIN)/wmkdep clean: +ifneq ("$(WM_SILENT_RULES)","") + @rm -f $(WMAKE_BIN)/* 2>/dev/null +else rm -f $(WMAKE_BIN)/* 2>/dev/null +endif $(WMAKE_BIN)/dirToString: dirToString.c @mkdir -p $(WMAKE_BIN) +ifneq ("$(WM_SILENT_RULES)","") + @echo " CC $<" + @$(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString +else $(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString +endif $(WMAKE_BIN)/wmkdep: wmkdep.l @mkdir -p $(WMAKE_BIN) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LEX $<"; flex wmkdep.l; \ + $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep +else flex wmkdep.l $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep +endif @rm -f lex.yy.c 2>/dev/null diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l index a98a597..9246ab1 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, verbose; if (argc == 1) { @@ -154,7 +155,16 @@ int main(int argc, char* argv[]) } sourceFile = strdup(argv[argc-1]); - fprintf(stderr, "Making dependency list for source file %s\n", sourceFile); + verbose = (strncmp(argv[1], "-v", 2) == 0); + if (verbose) + { + fprintf(stderr, "Making dependency list for source file %s\n", + sourceFile); + } + else + { + fprintf(stderr, " DEP %s\n", basename(sourceFile)); + } if ((basePos = strrchr(sourceFile, '/')) == NULL) diff --git a/wmake/wmake b/wmake/wmake index ebf50cd..9fde68c 100755 --- a/wmake/wmake +++ b/wmake/wmake @@ -76,6 +76,7 @@ options: -no-scheduler Compile without wmakeScheduler -update Update lnInclude directories, dep files, remove deprecated files and directories + -silent-rules Use silent compilation rules -h | -help Print the usage @@ -166,6 +167,10 @@ do -no-scheduler) unset WM_SCHEDULER ;; + -silent-rules) + export WM_SILENT_RULES=1 + echo "Enabling silent compilation rules" + ;; # Meant to be used following a pull, this will: # - remove dep files that depend on deleted files; # - remove stale dep files; diff --git a/wmake/wmakeLnInclude b/wmake/wmakeLnInclude index a9195b9..83ac510 100755 --- a/wmake/wmakeLnInclude +++ b/wmake/wmakeLnInclude @@ -139,7 +139,12 @@ fi cd $incDir || exit 1 [ "$silentOpt" = true ] || { +if [ -n "$WM_SILENT_RULES" ] +then + echo " LN $incDir" 1>&2 +else echo "$Script: linking include files to $incDir" 1>&2 +fi } -- 2.7.4 |
|
Allwmake command-line options are now handled via wmake: ./Allwmake -help Usage: Allwmake [OPTIONS] Executing Allwmake is equivalent to wmake -all [OPTIONS] Usage: wmake [OPTION] [dir] wmake [OPTION] target [dir [MakeDir]] options: -s | -silent 'silent' 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 -j Compile using all local cores/hyperthreads -jN or -j N Compile using N cores/hyperthreads -no-scheduler Compile without wmakeScheduler -update Update lnInclude directories, dep files, remove deprecated files and directories -h | -help Print the usage A general, easy-to-use make system for multi-platform development with support for local and network parallel compilation. The 'target' is a Makefile target: e.g., platforms/linux64GccDPOpt/.../fvMesh.o or a special target: all wmake all sub-directories, running Allwmake if present queue wmakeQueue all sub-directories, running Allwmake if present exe Compile statically linked executable lib Compile statically linked archive lib (.a) 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) objects Compile but not link |
|
Removed -silentRules in AllwmakeParseArguments. So now it is either -silent-rules in wmake/Allwmake invocation or export WM_SILENT_RULES=Y to enable it globally. 0001-Silent-rules-for-wmake.patch (13,698 bytes)
From 1e220b033279e199728e2fa3725bb0cb88c2fc22 Mon Sep 17 00:00:00 2001 From: Alexey Matveichev <github@matveichev.com> Date: Sat, 12 Nov 2016 10:42:00 +0100 Subject: [PATCH] Silent rules for wmake Added WM_SILENT_RULES check to wmake rules to produce compact output: $ ./Allwmake -silent-rules Enabling silent compilation rules /home/alexey/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods LN ./lnInclude DEP springRenumber.C DEP randomRenumber.C DEP OppositeFaceCellWaveName.C DEP structuredRenumber.C DEP CuthillMcKeeRenumber.C DEP manualRenumber.C DEP renumberMethod.C CC renumberMethod.C CC manualRenumber.C CC CuthillMcKeeRenumber.C CC randomRenumber.C CC springRenumber.C CC structuredRenumber.C CC OppositeFaceCellWaveName.C LD librenumberMethods.so ->> librenumberMethods.so The behavior is enables by 1. WM_SILENT_RULES environment variable. 2. -silent-rules command line option for wmake/Allwmake. --- etc/bashrc | 2 ++ wmake/makefiles/general | 49 ++++++++++++++++++++++++++++++++++++++++++- wmake/rules/General/bison | 13 ++++++++++++ wmake/rules/General/btyacc | 8 +++++++ wmake/rules/General/btyacc++ | 7 +++++++ wmake/rules/General/byacc | 7 +++++++ wmake/rules/General/flex | 5 +++++ wmake/rules/General/flex++ | 5 +++++ wmake/rules/General/moc | 6 ++++++ wmake/rules/General/transform | 11 ++++++++++ wmake/src/Makefile | 15 +++++++++++++ wmake/src/wmkdep.l | 14 +++++++++++-- wmake/wmake | 4 ++++ wmake/wmakeLnInclude | 5 +++++ 14 files changed, 148 insertions(+), 3 deletions(-) diff --git a/etc/bashrc b/etc/bashrc index 8b59bc2..4457726 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -138,6 +138,8 @@ export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION # Add in preset user or site preferences: _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh` +[ -n "$WM_SILENT_RULES" ] && export WM_SILENT_RULES + # Evaluate command-line parameters and record settings for later # these can be used to set/unset values, or specify alternative pref files export FOAM_SETTINGS="$@" diff --git a/wmake/makefiles/general b/wmake/makefiles/general index b7f4935..6905b6a 100644 --- a/wmake/makefiles/general +++ b/wmake/makefiles/general @@ -130,17 +130,34 @@ LIB_HEADER_DIRS = \ $(EXE): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(EXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(EXE))" + @$(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ + $(LINK_LIBS) $(GLIBS) -o $(EXE) +else $(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ $(LINK_LIBS) $(GLIBS) -o $(EXE) +endif exe: $(SEXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir SEXE)" +else @echo \'$(SEXE)\' is up to date. +endif $(SEXE):$(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(SEXE) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(SEXE))" + @$(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ + $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) +else $(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) +endif #------------------------------------------------------------------------------ @@ -150,29 +167,59 @@ $(SEXE):$(OBJECTS) objects: $(OBJECTS) libso: $(LIB).$(SO) +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).$(SO)" +else @echo \'$(LIB).$(SO)\' is up to date. +endif $(LIB).$(SO): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(LIB)).$(SO)" + @$(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ + $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) +else $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) +endif lib: $(LIB).a +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).a" +else @echo \'$(LIB).a\' is up to date. +endif $(LIB).a: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).a +ifneq ("$(WM_SILENT_RULES)","") + @echo " AR $(notdir $(LIB))" + @$(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) + @echo "RANLIB $(notdir $(LIB))" + @$(RANLIB) $(LIB).a +else $(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) $(RANLIB) $(LIB).a +endif libo: $(LIB).o +ifneq ("$(WM_SILENT_RULES)","") + @echo "->> $(notdir $(LIB)).o" +else @echo \'$(LIB).o\' is up to date. +endif $(LIB).o: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).o +ifneq ("$(WM_SILENT_RULES)","") + @echo " LD $(notdir $(LIB)).o" + @$(LD) -r -o $(LIB).o $(OBJECTS) +else $(LD) -r -o $(LIB).o $(OBJECTS) +endif #------------------------------------------------------------------------------ @@ -205,4 +252,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 4811b0e..7cb4cb5 100644 --- a/wmake/rules/General/bison +++ b/wmake/rules/General/bison @@ -1,5 +1,17 @@ SUFFIXES += .y .Y + +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 = @echo " YY $<"; $(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 $@ +else ytoo = $(WM_SCHEDULER) bison -v -d -y $< $(AND) \ mv y.tab.c $(@D)/$(<F).c $(AND) \ mv y.tab.h $(@D)/$(<F).h $(AND) \ @@ -9,3 +21,4 @@ Ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/btyacc b/wmake/rules/General/btyacc index 90124eb..dac790d 100644 --- a/wmake/rules/General/btyacc +++ b/wmake/rules/General/btyacc @@ -1,6 +1,14 @@ SUFFIXES += .y + +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 $@ +else ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/btyacc++ b/wmake/rules/General/btyacc++ index 2aa66cc..a8f4b4c 100644 --- a/wmake/rules/General/btyacc++ +++ b/wmake/rules/General/btyacc++ @@ -1,6 +1,13 @@ SUFFIXES += .Y +ifneq ("$(WM_SILENT_RULES)","") +Ytoo = @echo " YY $<"; $(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 $@ +else Ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/byacc b/wmake/rules/General/byacc index 1777338..f150ecc 100644 --- a/wmake/rules/General/byacc +++ b/wmake/rules/General/byacc @@ -1,6 +1,13 @@ SUFFIXES += .y +ifneq ("$(WM_SILENT_RULES)","") +ytoo = @echo " yy $<"; $(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 $@ +else ytoo = $(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 $@ +endif diff --git a/wmake/rules/General/flex b/wmake/rules/General/flex index 3f2fe37..850f2f6 100644 --- a/wmake/rules/General/flex +++ b/wmake/rules/General/flex @@ -1,4 +1,9 @@ SUFFIXES += .l +ifneq ("$(WM_SILENT_RULES)","") +ltoo = @echo " LEX $<"; $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ + $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ +else ltoo = $(WM_SCHEDULER) flex -o $(@D)/$(<F).c $< $(AND) \ $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ +endif diff --git a/wmake/rules/General/flex++ b/wmake/rules/General/flex++ index 4a14062..52afe37 100644 --- a/wmake/rules/General/flex++ +++ b/wmake/rules/General/flex++ @@ -1,4 +1,9 @@ SUFFIXES += .L +ifneq ("$(WM_SILENT_RULES)","") +Ltoo = @echo " LEX $<"; $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ + $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@ +else Ltoo = $(WM_SCHEDULER) flex -+ -o$(@D)/$(<F).C -f $< $(AND) \ $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@ +endif diff --git a/wmake/rules/General/moc b/wmake/rules/General/moc index 02a0758..0e139f9 100644 --- a/wmake/rules/General/moc +++ b/wmake/rules/General/moc @@ -1,4 +1,10 @@ SUFFIXES += .qt +ifneq ("$(WM_SILENT_RULES)","") +qttoo = @echo " MOC $<"; \ + $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ + $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ +else qttoo = $(WM_SCHEDULER) $(QTDIR)/bin/moc -f $< -o $(@D)/$(<F).C $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ +endif diff --git a/wmake/rules/General/transform b/wmake/rules/General/transform index 3fa0152..5787da7 100644 --- a/wmake/rules/General/transform +++ b/wmake/rules/General/transform @@ -2,15 +2,26 @@ define DEFINE_TRANSFORM $(OBJECTS_DIR)/%.o : %$1 +ifneq ("$(WM_SILENT_RULES)","") + @echo " CC $(value <F)" + @$$($(subst .,,$(1))too) +else $$($(subst .,,$(1))too) +endif endef $(foreach s,$(SUFFIXES),$(eval $(call DEFINE_TRANSFORM,$(s)))) $(OBJECTS_DIR)/%.dep : % @$(WM_SCRIPTS)/makeTargetDir $@ +ifneq ("$(WM_SILENT_RULES)","") @$(WMAKE_BIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS) $< | \ sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +else + @$(WMAKE_BIN)/wmkdep -v -I$(*D) $(LIB_HEADER_DIRS) $< | \ + sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ + -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +endif #------------------------------------------------------------------------------ diff --git a/wmake/src/Makefile b/wmake/src/Makefile index f14baad..3a04e3c 100644 --- a/wmake/src/Makefile +++ b/wmake/src/Makefile @@ -52,6 +52,7 @@ WM_COMPILE_OPTION = Opt GENERAL_RULES = $(WM_DIR)/rules/General include $(GENERAL_RULES)/general +cFLAGS += -Wno-unused-function #------------------------------------------------------------------------------ # Targets @@ -60,18 +61,32 @@ include $(GENERAL_RULES)/general all: $(WMAKE_BIN)/dirToString $(WMAKE_BIN)/wmkdep clean: +ifneq ("$(WM_SILENT_RULES)","") + @rm -f $(WMAKE_BIN)/* 2>/dev/null +else rm -f $(WMAKE_BIN)/* 2>/dev/null +endif $(WMAKE_BIN)/dirToString: dirToString.c @mkdir -p $(WMAKE_BIN) +ifneq ("$(WM_SILENT_RULES)","") + @echo " CC $<" + @$(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString +else $(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString +endif $(WMAKE_BIN)/wmkdep: wmkdep.l @mkdir -p $(WMAKE_BIN) +ifneq ("$(WM_SILENT_RULES)","") + @echo " LEX $<"; flex wmkdep.l; \ + $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep +else flex wmkdep.l $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep +endif @rm -f lex.yy.c 2>/dev/null diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l index a98a597..9246ab1 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, verbose; if (argc == 1) { @@ -154,7 +155,16 @@ int main(int argc, char* argv[]) } sourceFile = strdup(argv[argc-1]); - fprintf(stderr, "Making dependency list for source file %s\n", sourceFile); + verbose = (strncmp(argv[1], "-v", 2) == 0); + if (verbose) + { + fprintf(stderr, "Making dependency list for source file %s\n", + sourceFile); + } + else + { + fprintf(stderr, " DEP %s\n", basename(sourceFile)); + } if ((basePos = strrchr(sourceFile, '/')) == NULL) diff --git a/wmake/wmake b/wmake/wmake index ebf50cd..672fc00 100755 --- a/wmake/wmake +++ b/wmake/wmake @@ -76,6 +76,7 @@ options: -no-scheduler Compile without wmakeScheduler -update Update lnInclude directories, dep files, remove deprecated files and directories + -silent-rules Use silent compilation rules -h | -help Print the usage @@ -166,6 +167,9 @@ do -no-scheduler) unset WM_SCHEDULER ;; + -silent-rules) + export WM_SILENT_RULES=1 + ;; # Meant to be used following a pull, this will: # - remove dep files that depend on deleted files; # - remove stale dep files; diff --git a/wmake/wmakeLnInclude b/wmake/wmakeLnInclude index a9195b9..83ac510 100755 --- a/wmake/wmakeLnInclude +++ b/wmake/wmakeLnInclude @@ -139,7 +139,12 @@ fi cd $incDir || exit 1 [ "$silentOpt" = true ] || { +if [ -n "$WM_SILENT_RULES" ] +then + echo " LN $incDir" 1>&2 +else echo "$Script: linking include files to $incDir" 1>&2 +fi } -- 2.7.4 |
|
I am working on this at the moment and wondering if both the -s | -silent and -silent-rules are needed, my feeling is that either -silent-rules should replace the current -silent option or they should be combined. |
|
I am not happy with the amount of clutter and code duplication this change introduces, for example $(OBJECTS_DIR)/%.dep : % @$(WM_SCRIPTS)/makeTargetDir $@ +ifneq ("$(WM_SILENT_RULES)","") @$(WMAKE_BIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS) $< | \ sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +else + @$(WMAKE_BIN)/wmkdep -v -I$(*D) $(LIB_HEADER_DIRS) $< | \ + sed -e 's,^$(WM_PROJECT_DIR)/,$$(WM_PROJECT_DIR)/,' \ + -e 's,^$(WM_THIRD_PARTY_DIR)/,$$(WM_THIRD_PARTY_DIR)/,' > $@ +endif where the only difference between the calls to wmkdep appears to be the '-v' option. Would it be better to define this additional argument according to the setting of WM_SILENT_RULES? Even the duplication in define DEFINE_TRANSFORM $(OBJECTS_DIR)/%.o : %$1 +ifneq ("$(WM_SILENT_RULES)","") + @echo " CC $(value <F)" + @$$($(subst .,,$(1))too) +else $$($(subst .,,$(1))too) +endif endef could be avoided by setting a prefix variable which is either '@' or '' depending on the value of WM_SILENT_RULES. |
|
This basically hangs together and avoids the code duplication by switching the definitions of E and the function SILENT_MESSAGE. I think it should be renamed QUIET rather than SILENT because it isn't actually silent. #-------------------------------*- makefile -*--------------------------------- ifeq ("$(WM_SILENT_RULES)","") E= define SILENT_MESSAGE @echo $1 endef SILENT_OP=-s else E=@ define SILENT_MESSAGE @echo $1 endef SILENT_OP= endif define DEFINE_TRANSFORM $(OBJECTS_DIR)/%.o : %$1 $(call SILENT_MESSAGE, " Compile $(value <F)") $E $$($(subst .,,$(1))too) endef $(foreach s,$(SUFFIXES),$(eval $(call DEFINE_TRANSFORM,$(s)))) $(OBJECTS_DIR)/%.dep : % @$(WM_SCRIPTS)/makeTargetDir $@ $E $(WMAKE_BIN)/wmkdep $(SILENT_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)/,' > $@ #------------------------------------------------------------------------------ |
|
I have updated most of the wmake files without all the mess and code duplication and can now build with the '-s' option but it interacts badly with the '-q' option which will require more digging, careful testing and tweaking. Have you tried your version with the '-q' option? |
|
The patch originated from 4.x, so it (just like me) does not know anything about -q option. I have checked compatibility and it is awful due to non-propagation of command line options. I will update patch ASAP (not quite sure I will be able to integrate your modifications). |
|
I have updated wmakeCollect to handle WM_QUIET and now the behavior is reasonable although there are quite a few other messages generated by wmake which could do with the same treatment. I have changed all of the wmake/rules/General files to use the 'E' and 'QUIET_MESSAGE' macros to avoid the proliferation of conditional statements and the result is much cleaner. I have committed all of the changes so far: OpenFOAM-dev commit a0094dee381c838314a17bca95c842d4253dbf17 I assumed you were running OpenFOAM-dev given that you opened this patch request for 'dev'. I recommend using the '-q' option which speeds-up compilation on a multi-core machine significantly and is proving very reliable. |
|
What I have noticed so far: 1. wmake/src/Makefile: extra $E in front of $(cc) in wmkdep rule. It breaks "make WM_QUIET=1". 2. Is too suffix to be kept in DEFINE_TRANSFORM's QUIET_MESSAGE argument? Or it could be just $(call QUIET_MESSAGE, " $(subst .,,$(1)): $(value <F)") 3. Quiet additions in rules/General/yacc are missing, guess, in my patch they were also absent. 4. Alignment: I would like to propose align : symbol by longest command (btyacc++ so far), so the output is like: daphne:renumber$ ./Allwmake -s $HOME/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods ln: ./lnInclude wmkdep: OppositeFaceCellWaveName.C wmkdep: springRenumber.C wmkdep: structuredRenumber.C wmkdep: randomRenumber.C wmkdep: CuthillMcKeeRenumber.C wmkdep: manualRenumber.C wmkdep: renumberMethod.C C: manualRenumber.C C: renumberMethod.C C: CuthillMcKeeRenumber.C C: randomRenumber.C C: springRenumber.C C: structuredRenumber.C C: OppositeFaceCellWaveName.C ld: librenumberMethods.so ->> $HOME/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so wmake-quiet-cosmetic-changes.patch (7,185 bytes)
diff --git a/wmake/makefiles/general b/wmake/makefiles/general index 7921ee0..04b5147 100644 --- a/wmake/makefiles/general +++ b/wmake/makefiles/general @@ -130,7 +130,7 @@ LIB_HEADER_DIRS = \ $(EXE): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(EXE) - $(call QUIET_MESSAGE, " ld: $(notdir $(EXE))") + $(call QUIET_MESSAGE, " ld: $(notdir $(EXE))") $E $(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \ $(LINK_LIBS) $(GLIBS) -o $(EXE) @@ -140,7 +140,7 @@ exe: $(SEXE) $(SEXE):$(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(SEXE) - $(call QUIET_MESSAGE, " ld: $(notdir $(SEXE))") + $(call QUIET_MESSAGE, " ld: $(notdir $(SEXE))") $E $(LINKEXE) $(OBJECTS) $(EXE_LIBS) \ $(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE) @@ -156,7 +156,7 @@ libso: $(LIB).$(SO) $(LIB).$(SO): $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) - $(call QUIET_MESSAGE, " ld: $(notdir $(LIB)).$(SO)") + $(call QUIET_MESSAGE, " ld: $(notdir $(LIB)).$(SO)") $E $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \ $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB).$(SO) @@ -166,9 +166,9 @@ lib: $(LIB).a $(LIB).a: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).a - $(call QUIET_MESSAGE, " ar: $(notdir $(LIB))") + $(call QUIET_MESSAGE, " ar: $(notdir $(LIB))") $E $(AR) $(ARFLAGS) $(LIB).a $(OBJECTS) - $(call QUIET_MESSAGE, " ranlib: $(notdir $(LIB))") + $(call QUIET_MESSAGE, " ranlib: $(notdir $(LIB))") $E $(RANLIB) $(LIB).a libo: $(LIB).o @@ -177,7 +177,7 @@ libo: $(LIB).o $(LIB).o: $(OBJECTS) @$(WM_SCRIPTS)/makeTargetDir $(LIB) @rm -f $(LIB).o - $(call QUIET_MESSAGE, " ld: $(notdir $(LIB)).o") + $(call QUIET_MESSAGE, " ld: $(notdir $(LIB)).o") $E $(LD) -r -o $(LIB).o $(OBJECTS) diff --git a/wmake/rules/General/bison b/wmake/rules/General/bison index 85ce618..031e90c 100644 --- a/wmake/rules/General/bison +++ b/wmake/rules/General/bison @@ -1,6 +1,6 @@ SUFFIXES += .y .Y -ytoo = $E $(call QUIET_MESSAGE, " bison: $(<F)) \ +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) \ diff --git a/wmake/rules/General/btyacc b/wmake/rules/General/btyacc index 9886c38..b7d86d3 100644 --- a/wmake/rules/General/btyacc +++ b/wmake/rules/General/btyacc @@ -1,6 +1,6 @@ SUFFIXES += .y -ytoo = $E $(call QUIET_MESSAGE, " btyacc: $(<F)") \ +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) \ diff --git a/wmake/rules/General/btyacc++ b/wmake/rules/General/btyacc++ index 632626a..bdb505d 100644 --- a/wmake/rules/General/btyacc++ +++ b/wmake/rules/General/btyacc++ @@ -1,6 +1,6 @@ SUFFIXES += .Y -Ytoo = $E $(call QUIET_MESSAGE, " btyacc++: $(<F)") \ +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) \ diff --git a/wmake/rules/General/byacc b/wmake/rules/General/byacc index bdb0444..6bfdc79 100644 --- a/wmake/rules/General/byacc +++ b/wmake/rules/General/byacc @@ -1,6 +1,6 @@ SUFFIXES += .y -ytoo = $E $(call QUIET_MESSAGE, " byacc: $(<F)") \ +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) \ diff --git a/wmake/rules/General/flex++ b/wmake/rules/General/flex++ index 98dfd23..d72ccc4 100644 --- a/wmake/rules/General/flex++ +++ b/wmake/rules/General/flex++ @@ -1,5 +1,5 @@ SUFFIXES += .L -Ltoo = $E $(call QUIET_MESSAGE, " flex++: $(<F)") \ +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 1ec5cf8..cac92e8 100644 --- a/wmake/rules/General/moc +++ b/wmake/rules/General/moc @@ -1,5 +1,5 @@ SUFFIXES += .qt -qttoo = $E $(call QUIET_MESSAGE, " moc: $(<F)") \ +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 205368f..fcec11d 100644 --- a/wmake/rules/General/transform +++ b/wmake/rules/General/transform @@ -15,7 +15,7 @@ endif define DEFINE_TRANSFORM $(OBJECTS_DIR)/%.o : %$1 - $(call QUIET_MESSAGE, " $(subst .,,$(1))too: $(value <F)") + $(call QUIET_MESSAGE, " $(subst .,,$(1)): $(value <F)") $E $$($(subst .,,$(1))too) endef diff --git a/wmake/rules/General/yacc b/wmake/rules/General/yacc index 18d8902..c17a8cc 100644 --- a/wmake/rules/General/yacc +++ b/wmake/rules/General/yacc @@ -1,11 +1,13 @@ SUFFIXES += .y .Y -ytoo = $(WM_SCHEDULER) yacc -v -d $< $(AND) \ +ytoo = $E $(call QUIET_MESSAGE, " yacc: $(<F)") \ + $(WM_SCHEDULER) yacc -v -d $< $(AND) \ mv y.tab.c $(@D)/$(<F).c $(AND) \ mv y.tab.h $(@D)/parser.h $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).c -o $@ -Ytoo = $(WM_SCHEDULER) yacc -v -d $< $(AND) \ +Ytoo = $E $(call QUIET_MESSAGE, " yacc: $(<F)") \ + $(WM_SCHEDULER) yacc -v -d $< $(AND) \ mv y.tab.c $(@D)/$(<F).C $(AND) \ mv y.tab.h $(@D)/parser.H $(AND) \ $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@ diff --git a/wmake/src/Makefile b/wmake/src/Makefile index c24ac81..d2bc717 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: - @E rm -f $(WMAKE_BIN)/* 2>/dev/null + $(E)rm -f $(WMAKE_BIN)/* 2>/dev/null $(WMAKE_BIN)/dirToString: dirToString.c @mkdir -p $(WMAKE_BIN) - $(call QUIET_MESSAGE, " compile: $<") + $(call QUIET_MESSAGE, " c: $<") $E $(cc) $(cFLAGS) dirToString.c -o $(WMAKE_BIN)/dirToString $(WMAKE_BIN)/wmkdep: wmkdep.l @mkdir -p $(WMAKE_BIN) $(call QUIET_MESSAGE, " lex: $<") - $E flex wmkdep.l; \ - $E $(cc) $(cFLAGS) lex.yy.c -o $(WMAKE_BIN)/wmkdep + $(E) flex wmkdep.l; \ + $(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 81bede8..941e778 100644 --- a/wmake/src/wmkdep.l +++ b/wmake/src/wmkdep.l @@ -158,7 +158,7 @@ int main(int argc, char* argv[]) silent = (strncmp(argv[1], "-s", 2) == 0); if (silent) { - fprintf(stderr, " wmkdep: %s\n", basename(sourceFile)); + fprintf(stderr, " wmkdep: %s\n", basename(sourceFile)); } else { diff --git a/wmake/wmakeLnInclude b/wmake/wmakeLnInclude index 3db3802..171f7e6 100755 --- a/wmake/wmakeLnInclude +++ b/wmake/wmakeLnInclude @@ -140,7 +140,7 @@ cd $incDir || exit 1 if [ "$silentOpt" = true -o -n "$WM_QUIET" ] then - echo " ln: $incDir" 1>&2 + echo " ln: $incDir" 1>&2 else echo "$Script: linking include files to $incDir" 1>&2 fi |
|
1. I haven't tested 2. The conversion rule is .*too because it converts to '.o' 3. OK, I will make this change. 4. Your proposed alignment looks odd; what is the advantage in having the 'C' align with the 'k' of wmkdep? |
|
2. Then wmkdep label should be Ctodep. It is a matter of preferences having Ctoo or just C, so let it be Ctoo. 4. Variable width fonts break alignment in the note, with fixed width fonts output looks more aligned. See attached build.log. build.log (689 bytes)
daphne:renumber$ ./Allwmake -s /home/alexey/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods ln: ./lnInclude wmkdep: OppositeFaceCellWaveName.C wmkdep: springRenumber.C wmkdep: structuredRenumber.C wmkdep: randomRenumber.C wmkdep: CuthillMcKeeRenumber.C wmkdep: manualRenumber.C wmkdep: renumberMethod.C C: manualRenumber.C C: renumberMethod.C C: CuthillMcKeeRenumber.C C: randomRenumber.C C: springRenumber.C C: structuredRenumber.C C: OppositeFaceCellWaveName.C ld: librenumberMethods.so ->> /home/alexey/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so Skipping zoltanRenumber |
|
2. wmkdep is a conversion command whereas for the conversion of .C to .o the conversion command is actually either g++, clang++, icpc etc, which are wrapped into the Ctoo. It might be possible to work out which compiler is actually being used in the Ctoo macro and print that instead. Note that wmake is not C++ specific and other langauage files can be converted into .o files so we should not hard-code the message for C++. 4. I don't see this as better than simple left justification, it would be better to use a 2-column format with left justification for the command space then the ':' in a column and the source file. This should not be done with spaces because it would require ALL of the message strings to be changed if a new conversion command is added which longer than the current commands. |
|
wmake/rules/General/bison: missing closing " in QUIET_MESSAGE call 4. Initial idea behind silent rules is to reduce cognitive load while looking at build log files. The same reasoning is behind two-column output: first column is WHAT we are doing, second column is WHERE we are doing it. One can use left alignment in both columns and separate them with tabs; or it is possible to use printf command to right-align left column. Former solution needs additional variable: left column width. |
|
I found the problem in bison and fixed it while simplifying the QUIET_MESSAGE function 4. I don't have a problem with either left-justified one-column or two-column format but the two-column format would take additional effort. |
|
I have pushed the simplified QUIET_MESSAGE function: commit 2b3f1d6a41b6cbb84d918bfefa70315b9d85dfa4 |
|
With simplified QUIET_MESSAGE function alignment implementation is rather simple. See my attempt in attachment. -q flag's behavoiur right now is rather strange: daphne:renumber$ ./Allwmake -q -s wmakeLnIncludeAll: starting wmakeLnInclude processes on 4 cores searching . for 'Make' directories ln: ./SloanRenumber/lnInclude ln: ./zoltanRenumber/lnInclude ln: ./renumberMethods/lnInclude $HOME/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods wmkdep: OppositeFaceCellWaveName.C wmkdep: structuredRenumber.C wmkdep: randomRenumber.C wmkdep: springRenumber.C wmkdep: CuthillMcKeeRenumber.C wmkdep: manualRenumber.C wmkdep: renumberMethod.C Ctoo: renumberMethod.C Ctoo: manualRenumber.C Ctoo: randomRenumber.C Ctoo: CuthillMcKeeRenumber.C Ctoo: springRenumber.C Ctoo: structuredRenumber.C Ctoo: OppositeFaceCellWaveName.C Skipping zoltanRenumber compiling: renumberMethod.C compiling: randomRenumber.C compiling: manualRenumber.C compiling: CuthillMcKeeRenumber.C compiling: structuredRenumber.C compiling: springRenumber.C compiling: OppositeFaceCellWaveName.C /home/alexey/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods ld: librenumberMethods.so ->> $HOME/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so without -s flag files are also compiled twice. 0001-Colon-alignment.patch (4,428 bytes)
From 796b3ef2d579d3364ae91e53ee4ad641bf21454e Mon Sep 17 00:00:00 2001 From: Alexey Matveichev <github@matveichev.com> Date: Sun, 13 Nov 2016 16:17:35 +0100 Subject: [PATCH] Colon alignment Align colon in silent rules according to WM_SILENT_LEFT_COLUMN_WIDTH environment variable or use default value of 10. 1. rightAlign function in wmkdep. 2. RIGHT_ALIGN function in transform. 3. printf for alignment in wmakeLnInclude. --- wmake/rules/General/transform | 6 +++++- wmake/src/wmkdep.l | 41 +++++++++++++++++++++++++++++++++++++++-- wmake/wmakeLnInclude | 10 ++++++++-- 3 files changed, 52 insertions(+), 5 deletions(-) diff --git a/wmake/rules/General/transform b/wmake/rules/General/transform index 427cc25..fa4f3a5 100644 --- a/wmake/rules/General/transform +++ b/wmake/rules/General/transform @@ -1,9 +1,13 @@ #-------------------------------*- makefile -*--------------------------------- +WM_SILENT_LEFT_COLUMNT_DEFAULT_WIDTH := 10 + +RIGHT_ALIGN = $(shell printf "%*s" $(if $(WM_SILENT_LEFT_COLUMN_WIDTH),$(WM_SILENT_LEFT_COLUMN_WIDTH),$(WM_SILENT_LEFT_COLUMNT_DEFAULT_WIDTH)) $(1)) + ifneq ("$(WM_QUIET)","") E=@ define QUIET_MESSAGE - @echo " $1: $2"; + @echo "$(call RIGHT_ALIGN,$1): $2"; endef QUIET_OP=-s else diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l index 81bede8..78e83c5 100644 --- a/wmake/src/wmkdep.l +++ b/wmake/src/wmkdep.l @@ -41,6 +41,7 @@ Usage #define FILE_STACK_SIZE 300 #define HASH_TABLE_SIZE 500 +#define DEFAULT_LEFT_COLUMN_WIDTH 10 #include <stdlib.h> #include <string.h> @@ -52,6 +53,7 @@ Usage void nextFile(const char* fileName); void importFile(const char* fileName); void importDir(const char* dirName); +char* rightAlign(const char* str); #undef yywrap /* sometimes a macro by default */ @@ -145,7 +147,7 @@ const char* bufferPaths[FILE_STACK_SIZE]; int main(int argc, char* argv[]) { - char *basePos, *dotPos; + char *basePos, *dotPos, *leftColumn = NULL; int i, silent; if (argc == 1) @@ -158,7 +160,10 @@ int main(int argc, char* argv[]) silent = (strncmp(argv[1], "-s", 2) == 0); if (silent) { - fprintf(stderr, " wmkdep: %s\n", basename(sourceFile)); + leftColumn = rightAlign("wmkdep"); + fprintf(stderr, "%s: %s\n", leftColumn, basename(sourceFile)); + if (leftColumn != NULL) + free(leftColumn); } else { @@ -270,6 +275,38 @@ int main(int argc, char* argv[]) /* + * Write right-aligned str to dst + */ +char* rightAlign(const char* str) +{ + char *dst; + int columnWidth = DEFAULT_LEFT_COLUMN_WIDTH; + int len = strlen(str); + int didx, sidx; + char *lcw = getenv("WM_SILENT_LEFT_COLUMN_WIDTH"); + if (lcw != NULL) + { + columnWidth = atoi(lcw); + } + if (len > columnWidth) + { + columnWidth = strlen(str); + } + dst = (char*) calloc(columnWidth, sizeof(char)); + memset(dst, 32, columnWidth - 1); + didx = columnWidth - 1; + sidx = len - 1; + while (sidx >= 0) + { + dst[didx] = str[sidx]; + didx--; + sidx--; + } + return dst; +} + + +/* * Add a directory name to the file name */ char* addDirectoryName(const char* dirName, const char* fileName) diff --git a/wmake/wmakeLnInclude b/wmake/wmakeLnInclude index 3db3802..fd06a14 100755 --- a/wmake/wmakeLnInclude +++ b/wmake/wmakeLnInclude @@ -40,6 +40,8 @@ #------------------------------------------------------------------------------ Script=${0##*/} +WM_SILENT_LEFT_COLUMN_DEFAULT_WIDTH=10 + usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -140,7 +142,11 @@ cd $incDir || exit 1 if [ "$silentOpt" = true -o -n "$WM_QUIET" ] then - echo " ln: $incDir" 1>&2 + lnStr=$(printf "%*s" $WM_SILENT_LEFT_COLUMN_DEFAULT_WIDTH "ln") + [ -n "$WM_SILENT_LEFT_COLUMN_WIDTH" ] && { + lnStr=$(printf "%*s" $WM_SILENT_LEFT_COLUMN_WIDTH "ln") + } + echo "${lnStr}: $incDir" 1>&2 else echo "$Script: linking include files to $incDir" 1>&2 fi @@ -172,7 +178,7 @@ find .. $findOpt \ # Cleanup local variables and functions #------------------------------------------------------------------------------ -unset Script usage +unset Script usage WM_SILENT_LEFT_COLUMN_DEFAULT_WIDTH #------------------------------------------------------------------------------ -- 2.7.4 |
|
It is not compiling twice, it first generates a complete Makefile for all the object file compilations by running wmake echo'ing the commands into files which are then collected and the Makefile executed with make. For this second (real compilation) stage it is diffult to get hold of the actual compilation command so I put in "compiling:" instead. You will notice that the complete build is significantly quicker than without the '-q'. |
|
This adds a lot of clutter to wmkdep duplicating in C what is also written in the Makefile. It would probably be better if the messaging from wmkdep.l is removed and the appropriate messages generated in the Makefile. |
|
Is the log in your last post generated with the new alignment function? This alignment looks the same as your original format which does not left-justify the commands but aligns the ':'s which looks awful. My preference would be to either left-justify the commands as is currently done in OpenFOAM-dev or left-justify the commands AND align the ':'s. |
|
Cleaned-up the output from the Allwmake scripts: commit 48e3fb78052699a00f6d1434a8b37c4e4c0d6ddc |
|
Question of alignment:daphne:renumber$ ./Allwmake -s /home/alexey/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods ln : ./lnInclude wmkdep : OppositeFaceCellWaveName.C wmkdep : structuredRenumber.C wmkdep : springRenumber.C wmkdep : randomRenumber.C wmkdep : CuthillMcKeeRenumber.C wmkdep : manualRenumber.C wmkdep : renumberMethod.C Ctoo : renumberMethod.C Ctoo : manualRenumber.C Ctoo : CuthillMcKeeRenumber.C Ctoo : randomRenumber.C Ctoo : springRenumber.C Ctoo : structuredRenumber.C Ctoo : OppositeFaceCellWaveName.C ld : librenumberMethods.so ->> /home/alexey/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so Skipping zoltanRenumber and daphne:renumber$ ./Allwmake -s /home/alexey/OpenFOAM/OpenFOAM-dev/src/renumber/renumberMethods ln: ./lnInclude wmkdep: OppositeFaceCellWaveName.C wmkdep: structuredRenumber.C wmkdep: springRenumber.C wmkdep: randomRenumber.C wmkdep: CuthillMcKeeRenumber.C wmkdep: manualRenumber.C wmkdep: renumberMethod.C Ctoo: renumberMethod.C Ctoo: CuthillMcKeeRenumber.C Ctoo: manualRenumber.C Ctoo: randomRenumber.C Ctoo: springRenumber.C Ctoo: structuredRenumber.C Ctoo: OppositeFaceCellWaveName.C ld: librenumberMethods.so ->> /home/alexey/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so Skipping zoltanRenumber with -q flag: daphne:renumber$ ./Allwmake -s -q Allwmake src/renumber wmakeLnIncludeAll: starting wmakeLnInclude processes on 4 cores searching . for 'Make' directories ln: ./SloanRenumber/lnInclude ln: ./zoltanRenumber/lnInclude ln: ./renumberMethods/lnInclude wmake objects . Allwmake objects src/renumber skipping zoltanRenumber wmake objects renumberMethods wmkdep: structuredRenumber.C wmkdep: OppositeFaceCellWaveName.C wmkdep: springRenumber.C wmkdep: randomRenumber.C wmkdep: CuthillMcKeeRenumber.C wmkdep: manualRenumber.C wmkdep: renumberMethod.C Ctoo: manualRenumber.C Ctoo: renumberMethod.C Ctoo: CuthillMcKeeRenumber.C Ctoo: randomRenumber.C Ctoo: structuredRenumber.C Ctoo: springRenumber.C Ctoo: OppositeFaceCellWaveName.C compiling: CuthillMcKeeRenumber.C compiling: renumberMethod.C compiling: manualRenumber.C compiling: randomRenumber.C compiling: structuredRenumber.C compiling: springRenumber.C compiling: OppositeFaceCellWaveName.C Allwmake src/renumber skipping zoltanRenumber wmake renumberMethods ld: librenumberMethods.so ->> /home/alexey/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so 0001-Messages-and-alignment.patch (6,352 bytes)
From f58084d9b719f3325080ba64e1de7adfa216d0da Mon Sep 17 00:00:00 2001 From: Alexey Matveichev <github@matveichev.com> Date: Sun, 13 Nov 2016 19:51:45 +0100 Subject: [PATCH] Messages and alignment 1. Moved wmkdep message to Makefile. 2. Added alignment wmake shell/make functions. --- wmake/rules/General/transform | 11 +++++- wmake/scripts/wmakeFunctions | 86 +++++++++++++++++++++++++++++++++++++++++++ wmake/src/wmkdep.l | 6 +-- wmake/wmakeCollect | 4 +- wmake/wmakeLnInclude | 6 ++- 5 files changed, 104 insertions(+), 9 deletions(-) diff --git a/wmake/rules/General/transform b/wmake/rules/General/transform index 5ac71a6..54e4b8f 100644 --- a/wmake/rules/General/transform +++ b/wmake/rules/General/transform @@ -1,9 +1,17 @@ #----------------------------*- makefile-gmake -*------------------------------ +# Quiet rules left column width +WM_QUIET_LEFT_COLUMNT_DEFAULT_WIDTH = 10 + +ALIGN_RIGHT = $(shell printf "%*s" $(if $(WM_QUIET_LEFT_COLUMN_WIDTH),$(WM_QUIET_LEFT_COLUMN_WIDTH),$(WM_QUIET_LEFT_COLUMNT_DEFAULT_WIDTH)) $(1)) + +ALIGN_LEFT = $(shell printf "%-*s" $(if $(WM_QUIET_LEFT_COLUMN_WIDTH),$(WM_QUIET_LEFT_COLUMN_WIDTH),$(WM_QUIET_LEFT_COLUMNT_DEFAULT_WIDTH)) $(1)) + + ifneq ("$(WM_QUIET)","") E=@ define QUIET_MESSAGE - @echo " $1: $2"; + @echo "$(call ALIGN_RIGHT,$1): $2"; endef QUIET_OP=-s else @@ -23,6 +31,7 @@ $(foreach s,$(SUFFIXES),$(eval $(call DEFINE_TRANSFORM,$(s)))) $(OBJECTS_DIR)/%.dep : % @$(WM_SCRIPTS)/makeTargetDir $@ + $(call QUIET_MESSAGE,wmkdep,$(<F)) @$(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/scripts/wmakeFunctions b/wmake/scripts/wmakeFunctions index 0262350..2df9fd0 100755 --- a/wmake/scripts/wmakeFunctions +++ b/wmake/scripts/wmakeFunctions @@ -30,6 +30,92 @@ #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ +# Align given string +#------------------------------------------------------------------------------ + +align() +{ + # Arguments: + # - str: string to be aligned + # - dir: direction of alignment (left/right) + # - len: length of string where alignment happens + + # If neither len parameter nor WM_QUIET_COLUMN_WIDTH environment variable + # are set. + local default_column_width=10 + + [ "$#" -lt "2" ] && return 1 + # Default is to align left + local fmt="%-*s" + local len= + local str="$1" + shift + local dir="$1" + case $dir in + right) + fmt="%*s" + ;; + *) + ;; + esac + shift + if [ "$#" -gt "1" ] + then + len="$1" + elif [ -n "$WM_QUIET_COLUMN_WIDTH" ] + then + len=$WM_QUIET_COLUMN_WIDTH + else + len=$default_column_width + fi + printf $fmt $len $str +} + + +#------------------------------------------------------------------------------ +# Right-align given string +#------------------------------------------------------------------------------ + +alignRight() +{ + # Arguments: + # - str: string to be aligned + # - len: length of string where alignment happens + + [ "$#" -lt "1" ] && return 1 + local len= + local str="$1" + shift + if [ "$#" -gt "1" ] + then + len="$1" + fi + align $str right $len +} + +#------------------------------------------------------------------------------ +# Left-align given string +#------------------------------------------------------------------------------ + +alignLeft() +{ + # Arguments: + # - str: string to be aligned + # - len: length of string where alignment happens + + [ "$#" -lt "1" ] && return 1 + local len= + local str="$1" + shift + if [ "$#" -gt "1" ] + then + len="$1" + fi + align $str left $len +} + + +#------------------------------------------------------------------------------ # Check environment variables #------------------------------------------------------------------------------ diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l index 81bede8..c89f96a 100644 --- a/wmake/src/wmkdep.l +++ b/wmake/src/wmkdep.l @@ -156,11 +156,7 @@ int main(int argc, char* argv[]) sourceFile = strdup(argv[argc-1]); silent = (strncmp(argv[1], "-s", 2) == 0); - if (silent) - { - fprintf(stderr, " wmkdep: %s\n", basename(sourceFile)); - } - else + if (!silent) { fprintf ( diff --git a/wmake/wmakeCollect b/wmake/wmakeCollect index 2aaa2c6..66f761d 100755 --- a/wmake/wmakeCollect +++ b/wmake/wmakeCollect @@ -34,6 +34,8 @@ #------------------------------------------------------------------------------- Script=${0##*/} +. ${0%/*}/scripts/wmakeFunctions + usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -138,7 +140,7 @@ then # Add the build rule for the current target echo "$object: $makefile" >> $file [ -z "$E" ] || - echo -e "\t@echo \" compiling: ${source##*/}\"" >> $file + echo -e "\t@echo \"$(alignRight compiling): ${source##*/}\"" >> $file echo -e "\t$E cd $PWD && \\" >> $file echo -e "\t${@:1:($#-1)} $object" >> $file echo >> $file diff --git a/wmake/wmakeLnInclude b/wmake/wmakeLnInclude index 3db3802..89862ff 100755 --- a/wmake/wmakeLnInclude +++ b/wmake/wmakeLnInclude @@ -40,6 +40,8 @@ #------------------------------------------------------------------------------ Script=${0##*/} +. ${0%/*}/scripts/wmakeFunctions + usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -140,7 +142,7 @@ cd $incDir || exit 1 if [ "$silentOpt" = true -o -n "$WM_QUIET" ] then - echo " ln: $incDir" 1>&2 + echo "$(alignRight ln): $incDir" 1>&2 else echo "$Script: linking include files to $incDir" 1>&2 fi @@ -172,7 +174,7 @@ find .. $findOpt \ # Cleanup local variables and functions #------------------------------------------------------------------------------ -unset Script usage +unset Script usage WM_SILENT_LEFT_COLUMN_DEFAULT_WIDTH #------------------------------------------------------------------------------ -- 2.7.4 |
|
My view is at least the commands should be indented and left justified as they are currently, none of the options above have this. My preference is for the current arrangement which I think has the simplest implementation, least clutter on the screen and easiest to propagate consistently through the rest of the build scripts. My second choice would be for the first of your options above but with the commands indented. |
|
Well, left align, indent (initially ->> has 0 indentation to separate work units ->> was also selected cause initially all compilation/transformation indents was 6 (4 spaces + CC, RANLIB without indent) symbols)daphne:renumber$ ./Allwmake -s -q Allwmake src/renumber wmakeLnIncludeAll: starting wmakeLnInclude processes on 4 cores searching . for 'Make' directories ln: ./SloanRenumber/lnInclude ln: ./renumberMethods/lnInclude ln: ./zoltanRenumber/lnInclude wmake objects . Allwmake objects src/renumber skipping zoltanRenumber wmake objects renumberMethods wmkdep: structuredRenumber.C wmkdep: OppositeFaceCellWaveName.C wmkdep: springRenumber.C wmkdep: randomRenumber.C wmkdep: CuthillMcKeeRenumber.C wmkdep: manualRenumber.C wmkdep: renumberMethod.C Ctoo: renumberMethod.C Ctoo: manualRenumber.C Ctoo: randomRenumber.C Ctoo: CuthillMcKeeRenumber.C Ctoo: springRenumber.C Ctoo: structuredRenumber.C Ctoo: OppositeFaceCellWaveName.C compiling: renumberMethod.C compiling: manualRenumber.C compiling: randomRenumber.C compiling: CuthillMcKeeRenumber.C compiling: springRenumber.C compiling: OppositeFaceCellWaveName.C compiling: structuredRenumber.C Allwmake src/renumber skipping zoltanRenumber wmake renumberMethods ld: librenumberMethods.so ->> /home/alexey/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so right align: daphne:renumber$ ./Allwmake -s -q Allwmake src/renumber wmakeLnIncludeAll: starting wmakeLnInclude processes on 4 cores searching . for 'Make' directories ln: ./SloanRenumber/lnInclude ln: ./zoltanRenumber/lnInclude ln: ./renumberMethods/lnInclude wmake objects . Allwmake objects src/renumber skipping zoltanRenumber wmake objects renumberMethods wmkdep: OppositeFaceCellWaveName.C wmkdep: structuredRenumber.C wmkdep: springRenumber.C wmkdep: randomRenumber.C wmkdep: CuthillMcKeeRenumber.C wmkdep: manualRenumber.C wmkdep: renumberMethod.C Ctoo: renumberMethod.C Ctoo: manualRenumber.C Ctoo: CuthillMcKeeRenumber.C Ctoo: randomRenumber.C Ctoo: springRenumber.C Ctoo: structuredRenumber.C Ctoo: OppositeFaceCellWaveName.C compiling: renumberMethod.C compiling: manualRenumber.C compiling: CuthillMcKeeRenumber.C compiling: randomRenumber.C compiling: structuredRenumber.C compiling: springRenumber.C compiling: OppositeFaceCellWaveName.C Allwmake src/renumber skipping zoltanRenumber wmake renumberMethods ld: librenumberMethods.so ->> /home/alexey/OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so Since our alignment and output preferences are quite different and I need to maintain own patch set anyway (for this, for Scotch/METIS, for other things), I think bug report can be closed, commit mention edited-out. |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-11-11 08:40 | alexeym | New Issue | |
2016-11-11 08:40 | alexeym | File Added: 0003-Silent-rules.patch | |
2016-11-11 08:40 | alexeym | Tag Attached: wmake | |
2016-11-11 09:58 | henry | Note Added: 0007139 | |
2016-11-11 21:49 | alexeym | File Added: Silent-rules.patch | |
2016-11-11 21:49 | alexeym | Note Added: 0007162 | |
2016-11-11 22:47 | henry | Note Added: 0007163 | |
2016-11-12 09:49 | alexeym | File Added: 0001-Silent-rules-for-wmake.patch | |
2016-11-12 09:49 | alexeym | Note Added: 0007165 | |
2016-11-12 12:01 | henry | Note Added: 0007166 | |
2016-11-12 13:41 | henry | Note Added: 0007167 | |
2016-11-12 16:52 | henry | Note Added: 0007168 | |
2016-11-12 18:41 | henry | Note Added: 0007169 | |
2016-11-12 21:40 | alexeym | Note Added: 0007170 | |
2016-11-12 22:13 | henry | Note Added: 0007171 | |
2016-11-13 09:14 | alexeym | File Added: wmake-quiet-cosmetic-changes.patch | |
2016-11-13 09:14 | alexeym | Note Added: 0007172 | |
2016-11-13 09:52 | henry | Note Added: 0007173 | |
2016-11-13 10:07 | alexeym | File Added: build.log | |
2016-11-13 10:07 | alexeym | Note Added: 0007174 | |
2016-11-13 10:21 | henry | Note Added: 0007175 | |
2016-11-13 11:02 | alexeym | Note Added: 0007176 | |
2016-11-13 11:15 | henry | Note Added: 0007177 | |
2016-11-13 11:22 | henry | Note Added: 0007178 | |
2016-11-13 15:26 | alexeym | File Added: 0001-Colon-alignment.patch | |
2016-11-13 15:26 | alexeym | Note Added: 0007182 | |
2016-11-13 15:39 | henry | Note Added: 0007185 | |
2016-11-13 15:44 | henry | Note Added: 0007186 | |
2016-11-13 15:49 | henry | Note Added: 0007187 | |
2016-11-13 18:14 | henry | Note Added: 0007192 | |
2016-11-13 18:56 | alexeym | File Added: 0001-Messages-and-alignment.patch | |
2016-11-13 18:56 | alexeym | Note Added: 0007193 | |
2016-11-13 20:13 | henry | Note Added: 0007194 | |
2016-11-13 21:50 | alexeym | Note Added: 0007197 | |
2016-11-13 22:04 | henry | Assigned To | => henry |
2016-11-13 22:04 | henry | Status | new => resolved |
2016-11-13 22:04 | henry | Resolution | open => fixed |
2016-11-13 22:04 | henry | Fixed in Version | => dev |