From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1K8fFT-0007vL-5R for mharc-grub-devel@gnu.org; Tue, 17 Jun 2008 13:45:39 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K8fFR-0007uZ-3m for grub-devel@gnu.org; Tue, 17 Jun 2008 13:45:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K8fFP-0007t8-Cl for grub-devel@gnu.org; Tue, 17 Jun 2008 13:45:36 -0400 Received: from [199.232.76.173] (port=50704 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K8fFP-0007t5-AZ for grub-devel@gnu.org; Tue, 17 Jun 2008 13:45:35 -0400 Received: from gateway08.websitewelcome.com ([69.41.248.18]:45456) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1K8fFM-0006fq-Ks for grub-devel@gnu.org; Tue, 17 Jun 2008 13:45:35 -0400 Received: (qmail 29507 invoked from network); 17 Jun 2008 17:53:39 -0000 Received: from gator297.hostgator.com (74.53.228.114) by gateway08.websitewelcome.com with SMTP; 17 Jun 2008 17:53:39 -0000 Received: from c-67-185-142-228.hsd1.wa.comcast.net ([67.185.142.228]:34025 helo=localhost) by gator297.hostgator.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.68) (envelope-from ) id 1K8fF5-0005Nw-V7 for grub-devel@gnu.org; Tue, 17 Jun 2008 12:45:16 -0500 Date: Tue, 17 Jun 2008 10:44:48 -0700 From: Colin D Bennett To: grub-devel@gnu.org Message-ID: <20080617104448.2b43f109@gibibit.com> X-Mailer: Claws Mail 3.4.0 (GTK+ 2.12.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/FTQ58Kd4ko=dVlfgBswG5PR" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator297.hostgator.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - gibibit.com X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 3) Subject: [PATCH] Tidy up 'make' output X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2008 17:45:37 -0000 --MP_/FTQ58Kd4ko=dVlfgBswG5PR Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline When thousands of long, wrapped lines full of command line options and file names are scrolling by on your terminal, it is very hard to pick out the irregularities in the build process, such as error and warnings. To make the output of ``make`` easier to parse by eye as it scrolls by, I added support for "pretty" output for make. For example, it replaces the full gcc commands that look like gcc -Iutil -I../util -I. -Iinclude -I../include -Wall -W -DGRUB_LIBDIR=\"/usr/local/lib/`echo grub/i386-pc | sed 's,x,x,'`\" -g -O2 -DGRUB_UTIL=1 -MD -c -o grub_setup-util_getroot.o ../util/getroot.c gcc -Ikern -I../kern -I. -Iinclude -I../include -Wall -W -DGRUB_LIBDIR=\"/usr/local/lib/`echo grub/i386-pc | sed 's,x,x,'`\" -g -O2 -DGRUB_UTIL=1 -MD -c -o grub_setup-kern_device.o ../kern/device.c ../kern/device.c: In function 'grub_device_iterate': ../kern/device.c:84: warning: generating trampoline in object (requires executable stack) ../kern/device.c:84: warning: generating trampoline in object (requires executable stack) gcc -Ikern -I../kern -I. -Iinclude -I../include -Wall -W -DGRUB_LIBDIR=\"/usr/local/lib/`echo grub/i386-pc | sed 's,x,x,'`\" -g -O2 -DGRUB_UTIL=1 -MD -c -o grub_setup-kern_disk.o ../kern/disk.c gcc -Ikern -I../kern -I. -Iinclude -I../include -Wall -W -DGRUB_LIBDIR=\"/usr/local/lib/`echo grub/i386-pc | sed 's,x,x,'`\" -g -O2 -DGRUB_UTIL=1 -MD -c -o grub_setup-kern_err.o ../kern/err.c gcc -Ikern -I../kern -I. -Iinclude -I../include -Wall -W -DGRUB_LIBDIR=\"/usr/local/lib/`echo grub/i386-pc | sed 's,x,x,'`\" -g -O2 -DGRUB_UTIL=1 -MD -c -o grub_setup-kern_misc.o ../kern/misc.c with output that, in my opinion, makes it easier to see warnings and errors: COMPILE ../util/getroot.c COMPILE ../kern/device.c ../kern/device.c: In function 'grub_device_iterate': ../kern/device.c:84: warning: generating trampoline in object (requires executable stack) ../kern/device.c:84: warning: generating trampoline in object (requires executable stack) COMPILE ../kern/disk.c COMPILE ../kern/err.c COMPILE ../kern/misc.c If the variable ``V`` (for verbose) is set to 1, then the traditional full output is displayed. This is useful when you need to see which compiler flags are being used or which source files are being linked into an object file. Just run make V=1 to get the full output. This patch can be refined further by adding 'pretty' rules for other build operations to Makefile.in. Regards, Colin --MP_/FTQ58Kd4ko=dVlfgBswG5PR Content-Type: text/x-patch; name=grub_prettymake_2008-06-17.patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=grub_prettymake_2008-06-17.patch === modified file 'Makefile.in' --- Makefile.in 2008-04-25 19:41:48 +0000 +++ Makefile.in 2008-06-11 05:50:59 +0000 @@ -84,6 +84,39 @@ YACC = @YACC@ UNIFONT_HEX = @UNIFONT_HEX@ +### Pretty output control ### +# Set up compiler and linker commands that either is quiet (does not print +# the command line being executed) or verbose (print the command line). +_CC := $(CC) +_TARGET_CC := $(TARGET_CC) +_STRIP := $(STRIP) +_GENMODSRC := sh $(srcdir)/genmodsrc.sh +ifeq ($(V),1) + override V_PREFIX := + override CC = $(_CC) + override TARGET_CC = $(_CC) + override STRIP = $(_STRIP) + override GENMODSRC = $(_GENMODSRC) + override INFO_GENCMDLIST = + override INFO_GENFSLIST = + override INFO_GENPARTMAPLIST = + override INFO_GEN_FINAL_COMMAND_LIST = + override INFO_GEN_FINAL_FS_LIST = + override INFO_GEN_FINAL_PARTMAP_LIST = +else + override V_PREFIX := @ + override CC = @echo "COMPILE $<"; $(_CC) + override TARGET_CC = @echo "COMPILE(TARGET) $<"; $(_TARGET_CC) + override STRIP = @echo "STRIP $@"; $(_STRIP) + override GENMODSRC = @echo "GENMODSRC $@"; $(_GENMODSRC) + override INFO_GENCMDLIST = @echo "GENCMDLIST $@" + override INFO_GENFSLIST = @echo "GENFSLIST $@" + override INFO_GENPARTMAPLIST = @echo "GENPARTMAPLIST $@" + override INFO_GEN_FINAL_COMMAND_LIST = @echo "GENCMDLIST[final] $@" + override INFO_GEN_FINAL_FS_LIST = @echo "GENFSLIST[final] $@" + override INFO_GEN_FINAL_PARTMAP_LIST = @echo "GENPARTMAPLIST[final] $@" +endif + # Options. enable_grub_emu = @enable_grub_emu@ enable_grub_fstest = @enable_grub_fstest@ @@ -130,13 +163,16 @@ || (rm -f $@; exit 1) command.lst: $(COMMANDFILES) - cat $^ /dev/null | sort > $@ + $(INFO_GEN_FINAL_COMMAND_LIST) + $(V_PREFIX)cat $^ /dev/null | sort > $@ fs.lst: $(FSFILES) - cat $^ /dev/null | sort > $@ + $(INFO_GEN_FINAL_FS_LIST) + $(V_PREFIX)cat $^ /dev/null | sort > $@ partmap.lst: $(PARTMAPFILES) - cat $^ /dev/null | sort > $@ + $(INFO_GEN_FINAL_PARTMAP_LIST) + $(V_PREFIX)cat $^ /dev/null | sort > $@ ifeq (, $(UNIFONT_HEX)) else === modified file 'genmk.rb' --- genmk.rb 2008-04-17 14:14:09 +0000 +++ genmk.rb 2008-06-11 05:50:59 +0000 @@ -125,7 +125,7 @@ $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(#{prefix}_CFLAGS) -c -o $@ $< #{mod_src}: moddep.lst genmodsrc.sh - sh $(srcdir)/genmodsrc.sh '#{mod_name}' $< > $@ || (rm -f $@; exit 1) + $(GENMODSRC) '#{mod_name}' $< > $@ || (rm -f $@; exit 1) ifneq ($(#{prefix}_EXPORTS),no) #{defsym}: #{pre_obj} @@ -157,18 +157,21 @@ PARTMAPFILES += #{partmap} #{command}: #{src} $(#{src}_DEPENDENCIES) gencmdlist.sh - set -e; \ - $(TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \ + $(INFO_GENCMDLIST) + $(V_PREFIX)set -e; \ + $(_TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \ | sh $(srcdir)/gencmdlist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1) #{fs}: #{src} $(#{src}_DEPENDENCIES) genfslist.sh - set -e; \ - $(TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \ + $(INFO_GENFSLIST) + $(V_PREFIX)set -e; \ + $(_TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \ | sh $(srcdir)/genfslist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1) #{partmap}: #{src} $(#{src}_DEPENDENCIES) genpartmaplist.sh - set -e; \ - $(TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \ + $(INFO_GENPARTMAPLIST) + $(V_PREFIX)set -e; \ + $(_TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \ | sh $(srcdir)/genpartmaplist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1) --MP_/FTQ58Kd4ko=dVlfgBswG5PR--