Move from our grub2 fork to mainline grub2, now that the features we need have
[buildrom.git] / buildrom-devel / packages / grub2 / grub2.mk
blob8d8604bad7b3065c21c064581ad71201968e3d0e
1 GRUB2_URL=svn://svn.savannah.gnu.org/grub/trunk/grub2
2 GRUB2_TAG=1929
4 GRUB2_DIR=$(BUILD_DIR)/grub2
5 GRUB2_SRC_DIR=$(GRUB2_DIR)/svn
6 GRUB2_STAMP_DIR=$(GRUB2_DIR)/stamps
7 GRUB2_LOG_DIR=$(GRUB2_DIR)/logs
9 ifeq ($(CONFIG_VERBOSE),y)
10 GRUB2_FETCH_LOG=/dev/stdout
11 GRUB2_BUILD_LOG=/dev/stdout
12 GRUB2_INSTALL_LOG=/dev/stdout
13 else
14 GRUB2_BUILD_LOG=$(GRUB2_LOG_DIR)/build.log
15 GRUB2_INSTALL_LOG=$(GRUB2_LOG_DIR)/install.log
16 GRUB2_FETCH_LOG=$(GRUB2_LOG_DIR)/fetch.log
17 endif
19 GRUB2_MODULES=normal ls cat help ext2 iso9660 reiserfs xfs fat pc gpt ata serial memdisk multiboot linux boot cpio configfile search terminal
21 GRUB2_TARBALL=grub2-svn-$(GRUB2_TAG).tar.gz
23 GRUB2_MEMDISK_DIR=$(STAGING_DIR)/grub2_memdisk
24 GRUB2_MEMDISK_TARBALL=$(GRUB2_MEMDISK_DIR)/memdisk.tar
26 ifeq ($(shell if [ -f $(PACKAGE_DIR)/grub2/conf/customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD) ]; then echo 1; fi),1)
27 GRUB2_CONFIG = $(PACKAGE_DIR)/grub2/conf/customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD)
28 else
29 GRUB2_CONFIG = $(GRUB2_SRC_DIR)/configs/defconfig
30 endif
32 $(SOURCE_DIR)/$(GRUB2_TARBALL):
33 @ mkdir -p $(SOURCE_DIR)/grub2
34 @ $(BIN_DIR)/fetchsvn.sh $(GRUB2_URL) $(SOURCE_DIR)/grub2 \
35 $(GRUB2_TAG) $(SOURCE_DIR)/$(GRUB2_TARBALL) \
36 > $(GRUB2_FETCH_LOG) 2>&1
38 $(GRUB2_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(GRUB2_TARBALL) | $(GRUB2_STAMP_DIR) $(GRUB2_DIR)
39 @ echo "Unpacking grub2..."
40 @ tar -C $(GRUB2_DIR) -zxf $(SOURCE_DIR)/$(GRUB2_TARBALL)
41 @ touch $@
43 $(GRUB2_STAMP_DIR)/.configured: $(GRUB2_STAMP_DIR)/.unpacked
44 @ touch $@
46 $(GRUB2_SRC_DIR)/grub-mkelfimage: $(GRUB2_STAMP_DIR)/.configured
47 ifeq ($(findstring customconfig,$(GRUB2_CONFIG)),customconfig)
48 @ echo "Using custom config $(GRUB2_CONFIG)"
49 endif
50 @ echo "Building grub2..."
51 @ ln -s $(GRUB2_SRC_DIR)/config.log $(GRUB2_LOG_DIR)
52 @ (cd $(GRUB2_SRC_DIR) ; sh ./autogen.sh >> $(GRUB2_BUILD_LOG) 2>&1)
53 @ (cd $(GRUB2_SRC_DIR) ; export LIBS= CC= LDFLAGS= CFLAGS=; ./configure --with-platform=coreboot --prefix=$(STAGING_DIR) >> $(GRUB2_BUILD_LOG) 2>&1)
54 @ make -C $(GRUB2_SRC_DIR) >> $(GRUB2_BUILD_LOG) 2>&1
56 $(GRUB2_STAMP_DIR)/.installed: $(GRUB2_SRC_DIR)/grub-mkelfimage
57 @ chmod uga+x $(GRUB2_SRC_DIR)/mkinstalldirs
58 @ (cd $(GRUB2_SRC_DIR); make install > $(GRUB2_INSTALL_LOG) 2>&1)
59 @ touch $@
61 $(GRUB2_MEMDISK_TARBALL): $(GRUB2_STAMP_DIR)/.configured $(GRUB2_MEMDISK_DIR)
62 @ (cd $(GRUB2_MEMDISK_DIR); mkdir -p boot/grub)
63 @ cp $(PACKAGE_DIR)/grub2/boot/grub/grub.cfg $(GRUB2_MEMDISK_DIR)/boot/grub/
64 @ (cd $(GRUB2_MEMDISK_DIR); tar -cf $@ boot)
67 $(GRUB2_DIR)/grub2.elf: $(GRUB2_STAMP_DIR)/.installed $(GRUB2_MEMDISK_TARBALL)
68 @ (cd $(GRUB2_SRC_DIR) ; $(STAGING_DIR)/bin/grub-mkelfimage -d . -o $@ $(GRUB2_MODULES) -m $(GRUB2_MEMDISK_TARBALL) --prefix='(memdisk)/boot/grub')
70 $(GRUB2_STAMP_DIR)/.copied: $(GRUB2_DIR)/grub2.elf
71 @ mkdir -p $(shell dirname $(PAYLOAD_ELF))
72 @ cp $(GRUB2_DIR)/grub2.elf $(PAYLOAD_ELF)
73 @ touch $@
75 $(GRUB2_STAMP_DIR) $(GRUB2_LOG_DIR) $(GRUB2_MEMDISK_DIR):
76 @ mkdir -p $@
78 grub2: $(GRUB2_STAMP_DIR) $(GRUB2_LOG_DIR) $(GRUB2_STAMP_DIR)/.copied
80 grub2-clean:
81 @ echo "Cleaning grub2..."
82 @ rm -f $(GRUB2_DIR)/grub2.elf
83 @ rm -f $(GRUB2_STAMP_DIR)/.configured
84 @ rm -f $(GRUB2_STAMP_DIR)/.copied
85 ifneq ($(wildcard $(GRUB2_SRC_DIR)/Makefile),)
86 @ $(MAKE) -C $(GRUB2_SRC_DIR) clean > /dev/null 2>&1
87 endif
89 grub2-distclean:
90 @ rm -rf $(GRUB2_DIR)/*
92 grub2-extract: $(GRUB2_STAMP_DIR)/.patched