help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 3.81.90: bug or feature ?


From: Paul Smith
Subject: Re: 3.81.90: bug or feature ?
Date: Mon, 03 Aug 2009 08:18:29 -0400

On Mon, 2009-08-03 at 11:29 +0300, Denis Onischenko wrote:
> Makefile:16: *** recipe commences before first target.  Stop.
> 
> 1:
> 2:
> 3:
> 4:
> 5:  pkgdatadir = $(datadir)/module-init-tools
> 6:  pkgincludedir = $(includedir)/module-init-tools
> 7:  pkglibdir = $(libdir)/module-init-tools
> 8:  pkglibexecdir = $(libexecdir)/module-init-tools
> 9:  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
> 10: install_sh_DATA = $(install_sh) -c -m 644
> 11: install_sh_PROGRAM = $(install_sh) -c
> 12: install_sh_SCRIPT = $(install_sh) -c
> 13: INSTALL_HEADER = $(INSTALL_DATA)
> 14: transform = $(program_transform_name)
> 15: NORMAL_INSTALL = :
> 16:         @ HOST="$(HOST)" \
> 17:         ; test ".$$HOST" = "." && HOST=` sh
> /Sources/linux/.powerpc/module-init-tools/config.guess ` \
> 18:         ; BUILD=` grep "^#### $$HOST " Makefile | sed -e 's/.*|//' ` \
> 19:         ; use=` basename "$@" -all `; n=` echo $$BUILD | wc -w ` \
> 20:         ; echo "MAKE $$HOST : $$n * $@"; if test "$$n" = "0" ; then : \
> 21:         ; BUILD=` grep "^####.*|" Makefile |tail -1| sed -e
> 's/.*|//' ` ; fi \
> 22:         ; test ".$$BUILD" = "." && BUILD="." \
> 23:         ; test "$$use" = "$@" && BUILD=` echo "$$BUILD" | tail -1 ` \
> 24:         ; for i in $$BUILD ; do test ".$$i" = "." && continue \
> 25:         ; (cd "$$i" && test ! -f configure && $(MAKE) $$use) || exit; done
> ...
> 
> 
> I have not this error with released version 3.81
> 
> Is this a bug or feature of version 3.81.90 ?

Hm.  The reason you're getting this error is that you're trying to
assign a variable with a space in the name ("@ HOST").  Starting with
this version of GNU make, we do not allow variables with spaces in their
names to be assigned (you can do it with a trick but I do not recommend
that).

I believe this makefile has always had a syntax error in it and you just
never noticed until now.  I think there was supposed to be some variable
assigned to this value; in other words, rather than a make variable "@
HOST" being set to the string '"$(HOST)" ; test ".$$HOST"' ... etc.,
some other variable was supposed to be set to this entire value.

Without seeing the entire makefile there's no way to know however.

> What means the ":" after "NORMAL_INSTALL = " ?

It means that you've set the variable NORMAL_INSTALL to the string ":";
simple as that.

Possible that character is supposed to be a "\", or maybe it was a "\"
but someone decided to make it a ":" (this is the shell's "do nothing"
operator, so it effectively turns off the install rule).

However you should either assign a different variable to this value or
comment it out, to avoid the bug.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.us
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

[Prev in Thread] Current Thread [Next in Thread]