]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Search for ldlinux.c32 separately from isolinux.bin
authorMichael Brown <mcb30@ipxe.org>
Tue, 1 Sep 2015 19:58:28 +0000 (20:58 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 1 Sep 2015 20:04:44 +0000 (21:04 +0100)
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>
src/arch/i386/Makefile
src/arch/i386/Makefile.pcbios
src/util/geniso

index 99f875314b86f91832b7a61f7ea4d37ed17c5d94..7f706a5a466e5b32c43ceb54f0a7f38e8c59885c 100644 (file)
@@ -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
 #
index ff823737d10b1241628071dd927a6343055eb1cb..02952f81b55e8a6448ac29802eb64155ccd1d64d 100644 (file)
@@ -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
index 521c929e1ca3b9d1bb1d5c5b82e0398d7eef10e1..ff090d4a085f229dcc99a2ab95a7eafd2bca08c2 100755 (executable)
@@ -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