From 95141f624551315d0399d31fa3542edd6f84d7ad Mon Sep 17 00:00:00 2001 From: "Steffen (Daode) Nurpmeso" Date: Tue, 19 Jul 2016 14:43:53 +0200 Subject: [PATCH] Tweak VERBOSE handling (William Yodlowsky).. Back in 2013 William asked for VERBOSE and pointed to a ML thread, and wrote some statements. It turns out i didn't realize what he was really saying, so throw away all that if..echo(1)..fi statements that we use to realize VERBOSEity, but instead use simple make(1) variable prefixes instead. --- INSTALL | 6 ++-- mk-conf.sh | 10 ++++++ mk-mk.in | 106 +++++++++++++++++-------------------------------------------- 3 files changed, 43 insertions(+), 79 deletions(-) diff --git a/INSTALL b/INSTALL index 3f5f33a8..08766047 100644 --- a/INSTALL +++ b/INSTALL @@ -73,9 +73,9 @@ The following make(1) targets exists, the default being `build': - test Run "cc-test.sh" in --check-only mode on the built binary. -Setting the make(1) variable $VERBOSE to an arbitrary value, as in -"$ make VERBOSE=xy tangerine", will change the output of the `all', -`install' etc. targets to a different, more verbose one. +Setting the make(1) variable $VERBOSE to an arbitrary value during +`config' time, as in "$ make VERBOSE=xy tangerine", will change the +output of the `all', `install' etc. targets to a more verbose one. If some libraries are missing that you know are installed on your system, or if other errors occur due to missing files but which you know exist, please ensure that the environment variable $C_INCLUDE_PATH diff --git a/mk-conf.sh b/mk-conf.sh index a7a71d91..9237c159 100644 --- a/mk-conf.sh +++ b/mk-conf.sh @@ -932,6 +932,16 @@ ${mv} -f ${newlst} ${lst} ${mv} -f ${newh} ${h} ${mv} -f ${newmk} ${mk} +if [ -z "${VERBOSE}" ]; then + printf -- "ECHO_CC = @echo ' 'CC \$(@);\n" >> ${mk} + printf -- "ECHO_LINK = @echo ' 'LINK \$(@);\n" >> ${mk} + printf -- "ECHO_GEN = @echo ' 'GEN \$(@);\n" >> ${mk} + printf -- "ECHO_TEST = @\n" >> ${mk} + printf -- "ECHO_CMD = @echo ' CMD';\n" >> ${mk} + printf -- "ECHO_BLOCK_BEGIN = @( \n" >> ${mk} + printf -- "ECHO_BLOCK_END = ) >/dev/null\n" >> ${mk} +fi + ## Compile and link checking tmp3=./${tmp0}3$$ diff --git a/mk-mk.in b/mk-mk.in index 69a57c0a..1112bb15 100644 --- a/mk-mk.in +++ b/mk-mk.in @@ -1,32 +1,19 @@ #@ "mk-mk.in" -- mk.mk template, completed by mk-conf.sh. #@ Please see "INSTALL" and "make.rc" instead. +SIZE_CHECK = @if ( command -v size ) > /dev/null 2>&1; then size $(@); fi + OBJ = $(OBJ_SRC:.c=.o) .SUFFIXES: .o .c .y .c.o: - @if [ -z "$(VERBOSE)" ]; then echo ' CC $(<)';\ - else echo ' $$ $(CC) $(CFLAGS) $(INCS) -c $(<)';\ - fi;\ - $(CC) $(CFLAGS) $(INCS) -c $(<) + $(ECHO_CC)$(CC) $(CFLAGS) $(INCS) -c $(<) .c .y: ; -all: _all_echoes $(UAGENT) $(OPTIONAL_PRIVSEP) -_all_echoes: - @echo 'Building..';\ - if [ -z "$(VERBOSE)" ]; then \ - echo '. CC : $(CC)';\ - echo '. CFLAGS : $(CFLAGS)';\ - echo '. INCS : $(INCS)';\ - [ -n "$(LDFLAGS)" ] && echo '. LDFLAGS : $(LDFLAGS)';\ - echo '. LIBS : $(LIBS)';\ - fi +all: $(UAGENT) $(OPTIONAL_PRIVSEP) $(UAGENT): $(OBJ) - @if [ -z "$(VERBOSE)" ]; then echo ' LINK $(@)';\ - else echo ' $$ $(CC) $(LDFLAGS) -o $(@) $(OBJ) $(LIBS)';\ - fi;\ - $(CC) $(LDFLAGS) -o $(@) $(OBJ) $(LIBS) - @if ( command -v size ) > /dev/null 2>&1; then size $(@); fi + $(ECHO_LINK)$(CC) $(LDFLAGS) -o $(@) $(OBJ) $(LIBS) + $(SIZE_CHECK) $(OBJ): config.h nail.h nailfuns.h $(AMALGAM_DEP) $(AMALGAM_TARGET) accmacvar.o: okeys.h version.h @@ -38,20 +25,20 @@ $(AMALGAM_TARGET) smtp.o: smtp_gssapi.h $(AMALGAM_TARGET) termcap.o: tcaps.h $(PRIVSEP): privsep.o - @if [ -z "$(VERBOSE)" ]; then echo ' LINK $(@)';\ - else echo ' $$ $(CC) $(LDFLAGS) -o $(@) privsep.o';\ - fi;\ - $(CC) $(LDFLAGS) -o $(@) privsep.o $(BASE_LIBS) - @if ( command -v size ) > /dev/null 2>&1; then size $(@); fi + $(ECHO_LINK)$(CC) $(LDFLAGS) -o $(@) privsep.o $(BASE_LIBS) + $(SIZE_CHECK) privsep.o: privsep.c config.h nail.h dotlock.h - @if [ -z "$(VERBOSE)" ]; then echo ' CC $(@)';\ - else echo ' $$ $(CC) $(CFLAGS) $(BASE_INCS) -c privsep.c';\ - fi;\ - $(CC) $(CFLAGS) $(BASE_INCS) -c privsep.c + $(ECHO_CC)$(CC) $(CFLAGS) $(BASE_INCS) -c privsep.c + +test: all + $(ECHO_TEST)\ + MAKE=$(MAKE) \ + awk=$(awk) cat=$(cat) cksum=$(cksum) rm=$(rm) sed=$(sed) grep=$(grep) \ + $(SHELL) ./cc-test.sh --check-only ./$(UAGENT) mime_types.h: mime.types - @echo ' GEN $(@)';\ + $(ECHO_GEN)\ LC_ALL=C < ./mime.types > $(@) $(awk) '\ function add(mt, ln) {\ gsub(/[[:space:]]+/, " ", ln);\ @@ -114,19 +101,13 @@ mime_types.h: mime.types }\ ' -test: all - @echo 'Running test, please wait';\ - MAKE=$(MAKE) \ - awk=$(awk) cat=$(cat) cksum=$(cksum) rm=$(rm) sed=$(sed) grep=$(grep) \ - $(SHELL) ./cc-test.sh --check-only ./$(UAGENT) - # Corresponds to same thing in makefile! _version_from_header = VERSION="`< version.h $(sed) \ -e '/ VERSION /b X' -e d -e ':X' \ -e 's/[^\"]*\"v\([^\"]\{1,\}\)\"/\1/'`" mkman.1: nail.1 - @[ -n "$(VERBOSE)" ] && echo ' GEN $(UAGENT) manual ($(@))';\ + $(ECHO_GEN)\ LC_ALL=C _SYSCONFRC="$(SYSCONFRC)" _UAGENT="$(UAGENT)" \ $(_version_from_header) \ < ./nail.1 > $(@) $(awk) '\ @@ -152,8 +133,7 @@ mkman.1: nail.1 ' mkrc.rc: nail.rc - @[ -n "$(VERBOSE)" ] &&\ - echo ' GEN $(UAGENT) default resource file ($(@))';\ + $(ECHO_GEN)\ LC_ALL=C _SYSCONFRC="$(SYSCONFRC)" _UAGENT="$(UAGENT)" \ $(_version_from_header) \ < ./nail.rc > $(@) $(awk) 'BEGIN {written = 0}\ @@ -173,46 +153,29 @@ mkrc.rc: nail.rc {print}\ ' -_install_echoes: - @echo 'Installing..' -install: _install_echoes mkman.1 mkrc.rc - @__mkdir() {\ +install: mkman.1 mkrc.rc + $(ECHO_BLOCK_BEGIN)\ + __mkdir() {\ _dir=$${1};\ if [ -d "$${_dir}" ]; then :; else\ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ $(mkdir) -m 0755 -p '$${_dir}'";\ $(mkdir) -m 0755 -p "$${_dir}";\ fi;\ };\ __copyfile() {\ _mode=$${1} _src=$${2} _dst=$${3};\ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ $(cp) -f '$${_src}' '$${_dst}'";\ $(cp) -f "$${_src}" "$${_dst}";\ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ $(chmod) $${_mode} '$${_dst}'";\ $(chmod) $${_mode} "$${_dst}";\ };\ __copychownfile() {\ _mode=$${1} _ident=$${2} _src=$${3} _dst=$${4};\ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ $(cp) -f '$${_src}' '$${_dst}'";\ $(cp) -f "$${_src}" "$${_dst}";\ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ $(chown) $${_ident} '$${_dst}'";\ $(chown) $${_ident} "$${_dst}";\ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ $(chmod) $${_mode} '$${_dst}'";\ $(chmod) $${_mode} "$${_dst}";\ };\ __stripfile() {\ _file=$${1};\ - if [ "$(WANT_DEBUG)" != 0 ]; then \ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ :WANT_DEBUG=1, not strip(1)ing";\ + if [ "$(WANT_DEBUG)" != 0 ]; then :;\ elif [ -n "$(HAVE_STRIP)" ]; then \ - [ -n "$(VERBOSE)" ] &&\ - echo " \$$ $(STRIP) '$${_file}'";\ $(strip) "$${_file}";\ fi;\ };\ @@ -243,40 +206,31 @@ install: _install_echoes mkman.1 mkrc.rc if [ -f "$(DESTDIR)$(SYSCONFDIR)/$(SYSCONFRC)" ]; then :; else\ __copyfile 0444 ./mkrc.rc \ "$(DESTDIR)$(SYSCONFDIR)/$(SYSCONFRC)";\ - fi + fi;\ + $(ECHO_BLOCK_END) uninstall: - @echo 'Uninstalling..';\ - [ -n "$(VERBOSE)" ] &&\ - echo ' $$ $(rm) -f "$(DESTDIR)$(BINDIR)/$(UAGENT)" \ - "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1"';\ + $(ECHO_BLOCK_BEGIN)\ + echo 'Uninstalling..';\ $(rm) -f "$(DESTDIR)$(BINDIR)/$(UAGENT)" \ "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1";\ if [ -n "$(OPTIONAL_PRIVSEP)" ]; then \ - [ -n "$(VERBOSE)" ] &&\ - echo \ - ' $$ $(rm) -f "$(DESTDIR)$(LIBEXECDIR)/$(PRIVSEP)"';\ $(rm) -f "$(DESTDIR)$(LIBEXECDIR)/$(PRIVSEP)";\ fi;\ if [ -n "$(VERBOSE)" ] && [ -f "$(DESTDIR)$(SYSCONFRC)" ]; then \ echo ' NOTE: not removing "$(DESTDIR)$(SYSCONFRC)"';\ - fi + fi;\ + $(ECHO_BLOCK_END) clean: - @echo 'Cleaning up..';\ - [ -n "$(VERBOSE)" ] &&\ - echo ' $$ $(rm) -f $(OBJ) $(UAGENT) ./mime_types.h ./mkman.1 \ - ./mkrc.rc';\ + $(ECHO_CMD)\ $(rm) -f $(OBJ) $(UAGENT) ./mime_types.h ./mkman.1 ./mkrc.rc;\ if [ -n "$(OPTIONAL_PRIVSEP)" ]; then \ - [ -n "$(VERBOSE)" ] &&\ - echo ' $$ $(rm) -f ./privsep.o $(PRIVSEP)';\ $(rm) -f ./privsep.o $(PRIVSEP);\ fi distclean: clean - @echo 'Deconfiguring..';\ - [ -n "$(VERBOSE)" ] && echo ' $$ $(rm) -f ./config.* ./*.mk';\ + $(ECHO_CMD)\ $(rm) -f ./config.* ./*.mk # MUST work with "grep=grep sed=sed cmp=cmp mv=mv", otherwise modify makefile -- 2.11.4.GIT