Makefiles: Be less verbose when performing make rules by only printing the command being executed and the source and/or target file.

Robert Shearman rob at codeweavers.com
Mon Mar 19 10:40:08 CDT 2007


The old behaviour can be turned back on by setting the V environment 
variable to "1" (e.g. make V=1).
---
  Make.rules.in               |   43 
++++++++++++++++++++++---------------------
  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 +-
  19 files changed, 97 insertions(+), 68 deletions(-)
  create mode 100755 tools/makerule

This version of the patch converts more make rules to using the makerule 
script. It also outputs only two forms (when V != 1): COMMAND outputfile 
or COMMAND inputfile -> outputfile. I left the second form as it is 
nicer when the output file is an intermediate file or when it is not 
obvious where the output file will have been generated from.

I have also fixed a quoting issue in the tools/makerule script when 
using the non-verbose mode caused by using the superfluous (in this 
case) "eval" command. After this was fixed, I couldn't find any issues 
with quotes not being passed correctly in all the tests I did.

I have also now made the non-verbose output look more the git "next" 
branch build output by dropping the square brackets and generalising all 
link rules to output "LINK", even though there is no real LINK variable.

All of this means that most of the commands in a normal wine build 
should now use the makerule script and so output the less verbose form 
(unless V=1). The exceptions are rules that have to redirect their 
output to a file, as these are more complicated to do. Here is the 
output with this patch applied when running make in the dlls/msi directory:
CC action.o
CC alter.o
CC appsearch.o
CC classes.o
CC create.o
CC custom.o
CC database.o
CC delete.o
CC dialog.o
CC distinct.o
CC events.o
CC files.o
CC font.o
CC format.o
CC handle.o
CC helpers.o
CC insert.o
CC install.o
CC join.o
CC msi.o
CC msi_main.o
CC msiquery.o
CC order.o
CC package.o
CC preview.o
CC record.o
CC registry.o
CC regsvr.o
CC select.o
CC source.o
CC string.o
CC suminfo.o
CC table.o
BISON sql.y -> sql.tab.h
CC tokenize.o
CC update.o
CC upgrade.o
CC where.o
BISON cond.y -> cond.tab.c
CC cond.tab.o
CC sql.tab.o
BIN2RES msi.rc -> instabsent.bmp
BIN2RES msi.rc -> instadvert.bmp
BIN2RES msi.rc -> instlocal.bmp
WIDL msiserver.idl -> msiserver.tlb
RC msi.res
LINK msi.dll.so
WINEBUILD msi.spec -> libmsi.def

I could solve the portability issue for Windows by either making a 
makerule.bat and using that when running make on Windows or by adding a 
configure flag and changing the way tools/makerule is invoked from the 
makefiles.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 1a6179bb9ddeaa63b3e6d26a076c04f709a833b3.diff
Type: text/x-patch
Size: 18653 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20070319/0af04922/1a6179bb9ddeaa63b3e6d26a076c04f709a833b3.bin


More information about the wine-patches mailing list