butc: ${SOBJS} ${LIBS} ${INCLS} ${HACKS}
@case ${SYS_NAME} in \
- rs_aix*) $(AFS_LDRULE) ${SOBJS} ${LIBS} $(LIB_roken) ${XLIBS} \
+ rs_aix*) $(AFS_LDRULE_NOQ) ${SOBJS} ${LIBS} $(LIB_roken) ${XLIBS} \
/usr/lib/libc_r.a ;; \
- *) $(AFS_LDRULE) ${SOBJS} ${LIBS} $(LIB_roken) ${XLIBS} ;; \
+ *) $(AFS_LDRULE_NOQ) ${SOBJS} ${LIBS} $(LIB_roken) ${XLIBS} ;; \
esac
tcmain.o: tcmain.c ${INCLS} AFS_component_version_number.c
$(LEX) -t $(srcdir)/et_lex.lex.l > et_lex.lex.c
compile_et: compile_et.o error_table.o
- case $(SYS_NAME) in \
+ $(Q)case $(SYS_NAME) in \
*_linux* | *_umlinux* ) \
- $(AFS_LDRULE) compile_et.o error_table.o -L${TOP_LIBDIR} -lopr;; \
+ $(AFS_LDRULE_NOQ) compile_et.o error_table.o -L${TOP_LIBDIR} -lopr;; \
* ) \
- $(AFS_LDRULE) compile_et.o error_table.o -L${TOP_LIBDIR} -lopr -ll;; \
+ $(AFS_LDRULE_NOQ) compile_et.o error_table.o -L${TOP_LIBDIR} -lopr -ll;; \
esac
libafscom_err.a: error_msg.o et_name.o com_err.o AFS_component_version_number.o
SHELL = /bin/sh
#
+# "Pretty" build line stuff
+#
+
+# Default to disabling the "pretty" build lines
+# If the user specifies 'V=0', the variables below expand to their _V0
+# variants, which enable the "pretty" build lines
+V=1
+
+RUNCMD=RUNCMD () { \
+ echo " $$1 $$2"; \
+ shift; shift; \
+ "$$@" || failcode=$$?; \
+ if [ x"$$failcode" != x ] ; then \
+ echo >&2; \
+ echo "FAILED COMMAND: $$@" >&2; \
+ echo >&2; \
+ echo "In dir:" >&2; \
+ pwd >&2; \
+ echo >&2; \
+ exit $$failcode; \
+ fi; \
+ exit 0; \
+} ; RUNCMD
+
+RUN_CC_NOQ_V0=${RUNCMD} CC "`pwd`/$@"
+RUN_LD_NOQ_V0=${RUNCMD} LD "`pwd`/$@"
+
+# Prefixing a command with $(Q) will suppress that line from being printed
+# during a "pretty" make, so the RUNCMD function above can decide itself how
+# much to print. The Q is just for "quiet", and Q kinda looks like @.
+#
+# The _NOQ variants of the RUN_ commands are for when a compiler invocation is
+# in the middle of e.g. a switch/case or an if/else, etc. In those cases, we
+# want to prefix the _entire_ command with $(Q), not just the compiler, linker,
+# etc.
+Q_V0=@
+Q=$(Q_V$(V))
+
+RUN_CC=$(Q)$(RUN_CC_NOQ_V$(V))
+RUN_LD=$(Q)$(RUN_LD_NOQ_V$(V))
+
+RUN_CC_NOQ=$(RUN_CC_NOQ_V$(V))
+RUN_LD_NOQ=$(RUN_LD_NOQ_V$(V))
+
+#
# Common/standard cflags/paths/etc
# Cflags defaults, will be overridden later if necessary
#
# LWP Flags
LWP_CFLAGS=$(COMMON_CFLAGS) $(MODULE_CFLAGS)
LWP_LDFLAGS=$(COMMON_LDFLAGS) $(MODULE_LDFLAGS) $(XLDFLAGS) $(ARCHFLAGS)
-LWP_CCRULE=$(CCOBJ) $(LWP_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+LWP_CCRULE =$(RUN_CC) $(CCOBJ) $(LWP_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+LWP_CCRULE_NOQ=$(RUN_CC_NOQ) $(CCOBJ) $(LWP_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
# Pthreaded
PTH_CFLAGS=$(COMMON_CFLAGS) $(MODULE_CFLAGS) $(MT_CFLAGS)
PTH_LDFLAGS=$(COMMON_LDFLAGS) $(MODULE_LDFLAGS) $(MT_LDFLAGS)
-PTH_CCRULE=$(MT_CC) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+PTH_CCRULE =$(RUN_CC) $(MT_CC) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+PTH_CCRULE_NOQ=$(RUN_CC_NOQ) $(MT_CC) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
# Shared
SHD_CFLAGS=$(COMMON_CFLAGS) $(MODULE_CFLAGS) $(MT_CFLAGS) $(SHLIB_CFLAGS)
SHD_LDFLAGS=$(COMMON_LDFLAGS) $(MODULE_LDFLAGS) $(SHLIB_LDFLAGS)
-SHD_CCRULE=$(MT_CC) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+SHD_CCRULE =$(RUN_CC) $(MT_CC) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+SHD_CCRULE_NOQ=$(RUN_CC_NOQ) $(MT_CC) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
# Default rules. These will be overriden if the module Makefile specifically
# includes a particular type (lwp, pthread, or shared)
-AFS_LDRULE =$(CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
+AFS_LDRULE =$(RUN_LD) $(CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
+AFS_LDRULE_NOQ =$(RUN_LD_NOQ) $(CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
AFS_CFLAGS = $(LWP_CFLAGS)
AFS_LDFLAGS = $(LWP_LDFLAGS)
-AFS_CCRULE =$(LWP_CCRULE)
+AFS_CCRULE =$(LWP_CCRULE)
+AFS_CCRULE_NOQ =$(LWP_CCRULE_NOQ)
.c.o:
$(AFS_CCRULE) $<
AFS_CFLAGS=$(PTH_CFLAGS)
AFS_LDFLAGS=$(PTH_LDFLAGS)
AFS_CCRULE=$(PTH_CCRULE)
+AFS_CCRULE_NOQ=$(PTH_CCRULE_NOQ)
-AFS_LDRULE=$(MT_CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
+AFS_LDRULE=$(RUN_LD) $(MT_CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
+AFS_LDRULE_NOQ=$(RUN_LD_NOQ) $(MT_CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
.c.o:
$(AFS_CCRULE) $<
AFS_CFLAGS=$(SHD_CFLAGS)
AFS_LDFLAGS=$(SHD_LDFLAGS)
AFS_CCRULE=$(SHD_CCRULE)
+AFS_CCRULE_NOQ=$(SHD_CCRULE_NOQ)
-AFS_LDRULE=$(MT_CC) $(AFS_CFLAGS) $(AFS_LDFLAGS) $(LDFLAGS_$(@)) -o $@
+AFS_LDRULE=$(RUN_LD) $(MT_CC) $(AFS_CFLAGS) $(AFS_LDFLAGS) $(LDFLAGS_$(@)) -o $@
+AFS_LDRULE_NOQ=$(RUN_LD_NOQ) $(MT_CC) $(AFS_CFLAGS) $(AFS_LDFLAGS) $(LDFLAGS_$(@)) -o $@
.c.o:
$(AFS_CCRULE) $<
CFLAGS_cfgexport64.o = -g -q64 -D__XCOFF64__
cfgexport64.o: ${srcdir}/cfgexport.c AFS_component_version_number.c
- if [ "x$(AIX64)" = "xyes" ]; then \
- $(AFS_CCRULE) $(srcdir)/cfgexport.c ; \
+ $(Q)if [ "x$(AIX64)" = "xyes" ]; then \
+ $(AFS_CCRULE_NOQ) $(srcdir)/cfgexport.c ; \
fi
cfgexport.o: ${srcdir}/cfgexport.c AFS_component_version_number.c
CFLAGS_cfgafs64.o = -q64
cfgafs64.o: ${srcdir}/cfgafs.c AFS_component_version_number.c
- if [ "x$(AIX64)" = "xyes" ]; then \
- $(AFS_CCRULE) $(srcdir)/cfgafs.c ; \
+ $(Q)if [ "x$(AIX64)" = "xyes" ]; then \
+ $(AFS_CCRULE_NOQ) $(srcdir)/cfgafs.c ; \
fi
clean:
syscall.o: ${SYS}/syscall.s
@set -e; set -x; case "$(SYS_NAME)" in \
sgi_*) \
- $(AFS_CCRULE) ${SYS}/syscall.s; \
+ $(AFS_CCRULE_NOQ) ${SYS}/syscall.s; \
;; \
rs_aix* | hp_ux10*) \
$(PATH_CPP) -P ${SFLAGS} ${SYS}/syscall.s > syscall.ss; \
${AS} -o process.o process.ss; \
$(RM) process.ss ;; \
hp* | *_linux* | *_umlinux* | sgi_64 | sgi_65 ) \
- $(AFS_CCRULE) -c ${srcdir}/process.c;; \
+ $(AFS_CCRULE_NOQ) -c ${srcdir}/process.c;; \
alpha_osf1 | alpha_osf20 | alpha_osf30 | alpha_osf32 | alpha_osf32c | alpha_dux?? ) \
${AS} -v -P -DOSF -I${TOP_INCDIR} -DASSEMBLER ${srcdir}/process.s; \
${AS} -v process.i -o process.o;; \
ia64_hpux11* | hp_ux11* ) \
- $(AFS_CCRULE) -c ${srcdir}/process.c;; \
+ $(AFS_CCRULE_NOQ) -c ${srcdir}/process.c;; \
i386_*) \
$(PATH_CPP) -P -I${TOP_INCDIR} -I${srcdir} ${srcdir}/process.i386.s > process.ss; \
${AS} process.ss -o process.o; \
rs_aix*) \
$(CCOBJ) ${LWP_DBG} ${LWP_OPTMZ} -I${srcdir} -I. -I${TOP_OBJDIR}/src/config -I${TOP_INCDIR} -c ${srcdir}/lwp.c;; \
*) \
- $(AFS_CCRULE) ${srcdir}/lwp.c;; \
+ $(AFS_CCRULE_NOQ) ${srcdir}/lwp.c;; \
esac
lock.o : lock.c lock.h lwp.h
timer.o : timer.c
$(LIB_hcrypto) $(LIB_roken)
test_pam: test_pam.o
- set -x; \
+ $(Q)set -x; \
case "$(SYS_NAME)" in \
hp_ux* | ia64_hpux*) \
- $(AFS_LDRULE) test_pam.o ${PAM_LIBS};; \
+ $(AFS_LDRULE_NOQ) test_pam.o ${PAM_LIBS};; \
sun*_5*) \
- $(AFS_LDRULE) test_pam.o ${PAM_LIBS};; \
+ $(AFS_LDRULE_NOQ) test_pam.o ${PAM_LIBS};; \
*linux*) \
- $(AFS_LDRULE) -rdynamic test_pam.o -lpam -ldl;; \
+ $(AFS_LDRULE_NOQ) -rdynamic test_pam.o -lpam -ldl;; \
*fbsd*| *nbsd*) \
- $(AFS_LDRULE) -rdynamic test_pam.o -lpam ;; \
+ $(AFS_LDRULE_NOQ) -rdynamic test_pam.o -lpam ;; \
*) \
echo No link line for system $(SYS_NAME). ;; \
esac
testpt: testpt.o libprot.a ${TOP_LIBDIR}/libcmd.a $(LIBS)
case "$(SYS_NAME)" in \
*_darwin_12 ) \
- $(AFS_LDRULE) testpt.o ${TOP_LIBDIR}/libcmd.a \
+ $(AFS_LDRULE_NOQ) testpt.o ${TOP_LIBDIR}/libcmd.a \
libprot.a $(LIBS) $(LIB_roken) ;; \
* ) \
- $(AFS_LDRULE) testpt.o -lm ${TOP_LIBDIR}/libcmd.a \
+ $(AFS_LDRULE_NOQ) testpt.o -lm ${TOP_LIBDIR}/libcmd.a \
libprot.a $(LIBS) $(LIB_roken) ${XLIBS} ;; \
esac
$(AFS_LDRULE) whatfid.o ${LIBS} $(LIB_roken) ${XLIBS}
fstrace.o: fstrace.c AFS_component_version_number.c
- case ${SYS_NAME} in \
+ $(Q)case ${SYS_NAME} in \
sun4_411 | sun4c_411 | sun4m_412 ) \
${CCXPG2} ${DBG} ${OPTMZ} -I${TOP_OBJDIR}/src/config -I${TOP_INCDIR} -I${TOP_INCDIR} -c ${srcdir}/fstrace.c ;; \
sun*_4* ) \
${CC} ${DBG} ${OPTMZ} -I/usr/xpg2include -I/usr/5include -g -I${TOP_SRCDIR}/config -I${TOP_INCDIR} -I${TOP_INCDIR} -c fstrace.c ;; \
* ) \
- $(AFS_CCRULE) $(srcdir)/fstrace.c ;; \
+ $(AFS_CCRULE_NOQ) $(srcdir)/fstrace.c ;; \
esac
fstrace: fstrace.o
- case ${SYS_NAME} in \
+ $(Q)case ${SYS_NAME} in \
sun4_411 | sun4c_411 | sun4m_412 ) \
${CCXPG2} ${AFS_CFLAGS} -o fstrace fstrace.o ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a $(TOP_LIBDIR)/libopr.a;; \
sun*_4* ) \
${CC} -L/usr/xpg2lib -L/usr/5lib ${AFS_CFLAGS} -g -o fstrace fstrace.o ${TOP_LIBDIR}/libsys.a ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a $(TOP_LIBDIR)/libopr.a -lxpg ;; \
* ) \
- $(AFS_LDRULE) fstrace.o ${TOP_LIBDIR}/libsys.a \
+ $(AFS_LDRULE_NOQ) fstrace.o ${TOP_LIBDIR}/libsys.a \
${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a \
$(TOP_LIBDIR)/libopr.a ${XLIBS} \
$(LIB_roken);; \
${srcdir}/check_sysid.c
fileserver: ${objects} ${headers} ${LIBS}
- set -x; \
+ $(Q)set -x; \
case ${SYS_NAME} in \
rs_aix*) \
${CC} -K ${AFS_LDFLAGS} -o fileserver ${objects} \
${TOP_LIBDIR}/libaudit.a ${LIBS} $(LIB_roken) ${XLIBS} ;; \
*) \
- $(AFS_LDRULE) ${objects} ${TOP_LIBDIR}/libaudit.a \
+ $(AFS_LDRULE_NOQ) ${objects} ${TOP_LIBDIR}/libaudit.a \
${LIBS} $(LIB_roken) ${XLIBS} ;; \
esac
esac
gi: ${TOP_LIBDIR}/libsys.a
- case ${SYS_NAME} in \
+ $(Q)case ${SYS_NAME} in \
*linux* | sgi_* | *fbsd* ) \
echo "Don't build gi on ${SYS_NAME}";; \
*) \
${CC} $(AFS_CPPFLAGS) $(AFS_CFLAGS) \
-c ${srcdir}/gi.c ; \
- $(AFS_LDRULE) gi.o ${TOP_LIBDIR}/libsys.a;; \
+ $(AFS_LDRULE_NOQ) gi.o ${TOP_LIBDIR}/libsys.a;; \
esac
namei_map: ${TOP_LIBDIR}/libsys.a namei_map.o