Commit 5391de77 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

syslinux: convert to GENTARGETS



Moreover, the installation of pxelinux and/or isolinux is now handled
as suboptions, like we traditionally do for other packages. This allows
to have a single option (BR2_TARGET_SYSLINUX) that enables the
syslinux package.

[Peter: drop basename in install step]
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 4346902c
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -5,8 +5,12 @@ config BR2_TARGET_SYSLINUX
	  The syslinux bootloader for x86 systems.
	  This includes: syslinux, pxelinux, extlinux.

config BR2_TARGET_PXELINUX
	bool "pxelinux"
	depends on BR2_i386 || BR2_x86_64
	help
	  The pxelinux loader for x86 systems.
config BR2_TARGET_SYSLINUX_ISOLINUX
	bool "Install isolinux"
	depends on BR2_TARGET_SYSLINUX
	default y

config BR2_TARGET_SYSLINUX_PXELINUX
	bool "Install pxelinux"
	depends on BR2_TARGET_SYSLINUX
	default y
+17 −33
Original line number Diff line number Diff line
@@ -4,42 +4,29 @@
#
#############################################################

SYSLINUX_VERSION:=3.85
SYSLINUX_DIR=$(BUILD_DIR)/syslinux-$(SYSLINUX_VERSION)
SYSLINUX_VERSION = 3.85
SYSLINUX_SOURCE  = syslinux-$(SYSLINUX_VERSION).tar.bz2
SYSLINUX_CAT:=$(BZCAT)
SYSLINUX_SITE    = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux/3.xx/

$(DL_DIR)/$(SYSLINUX_SOURCE):
	 $(call DOWNLOAD,$(SYSLINUX_SITE),$(SYSLINUX_SOURCE))
SYSLINUX_INSTALL_TARGET = NO
SYSLINUX_INSTALL_IMAGES = YES

syslinux-source: $(DL_DIR)/$(SYSLINUX_SOURCE)
SYSLINUX_DEPENDENCIES = host-nasm

$(SYSLINUX_DIR)/.unpacked: $(DL_DIR)/$(SYSLINUX_SOURCE) $(SYSLINUX_PATCH)
	mkdir -p $(@D)
	$(SYSLINUX_CAT) $(DL_DIR)/$(SYSLINUX_SOURCE) | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
	toolchain/patch-kernel.sh $(@D) boot/syslinux/ \*.patch
	touch -c $@
define SYSLINUX_BUILD_CMDS
	$(TARGET_MAKE_ENV) $(MAKE) CC="$(HOSTCC)" AR="$(HOSTAR)" -C $(@D)
endef

$(SYSLINUX_DIR)/.compiled: $(SYSLINUX_DIR)/.unpacked
	$(TARGET_MAKE_ENV) $(MAKE) CC="$(HOSTCC)" AR="$(HOSTAR)" -C $(SYSLINUX_DIR)
	touch -c $@
SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += isolinux.bin
SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += pxelinux.bin

$(BINARIES_DIR)/isolinux.bin: $(SYSLINUX_DIR)/.compiled
	cp -a $(SYSLINUX_DIR)/core/isolinux.bin $@
define SYSLINUX_INSTALL_IMAGES_CMDS
	for i in $(SYSLINUX_IMAGES-y); do \
		$(INSTALL) -D -m 0755 $(@D)/core/$$i $(BINARIES_DIR)/$$i; \
	done
endef

$(BINARIES_DIR)/pxelinux.bin: $(SYSLINUX_DIR)/.compiled
	cp -a $(SYSLINUX_DIR)/core/pxelinux.bin $@

syslinux: host-nasm $(BINARIES_DIR)/isolinux.bin
pxelinux: host-nasm $(BINARIES_DIR)/pxelinux.bin

pxelinux-clean syslinux-clean:
	rm -f $(BINARIES_DIR)/isolinux.bin $(BINARIES_DIR)/pxelinux.bin
	-$(MAKE) -C $(SYSLINUX_DIR) clean

pxelinux-dirclean syslinux-dirclean:
	rm -rf $(SYSLINUX_DIR)
$(eval $(call GENTARGETS,boot,syslinux))

#############################################################
#
@@ -49,6 +36,3 @@ pxelinux-dirclean syslinux-dirclean:
ifeq ($(BR2_TARGET_SYSLINUX),y)
TARGETS+=syslinux
endif
ifeq ($(BR2_TARGET_PXELINUX),y)
TARGETS+=pxelinux
endif