summaryrefslogtreecommitdiff
path: root/boot/syslinux
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2010-03-14 18:20:45 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2010-06-10 21:05:12 +0200
commit649b5b92509dba021ed47ef4c04f358de83ba36f (patch)
treee0f22590fe9a99eba5565bbb4738b6f833b2c9fb /boot/syslinux
parent7c709f4affc44f3bbc9a09fec8d84ae3807e31e7 (diff)
bootloaders: move bootloader build code to boot/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'boot/syslinux')
-rw-r--r--boot/syslinux/Config.in12
-rw-r--r--boot/syslinux/syslinux-3.82-makefile.patch11
-rw-r--r--boot/syslinux/syslinux.mk70
3 files changed, 93 insertions, 0 deletions
diff --git a/boot/syslinux/Config.in b/boot/syslinux/Config.in
new file mode 100644
index 000000000..c65bc1f10
--- /dev/null
+++ b/boot/syslinux/Config.in
@@ -0,0 +1,12 @@
+config BR2_TARGET_SYSLINUX
+ bool "syslinux"
+ depends on BR2_i386
+ help
+ 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.
diff --git a/boot/syslinux/syslinux-3.82-makefile.patch b/boot/syslinux/syslinux-3.82-makefile.patch
new file mode 100644
index 000000000..9e98a7879
--- /dev/null
+++ b/boot/syslinux/syslinux-3.82-makefile.patch
@@ -0,0 +1,11 @@
+--- syslinux-3.82-org/Makefile 2009-09-17 13:11:23.000000000 +0200
++++ syslinux-3.82/Makefile 2009-09-17 13:13:32.000000000 +0200
+@@ -42,7 +42,7 @@
+ mbr/mbr_c.bin mbr/altmbr_c.bin mbr/gptmbr_c.bin \
+ mbr/mbr_f.bin mbr/altmbr_f.bin mbr/gptmbr_f.bin \
+ core/pxelinux.0 core/isolinux.bin core/isolinux-debug.bin \
+- gpxe/gpxelinux.0 dos/syslinux.com win32/syslinux.exe \
++ gpxe/gpxelinux.0 dos/syslinux.com \
+ $(MODULES)
+
+ # BSUBDIRs build the on-target binary components.
diff --git a/boot/syslinux/syslinux.mk b/boot/syslinux/syslinux.mk
new file mode 100644
index 000000000..df27b6d8f
--- /dev/null
+++ b/boot/syslinux/syslinux.mk
@@ -0,0 +1,70 @@
+SYSLINUX_SUPPORTED_ARCH=n
+ifeq ($(ARCH),i386)
+SYSLINUX_SUPPORTED_ARCH=y
+endif
+ifeq ($(ARCH),i486)
+SYSLINUX_SUPPORTED_ARCH=y
+endif
+ifeq ($(ARCH),i586)
+SYSLINUX_SUPPORTED_ARCH=y
+endif
+ifeq ($(ARCH),i686)
+SYSLINUX_SUPPORTED_ARCH=y
+endif
+ifeq ($(ARCH),x86_64)
+SYSLINUX_SUPPORTED_ARCH=y
+endif
+ifeq ($(SYSLINUX_SUPPORTED_ARCH),y)
+
+#############################################################
+#
+# syslinux to make target msdos/iso9660 filesystems bootable
+#
+#############################################################
+
+SYSLINUX_VERSION:=3.82
+SYSLINUX_DIR=$(BUILD_DIR)/syslinux-$(SYSLINUX_VERSION)
+SYSLINUX_DIR2=$(TOOLCHAIN_DIR)/syslinux-$(SYSLINUX_VERSION)
+SYSLINUX_SOURCE=syslinux-$(SYSLINUX_VERSION).tar.bz2
+SYSLINUX_CAT:=$(BZCAT)
+SYSLINUX_SITE=$(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux/
+SYSLINUX_BIN=$(SYSLINUX_DIR2)/mtools/syslinux
+
+
+$(DL_DIR)/$(SYSLINUX_SOURCE):
+ $(call DOWNLOAD,$(SYSLINUX_SITE),$(SYSLINUX_SOURCE))
+
+syslinux-source: $(DL_DIR)/$(SYSLINUX_SOURCE)
+
+$(SYSLINUX_DIR)/Makefile: $(DL_DIR)/$(SYSLINUX_SOURCE) $(SYSLINUX_PATCH)
+ $(SYSLINUX_CAT) $(DL_DIR)/$(SYSLINUX_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(SYSLINUX_DIR) boot/syslinux/ \*.patch
+ touch -c $@
+
+$(SYSLINUX_DIR)/isolinux.bin $(SYSLINUX_DIR)/pxelinux.bin: $(SYSLINUX_DIR)/Makefile
+ $(MAKE) CC="$(HOSTCC)" AR="$(HOSTAR)" -C $(SYSLINUX_DIR)
+ touch -c $@
+
+syslinux: $(SYSLINUX_DIR)/isolinux.bin
+pxelinux: $(SYSLINUX_DIR)/pxelinux.bin
+
+pxelinux-clean syslinux-clean:
+ rm -f $(SYSLINUX_DIR)/isolinux.bin $(SYSLINUX_DIR)/pxelinux.bin
+ -$(MAKE) -C $(SYSLINUX_DIR) clean
+
+pxelinux-dirclean syslinux-dirclean:
+ rm -rf $(SYSLINUX_DIR)
+
+endif
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(BR2_TARGET_SYSLINUX),y)
+TARGETS+=syslinux
+endif
+ifeq ($(BR2_TARGET_PXELINUX),y)
+TARGETS+=pxelinux
+endif