[Top][All Lists]
[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