[Etherboot-developers] help with 5.1.3 Makefile needed
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Marty C. <md...@et...> - 2002-12-16 16:56:22
|
I'm starting to get bug reports from rom-o-matic.net users using 5.1.3 that look like: > Good evening! I have found an error upon requesting an Etherboot > image: > > ===== cut ===== > Build failed. Status = 2. > > Following is the output from make: > > > make: Entering directory `/tmp/ROMUazyBC' > make: *** No rule to make target `bin32/centaur-c.com'. Stop. > make: Leaving directory `/tmp/ROMUazyBC' > Please let us know that this happened. > ===== cut ===== > > And so I am letting you know that it happened. :-) > > I was requesting a custom 5.1.3 .com-format image for a centaur-c NIC. and sure enough, when I tried to do: $ pwd /home/mdc/etherboot-5.1.3/src $ make bin32/centaur-c.com make: *** No rule to make target `bin32/centaur-c.com'. Stop. Just to test, I also did: $ pwd /home/mdc/etherboot-5.0.8/src $ make bin32/centaur-c.com gcc -E -Wp,-Wall -o bin/comprefix.s comprefix.S as -o bin/comprefix.tmp bin/comprefix.s objcopy -O binary bin/comprefix.tmp bin/comprefix.bin rm -f bin/comprefix.tmp cat bin/comprefix.bin bin32/centaur-c.lzrom > bin32/centaur-c.com rm bin/comprefix.bin I've looked at genrules.pl and Makefile in 5.1.3, and it appears that because of changes to: BUILD_LIBS= $(BLIB32) BUILD_IMGS= $(IMGS32) BUILD_ROMS= $(ROMS32) BUILD_ELFS= $(patsubst %.img, %.elf, $(IMGS32)) $(patsubst %.img, %.lzelf, $(IMGS32)) BUILD_PXES= $(patsubst %.img, %.pxe, $(IMGS32)) $(patsubst %.img, %.lzpxe, $(IMGS32)) BUILD_COMS= $(patsubst %.img, %.com, $(IMGS32)) BUILD_LILOS= $(patsubst %.img, %.lilo, $(IMGS32)) $(patsubst %.img, %.lzlilo, $(IMGS32)) The BUILD_ELFS, BUILD_PXES, BUILD_COMS, and BUILD_LILOS variables are not getting set right. I think in genrules.pl, this part: # Generate the assignments to DOBJS and BINS print "# Driver object files and ROM image files\n"; print "IMG3S2\t:=\n"; print "DOBJS\t:=\n"; foreach my $img (sort keys %buildent) { print "DOBJS\t+= bin32/$img.o\n"; print "IMGS32\t+= bin32/$img.img bin32/$img.lzimg bin32/$img.nrv2bimg\n" } print "ROMS32\t:=\n"; foreach my $family (sort keys %pcient) { my $aref = $pcient{$family}; foreach my $entry (@$aref) { my $rom = $entry->[0]; print "ROMS32\t+= bin32/$rom.rom bin32/$rom.lzrom bin32/$rom.nrv2brom\n"; } } foreach my $isa (sort keys %isaent) { print "ROMS32\t+= bin32/$isa.rom bin32/$isa.lzrom bin32/$isa.nrv2brom\n"; } Needs to be generalized, so people can say "make bin32/mx98715.com" Right now, it looks like it is only allowing "make bin32/tulip.com" which works, but complicates life for the user, since they don't know necessarily what family to build for. I suppose I could fake it on the rom-o-matic.net site because I do happen to know what family each ROM is a member of, and could modify the make appropriately, but this seems like it should be fixed in the Makefile and genrules. Any chance anyone has some cycles to look at this? It may be a while before I can. Thanks, Marty -- Try: http://rom-o-matic.net/ to make Etherboot images instantly. Name: Marty Connor US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA Voice: (617) 491-6935; Fax: (617) 491-7046 Email: md...@et... Web: http://www.etherboot.org/ |