Re: 33 make check failures on Ubuntu Linux
On Sun, 2007-04-22 at 14:49 +0100, Jon Grant wrote: I just ran make check and got 33 failures. I'm running make 3.81, on a 6 month old Ubuntu Linux install. They are all the same issue, the extra space. Not sure where the extra space comes from, is anyone else seeing this? Please be sure that your LC_ALL and/or LANG variables are set to C before running make check. I thought that I had modified this inside the Perl scripts that drive the tests, but apparently I didn't get it right; there was a bug report about it (this has been fixed in CVS now though). If that fixes the problem, I'm interested to see what locale you were using before... it seems odd to me that someone would make a translation that changes the string . Stop. to . Stop. (if you look at the fatal() function in misc.c you'll see where this string comes from). -- --- Paul D. Smith [EMAIL PROTECTED] Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org Please remain calm...I may be mad, but I am a professional. --Mad Scientist ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
make 3.80 works, make 3.81 only works with SHELL=
Enclosed is the makefile from LPRng. I minimized it. It works on 3.80. On 3.81, it only works if you specify SHELL=bourne shell on the command line... I've run this on a number of machines -- then I figured try remake and it worked -- then I realized remake was 3.80... There's a line SHELL=/bin/sh in the makefile... It seems it works fine in 3.81 with SHELL=/bin/sh But SHELL=/bin/sh seems harmless (but its not) (and it works on 3.80). Also make SHELL=/bin/sh is fine but make SHELL='/bin/sh' is not (I didn't see this in the NEWS file) : [EMAIL PROTECTED] 10:47:20;make-3.81 if [ UTILS = po ] ; then \ for i in po/Makefile* ; do \ if [ -f $i ] ; then \ if grep '^mkinstalldirs.*=.*case' $i ; then \ echo fixing broken $i which causes wrong path to mkinstalldirs to be used; \ perl -spi -e 's:^mkinstalldirs\s*=\s*.*:mkinstalldirs = \$(SHELL) \$(MKINSTALLDIRS):' $i; \ fi \ fi \ done \ fi /bin/sh: -c: line 1: syntax error: unexpected end of file /bin/sh: line 1: for i in po/Makefile* ; do \: No such file or directory /bin/sh: line 2:if [ -f $i ] ; then \: command not found /bin/sh: line 3:if grep '^mkinstalldirs.*=.*case' $i ; then \: command not found /bin/sh: line 4:echo fixing broken $i which causes wrong path to mkinstalldirs to be used; \: command not found /bin/sh: line 5:perl -spi -e 's:^mkinstalldirs\s*=\s*.*:mkinsta lldirs = \$(SHELL) \$(MKINSTALLDIRS):' $i; \: command not found /bin/sh: line 6:fi \: command not found /bin/sh: line 7:fi \: command not found /bin/sh: line 8: done \: command not found /bin/sh: -c: line 9: syntax error near unexpected token `fi' /bin/sh: -c: line 9: `fi' make-3.81: *** [UTILS] Error 2 : [EMAIL PROTECTED] 10:47:25;make-3.81 SHELL=/bin/sh if [ UTILS = po ] ; then \ for i in po/Makefile* ; do \ if [ -f $i ] ; then \ if grep '^mkinstalldirs.*=.*case' $i ; then \ echo fixing broken $i which causes wrong path to mkinstalldirs to be used; \ perl -spi -e 's:^mkinstalldirs\s*=\s*.*:mkinstalldirs = \$(SHELL) \$(MKINSTALLDIRS):' $i; \ fi \ fi \ done \ fi : [EMAIL PROTECTED] 10:47:29;/usr/bin/make -v GNU Make 3.80 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. : [EMAIL PROTECTED] 10:47:33;/usr/bin/make if [ UTILS = po ] ; then \ for i in po/Makefile* ; do \ if [ -f $i ] ; then \ if grep '^mkinstalldirs.*=.*case' $i ; then \ echo fixing broken $i which causes wrong path to mkinstalldirs to be used; \ perl -spi -e 's:^mkinstalldirs\s*=\s*.*:mkinstalldirs = \$(SHELL) \$(MKINSTALLDIRS):' $i; \ fi \ fi \ done \ fi marty ### # LPRng - An Extended Print Spooler System # # Copyright 1988-2001 Patrick Powell, San Diego, CA # [EMAIL PROTECTED] # See LICENSE for conditions of use. # ### # MODULE: Makefile.in # PURPOSE: top level Makefile for LPD Software # $Id: Makefile,v 1.3 2007/04/26 02:46:07 leisner Exp leisner $ ## #**###** # You must use ANSI C and GNU Make! #*** PACKAGE=LPRng VERSION=3.8.28 SRC=. INSTALL=/usr/gnu/coreutils/bin/install -c # prefix prefix=/usr/local # exec prefix exec_prefix=${prefix} # for binaries bindir=${exec_prefix}/bin # for admin type of binaries sbindir=${exec_prefix}/sbin # for the filters libexecdir=${exec_prefix}/libexec # for the configuration stuff sysconfdir=${prefix}/etc # for the man pages mandir=${prefix}/man # top build directory top_builddir=. LPD_PERMS_PATH=\${sysconfdir}/lpd/lpd.perms\ LPD_CONF_PATH=\${sysconfdir}/lpd/lpd.conf\ PRINTCAP_PATH=\${sysconfdir}/printcap\ LPD_PATH=\${sbindir}/lpd\ SHELL=/bin/sh LOCKFILE=\/var/run/lpd\ CONFIG_SUBDIR=lpd PSHOWALL=-ax FILTER_DIR=${libexecdir}/filters LOCALEDIR=${prefix}/share/locale INIT= USE_NLS=no LIBTOOL=$(SHELL) $(top_builddir)/libtool #= # List the directories you want to generate: # DIRS for all, clean, etc. # ALLDIRS for other such as documentation #= DIRS= UTILS ALLDIRS= ${DIRS} ### all: ${DIRS} # define default target .PHONY: all warn TAGS clean
Re: make 3.80 works, make 3.81 only works with SHELL=
On Wed, 2007-04-25 at 23:05 -0400, Marty Leisner wrote: There's a line SHELL=/bin/sh in the makefile... This is illegal. Make is not the shell; it does not strip quotes like the shell does. Quoting is not harmless in make. These two variables: FOO = A BAR = A are very different; FOO is set to the single character string A, while BAR is set to the three character string A. For SHELL, if you set it to /bin/sh then make will invoke /bin/sh to run commands, which will work. If you set SHELL to /bin/sh, then make will try to invoke the command /bin/sh (including the quotes), which of course doesn't exist. Now, in reality neither make 3.80 or 3.81 does precisely the right thing here; however, 3.81 is closer to what should happen: the command should fail to run at all unless you have created the program /bin/sh on your system (including the quotes). -- --- Paul D. Smith [EMAIL PROTECTED] Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org Please remain calm...I may be mad, but I am a professional. --Mad Scientist ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make