From f6e1da5cbf70a372f2b622c8021c98503cab8323 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 1 Sep 2015 20:58:28 +0100 Subject: [PATCH] [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 --- src/arch/i386/Makefile | 25 +++++++++++++++++-------- src/arch/i386/Makefile.pcbios | 3 ++- src/util/geniso | 3 +-- 3 files changed, 20 insertions(+), 11 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