Add support for building a few commonly used bootloaders
authorEric Andersen <andersen@codepoet.org>
Thu, 23 Jun 2005 05:09:05 +0000 (05:09 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 23 Jun 2005 05:09:05 +0000 (05:09 -0000)
target/Config.in
target/powerpc/yaboot/Config.in [new file with mode: 0644]
target/powerpc/yaboot/yaboot.mk [new file with mode: 0644]
target/x86/grub/Config.in [new file with mode: 0644]
target/x86/grub/grub.mk [new file with mode: 0644]
target/x86/syslinux/Config.in [new file with mode: 0644]
target/x86/syslinux/syslinux.mk [new file with mode: 0644]

index 88b4b0e36b68f2f3b7b4eeccc39fe46055c55fa9..010f76b397320c5f820a5b3d575f315017a6d460 100644 (file)
@@ -6,6 +6,11 @@ source "target/jffs2/Config.in"
 source "target/squashfs/Config.in"
 source "target/tar/Config.in"
 
+source "target/x86/grub/Config.in"
+source "target/x86/syslinux/Config.in"
+source "target/powerpc/yaboot/Config.in"
+
 endmenu
 
 source "target/device/Config.in"
+
diff --git a/target/powerpc/yaboot/Config.in b/target/powerpc/yaboot/Config.in
new file mode 100644 (file)
index 0000000..2072421
--- /dev/null
@@ -0,0 +1,6 @@
+config BR2_TARGET_YABOOT
+       bool "grub bootloader"
+       default n
+       depends on BR2_powerpc
+       help
+         The yaboot bootloader for new world powerpc systems.
diff --git a/target/powerpc/yaboot/yaboot.mk b/target/powerpc/yaboot/yaboot.mk
new file mode 100644 (file)
index 0000000..d463bcb
--- /dev/null
@@ -0,0 +1,44 @@
+ifeq ($(ARCH),powerpc)
+
+#############################################################
+#
+# yaboot
+#
+#############################################################
+
+YABOOT_SOURCE:=yaboot-1.3.13.tar.gz
+YABOOT_SITE:=http://penguinppc.org/bootloaders/yaboot
+YABOOT_DIR:=$(BUILD_DIR)/yaboot-1.3.13
+
+$(DL_DIR)/$(YABOOT_SOURCE):
+        $(WGET) -P $(DL_DIR) $(YABOOT_SITE)/$(YABOOT_SOURCE)
+
+yaboot-source: $(DL_DIR)/$(YABOOT_SOURCE)
+
+$(YABOOT_DIR)/Makefile: $(DL_DIR)/$(YABOOT_SOURCE)
+       zcat $(DL_DIR)/$(YABOOT_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       touch -c $(YABOOT_DIR)/Makefile
+
+$(YABOOT_DIR)/second/yaboot: $(YABOOT_DIR)/Makefile
+       make -C $(YABOOT_DIR) CROSS=$(TARGET_CROSS)
+       touch -c $(YABOOT_DIR)/second/yaboot
+
+yaboot: $(YABOOT_DIR)/second/yaboot
+
+yaboot-clean:
+       make -C $(YABOOT_DIR) clean
+
+yaboot-dirclean:
+       rm -rf $(YABOOT_DIR)
+
+endif
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_TARGET_YABOOT)),y)
+TARGETS+=yaboot
+endif
+
diff --git a/target/x86/grub/Config.in b/target/x86/grub/Config.in
new file mode 100644 (file)
index 0000000..2dc241a
--- /dev/null
@@ -0,0 +1,6 @@
+config BR2_TARGET_GRUB
+       bool "grub bootloader"
+       default n
+       depends on BR2_i386
+       help
+         The GRand Unified Bootloader for x86 systems.
diff --git a/target/x86/grub/grub.mk b/target/x86/grub/grub.mk
new file mode 100644 (file)
index 0000000..bac3418
--- /dev/null
@@ -0,0 +1,70 @@
+ifeq ($(ARCH),i386)
+#############################################################
+#
+# grub
+#
+#############################################################
+GRUB_SOURCE:=grub_0.95+cvs20040624.orig.tar.gz
+GRUB_PATCH=grub_0.95+cvs20040624-17.diff.gz
+GRUB_SITE=http://ftp.debian.org/debian/pool/main/g/grub
+GRUB_CAT:=zcat
+GRUB_DIR:=$(BUILD_DIR)/grub-0.95+cvs20040624
+GRUB_BINARY:=grub/grub
+GRUB_TARGET_BINARY:=bin/grub
+
+$(DL_DIR)/$(GRUB_SOURCE):
+        $(WGET) -P $(DL_DIR) $(GRUB_SITE)/$(GRUB_SOURCE)
+
+$(DL_DIR)/$(GRUB_PATCH):
+        $(WGET) -P $(DL_DIR) $(GRUB_SITE)/$(GRUB_PATCH)
+
+grub-source: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
+
+$(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
+       $(GRUB_CAT) $(DL_DIR)/$(GRUB_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       $(GRUB_CAT) $(DL_DIR)/$(GRUB_PATCH)  | patch -p1 -d $(GRUB_DIR)
+       for i in `cat $(GRUB_DIR)/debian/patches/00list`; do \
+               cat $(GRUB_DIR)/debian/patches/$$i | patch -p1 -d $(GRUB_DIR); \
+       done
+       touch $(GRUB_DIR)/.unpacked
+
+$(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
+       (cd $(GRUB_DIR); rm -rf config.cache; \
+               $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               CPPFLAGS="$(GRUB_CFLAGS)" \
+               ./configure \
+               --target=$(GNU_TARGET_NAME) \
+               --host=$(GNU_TARGET_NAME) \
+               --build=$(GNU_HOST_NAME) \
+               --prefix=/ \
+               --mandir=/usr/man \
+               --infodir=/usr/info \
+               --disable-auto-linux-mem-opt \
+       );
+       touch  $(GRUB_DIR)/.configured
+
+$(GRUB_DIR)/$(GRUB_BINARY): $(GRUB_DIR)/.configured
+       $(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)
+
+grub-target_binary: $(GRUB_DIR)/$(GRUB_BINARY)
+
+grub: grub-target_binary
+
+grub-clean:
+       $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(GRUB_DIR) uninstall
+       -grub -C $(GRUB_DIR) clean
+
+grub-dirclean:
+       rm -rf $(GRUB_DIR)
+
+endif
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_TARGET_GRUB)),y)
+TARGETS+=grub
+endif
diff --git a/target/x86/syslinux/Config.in b/target/x86/syslinux/Config.in
new file mode 100644 (file)
index 0000000..98465fc
--- /dev/null
@@ -0,0 +1,6 @@
+config BR2_TARGET_SYSLINUX
+       bool "syslinux bootloader"
+       default n
+       depends on BR2_i386
+       help
+         The syslinux bootloader for x86 systems.
diff --git a/target/x86/syslinux/syslinux.mk b/target/x86/syslinux/syslinux.mk
new file mode 100644 (file)
index 0000000..05092ac
--- /dev/null
@@ -0,0 +1,40 @@
+ifeq ($(ARCH),i386)
+#############################################################
+#
+# syslinux to make target msdos/iso9660 filesystems bootable
+#
+#############################################################
+
+SYSLINUX_DIR=$(BUILD_DIR)/syslinux-3.09
+SYSLINUX_SOURCE=syslinux-3.09.tar.bz2
+SYSLINUX_SITE=http://www.kernel.org/pub/linux/utils/boot/syslinux/
+
+$(DL_DIR)/$(SYSLINUX_SOURCE):
+        $(WGET) -P $(DL_DIR) $(SYSLINUX_SITE)/$(SYSLINUX_SOURCE)
+
+$(SYSLINUX_DIR)/Makefile: $(DL_DIR)/$(SYSLINUX_SOURCE) $(SYSLINUX_PATCH)
+       bzcat $(DL_DIR)/$(SYSLINUX_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+       touch -c $(SYSLINUX_DIR)/Makefile
+
+$(SYSLINUX_DIR)/isolinux.bin: $(SYSLINUX_DIR)/Makefile
+       $(MAKE) -C $(SYSLINUX_DIR)
+       touch -c $(SYSLINUX_DIR)/isolinux.bin
+
+syslinux: $(SYSLINUX_DIR)/isolinux.bin
+
+syslinux-clean:
+       -make -C $(SYSLINUX_DIR) clean
+
+syslinux-dirclean:
+       rm -rf $(SYSLINUX_DIR)
+
+endif
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_TARGET_SYSLINUX)),y)
+TARGETS+=syslinux
+endif