1 GRUB2_URL
=svn
://svn.savannah.gnu.org
/grub
/trunk
/grub2
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
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
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
)
29 GRUB2_CONFIG
= $(GRUB2_SRC_DIR
)/configs
/defconfig
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
)
43 $(GRUB2_STAMP_DIR
)/.configured
: $(GRUB2_STAMP_DIR
)/.unpacked
46 $(GRUB2_SRC_DIR
)/grub-mkelfimage
: $(GRUB2_STAMP_DIR
)/.configured
47 ifeq ($(findstring customconfig
,$(GRUB2_CONFIG
)),customconfig
)
48 @ echo
"Using custom config $(GRUB2_CONFIG)"
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)
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
)
75 $(GRUB2_STAMP_DIR
) $(GRUB2_LOG_DIR
) $(GRUB2_MEMDISK_DIR
):
78 grub2
: $(GRUB2_STAMP_DIR
) $(GRUB2_LOG_DIR
) $(GRUB2_STAMP_DIR
)/.copied
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
90 @
rm -rf
$(GRUB2_DIR
)/*
92 grub2-extract
: $(GRUB2_STAMP_DIR
)/.patched