From d7d57699ef83cce36d87bef73c9e1fbdc765a64c Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 23 Jun 2005 05:09:05 +0000 Subject: [PATCH] Add support for building a few commonly used bootloaders --- target/Config.in | 5 +++ target/powerpc/yaboot/Config.in | 6 +++ target/powerpc/yaboot/yaboot.mk | 44 +++++++++++++++++++++ target/x86/grub/Config.in | 6 +++ target/x86/grub/grub.mk | 70 +++++++++++++++++++++++++++++++++ target/x86/syslinux/Config.in | 6 +++ target/x86/syslinux/syslinux.mk | 40 +++++++++++++++++++ 7 files changed, 177 insertions(+) create mode 100644 target/powerpc/yaboot/Config.in create mode 100644 target/powerpc/yaboot/yaboot.mk create mode 100644 target/x86/grub/Config.in create mode 100644 target/x86/grub/grub.mk create mode 100644 target/x86/syslinux/Config.in create mode 100644 target/x86/syslinux/syslinux.mk diff --git a/target/Config.in b/target/Config.in index 88b4b0e36b..010f76b397 100644 --- a/target/Config.in +++ b/target/Config.in @@ -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 index 0000000000..2072421d66 --- /dev/null +++ b/target/powerpc/yaboot/Config.in @@ -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 index 0000000000..d463bcb7d3 --- /dev/null +++ b/target/powerpc/yaboot/yaboot.mk @@ -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 index 0000000000..2dc241a23e --- /dev/null +++ b/target/x86/grub/Config.in @@ -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 index 0000000000..bac341814e --- /dev/null +++ b/target/x86/grub/grub.mk @@ -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 index 0000000000..98465fcd77 --- /dev/null +++ b/target/x86/syslinux/Config.in @@ -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 index 0000000000..05092ac574 --- /dev/null +++ b/target/x86/syslinux/syslinux.mk @@ -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