[build] Fix broken build caused by implied dependency upon "perl"

Commit ea12dc0 ("[build] Avoid hard-coding the path to perl")
introduced a build failure for fully clean trees (e.g. after running
"make veryclean"), since the dependency upon $(PARSEROM) now includes
a dependency upon "perl" (which doesn't exist) rather than upon
"/usr/bin/perl" (which does exist).

There should of course be no dependency upon the perl binary at all;
the dependency should be upon "./util/parserom.pl" alone.

Fix by removing the $(PERL) from the definition of Perl-based utility
paths, and adding $(PERL) at the point of usage.

Reported-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/1/head
Michael Brown 2010-06-24 17:20:35 +01:00
parent ea12dc0ec3
commit 719b49879d
3 changed files with 14 additions and 14 deletions

View File

@ -31,12 +31,12 @@ RANLIB := $(CROSS_COMPILE)ranlib
OBJCOPY := $(CROSS_COMPILE)objcopy OBJCOPY := $(CROSS_COMPILE)objcopy
NM := $(CROSS_COMPILE)nm NM := $(CROSS_COMPILE)nm
OBJDUMP := $(CROSS_COMPILE)objdump OBJDUMP := $(CROSS_COMPILE)objdump
PARSEROM := $(PERL) ./util/parserom.pl PARSEROM := ./util/parserom.pl
FIXROM := $(PERL) ./util/fixrom.pl FIXROM := ./util/fixrom.pl
SYMCHECK := $(PERL) ./util/symcheck.pl SYMCHECK := ./util/symcheck.pl
SORTOBJDUMP := $(PERL) ./util/sortobjdump.pl SORTOBJDUMP := ./util/sortobjdump.pl
PADIMG := $(PERL) ./util/padimg.pl PADIMG := ./util/padimg.pl
LICENCE := $(PERL) ./util/licence.pl LICENCE := ./util/licence.pl
NRV2B := ./util/nrv2b NRV2B := ./util/nrv2b
ZBIN := ./util/zbin ZBIN := ./util/zbin
ELF2EFI32 := ./util/elf2efi32 ELF2EFI32 := ./util/elf2efi32

View File

@ -486,7 +486,7 @@ define src_template
'\n$(2) : $$($(4)_DEPS)\n' \ '\n$(2) : $$($(4)_DEPS)\n' \
'\nTAGS : $$($(4)_DEPS)\n' \ '\nTAGS : $$($(4)_DEPS)\n' \
>> $(2) >> $(2)
@$(PARSEROM) $(1) >> $(2) @$(PERL) $(PARSEROM) $(1) >> $(2)
endef endef
@ -701,7 +701,7 @@ $(BIN)/%.tmp : $(BLIB) $(MAKEDEPS) $(LDSCRIPT)
$(QM)$(ECHO) " [LD] $@" $(QM)$(ECHO) " [LD] $@"
$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $(BLIB) -o $@ \ $(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $(BLIB) -o $@ \
--defsym _build_id=`$(BUILD_ID_CMD)` -Map $(BIN)/$*.tmp.map --defsym _build_id=`$(BUILD_ID_CMD)` -Map $(BIN)/$*.tmp.map
$(Q)$(OBJDUMP) -ht $@ | $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map $(Q)$(OBJDUMP) -ht $@ | $(PERL) $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
# Keep intermediate object file (useful for debugging) # Keep intermediate object file (useful for debugging)
.PRECIOUS : $(BIN)/%.tmp .PRECIOUS : $(BIN)/%.tmp
@ -758,7 +758,7 @@ $(BIN)/%.licence : $(BIN)/%.tmp
echo "files are missing a licence declaration:" ;\ echo "files are missing a licence declaration:" ;\
echo $(call unlicensed_deps_list,$<);\ echo $(call unlicensed_deps_list,$<);\
exit 1,\ exit 1,\
$(LICENCE) $(call licence_list,$<)) $(PERL) $(LICENCE) $(call licence_list,$<))
# Extract compression information from intermediate object file # Extract compression information from intermediate object file
# #
@ -986,7 +986,7 @@ $(SYMTAB) : $(BLIB)
CLEANUP += $(BIN)/symtab CLEANUP += $(BIN)/symtab
symcheck : $(SYMTAB) symcheck : $(SYMTAB)
$(SYMCHECK) $< $(PERL) $(SYMCHECK) $<
endif # defined(BIN) endif # defined(BIN)

View File

@ -23,14 +23,14 @@ MEDIA += raw
# Padding rules # Padding rules
# #
PAD_rom = $(PADIMG) --blksize=512 --byte=0xff $@ PAD_rom = $(PERL) $(PADIMG) --blksize=512 --byte=0xff $@
PAD_mrom = $(PAD_rom) PAD_mrom = $(PAD_rom)
PAD_dsk = $(PADIMG) --blksize=512 $@ PAD_dsk = $(PERL) $(PADIMG) --blksize=512 $@
PAD_hd = $(PADIMG) --blksize=32768 $@ PAD_hd = $(PERL) $(PADIMG) --blksize=32768 $@
# Finalisation rules # Finalisation rules
# #
FINALISE_rom = $(FIXROM) $@ FINALISE_rom = $(PERL) $(FIXROM) $@
FINALISE_mrom = $(FINALISE_rom) FINALISE_mrom = $(FINALISE_rom)
# rule to make a non-emulation ISO boot image # rule to make a non-emulation ISO boot image