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>
OBJCOPY := $(CROSS_COMPILE)objcopy
NM := $(CROSS_COMPILE)nm
OBJDUMP := $(CROSS_COMPILE)objdump
-PARSEROM := $(PERL) ./util/parserom.pl
-FIXROM := $(PERL) ./util/fixrom.pl
-SYMCHECK := $(PERL) ./util/symcheck.pl
-SORTOBJDUMP := $(PERL) ./util/sortobjdump.pl
-PADIMG := $(PERL) ./util/padimg.pl
-LICENCE := $(PERL) ./util/licence.pl
+PARSEROM := ./util/parserom.pl
+FIXROM := ./util/fixrom.pl
+SYMCHECK := ./util/symcheck.pl
+SORTOBJDUMP := ./util/sortobjdump.pl
+PADIMG := ./util/padimg.pl
+LICENCE := ./util/licence.pl
NRV2B := ./util/nrv2b
ZBIN := ./util/zbin
ELF2EFI32 := ./util/elf2efi32
'\n$(2) : $$($(4)_DEPS)\n' \
'\nTAGS : $$($(4)_DEPS)\n' \
>> $(2)
- @$(PARSEROM) $(1) >> $(2)
+ @$(PERL) $(PARSEROM) $(1) >> $(2)
endef
$(QM)$(ECHO) " [LD] $@"
$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $(BLIB) -o $@ \
--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)
.PRECIOUS : $(BIN)/%.tmp
echo "files are missing a licence declaration:" ;\
echo $(call unlicensed_deps_list,$<);\
exit 1,\
- $(LICENCE) $(call licence_list,$<))
+ $(PERL) $(LICENCE) $(call licence_list,$<))
# Extract compression information from intermediate object file
#
CLEANUP += $(BIN)/symtab
symcheck : $(SYMTAB)
- $(SYMCHECK) $<
+ $(PERL) $(SYMCHECK) $<
endif # defined(BIN)
# Padding rules
#
-PAD_rom = $(PADIMG) --blksize=512 --byte=0xff $@
+PAD_rom = $(PERL) $(PADIMG) --blksize=512 --byte=0xff $@
PAD_mrom = $(PAD_rom)
-PAD_dsk = $(PADIMG) --blksize=512 $@
-PAD_hd = $(PADIMG) --blksize=32768 $@
+PAD_dsk = $(PERL) $(PADIMG) --blksize=512 $@
+PAD_hd = $(PERL) $(PADIMG) --blksize=32768 $@
# Finalisation rules
#
-FINALISE_rom = $(FIXROM) $@
+FINALISE_rom = $(PERL) $(FIXROM) $@
FINALISE_mrom = $(FINALISE_rom)
# rule to make a non-emulation ISO boot image