summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Gardas <karel@functional.vision>2021-11-10 19:27:22 +0100
committerJoel Sherrill <joel@rtems.org>2021-11-18 11:06:04 -0600
commitdbc11a81b784f8b33e3d5614f44e7b381b4059c8 (patch)
tree0867d311d564ec8981b84c2a51be6552079b5e75
parentrtems-tools-6.cfg: Bump hash to get fix for rtems-test (diff)
downloadrtems-source-builder-dbc11a81b784f8b33e3d5614f44e7b381b4059c8.tar.bz2
RSB: add GRUB2 to the RTEMS tools and use it in 6/rtems-x86_64 build set
-rw-r--r--rtems/config/6/rtems-x86_64.bset5
-rw-r--r--rtems/config/tools/rtems-grub-2.06.cfg8
-rw-r--r--source-builder/config/grub2.cfg75
3 files changed, 88 insertions, 0 deletions
diff --git a/rtems/config/6/rtems-x86_64.bset b/rtems/config/6/rtems-x86_64.bset
index dbfc9e6..088c9f5 100644
--- a/rtems/config/6/rtems-x86_64.bset
+++ b/rtems/config/6/rtems-x86_64.bset
@@ -1,4 +1,9 @@
%define release 1
%define rtems_arch x86_64
%define with_libgomp
+%define grub2_platform efi
+%define grub2_target x86_64
+
%include 6/rtems-default.bset
+
+tools/rtems-grub-2.06
diff --git a/rtems/config/tools/rtems-grub-2.06.cfg b/rtems/config/tools/rtems-grub-2.06.cfg
new file mode 100644
index 0000000..977e230
--- /dev/null
+++ b/rtems/config/tools/rtems-grub-2.06.cfg
@@ -0,0 +1,8 @@
+%include %{_configdir}/checks.cfg
+%include %{_configdir}/base.cfg
+
+%define grub2_version 2.06
+
+%hash sha512 grub-%{grub2_version}.tar.xz 4f11c648f3078567e53fc0c74d5026fdc6da4be27d188975e79d9a4df817ade0fe5ad2ddd694238a07edc45adfa02943d83c57767dd51548102b375e529e8efe
+
+%include %{_configdir}/grub2.cfg
diff --git a/source-builder/config/grub2.cfg b/source-builder/config/grub2.cfg
new file mode 100644
index 0000000..2333d6a
--- /dev/null
+++ b/source-builder/config/grub2.cfg
@@ -0,0 +1,75 @@
+#
+# GNU GRUB, the GRand Unified Bootloader
+#
+# This configuration file configure's, make's and install's GRUB2.
+#
+
+%define grub2_platform_supported = 1
+
+%ifos darwin
+%undefine grub2_platform_supported
+%{echo "Darwin does not support Grub2 compilation by default."}
+%{echo "If you need Grub2 on Darwin, please install objconv"}
+%{echo "and enable it by removing '%undefine grub2_platform_supported' above"}
+%endif
+
+%if %{defined grub2_platform_supported}
+
+%if %{release} == %{nil}
+%define release 1
+%endif
+
+Name: grub2-%{grub2_version}-%{_host}-%{release}
+Summary: GNU GRUB, the GRand Unified Bootloader v%{grub2_version} for target %{_target} on host %{_host}
+Version: %{grub2_version}
+Release: %{release}
+URL: https://www.gnu.org/software/grub/index.html
+
+#
+# Source
+#
+%source set grub2 https://ftp.gnu.org/gnu/grub/grub-%{grub2_version}.tar.xz
+
+#
+# Prepare the source code.
+#
+%prep
+ build_top=$(pwd)
+
+ %source setup grub2 -q -n grub-%{grub2_version}
+
+ cd ${build_top}
+
+%build
+ build_top=$(pwd)
+
+ cd grub-%{grub2_version}
+
+ %{host_build_flags}
+
+ ./configure \
+ --build=%{_build} --host=%{_host} \
+ --verbose \
+ --prefix=%{_prefix} --bindir=%{_bindir} \
+ --exec-prefix=%{_exec_prefix} \
+ --includedir=%{_includedir} --libdir=%{_libdir} \
+ --mandir=%{_mandir} --infodir=%{_infodir} \
+ --with-platform=%{grub2_platform} \
+ --target=%{grub2_target} \
+ --disable-libzfs # broken on FreeBSD and not needed at all
+
+ %{__make} %{?_smp_mflags} all
+
+ cd ${build_top}
+
+%install
+ build_top=$(pwd)
+
+ rm -rf $SB_BUILD_ROOT
+
+ cd grub-%{grub2_version}
+ %{__make} DESTDIR=$SB_BUILD_ROOT install
+
+ cd ${build_top}
+
+%endif