Hi,

Attached is a patch that reduces the verbosity of the build system by printing the build commands in one of two formats:
COMMAND output_file
or
COMMAND input_file -> output_file

I hope it meets Alexandre's requirements of not reducing portability of Wine to other platforms (including Windows).

--
Rob Shearman

>From f5e75b93a94f7f08faccf486cef1d64789a505ad Mon Sep 17 00:00:00 2001
From: Robert Shearman <[EMAIL PROTECTED]>
Date: Tue, 29 May 2007 20:36:26 +0100
Subject: Makefiles: Be less verbose when performing make rules by only printing the command being executed and the source and/or target file.
To: wine-patches <[EMAIL PROTECTED]>

The old behaviour can be turned back on by setting the V environment variable to "1" (e.g. make V=1). It will also automatically be turned back on for operating systems other than Linux for compatibility reasons.
---
 Make.rules.in               |   73 ++++++++++++++++++++++++++++++------------
 configure.ac                |   35 ++++++++++++++++++++-
 dlls/Makedll.rules.in       |   16 +++++-----
 dlls/Makeimplib.rules.in    |    6 ++--
 dlls/Maketest.rules.in      |   12 +++---
 dlls/ntdll/Makefile.in      |    2 +-
 libs/port/Makefile.in       |    6 ++--
 libs/wine/Makefile.in       |    6 ++--
 libs/wpp/Makefile.in        |    6 ++--
 loader/Makefile.in          |    8 ++--
 programs/Makeprog.rules.in  |    4 +-
 server/Makefile.in          |    2 +-
 tools/Makefile.in           |   14 ++++----
 tools/makerule              |   28 ++++++++++++++++
 tools/widl/Makefile.in      |    2 +-
 tools/winebuild/Makefile.in |    2 +-
 tools/winedump/Makefile.in  |    2 +-
 tools/winegcc/Makefile.in   |    2 +-
 tools/wmc/Makefile.in       |    2 +-
 tools/wrc/Makefile.in       |    2 +-
 20 files changed, 161 insertions(+), 69 deletions(-)
 create mode 100755 tools/makerule

diff --git a/Make.rules.in b/Make.rules.in
index 02df171..0d3b6fc 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -63,6 +63,7 @@ WINAPI_CHECK = $(TOPSRCDIR)/tools/winapi/winapi_check
 WINEWRAPPER  = $(TOPSRCDIR)/tools/winewrapper
 C2MAN        = $(TOPSRCDIR)/tools/c2man.pl
 RUNTEST      = $(TOPSRCDIR)/tools/runtest
+MAKERULE     = $(TOPSRCDIR)/tools/makerule
 WINEBUILD    = $(TOOLSDIR)/tools/winebuild/winebuild
 MAKEDEP      = $(TOOLSDIR)/tools/makedep
 MAKECTESTS   = $(TOOLSDIR)/tools/make_ctests
@@ -85,6 +86,36 @@ LIBWPP       = $(TOPOBJDIR)/libs/wpp/libwpp.a
 LIBWINE      = -L$(TOPOBJDIR)/libs/wine -lwine
 LIBWINE_LDFLAGS = @LIBWINE_LDFLAGS@ $(LIBWINE)
 
+# Pretty build system
+
+MAKERULE_CC           = @MAKERULE_CC@
+MAKERULE_AS           = @MAKERULE_AS@
+MAKERULE_WIDL         = @MAKERULE_WIDL@
+MAKERULE_BISON        = @MAKERULE_BISON@
+MAKERULE_FLEX         = @MAKERULE_FLEX@
+MAKERULE_WINEBUILD    = @MAKERULE_WINEBUILD@
+MAKERULE_WINEBUILD2   = @MAKERULE_WINEBUILD2@
+MAKERULE_LINT         = @MAKERULE_LINT@
+MAKERULE_RUNTEST      = @MAKERULE_RUNTEST@
+MAKERULE_FONTFORGE    = @MAKERULE_FONTFORGE@
+MAKERULE_SED          = @MAKERULE_SED@
+MAKERULE_BIN2RES      = @MAKERULE_BIN2RES@
+MAKERULE_MAKEDEP      = @MAKERULE_MAKEDEP@
+MAKERULE_WMC          = @MAKERULE_WMC@
+MAKERULE_RC           = @MAKERULE_RC@
+MAKERULE_LINK         = @MAKERULE_LINK@
+MAKERULE_BLANK        = @MAKERULE_BLANK@
+MAKERULE_AR           = @MAKERULE_AR@
+MAKERULE_RANLIB       = @MAKERULE_RANLIB@
+MAKERULE_LDSHARED     = @MAKERULE_LDSHARED@
+MAKERULE_DLLTOOL      = @MAKERULE_DLLTOOL@
+MAKERULE_MINGWAR      = @MAKERULE_MINGWAR@
+MAKERULE_MAKECTESTS   = @MAKERULE_MAKECTESTS@
+MAKERULE_CROSSCC      = @MAKERULE_CROSSCC@
+MAKERULE_CROSSWINDRES = @MAKERULE_CROSSWINDRES@
+MAKERULE_SILENT       = @MAKERULE_SILENT@
+
+
 @SET_MAKE@
 
 # Installation infos
@@ -128,61 +159,61 @@ LINTS  = $(C_SRCS:.c=.ln)
 .SUFFIXES: .mc .rc .mc.rc .res .res.o .spec .spec.o .idl .tlb .h .y .l .tab.c .tab.h .yy.c .ok .sfd .ttf .man.in .man _c.c _i.c _p.c _s.c
 
 .c.o:
-	$(CC) -c $(ALLCFLAGS) -o $@ $<
+	$(MAKERULE_CC) $(CC) -c $(ALLCFLAGS) -o $@ $<
 
 .s.o:
-	$(AS) -o $@ $<
+	$(MAKERULE_AS) $(AS) -o $@ $<
 
 .y.tab.c:
-	$(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
+	$(MAKERULE_BISON) $(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
 
 .y.tab.h:
-	$(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
+	$(MAKERULE_BISON) $(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
 
 .l.yy.c:
-	$(FLEX) $(LEXFLAGS) -o$@ $<
+	$(MAKERULE_FLEX) $(FLEX) $(LEXFLAGS) -o$@ $<
 
 .mc.mc.rc:
-	$(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $<
+	$(MAKERULE_SILENT) $(LDPATH) $(MAKERULE_WMC) $(WMC) -i -U -H /dev/null -o $@ $<
 
 .rc.res:
-	$(LDPATH) $(RC) $(RCFLAGS) -fo$@ $<
+	$(MAKERULE_SILENT) $(LDPATH) $(MAKERULE_RC) $(RC) $(RCFLAGS) -fo$@ $<
 
 .res.res.o:
-	$(WINDRES) -i $< -o $@
+	$(MAKERULE_WINDRES) $(WINDRES) -i $< -o $@
 
 .spec.spec.o:
-	$(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --export $<
+	$(MAKERULE_WINEBUILD) $(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --main-module $(MODULE) --export $<
 
 .idl.h:
-	$(WIDL) $(IDLFLAGS) -h -H $@ $<
+	$(MAKERULE_WIDL) $(WIDL) $(IDLFLAGS) -h -H $@ $<
 
 .idl_c.c:
-	$(WIDL) $(IDLFLAGS) -c -C $@ $<
+	$(MAKERULE_WIDL) $(WIDL) $(IDLFLAGS) -c -C $@ $<
 
 .idl_i.c:
-	$(WIDL) $(IDLFLAGS) -u -U $@ $<
+	$(MAKERULE_WIDL) $(WIDL) $(IDLFLAGS) -u -U $@ $<
 
 .idl_p.c:
-	$(WIDL) $(IDLFLAGS) -p -P $@ $<
+	$(MAKERULE_WIDL) $(WIDL) $(IDLFLAGS) -p -P $@ $<
 
 .idl_s.c:
-	$(WIDL) $(IDLFLAGS) -s -S $@ $<
+	$(MAKERULE_WIDL) $(WIDL) $(IDLFLAGS) -s -S $@ $<
 
 .idl.tlb:
-	$(WIDL) $(IDLFLAGS) -t -T $@ $<
+	$(MAKERULE_WIDL) $(WIDL) $(IDLFLAGS) -t -T $@ $<
 
 .c.ln:
-	$(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
+	$(MAKERULE_LINT) $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 )
 
 .c.ok:
-	$(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
+	$(MAKERULE_RUNTEST) $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
 
 .sfd.ttf:
-	$(FONTFORGE) -script $(TOPSRCDIR)/fonts/genttf.ff $< $@
+	$(MAKERULE_FONTFORGE) $(FONTFORGE) -script $(TOPSRCDIR)/fonts/genttf.ff $< $@
 
 .man.in.man:
-	sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' $< >$@ || ($(RM) $@ && false)
+	$(MAKERULE_SED) sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' $< >$@ || ($(RM) $@ && false)
 
 # 'all' target first in case the enclosing Makefile didn't define any target
 
@@ -196,7 +227,7 @@ filter: dummy
 # Rules for resources
 
 $(RC_BINARIES): $(BIN2RES) $(RC_BINSRC)
-	$(BIN2RES) -f -o $@ $(SRCDIR)/$(RC_BINSRC)
+	$(MAKERULE_BIN2RES) $(BIN2RES) -f -o $@ $(SRCDIR)/$(RC_BINSRC)
 
 $(RC_SRCS:.rc=.res) $(RC_SRCS16:.rc=.res): $(WRC) $(RC_BINARIES) $(IDL_TLB_SRCS:.idl=.tlb)
 
@@ -228,7 +259,7 @@ $(SUBDIRS:%=%/__depend__): dummy
 	@cd `dirname [EMAIL PROTECTED] && $(MAKE) depend
 
 depend: $(SUBDIRS:%=%/__depend__) dummy
-	$(MAKEDEP) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
+	$(MAKERULE_MAKEDEP) $(MAKEDEP) -C$(SRCDIR) -S$(TOPSRCDIR) -T$(TOPOBJDIR) $(EXTRAINCL) $(DEPEND_SRCS)
 
 .PHONY: depend $(SUBDIRS:%=%/__depend__)
 
diff --git a/configure.ac b/configure.ac
index e06b2bc..99c0e3f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1427,6 +1427,39 @@ case $host_vendor in
   *sun*) WINE_CHECK_DEFINE([__sun__]) ;;
 esac
 
+dnl *** Pretty build system support ***
+
+case $build_os in
+  linux*)
+    AC_SUBST(MAKERULE_CC,           "@\$(MAKERULE) 'CC \$@'")
+    AC_SUBST(MAKERULE_AS,           "@\$(MAKERULE) 'AS \$@'")
+    AC_SUBST(MAKERULE_WIDL,         "@\$(MAKERULE) 'WIDL \$< -> \$@'")
+    AC_SUBST(MAKERULE_BISON,        "@\$(MAKERULE) 'BISON \$< -> \$@'")
+    AC_SUBST(MAKERULE_FLEX,         "@\$(MAKERULE) 'FLEX \$< -> \$@'")
+    AC_SUBST(MAKERULE_WINEBUILD,    "@\$(MAKERULE) 'WINEBUILD \$@'")
+    AC_SUBST(MAKERULE_WINEBUILD2,   "@\$(MAKERULE) 'WINEBUILD \$< -> \$@'")
+    AC_SUBST(MAKERULE_LINT,         "@\$(MAKERULE) 'LINT \$@'")
+    AC_SUBST(MAKERULE_RUNTEST,      "@\$(MAKERULE) 'RUNTEST \$<'")
+    AC_SUBST(MAKERULE_FONTFORGE,    "@\$(MAKERULE) 'FONTFORGE \$@'")
+    AC_SUBST(MAKERULE_SED,          "@\$(MAKERULE) 'SED \$@'")
+    AC_SUBST(MAKERULE_BIN2RES,      "@\$(MAKERULE) 'BIN2RES \$(RC_BINSRC) -> \$@'")
+    AC_SUBST(MAKERULE_MAKEDEP,      "@\$(MAKERULE) 'MAKEDEP'")
+    AC_SUBST(MAKERULE_WMC,          "\$(MAKERULE) 'WMC \$@'")
+    AC_SUBST(MAKERULE_RC,           "\$(MAKERULE) 'RC \$@'")
+    AC_SUBST(MAKERULE_LINK,         "@\$(MAKERULE) 'LINK \$@'")
+    AC_SUBST(MAKERULE_BLANK,        "@\$(MAKERULE) ''")
+    AC_SUBST(MAKERULE_AR,           "@\$(MAKERULE) 'AR \$@'")
+    AC_SUBST(MAKERULE_RANLIB,       "@\$(MAKERULE) 'RANLIB \$@'")
+    AC_SUBST(MAKERULE_LDSHARED,     "@\$(MAKERULE) 'LDSHARED \$@'")
+    AC_SUBST(MAKERULE_DLLTOOL,      "@\$(MAKERULE) 'DLLTOOL \$@'")
+    AC_SUBST(MAKERULE_MINGWAR,      "@\$(MAKERULE) 'MINGWAR \$@'")
+    AC_SUBST(MAKERULE_MAKECTESTS,   "@\$(MAKERULE) 'MAKECTESTS \$@'")
+    AC_SUBST(MAKERULE_CROSSCC,      "@\$(MAKERULE) 'CROSSCC \$@'")
+    AC_SUBST(MAKERULE_CROSSWINDRES, "@\$(MAKERULE) 'CROSSWINDRES \$@'")
+    AC_SUBST(MAKERULE_SILENT,       "@")
+    ;;
+esac
+
 dnl **** Generate output files ****
 
 dnl autoconf versions before 2.59d need backslashes to escape newlines in subst variables
@@ -1436,7 +1469,7 @@ AC_SUBST(DEPENDENCIES,m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]), [2
 .INIT: Makefile\\
 .BEGIN: Makefile\\
 Makefile: dummy\\
-	-\$(MAKEDEP) -C\$(SRCDIR) -S\$(TOPSRCDIR) -T\$(TOPOBJDIR) \$(EXTRAINCL) \$(DEPEND_SRCS)\\
+	-\$(MAKERULE_MAKEDEP) \$(MAKEDEP) -C\$(SRCDIR) -S\$(TOPSRCDIR) -T\$(TOPOBJDIR) \$(EXTRAINCL) \$(DEPEND_SRCS)\\
 \\
 \$(OBJS): \$(IDL_GEN_HEADERS)\\
 \$(IDL_GEN_C_SRCS:.c=.o): \$(IDL_GEN_C_SRCS)\\
diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index 3162175..1fedcbe 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -32,12 +32,12 @@ all: $(MODULE)$(DLLEXT) $(SUBDIRS)
 # Rules for .so files
 
 $(MODULE).so: $(MAINSPEC) $(ALL_OBJS) Makefile.in
-	$(WINEGCC) -B$(TOOLSDIR)/tools/winebuild -shared $(SRCDIR)/$(MAINSPEC) $(ALL_OBJS) $(SUBSYSTEM:%=-Wb,--subsystem,%) $(DLLFILENAME:%=-Wb,-F,%) $(BASEADDRESS:%=-Wl,--image-base,%) -o $@ $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(DELAYIMPORTS:%=-Wb,-d%) $(ALL_LIBS)
+	$(MAKERULE_LINK) $(WINEGCC) -B$(TOOLSDIR)/tools/winebuild -shared $(SRCDIR)/$(MAINSPEC) $(ALL_OBJS) $(SUBSYSTEM:%=-Wb,--subsystem,%) $(DLLFILENAME:%=-Wb,-F,%) $(BASEADDRESS:%=-Wl,--image-base,%) -o $@ $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(DELAYIMPORTS:%=-Wb,-d%) $(ALL_LIBS)
 
 # Rules for .dll files
 
 $(MODULE): $(RCOBJS) $(OBJS) $(SPEC_DEF) Makefile.in
-	$(DLLWRAP) -k --def $(SPEC_DEF) -o $@ $(RCOBJS) $(OBJS) $(DLL_LDPATH) $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(LIBWINE) $(ALL_LIBS)
+	$(MAKERULE_LINK) $(DLLWRAP) -k --def $(SPEC_DEF) -o $@ $(RCOBJS) $(OBJS) $(DLL_LDPATH) $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(LIBWINE) $(ALL_LIBS)
 
 # Rules for import libraries
 
@@ -48,16 +48,16 @@ all implib: $(IMPORTLIB) $(IMPLIB_SRCS:%=__static_implib__%)
 $(IMPLIB_SRCS:%=__static_implib__%): $(STATICIMPLIB)
 
 lib$(BASEMODULE).def: $(MAINSPEC)
-	$(WINEBUILD) -w --def -o $@ --export $(SRCDIR)/$(MAINSPEC)
+	$(MAKERULE_WINEBUILD2) $(WINEBUILD) -w --def -o $@ --export $(SRCDIR)/$(MAINSPEC)
 
 lib$(BASEMODULE).def.a: $(IMPLIB_OBJS)
-	$(RM) $@
-	$(AR) $@ $(IMPLIB_OBJS)
-	$(RANLIB) $@
+	$(MAKERULE_BLANK) $(RM) $@
+	$(MAKERULE_AR) $(AR) $@ $(IMPLIB_OBJS)
+	$(MAKERULE_RANLIB) $(RANLIB) $@
 
 lib$(BASEMODULE).a: $(SPEC_DEF) $(IMPLIB_OBJS)
-	$(DLLTOOL) -k -l $@ -d $(SPEC_DEF)
-	$(MINGWAR) rs $@ $(IMPLIB_OBJS)
+	$(MAKERULE_DLLTOOL) $(DLLTOOL) -k -l $@ -d $(SPEC_DEF)
+	$(MAKERULE_MINGWAR) $(MINGWAR) rs $@ $(IMPLIB_OBJS)
 
 $(SUBDIRS): implib
 
diff --git a/dlls/Makeimplib.rules.in b/dlls/Makeimplib.rules.in
index 19011c1..baf696e 100644
--- a/dlls/Makeimplib.rules.in
+++ b/dlls/Makeimplib.rules.in
@@ -17,9 +17,9 @@ all: $(MODULE)
 # Rules for .a library
 
 $(MODULE): $(OBJS) Makefile.in
-	$(RM) $@
-	$(AR) $@ $(OBJS)
-	$(RANLIB) $@
+	$(MAKERULE_BLANK) $(RM) $@
+	$(MAKERULE_AR) $(AR) $@ $(OBJS)
+	$(MAKERULE_RANLIB) $(RANLIB) $@
 
 # Rules for installation
 
diff --git a/dlls/Maketest.rules.in b/dlls/Maketest.rules.in
index 73bf4d9..00e5c29 100644
--- a/dlls/Maketest.rules.in
+++ b/dlls/Maketest.rules.in
@@ -33,17 +33,17 @@ all: $(TESTPROGRAM)
 # Rules for .so main module
 
 $(MODULE).so: $(OBJS) $(RC_SRCS:.rc=.res) Makefile.in
-	$(WINEGCC) -B$(TOOLSDIR)/tools/winebuild -mconsole $(OBJS) $(RC_SRCS:.rc=.res) -o $@ $(LIBPORT) $(ALL_LIBS)
+	$(MAKERULE_LINK) $(WINEGCC) -B$(TOOLSDIR)/tools/winebuild -mconsole $(OBJS) $(RC_SRCS:.rc=.res) -o $@ $(LIBPORT) $(ALL_LIBS)
 
 # Rules for .exe main module
 
 $(MODULE): $(OBJS) $(RCOBJS) Makefile.in
-	$(CC) $(OBJS) $(RCOBJS) -o $@ $(ALL_LIBS)
+	$(MAKERULE_LINK) $(CC) $(OBJS) $(RCOBJS) -o $@ $(ALL_LIBS)
 
 # Rules for building test list
 
 testlist.c: Makefile.in $(MAKECTESTS)
-	$(MAKECTESTS) -o $@ $(CTESTS)
+	$(MAKERULE_MAKECTESTS) $(MAKECTESTS) -o $@ $(CTESTS)
 
 testlist.o: testlist.c $(TOPSRCDIR)/include/wine/test.h
 
@@ -58,15 +58,15 @@ $(TESTRESULTS): $(MODULE)$(DLLEXT) ../$(TESTDLL)$(DLLEXT)
 .SUFFIXES: .cross.o .res.cross.o
 
 .c.cross.o:
-	$(CROSSCC) -c $(ALLCFLAGS) -o $@ $<
+	$(MAKERULE_CROSSCC) $(CROSSCC) -c $(ALLCFLAGS) -o $@ $<
 
 .res.res.cross.o:
-	$(CROSSWINDRES) -i $< -o $@
+	$(MAKERULE_CROSSWINDRES) $(CROSSWINDRES) -i $< -o $@
 
 crosstest:: @CROSSTEST@
 
 $(CROSSTEST): $(CROSSOBJS) Makefile.in
-	$(CROSSCC) $(CROSSOBJS) -o $@ $(ALL_LIBS)
+	$(MAKERULE_LINK) $(CROSSCC) $(CROSSOBJS) -o $@ $(ALL_LIBS)
 
 # Rules for cleaning
 
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index 6797da5..f243c62 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -59,6 +59,6 @@ EXTRA_OBJS = relay32.o
 @MAKE_DLL_RULES@
 
 relay32.o: $(WINEBUILD)
-	$(WINEBUILD) $(WINEBUILDFLAGS) -o $@ --relay32
+	$(MAKERULE_WINEBUILD) $(WINEBUILD) $(WINEBUILDFLAGS) -o $@ --relay32
 
 @DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in
index 2504620..ec7213e 100644
--- a/libs/port/Makefile.in
+++ b/libs/port/Makefile.in
@@ -35,8 +35,8 @@ all: $(MODULE)
 @MAKE_RULES@
 
 $(MODULE): $(OBJS) Makefile.in
-	$(RM) $@
-	$(AR) $@ $(OBJS)
-	$(RANLIB) $@
+	$(MAKERULE_BLANK) $(RM) $@
+	$(MAKERULE_AR) $(AR) $@ $(OBJS)
+	$(MAKERULE_BLANK) $(RANLIB) $@
 
 @DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
index d126e5b..ef98649 100644
--- a/libs/wine/Makefile.in
+++ b/libs/wine/Makefile.in
@@ -112,12 +112,12 @@ CONFIGDIRS = \
 	-DBIN_TO_DATADIR=\"`$(RELPATH) $(bindir) $(datadir)/wine`\"
 
 config.o: config.c $(RELPATH)
-	$(CC) -c $(ALLCFLAGS) -o $@ $(SRCDIR)/config.c $(CONFIGDIRS)
+	$(MAKERULE_CC) $(CC) -c $(ALLCFLAGS) -o $@ $(SRCDIR)/config.c $(CONFIGDIRS)
 
 # Linking rules
 
 libwine.so.$(VERSION): $(OBJS) $(VERSCRIPT) Makefile.in
-	$(LDSHARED) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@
+	$(MAKERULE_LDSHARED) $(LDSHARED) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@
 
 libwine.so.$(SOVERSION): libwine.so.$(VERSION)
 	$(RM) $@ && $(LN_S) libwine.so.$(VERSION) $@
@@ -134,7 +134,7 @@ libwine.dll: $(OBJS) wine.def Makefile.in
 DYLIB_LDFLAGS = -compatibility_version $(SOVERSION) -current_version $(VERSION)
 
 libwine.$(VERSION).dylib: $(OBJS) $(RELPATH) Makefile.in
-	$(LDSHARED) $(DYLIB_LDFLAGS) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@
+	$(MAKERULE_LDSHARED) $(LDSHARED) $(DYLIB_LDFLAGS) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@
 
 libwine.$(SOVERSION).dylib: libwine.$(VERSION).dylib
 	$(RM) $@ && $(LN_S) libwine.$(VERSION).dylib $@
diff --git a/libs/wpp/Makefile.in b/libs/wpp/Makefile.in
index 5d818b7..39648e4 100644
--- a/libs/wpp/Makefile.in
+++ b/libs/wpp/Makefile.in
@@ -16,9 +16,9 @@ all: $(MODULE)
 @MAKE_RULES@
 
 $(MODULE): $(OBJS)
-	$(RM) $@
-	$(AR) $@ $(OBJS)
-	$(RANLIB) $@
+	$(MAKERULE_BLANK) $(RM) $@
+	$(MAKERULE_AR) $(AR) $@ $(OBJS)
+	$(MAKERULE_RANLIB) $(RANLIB) $@
 
 ppy.tab.c: ppy.tab.h   # for parallel makes
 
diff --git a/loader/Makefile.in b/loader/Makefile.in
index 2b3d457..183a20c 100644
--- a/loader/Makefile.in
+++ b/loader/Makefile.in
@@ -37,16 +37,16 @@ LIBPTHREAD  = @LIBPTHREAD@
 LDEXECFLAGS = @LDEXECFLAGS@
 
 wine-glibc: glibc.o Makefile.in
-	$(CC) -o $@ glibc.o $(LIBWINE_LDFLAGS) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) -o $@ glibc.o $(LIBWINE_LDFLAGS) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS)
 
 wine-preloader: preloader.o Makefile.in
-	$(CC) -o $@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c000000 preloader.o $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) -o $@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c000000 preloader.o $(LIBPORT) $(LDFLAGS)
 
 wine-kthread: $(KTHREAD_OBJS) Makefile.in
-	$(CC) -o $@ $(LDEXECFLAGS) $(KTHREAD_OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(EXTRALIBS) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) -o $@ $(LDEXECFLAGS) $(KTHREAD_OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(EXTRALIBS) $(LDFLAGS)
 
 wine-pthread: $(PTHREAD_OBJS) Makefile.in
-	$(CC) -o $@ $(LDEXECFLAGS) $(PTHREAD_OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) -o $@ $(LDEXECFLAGS) $(PTHREAD_OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS)
 
 $(MODULE): $(MAIN_BINARY)
 	$(RM) $(MODULE) && $(LN_S) $(MAIN_BINARY) $(MODULE)
diff --git a/programs/Makeprog.rules.in b/programs/Makeprog.rules.in
index f73498e..eb893b0 100644
--- a/programs/Makeprog.rules.in
+++ b/programs/Makeprog.rules.in
@@ -23,7 +23,7 @@ all: $(MODULE)$(DLLEXT) $(BASEMODULE)$(EXEEXT)
 # Rules for .so main module
 
 $(MODULE).so: $(OBJS) $(RC_SRCS:.rc=.res) Makefile.in
-	$(WINEGCC) -B$(TOOLSDIR)/tools/winebuild $(APPMODE) $(OBJS) $(RC_SRCS:.rc=.res) -o $@ $(ALL_LIBS) $(DELAYIMPORTS:%=-Wb,-d%)
+	$(MAKERULE_LINK) $(WINEGCC) -B$(TOOLSDIR)/tools/winebuild $(APPMODE) $(OBJS) $(RC_SRCS:.rc=.res) -o $@ $(ALL_LIBS) $(DELAYIMPORTS:%=-Wb,-d%)
 
 $(BASEMODULE): $(WINEWRAPPER)
 	$(RM) $@ && $(LN_S) $(WINEWRAPPER) $@
@@ -31,7 +31,7 @@ $(BASEMODULE): $(WINEWRAPPER)
 # Rules for .exe main module
 
 $(MODULE): $(OBJS) $(RCOBJS) Makefile.in
-	$(CC) $(APPMODE) $(OBJS) $(RCOBJS) -o $@ $(LIBWINE) $(ALL_LIBS)
+	$(MAKERULE_LINK) $(CC) $(APPMODE) $(OBJS) $(RCOBJS) -o $@ $(LIBWINE) $(ALL_LIBS)
 
 # Rules for testing
 
diff --git a/server/Makefile.in b/server/Makefile.in
index 7648281..fed493c 100644
--- a/server/Makefile.in
+++ b/server/Makefile.in
@@ -65,7 +65,7 @@ all: $(PROGRAMS) $(MANPAGES)
 @MAKE_RULES@
 
 wineserver: $(OBJS)
-	$(CC) -o $@ $(OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LDFLAGS) $(LIBS)
+	$(MAKERULE_LINK) $(CC) -o $@ $(OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LDFLAGS) $(LIBS)
 
 install:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
 	$(INSTALL_PROGRAM) wineserver $(DESTDIR)$(bindir)/wineserver
diff --git a/tools/Makefile.in b/tools/Makefile.in
index aa69d97..97aa8bb 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -55,25 +55,25 @@ all: $(PROGRAMS) $(MANPAGES) $(SUBDIRS)
 @MAKE_RULES@
 
 makedep$(EXEEXT) $(EXEEXT:%=makedep): makedep.o
-	$(CC) $(CFLAGS) -o $@ makedep.o $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) $(CFLAGS) -o $@ makedep.o $(LDFLAGS)
 
 make_ctests$(EXEEXT): make_ctests.o
-	$(CC) $(CFLAGS) -o $@ make_ctests.o $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) $(CFLAGS) -o $@ make_ctests.o $(LDFLAGS)
 
 fnt2bdf$(EXEEXT): fnt2bdf.o
-	$(CC) $(CFLAGS) -o $@ fnt2bdf.o $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) $(CFLAGS) -o $@ fnt2bdf.o $(LIBPORT) $(LDFLAGS)
 
 fnt2fon$(EXEEXT): fnt2fon.o
-	$(CC) $(CFLAGS) -o $@ fnt2fon.o $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) $(CFLAGS) -o $@ fnt2fon.o $(LIBPORT) $(LDFLAGS)
 
 relpath$(EXEEXT): relpath.o
-	$(CC) $(CFLAGS) -o $@ relpath.o $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) $(CFLAGS) -o $@ relpath.o $(LIBPORT) $(LDFLAGS)
 
 sfnt2fnt$(EXEEXT): sfnt2fnt.o
-	$(CC) $(CFLAGS) -o $@ sfnt2fnt.o $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(FREETYPELIBS)
+	$(MAKERULE_LINK) $(CC) $(CFLAGS) -o $@ sfnt2fnt.o $(LIBWINE) $(LIBPORT) $(LDFLAGS) $(FREETYPELIBS)
 
 bin2res$(EXEEXT): bin2res.o
-	$(CC) $(CFLAGS) -o $@ bin2res.o $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_LINK) $(CC) $(CFLAGS) -o $@ bin2res.o $(LIBPORT) $(LDFLAGS)
 
 wineprefixcreate: wineprefixcreate.in relpath$(EXEEXT)
 	sed -e "s,@bintodlldir\@,`$(RELPATH) $(bindir) $(dlldir)`,g" -e "s,@bintodatadir\@,`$(RELPATH) $(bindir) $(datadir)/wine`,g" $(SRCDIR)/wineprefixcreate.in >$@ || ($(RM) $@ && false)
diff --git a/tools/makerule b/tools/makerule
new file mode 100755
index 0000000..832bd12
--- /dev/null
+++ b/tools/makerule
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+command="$1"
+shift
+
+for flag in ${MAKEFLAGS}; do
+	case "$flag" in
+	--*)	quiet="" ;;
+	*s*)	quiet=t ;;
+	*)	quiet="" ;;
+	esac
+done
+
+if test "${V}" == "1"; then
+	if test -z "$quiet"; then
+		echo "$@"
+	fi
+	exec "$@"
+else
+	if test -n "$command" -a -z "$quiet"; then
+		echo "$command"
+	fi
+	"$@" && exit 0
+	exit_code=$?
+	echo "The command that failed was:" 1>&2
+	echo "$@" 1>&2
+	exit $exit_code
+fi
diff --git a/tools/widl/Makefile.in b/tools/widl/Makefile.in
index a3145b2..5e8f08e 100644
--- a/tools/widl/Makefile.in
+++ b/tools/widl/Makefile.in
@@ -30,7 +30,7 @@ all: $(PROGRAMS) $(MANPAGES)
 @MAKE_RULES@
 
 widl$(EXEEXT): $(OBJS) $(LIBWPP)
-	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWPP) $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_CC) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWPP) $(LIBPORT) $(LDFLAGS)
 
 install:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
 	$(INSTALL_PROGRAM) widl$(EXEEXT) $(DESTDIR)$(bindir)/widl$(EXEEXT)
diff --git a/tools/winebuild/Makefile.in b/tools/winebuild/Makefile.in
index 77f3691..8edc813 100644
--- a/tools/winebuild/Makefile.in
+++ b/tools/winebuild/Makefile.in
@@ -26,7 +26,7 @@ all: $(PROGRAMS) $(MANPAGES)
 @MAKE_RULES@
 
 winebuild$(EXEEXT): $(OBJS)
-	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_CC) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBPORT) $(LDFLAGS)
 
 install:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
 	$(INSTALL_PROGRAM) winebuild$(EXEEXT) $(DESTDIR)$(bindir)/winebuild$(EXEEXT)
diff --git a/tools/winedump/Makefile.in b/tools/winedump/Makefile.in
index 63af00b..8bbf29c 100644
--- a/tools/winedump/Makefile.in
+++ b/tools/winedump/Makefile.in
@@ -35,7 +35,7 @@ all: $(PROGRAMS) $(MANPAGES)
 @MAKE_RULES@
 
 winedump$(EXEEXT): $(OBJS)
-	$(CC) $(CFLAGS) -o winedump$(EXEEXT) $(OBJS) $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_CC) $(CC) $(CFLAGS) -o winedump$(EXEEXT) $(OBJS) $(LIBPORT) $(LDFLAGS)
 
 install:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
 	$(INSTALL_PROGRAM) winedump$(EXEEXT) $(DESTDIR)$(bindir)/winedump$(EXEEXT)
diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in
index c2640e2..c65d72a 100644
--- a/tools/winegcc/Makefile.in
+++ b/tools/winegcc/Makefile.in
@@ -36,7 +36,7 @@ all: $(PROGRAMS) $(MANPAGES)
 @MAKE_RULES@
 
 winegcc$(EXEEXT): winegcc.o utils.o
-	$(CC) $(CFLAGS) -o $@ winegcc.o utils.o $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_CC) $(CC) $(CFLAGS) -o $@ winegcc.o utils.o $(LIBPORT) $(LDFLAGS)
 
 winecpp$(EXEEXT) wineg++$(EXEEXT): winegcc$(EXEEXT)
 	$(RM) $@ && $(LN_S) winegcc$(EXEEXT) $@
diff --git a/tools/wmc/Makefile.in b/tools/wmc/Makefile.in
index 5e6e31a..e612e9d 100644
--- a/tools/wmc/Makefile.in
+++ b/tools/wmc/Makefile.in
@@ -24,7 +24,7 @@ all: $(PROGRAMS) $(MANPAGES)
 @MAKE_RULES@
 
 wmc$(EXEEXT): $(OBJS)
-	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_CC) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LDFLAGS)
 
 install:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
 	$(INSTALL_DATA) wmc.man $(DESTDIR)$(mandir)/man$(prog_manext)/wmc.$(prog_manext)
diff --git a/tools/wrc/Makefile.in b/tools/wrc/Makefile.in
index 9bae142..4b34e32 100644
--- a/tools/wrc/Makefile.in
+++ b/tools/wrc/Makefile.in
@@ -29,7 +29,7 @@ all: $(PROGRAMS) $(MANPAGES)
 @MAKE_RULES@
 
 wrc$(EXEEXT): $(OBJS) $(LIBWPP)
-	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWPP) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LDFLAGS)
+	$(MAKERULE_CC) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBWPP) $(LIBWINE_LDFLAGS) $(LIBPORT) $(LDFLAGS)
 
 install:: $(PROGRAMS) $(MANPAGES) $(INSTALLDIRS)
 	$(INSTALL_DATA) wrc.man $(DESTDIR)$(mandir)/man$(prog_manext)/wrc.$(prog_manext)
-- 
1.5.0



Reply via email to