summaryrefslogtreecommitdiff
path: root/target/x86/grub
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2005-06-23 05:09:05 +0000
committerEric Andersen <andersen@codepoet.org>2005-06-23 05:09:05 +0000
commitd7d57699ef83cce36d87bef73c9e1fbdc765a64c (patch)
treee43edbfd5eaaadf7acd1237081dce715d1ea0a57 /target/x86/grub
parentf5723cdb9b3d899278a56368c9bec89a2e51d800 (diff)
Add support for building a few commonly used bootloaders
Diffstat (limited to 'target/x86/grub')
-rw-r--r--target/x86/grub/Config.in6
-rw-r--r--target/x86/grub/grub.mk70
2 files changed, 76 insertions, 0 deletions
diff --git a/target/x86/grub/Config.in b/target/x86/grub/Config.in
new file mode 100644
index 000000000..2dc241a23
--- /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 000000000..bac341814
--- /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