# # IP Engineering Rescue Disk # Copyright (C) 2017 David M. Syzdek . # # @SYZDEK_BSD_LICENSE_START@ # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of David M. Syzdek nor the # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID M. SYZDEK BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @SYZDEK_BSD_LICENSE_END@ # SYSLINUX_VERSION ?= 6.04-pre1 MIRROR_SYSLINUX ?= https://www.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/syslinux-6.04-pre1.tar.xz CLEANFILES += tmp/src/syslinux-$(SYSLINUX_VERSION) SYSLINUX_CONFIGS = \ EFI/BOOT/pxelia32.cfg \ EFI/BOOT/pxelx64.cfg \ EFI/BOOT/syslia32.cfg \ EFI/BOOT/syslx64.cfg \ syslinux/isolinux.cfg \ syslinux/pxelinux.cfg \ syslinux/syslinux.cfg SYSLINUX_INCLUDES = \ var/config/isolinux.inc \ var/config/pxelinux.inc \ var/config/pxelia32.inc \ var/config/pxelx64.inc \ var/config/syslinux.inc \ var/config/syslia32.inc \ var/config/syslx64.inc SYSLINUX_BINARIES = \ EFI/BOOT/BOOTX64.EFI \ EFI/BOOT/BOOTX64.EFI.0 \ EFI/BOOT/BOOTIA32.EFI \ EFI/BOOT/BOOTIA32.EFI.0 \ EFI/BOOT/ldlinux.e32 \ EFI/BOOT/ldlinux.e64 \ ldlinux.e32 \ ldlinux.e64 tmp/src/syslinux-$(SYSLINUX_VERSION)/.iperd-extracted: ./src/scripts/download.sh \ tmp/src/syslinux-$(SYSLINUX_VERSION).tar.xz \ $(MIRROR_SYSLINUX) cd tmp/src && tar -xf syslinux-$(SYSLINUX_VERSION).tar.xz touch $(@) syslinux/iperd.dep: tmp/src/syslinux-$(SYSLINUX_VERSION)/.iperd-extracted rm -Rf syslinux rm -Rf EFI cd tmp/src/syslinux-$(SYSLINUX_VERSION); \ make -s install INSTALLROOT="$(PWD)/tmp/syslinux" \ || { rm -Rf tmp/src/syslinux-$(SYSLINUX_VERSION); exit 1; } rsync -ra "$(PWD)/tmp/syslinux/usr/share/syslinux/" syslinux rsync -ra "$(PWD)/tmp/syslinux/usr/bin/" syslinux/bin rsync -ra "$(PWD)/tmp/syslinux/sbin/" syslinux/sbin cp /usr/share/hwdata/pci.ids syslinux/ cp /lib/modules/$$(uname -r)/modules.alias syslinux/modules.als cp syslinux/isolinux.bin syslinux/isolinux.bin.mod @touch "$(@)" EFI/BOOT/BOOTX64.EFI EFI/BOOT/BOOTX64.EFI.0: syslinux/iperd.dep @mkdir -p $$(dirname $(@)) cp syslinux/efi64/syslinux.efi $(@) @touch $(@) EFI/BOOT/BOOTIA32.EFI EFI/BOOT/BOOTIA32.EFI.0: syslinux/iperd.dep @mkdir -p $$(dirname $(@)) cp syslinux/efi32/syslinux.efi $(@) @touch $(@) EFI/BOOT/ldlinux.e32 ldlinux.e32: syslinux/iperd.dep @mkdir -p $$(dirname $(@)) cp syslinux/efi32/ldlinux.e32 $(@) @touch $(@) EFI/BOOT/ldlinux.e64 ldlinux.e64: syslinux/iperd.dep @mkdir -p $$(dirname $(@)) cp syslinux/efi64/ldlinux.e64 $(@) @touch $(@) do_syslinux_cfg = \ mkdir -p $$(dirname $(@)); \ rm -f "$(@)"; \ rm -f "$${SYSLINUX_INC_FILE}"; \ echo 'bash ./src/scripts/genfiles.sh $${SYSLINUX_INC_FILE}'; \ bash ./src/scripts/genfiles.sh "$${SYSLINUX_INC_FILE}"; \ echo 'do_subst $$(SYSLINDIR)/common.cfg $${SYSLINUX_INC_FILE} > $(@)'; \ $(do_subst) \ $(SYSLINDIR)/common.cfg \ $${SYSLINUX_INC_FILE} \ | sed \ -e "s,[@]SYSLINUX_FLAVOR[@],$${SYSLINUX_FLAVOR},g" \ -e "s,[@]SYSLINUX_PATH[@],$${SYSLINUX_PATH},g" \ > "$(@)"; \ touch "$(@)" EFI/BOOT/pxelia32.cfg: Makefile.config $(SYSLINUX_INC_DEPS) $(SYSLINDIR)/common.cfg @SYSLINUX_INC_FILE="var/config/pxelia32.inc"; \ SYSLINUX_FLAVOR="pxe/UEFI IA32"; \ SYSLINUX_PATH="/syslinux/efi32/"; \ $(do_syslinux_cfg); EFI/BOOT/pxelx64.cfg: Makefile.config $(SYSLINUX_INC_DEPS) $(SYSLINDIR)/common.cfg @SYSLINUX_INC_FILE="var/config/pxelx64.inc"; \ SYSLINUX_FLAVOR="pxe/UEFI X64"; \ SYSLINUX_PATH="/syslinux/efi64/"; \ $(do_syslinux_cfg); EFI/BOOT/syslia32.cfg: Makefile.config $(SYSLINUX_INC_DEPS) $(SYSLINDIR)/common.cfg @SYSLINUX_INC_FILE="var/config/syslia32.inc"; \ SYSLINUX_FLAVOR="sys/UEFI IA32"; \ SYSLINUX_PATH="/syslinux/efi32/"; \ $(do_syslinux_cfg); EFI/BOOT/syslx64.cfg: Makefile.config $(SYSLINUX_INC_DEPS) $(SYSLINDIR)/common.cfg @SYSLINUX_INC_FILE="var/config/syslx64.inc"; \ SYSLINUX_FLAVOR="sys/UEFI X64"; \ SYSLINUX_PATH="/syslinux/efi64/"; \ $(do_syslinux_cfg); syslinux/isolinux.cfg: Makefile.config $(SYSLINUX_INC_DEPS) $(SYSLINDIR)/common.cfg @SYSLINUX_INC_FILE="var/config/isolinux.inc"; \ SYSLINUX_FLAVOR="iso/BIOS"; \ SYSLINUX_PATH="/syslinux/"; \ $(do_syslinux_cfg); syslinux/pxelinux.cfg: Makefile.config $(SYSLINUX_INC_DEPS) $(SYSLINDIR)/common.cfg @SYSLINUX_INC_FILE="var/config/pxelinux.inc"; \ SYSLINUX_FLAVOR="pxe/BIOS"; \ SYSLINUX_PATH="/syslinux/"; \ $(do_syslinux_cfg); syslinux/syslinux.cfg: Makefile.config $(SYSLINUX_INC_DEPS) $(SYSLINDIR)/common.cfg @SYSLINUX_INC_FILE="var/config/syslinux.inc"; \ SYSLINUX_FLAVOR="sys/BIOS"; \ SYSLINUX_PATH="/syslinux/"; \ $(do_syslinux_cfg); # end of makefile