First, I apologise for the patch not being here... It appears that my attachment failed, I include it inline in the mail this time..
To Make.rules.in --------------------------------------------------------------------------- 20a21,32
# Default running of (gnu)make causes a silent make with the NICE_ECHO # macro expanding to the echo command. # Running (make VERBOSE=yes) causes the NICE_ECHO to expand to the NULL # shell command and cause no output. The output will be as per the # original incarnation of the Makefile ifneq ($(VERBOSE), yes) .SILENT: NICE_ECHO = @echo -e else NICE_ECHO = @: endif
118a131
$(NICE_ECHO) " Compiling\t\t$<"
---------------------------------------------------------------------------
There has been a range of comments to my original proposal. I make the following points.
- I understand that there are those who desire to see the full output, for those running "make VERBOSE=yes" will produce exactly the same output as before.
- To the suggestion of "make -s", this gives no output and is pretty useless.
- I have been a developer for 20 years and nothing frustrates me more than make output that is over complicated. I see the point of printing the full command line when developing and debugging the Makefile and the make process. Once this is fixed however, I prefer a simple output from make telling me what is currently being compiled, I don't need to see all output every time.
Finally, I have progressed a little further, but no patches for you yet. I have modified the *.in files for Make.rules.in, and in the libs and tools subdirectories. My current output (of make) is attached below for comment. I have similar output for "make install" and "make uninstall" (output is nicely lined up on fixed-width fonts :-)
Jason.
--------------------------------------------------------------------------- jbut-laptop# make Making in libs/ Making in libs/port/ Compiling ffs.c Compiling fstatvfs.c Compiling futimes.c Compiling getopt.c Compiling getopt1.c Compiling getpagesize.c Compiling gettid.c Compiling interlocked.c Compiling lstat.c Compiling memcpy_unaligned.c Compiling memmove.c Compiling mkstemps.c Compiling pread.c Compiling pwrite.c Compiling readlink.c Compiling sigsetjmp.c Compiling spawn.c Compiling statvfs.c Compiling strcasecmp.c Compiling strerror.c Compiling strncasecmp.c Compiling usleep.c Creating Library libwine_port.a
Making in libs/unicode/ Compiling casemap.c Compiling collation.c Compiling compose.c Compiling cptable.c Compiling fold.c Compiling mbtowc.c Compiling sortkey.c Compiling string.c Compiling utf8.c Compiling wctomb.c Compiling wctype.c Compiling c_037.c Compiling c_424.c Compiling c_437.c Compiling c_500.c Compiling c_737.c Compiling c_775.c Compiling c_850.c Compiling c_852.c Compiling c_855.c Compiling c_856.c Compiling c_857.c Compiling c_860.c Compiling c_861.c Compiling c_862.c Compiling c_863.c Compiling c_864.c Compiling c_865.c Compiling c_866.c Compiling c_869.c Compiling c_874.c Compiling c_875.c Compiling c_878.c Compiling c_932.c Compiling c_936.c Compiling c_949.c Compiling c_950.c Compiling c_1006.c Compiling c_1026.c Compiling c_1250.c Compiling c_1251.c Compiling c_1252.c Compiling c_1253.c Compiling c_1254.c Compiling c_1255.c Compiling c_1256.c Compiling c_1257.c Compiling c_1258.c Compiling c_10000.c Compiling c_10006.c Compiling c_10007.c Compiling c_10029.c Compiling c_10079.c Compiling c_10081.c Compiling c_20866.c Compiling c_20932.c Compiling c_28591.c Compiling c_28592.c Compiling c_28593.c Compiling c_28594.c Compiling c_28595.c Compiling c_28596.c Compiling c_28597.c Compiling c_28598.c Compiling c_28599.c Compiling c_28600.c Compiling c_28603.c Compiling c_28604.c Compiling c_28605.c Compiling c_28606.c Creating Library libwine_unicode.so.1 Creating Library libwine_unicode.so
Making in libs/wine/ Compiling config.c config.c: In function `init_server_dir': config.c:120: warning: right shift count >= width of type config.c:125: warning: right shift count >= width of type Compiling debug.c Compiling ldt.c Compiling loader.c Compiling mmap.c Compiling port.c Creating Library libwine.so.1 Creating Library libwine.so
Making in libs/wpp/ Compiling preproc.c Compiling wpp.c YACCing ppy.y Compiling y.tab.c LEXing ppl.l Compiling lex.yy.c Creating Library libwpp.a
Making in tools/ Compiling bin2res.c Linking bin2res Compiling fnt2bdf.c Linking fnt2bdf Compiling fnt2fon.c Linking fnt2fon Compiling makedep.c Linking makedep Compiling sfnt2fnt.c Linking sfnt2fnt Creating wineprefixcreate Making in tools/widl/ Compiling hash.c Compiling header.c Compiling proxy.c Compiling typelib.c Compiling utils.c Compiling widl.c Compiling write_msft.c write_msft.c:584: warning: 'ctl2_alloc_importinfo' defined but not used write_msft.c:622: warning: 'ctl2_alloc_importfile' defined but not used write_msft.c:920: warning: 'ctl2_find_nth_reference' defined but not used YACCing parser.y conflicts: 25 shift/reduce Compiling y.tab.c LEXing parser.l Compiling lex.yy.c Linking widl
Making in tools/winebuild/ Compiling import.c Compiling main.c Compiling parser.c Compiling relay.c Compiling res16.c Compiling res32.c Compiling spec16.c Compiling spec32.c Compiling utils.c Linking winebuild Creating winebuild.man
Making in tools/winedump/ Compiling debug.c Compiling emf.c Compiling le.c Compiling main.c Compiling misc.c Compiling msmangle.c Compiling ne.c Compiling output.c Compiling pe.c Compiling search.c Compiling symbol.c Linking winedump
Making in tools/winegcc/ Compiling winegcc.c Compiling utils.c Linking winegcc
Making in tools/wmc/ Compiling lang.c YACCing mcy.y YACCing mcy.y Compiling mcl.c Compiling utils.c Compiling wmc.c Compiling write.c Compiling y.tab.c Linking wmc
Making in tools/wrc/ Compiling dumpres.c Compiling genres.c Compiling newstruc.c Compiling readres.c Compiling translation.c Compiling utils.c Compiling wrc.c Compiling writeres.c YACCing parser.y conflicts: 5 shift/reduce Compiling y.tab.c LEXing parser.l Compiling lex.yy.c Linking wrc
On Mon, 31 Jan 2005 10:41:15 +1100, Jason But >
jbut-laptop# make Making in libs/ Making in libs/port/ Compiling ffs.c Compiling fstatvfs.c Compiling futimes.c Compiling getopt.c Compiling getopt1.c Compiling getpagesize.c
Abbreviated build output is nice. I personally like how the linux kernel build system uses the basic command names themselves for the abbreviation. For example, instead of "compiling", use "CC". That way it should generally be shorter in output than using the English word, and save even more diskspace. True, it may make it more cryptic again, but people who build their own wine should know what CC is for anyway.
Jason But jbut@swin.edu.au writes:
- I have been a developer for 20 years and nothing frustrates me more than
make output that is over complicated. I see the point of printing the full command line when developing and debugging the Makefile and the make process. Once this is fixed however, I prefer a simple output from make telling me what is currently being compiled, I don't need to see all output every time.
It's pretty trivial to write a make wrapper that massages the output into whatever form you prefer. This way you get your preferred format with every project you build, you don't have to impose your tastes on everybody else, and you avoid adding complexity (and non-portable code) into our makefiles.
Alexandre Julliard wrote:
Jason But jbut@swin.edu.au writes:
- I have been a developer for 20 years and nothing frustrates me more than
make output that is over complicated. I see the point of printing the full command line when developing and debugging the Makefile and the make process. Once this is fixed however, I prefer a simple output from make telling me what is currently being compiled, I don't need to see all output every time.
It's pretty trivial to write a make wrapper that massages the output into whatever form you prefer.
Unless it's in CVS, only one person will benefit from it. That's not the open-source way.
This way you get your preferred format with every project you build, you don't have to impose your tastes on everybody else,
If those tastes are shared by a majority of developers, then it shouldn't be a problem.
and you avoid adding complexity (and non-portable code) into our makefiles.
Ok, this is a problem. Does this mean you won't accept any patches to the makefiles to convert to "slick" build output?
Rob
Robert Shearman rob@codeweavers.com writes:
Alexandre Julliard wrote:
It's pretty trivial to write a make wrapper that massages the output into whatever form you prefer.
Unless it's in CVS, only one person will benefit from it. That's not the open-source way.
Feel free to start a project on sourceforge for that. It's clearly not Wine specific and doesn't belong in the Wine CVS.
Ok, this is a problem. Does this mean you won't accept any patches to the makefiles to convert to "slick" build output?
No, I won't. Our makefiles are already complicated enough to not add such gratuitous complexity.
On Tue, 1 Feb 2005 04:41 am, Alexandre Julliard wrote:
Robert Shearman rob@codeweavers.com writes:
Alexandre Julliard wrote:
It's pretty trivial to write a make wrapper that massages the output into whatever form you prefer.
Unless it's in CVS, only one person will benefit from it. That's not the open-source way.
Feel free to start a project on sourceforge for that. It's clearly not Wine specific and doesn't belong in the Wine CVS.
Ok, this is a problem. Does this mean you won't accept any patches to the makefiles to convert to "slick" build output?
No, I won't. Our makefiles are already complicated enough to not add such gratuitous complexity.
In that case I will not bring this up any more after this email.
I note that while the patches are extensive they are merely the addition of one ECHO line to each rule.
For those who are interested, I attach the patch here (hoping it works this time) for the completed output cleanup. I ran
diff -urN wine-20050111 wine-20050111.new > make_patches
where wine-20050111/ is the directory with the current wine sources and wine-20050111.new/ is the patched directory
All the changes are to the Make*.in files.
Closing off my input now.
Jason.
Oops re:patch
My system is a FreeBSD one so there are some other differences.
Please ignore the bits of the patch that: =============================================== in programs/Makefile.in diff -urN wine-20050111/programs/Makefile.in wine-20050111.new/programs/Makefile.in --- wine-20050111/programs/Makefile.in Thu Aug 12 06:59:09 2004 +++ wine-20050111.new/programs/Makefile.in Tue Feb 1 10:49:41 2005 @@ -32,7 +32,6 @@ winemenubuilder \ winemine \ winepath \ - winetest \ winevdm \ winhelp \ winver @@ -63,7 +62,6 @@ winemenubuilder \ winemine \ winepath \ - winetest \ winevdm \ winhelp \ winver @@ -116,7 +114,6 @@ winemenubuilder.exe$(DLLEXT) \ winemine.exe$(DLLEXT) \ winepath.exe$(DLLEXT) \ - winetest.exe$(DLLEXT) \ winevdm.exe$(DLLEXT) \ winhelp.exe$(DLLEXT) \ winver.exe$(DLLEXT) @@ -126,9 +123,11 @@
=============================================== and in Makefile.in
diff -urN wine-20050111/Makefile.in wine-20050111.new/Makefile.in --- wine-20050111/Makefile.in Thu Oct 7 13:12:44 2004 +++ wine-20050111.new/Makefile.in Tue Feb 1 10:49:29 2005 install:: install-lib install-dev install-aclocal - -$(LDCONFIG) - @if test -n "`LANG=C $(LDD) $(bindir)/wine|grep not.found`"; \ + @if false ; \ then \ echo "*************************************************" ; \ echo "*************************************************" ; \
=============================================== These are applied by the FreeBSD Port for wine
Jason