Commit d7d57699 authored by Eric Andersen's avatar Eric Andersen
Browse files

Add support for building a few commonly used bootloaders

parent f5723cdb
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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"
+6 −0
Original line number Diff line number Diff line
config BR2_TARGET_YABOOT
	bool "grub bootloader"
	default n
	depends on BR2_powerpc
	help
	  The yaboot bootloader for new world powerpc systems.
+44 −0
Original line number Diff line number Diff line
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
+6 −0
Original line number Diff line number Diff line
config BR2_TARGET_GRUB
	bool "grub bootloader"
	default n
	depends on BR2_i386
	help
	  The GRand Unified Bootloader for x86 systems.
+70 −0
Original line number Diff line number Diff line
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
Loading