During the buildrom,the step of "make" can not go on.the wrong message is following: ---------------------------------------------- [root@localhost buildrom-devel]# make menuconfig # # using defaults found in .config # .config:24:warning: symbol value '' invalid for COREBOOT_V3_ROM_SIZE .config:95:warning: symbol value '' invalid for LAB_PAUSE
*** End of buildrom configuration. *** Execute 'make' to build buildrom or try 'make help'.
[root@localhost buildrom-devel]# make make: *** No rule to make target `|', needed by `/bios/buildrom/buildrom-devel/work/lzma/stamps/.unpacked'. Stop. [root@localhost buildrom-devel]#
----------------------------------------------------- My gcc version is 4.2.2.The MAKE version is 3.79.1.linux kernel is 2.4.20. The system base on 32-bit. I use "svn co svn://coreboot.org/buildrom" to get the source.and then config amd make it,the make was faiulre.
How can I let the make complete?
thanks.
chenghu qing
On Wed, May 21, 2008 at 10:57:01AM +0800, qchwu wrote:
During the buildrom,the step of "make" can not go on.the wrong message is following:
[root@localhost buildrom-devel]# make menuconfig # # using defaults found in .config # .config:24:warning: symbol value '' invalid for COREBOOT_V3_ROM_SIZE .config:95:warning: symbol value '' invalid for LAB_PAUSE
*** End of buildrom configuration. *** Execute 'make' to build buildrom or try 'make help'.
[root@localhost buildrom-devel]# make make: *** No rule to make target `|', needed by `/bios/buildrom/buildrom-devel/work/lzma/stamps/.unpacked'. Stop. [root@localhost buildrom-devel]#
My gcc version is 4.2.2.The MAKE version is 3.79.1.linux kernel is 2.4.20.
Your version of make is ancient.
The system base on 32-bit. I use "svn co svn://coreboot.org/buildrom" to get the source.and then config amd make it,the make was faiulre.
How can I let the make complete?
You need at least make version 3.80 (released in 2002), which introduced 'order-only prerequisites'. Your copy of make is choking on order-only prerequisites.
Thanks, Ward.
On Tue, May 20, 2008 at 11:11:49PM -0400, Ward Vandewege wrote:
On Wed, May 21, 2008 at 10:57:01AM +0800, qchwu wrote:
[root@localhost buildrom-devel]# make menuconfig # # using defaults found in .config # .config:24:warning: symbol value '' invalid for COREBOOT_V3_ROM_SIZE .config:95:warning: symbol value '' invalid for LAB_PAUSE
*** End of buildrom configuration. *** Execute 'make' to build buildrom or try 'make help'.
[root@localhost buildrom-devel]# make make: *** No rule to make target `|', needed by `/bios/buildrom/buildrom-devel/work/lzma/stamps/.unpacked'. Stop.
..
You need at least make version 3.80 (released in 2002), which introduced 'order-only prerequisites'. Your copy of make is choking on order-only prerequisites.
Nice research, Ward!
Is there some way we can detect make version in the Makefile and teach it this knowledge, allowing for a friendly error message?
//Peter
On Wed, May 21, 2008 at 09:34:21AM +0200, Peter Stuge wrote:
You need at least make version 3.80 (released in 2002), which introduced 'order-only prerequisites'. Your copy of make is choking on order-only prerequisites.
Nice research, Ward!
Is there some way we can detect make version in the Makefile and teach it this knowledge, allowing for a friendly error message?
Here's a hacky rule that will do the check when bash is $SHELL. Please improve it any way you can. Maybe there are some predefined variables with the make version we can use instead?
If people like it I could make a patch.
.PHONY: versioncheck
versioncheck: @ echo GNU make 3.79.1 | \ (read g m v; \ vmaj=$${v/.*}; vaftmaj=$${v#*.}; vmin=$${vaftmaj%%.*}; \ test $$vmaj -lt 3 -o $$vmin -lt 80 && \ echo "Sorry, you need GNU make version 3.80 or newer. (found: $${v})" && \ exit 1; exit 0)
//Peter
On Wed, May 21, 2008 at 12:44:24PM +0200, Peter Stuge wrote:
Here's a hacky rule that will do the check when bash is $SHELL. Please improve it any way you can. Maybe there are some predefined variables with the make version we can use instead?
If people like it I could make a patch.
.PHONY: versioncheck
versioncheck: @ echo GNU make 3.79.1 | \ (read g m v; \ vmaj=$${v/.*}; vaftmaj=$${v#*.}; vmin=$${vaftmaj%%.*}; \ test $$vmaj -lt 3 -o $$vmin -lt 80 && \
..just noticed this logic is incomplete. But you get the idea.
//Peter