From: Michael Brown Date: Tue, 1 Sep 2015 19:58:28 +0000 (+0100) Subject: [build] Search for ldlinux.c32 separately from isolinux.bin X-Git-Tag: v1.20.1~712 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6e1da5cbf70a372f2b622c8021c98503cab8323;p=thirdparty%2Fipxe.git [build] Search for ldlinux.c32 separately from isolinux.bin Some distributions (observed with Ubuntu 15.04) place ldlinux.c32 in a separate directory from isolinux.bin. Search for these files separately, and allow an alternative location of ldlinux.c32 to be provided via LDLINUX_C32=... on the make command line. Reported-by: Adrian Koshka Tested-by: Adrian Koshka Signed-off-by: Michael Brown --- diff --git a/src/arch/i386/Makefile b/src/arch/i386/Makefile index 99f875314..7f706a5a4 100644 --- a/src/arch/i386/Makefile +++ b/src/arch/i386/Makefile @@ -84,18 +84,27 @@ endif # CFLAGS_lkrnprefix += -DVERSION="\"$(VERSION)\"" -# Locations of utilities -# +# Locations of isolinux files +# +SYSLINUX_DIR_LIST := \ + /usr/lib/syslinux \ + /usr/lib/syslinux/bios \ + /usr/lib/syslinux/modules/bios \ + /usr/share/syslinux \ + /usr/share/syslinux/bios \ + /usr/share/syslinux/modules/bios \ + /usr/local/share/syslinux \ + /usr/local/share/syslinux/bios \ + /usr/local/share/syslinux/modules/bios \ + /usr/lib/ISOLINUX ISOLINUX_BIN_LIST := \ $(ISOLINUX_BIN) \ - /usr/lib/syslinux/isolinux.bin \ - /usr/lib/syslinux/bios/isolinux.bin \ - /usr/share/syslinux/isolinux.bin \ - /usr/share/syslinux/bios/isolinux.bin \ - /usr/local/share/syslinux/isolinux.bin \ - /usr/local/share/syslinux/bios/isolinux.bin \ - /usr/lib/ISOLINUX/isolinux.bin + $(patsubst %,%/isolinux.bin,$(SYSLINUX_DIR_LIST)) +LDLINUX_C32_LIST := \ + $(LDLINUX_C32) \ + $(patsubst %,%/ldlinux.c32,$(SYSLINUX_DIR_LIST)) ISOLINUX_BIN = $(firstword $(wildcard $(ISOLINUX_BIN_LIST))) +LDLINUX_C32 = $(firstword $(wildcard $(LDLINUX_C32_LIST))) # i386-specific directories containing source files # diff --git a/src/arch/i386/Makefile.pcbios b/src/arch/i386/Makefile.pcbios index ff823737d..02952f81b 100644 --- a/src/arch/i386/Makefile.pcbios +++ b/src/arch/i386/Makefile.pcbios @@ -57,7 +57,8 @@ LIST_NAME_isarom := ROMS NON_AUTO_MEDIA += iso %iso: %lkrn util/geniso $(QM)$(ECHO) " [GENISO] $@" - $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) VERSION="$(VERSION)" bash util/geniso -o $@ $< + $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) LDLINUX_C32=$(LDLINUX_C32) \ + VERSION="$(VERSION)" bash util/geniso -o $@ $< # rule to make a floppy emulation ISO boot image NON_AUTO_MEDIA += liso diff --git a/src/util/geniso b/src/util/geniso index 521c929e1..ff090d4a0 100755 --- a/src/util/geniso +++ b/src/util/geniso @@ -123,8 +123,7 @@ case "${LEGACY}" in cp ${ISOLINUX_BIN} ${dir} # syslinux 6.x needs a file called ldlinux.c32 - LDLINUX_C32=$(dirname ${ISOLINUX_BIN})/ldlinux.c32 - if [ -s ${LDLINUX_C32} ]; then + if [ -n "${LDLINUX_C32}" -a -s "${LDLINUX_C32}" ]; then cp ${LDLINUX_C32} ${dir} fi