Re: 33 make check failures on Ubuntu Linux

2007-04-25 Thread Paul Smith
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=

2007-04-25 Thread Marty Leisner


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=

2007-04-25 Thread Paul Smith
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