mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 15:34:31 +00:00
build: add support for GRUB in the build process
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
749a1b1810
commit
3fa7acb116
@ -5,6 +5,7 @@ export PATH := $(CROSS_DIR):$(PATH)
|
|||||||
BINUTILS_TAG = binutils-2_43_1
|
BINUTILS_TAG = binutils-2_43_1
|
||||||
GCC_TAG = releases/gcc-14.2.0
|
GCC_TAG = releases/gcc-14.2.0
|
||||||
QEMU_TAG = v9.2.0
|
QEMU_TAG = v9.2.0
|
||||||
|
GRUB_TAG = grub-2.12
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$(error Please specify a target)
|
$(error Please specify a target)
|
||||||
@ -68,6 +69,18 @@ else
|
|||||||
$(info > TOOLS: Operation completed for gcc)
|
$(info > TOOLS: Operation completed for gcc)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
__clone_grub:
|
||||||
|
ifeq ("$(wildcard ./grub)", "")
|
||||||
|
git clone --depth 1 -b $(GRUB_TAG) https://git.savannah.gnu.org/git/grub.git grub
|
||||||
|
else
|
||||||
|
$(info > TOOLS: Reseting grub...)
|
||||||
|
cd grub && \
|
||||||
|
git fetch origin && \
|
||||||
|
git reset --hard $(GRUB_TAG) && \
|
||||||
|
git clean -dfx
|
||||||
|
$(info > TOOLS: Operation completed for grub)
|
||||||
|
endif
|
||||||
|
|
||||||
__patch_cross_binutils: __clone_binutils
|
__patch_cross_binutils: __clone_binutils
|
||||||
$(info > TOOLS: Patching binutils-gcc)
|
$(info > TOOLS: Patching binutils-gcc)
|
||||||
cd binutils-gdb && git apply ../binutils-gdb.patch
|
cd binutils-gdb && git apply ../binutils-gdb.patch
|
||||||
@ -81,18 +94,22 @@ __patch_cross_gcc: __clone_gcc
|
|||||||
$(info > TOOLS: Running autoconf for gcc/libstdc++-v3)
|
$(info > TOOLS: Running autoconf for gcc/libstdc++-v3)
|
||||||
cd gcc/libstdc++-v3 && autoconf
|
cd gcc/libstdc++-v3 && autoconf
|
||||||
|
|
||||||
|
__patch_cross_grub: __clone_grub
|
||||||
|
$(info > TOOLS: Patching grub)
|
||||||
|
cd grub && git apply ../grub.patch
|
||||||
|
|
||||||
__patch_cross_qemu: __clone_qemu
|
__patch_cross_qemu: __clone_qemu
|
||||||
$(info > TOOLS: Patching qemu)
|
$(info > TOOLS: Patching qemu)
|
||||||
cd qemu && git apply ../qemu.patch
|
cd qemu && git apply ../qemu.patch
|
||||||
|
|
||||||
__patch_cross: __patch_cross_binutils __patch_cross_gcc
|
__patch_cross: __patch_cross_binutils __patch_cross_gcc __patch_cross_grub
|
||||||
|
|
||||||
__prep_cross:
|
__prep_cross:
|
||||||
mkdir -p cross
|
mkdir -p cross
|
||||||
mkdir -p binutils-gdb/__build
|
mkdir -p binutils-gdb/__build
|
||||||
mkdir -p gcc/__build
|
mkdir -p gcc/__build
|
||||||
|
|
||||||
__clone_all_no_qemu: __clone_binutils __clone_gcc
|
__clone_all_no_qemu: __clone_grub __clone_binutils __clone_gcc
|
||||||
|
|
||||||
__clone_all: __clone_qemu __clone_all_no_qemu
|
__clone_all: __clone_qemu __clone_all_no_qemu
|
||||||
|
|
||||||
@ -114,6 +131,9 @@ endif
|
|||||||
ifeq ("$(wildcard ./qemu.patch.bk)", "")
|
ifeq ("$(wildcard ./qemu.patch.bk)", "")
|
||||||
mv qemu.patch qemu.patch.bk
|
mv qemu.patch qemu.patch.bk
|
||||||
endif
|
endif
|
||||||
|
ifeq ("$(wildcard ./grub.patch.bk)", "")
|
||||||
|
mv grub.patch grub.patch.bk
|
||||||
|
endif
|
||||||
# binutils-gdb
|
# binutils-gdb
|
||||||
cd binutils-gdb && \
|
cd binutils-gdb && \
|
||||||
git add . && \
|
git add . && \
|
||||||
@ -126,6 +146,10 @@ endif
|
|||||||
cd qemu && \
|
cd qemu && \
|
||||||
git add . && \
|
git add . && \
|
||||||
git diff --cached > ../qemu.patch
|
git diff --cached > ../qemu.patch
|
||||||
|
# grub
|
||||||
|
cd grub && \
|
||||||
|
git add . && \
|
||||||
|
git diff --cached > ../grub.patch
|
||||||
|
|
||||||
do_qemu:
|
do_qemu:
|
||||||
$(MAKE) __patch_cross_qemu
|
$(MAKE) __patch_cross_qemu
|
||||||
@ -139,6 +163,7 @@ do_qemu:
|
|||||||
make --quiet -j$(shell nproc) && make --quiet install
|
make --quiet -j$(shell nproc) && make --quiet install
|
||||||
|
|
||||||
__do_binutils_x86_64:
|
__do_binutils_x86_64:
|
||||||
|
mkdir -p binutils-gdb/__build
|
||||||
cd binutils-gdb/__build && \
|
cd binutils-gdb/__build && \
|
||||||
../configure --target=x86_64-fennix \
|
../configure --target=x86_64-fennix \
|
||||||
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
||||||
@ -147,6 +172,7 @@ __do_binutils_x86_64:
|
|||||||
make --quiet install
|
make --quiet install
|
||||||
|
|
||||||
__do_binutils_i386:
|
__do_binutils_i386:
|
||||||
|
mkdir -p binutils-gdb/__build
|
||||||
cd binutils-gdb/__build && \
|
cd binutils-gdb/__build && \
|
||||||
../configure --target=i386-fennix \
|
../configure --target=i386-fennix \
|
||||||
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
||||||
@ -155,6 +181,7 @@ __do_binutils_i386:
|
|||||||
make --quiet install
|
make --quiet install
|
||||||
|
|
||||||
__do_binutils_arm:
|
__do_binutils_arm:
|
||||||
|
mkdir -p binutils-gdb/__build
|
||||||
cd binutils-gdb/__build && \
|
cd binutils-gdb/__build && \
|
||||||
../configure --target=arm-fennix \
|
../configure --target=arm-fennix \
|
||||||
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
||||||
@ -163,6 +190,7 @@ __do_binutils_arm:
|
|||||||
make --quiet install
|
make --quiet install
|
||||||
|
|
||||||
__do_binutils_aarch64:
|
__do_binutils_aarch64:
|
||||||
|
mkdir -p binutils-gdb/__build
|
||||||
cd binutils-gdb/__build && \
|
cd binutils-gdb/__build && \
|
||||||
../configure --target=aarch64-fennix \
|
../configure --target=aarch64-fennix \
|
||||||
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
--prefix="$(CROSS_DIR)" --disable-nls --quiet \
|
||||||
@ -185,6 +213,7 @@ do_binutils:
|
|||||||
$(MAKE) __do_binutils_aarch64
|
$(MAKE) __do_binutils_aarch64
|
||||||
|
|
||||||
__do_gcc_x86_64:
|
__do_gcc_x86_64:
|
||||||
|
mkdir -p gcc/__build
|
||||||
cd gcc/__build && \
|
cd gcc/__build && \
|
||||||
../configure --target=x86_64-fennix --quiet \
|
../configure --target=x86_64-fennix --quiet \
|
||||||
--prefix="$(CROSS_DIR)" --disable-nls --enable-default-pie \
|
--prefix="$(CROSS_DIR)" --disable-nls --enable-default-pie \
|
||||||
@ -195,6 +224,7 @@ __do_gcc_x86_64:
|
|||||||
make --quiet install-target-libgcc -j$(shell nproc)
|
make --quiet install-target-libgcc -j$(shell nproc)
|
||||||
|
|
||||||
__do_gcc_i386:
|
__do_gcc_i386:
|
||||||
|
mkdir -p gcc/__build
|
||||||
cd gcc/__build && \
|
cd gcc/__build && \
|
||||||
../configure --target=i386-fennix --quiet \
|
../configure --target=i386-fennix --quiet \
|
||||||
--prefix="$(CROSS_DIR)" --disable-nls --enable-default-pie \
|
--prefix="$(CROSS_DIR)" --disable-nls --enable-default-pie \
|
||||||
@ -205,6 +235,7 @@ __do_gcc_i386:
|
|||||||
make --quiet install-target-libgcc -j$(shell nproc)
|
make --quiet install-target-libgcc -j$(shell nproc)
|
||||||
|
|
||||||
__do_gcc_arm:
|
__do_gcc_arm:
|
||||||
|
mkdir -p gcc/__build
|
||||||
cd gcc/__build && \
|
cd gcc/__build && \
|
||||||
../configure --target=arm-fennix --quiet \
|
../configure --target=arm-fennix --quiet \
|
||||||
--prefix="$(CROSS_DIR)" --disable-nls --enable-default-pie \
|
--prefix="$(CROSS_DIR)" --disable-nls --enable-default-pie \
|
||||||
@ -237,3 +268,53 @@ do_gcc:
|
|||||||
$(MAKE) __do_gcc_arm
|
$(MAKE) __do_gcc_arm
|
||||||
$(MAKE) __reset_gcc
|
$(MAKE) __reset_gcc
|
||||||
$(MAKE) __do_gcc_aarch64
|
$(MAKE) __do_gcc_aarch64
|
||||||
|
|
||||||
|
__do_grub_x86_64:
|
||||||
|
cd grub && ./bootstrap
|
||||||
|
mkdir -p grub/__build
|
||||||
|
cd grub/__build && \
|
||||||
|
../configure --target=x86_64-linux \
|
||||||
|
--disable-nls && \
|
||||||
|
make all -j$(shell nproc) && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
__do_grub_i386:
|
||||||
|
cd grub && ./bootstrap
|
||||||
|
mkdir -p grub/__build
|
||||||
|
cd grub/__build && \
|
||||||
|
../configure --target=i386-linux \
|
||||||
|
--disable-nls && \
|
||||||
|
make all -j$(shell nproc) && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
__do_grub_arm:
|
||||||
|
cd grub && ./bootstrap
|
||||||
|
mkdir -p grub/__build
|
||||||
|
cd grub/__build && \
|
||||||
|
../configure --target=arm-linux \
|
||||||
|
--disable-nls && \
|
||||||
|
make all -j$(shell nproc) && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
__do_grub_aarch64:
|
||||||
|
cd grub && ./bootstrap
|
||||||
|
mkdir -p grub/__build
|
||||||
|
cd grub/__build && \
|
||||||
|
../configure --target=aarch64-linux \
|
||||||
|
--disable-nls && \
|
||||||
|
make all -j$(shell nproc) && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
__reset_grub:
|
||||||
|
$(MAKE) __patch_cross_grub
|
||||||
|
$(MAKE) __prep_cross
|
||||||
|
|
||||||
|
do_grub:
|
||||||
|
$(MAKE) __reset_grub
|
||||||
|
$(MAKE) __do_grub_x86_64
|
||||||
|
$(MAKE) __reset_grub
|
||||||
|
$(MAKE) __do_grub_i386
|
||||||
|
$(MAKE) __reset_grub
|
||||||
|
$(MAKE) __do_grub_arm
|
||||||
|
$(MAKE) __reset_grub
|
||||||
|
$(MAKE) __do_grub_aarch64
|
||||||
|
9
tools/grub.patch
Normal file
9
tools/grub.patch
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
diff --git a/.gitignore b/.gitignore
|
||||||
|
index 2105d87..58fe53f 100644
|
||||||
|
--- a/.gitignore
|
||||||
|
+++ b/.gitignore
|
||||||
|
@@ -281,3 +281,4 @@ widthspec.bin
|
||||||
|
/xfs_test
|
||||||
|
/xzcompress_test
|
||||||
|
/zfs_test
|
||||||
|
+/__build
|
Loading…
x
Reference in New Issue
Block a user