diff options
author | Michael Brown | 2015-09-01 21:58:28 +0200 |
---|---|---|
committer | Michael Brown | 2015-09-01 22:04:44 +0200 |
commit | f6e1da5cbf70a372f2b622c8021c98503cab8323 (patch) | |
tree | 310d4800cd9d248a81f976a8ce21b1fb4416cb3c | |
parent | [efi] Populate debug directory entry FileOffset field (diff) | |
download | ipxe-f6e1da5cbf70a372f2b622c8021c98503cab8323.tar.gz ipxe-f6e1da5cbf70a372f2b622c8021c98503cab8323.tar.xz ipxe-f6e1da5cbf70a372f2b622c8021c98503cab8323.zip |
[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 <adriankoshcha@teknik.io>
Tested-by: Adrian Koshka <adriankoshcha@teknik.io>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/arch/i386/Makefile | 27 | ||||
-rw-r--r-- | src/arch/i386/Makefile.pcbios | 3 | ||||
-rwxr-xr-x | src/util/geniso | 3 |
3 files changed, 21 insertions, 12 deletions
diff --git a/src/arch/i386/Makefile b/src/arch/i386/Makefile index 99f87531..7f706a5a 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 ff823737..02952f81 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 521c929e..ff090d4a 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 |