misc: Move limine-install to own directory and provide source and Makefile for it in binary releases
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index a272b1ab..01398588 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -34,8 +34,8 @@ jobs:
- name: Build the bootloader
run: make
- - name: Remove limine-hdd.o
- run: rm limine-hdd.o
+ - name: Clean limine-install
+ run: make -C limine-install clean
- name: Build limine-install-linux-x86_64
run: make CFLAGS="-O2 -pipe -static" bin/limine-install
@@ -46,8 +46,8 @@ jobs:
- name: Rename limine-install-linux-x86_64
run: mv bin/limine-install bin/limine-install-linux-x86_64
- - name: Remove limine-hdd.o
- run: rm limine-hdd.o
+ - name: Clean limine-install
+ run: make -C limine-install clean
- name: Build limine-install-linux-x86_32
run: make OBJCOPY_ARCH="elf32-i386" CC="gcc -m32" CFLAGS="-O2 -pipe -static" bin/limine-install
@@ -58,8 +58,8 @@ jobs:
- name: Rename limine-install-linux-x86_32
run: mv bin/limine-install bin/limine-install-linux-x86_32
- - name: Remove limine-hdd.o
- run: rm limine-hdd.o
+ - name: Clean limine-install
+ run: make -C limine-install clean
- name: Build limine-install-win32
run: make CC="i686-w64-mingw32-gcc" OBJCOPY="i686-w64-mingw32-objcopy" CFLAGS="-O2 -pipe" bin/limine-install
@@ -70,8 +70,11 @@ jobs:
- name: Rename limine-install-win32
run: mv bin/limine-install.exe bin/limine-install-win32.exe
- - name: Remove bin/limine-hdd.bin
- run: rm bin/limine-hdd.bin
+ - name: Clean limine-install
+ run: make -C limine-install clean
+
+ - name: Copy limine-install to bin
+ run: cp limine-install/* bin/
- name: Push binaries to binary branch
run: |
diff --git a/Makefile b/Makefile
index 9a11c2b8..7626902a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,27 +1,22 @@
CC = cc
-OBJCOPY = objcopy
-OBJCOPY_ARCH = default
-CFLAGS = -O2 -pipe -Wall -Wextra
PREFIX = /usr/local
DESTDIR =
PATH := $(shell pwd)/toolchain/bin:$(PATH)
-.PHONY: all clean install distclean limine-bios limine-uefi limine-bios-clean limine-uefi-clean stage23-bios stage23-bios-clean stage23-uefi stage23-uefi-clean decompressor decompressor-clean toolchain test.hdd echfs-test ext2-test fat16-test fat32-test iso9660-test pxe-test uefi-test hybrid-iso9660-test
+.PHONY: all bin/limine-install clean install distclean limine-bios limine-uefi limine-bios-clean limine-uefi-clean stage23-bios stage23-bios-clean stage23-uefi stage23-uefi-clean decompressor decompressor-clean toolchain test.hdd echfs-test ext2-test fat16-test fat32-test iso9660-test pxe-test uefi-test hybrid-iso9660-test
all:
$(MAKE) limine-uefi
$(MAKE) limine-bios
$(MAKE) bin/limine-install
-bin/limine-install: limine-install.c limine-hdd.o
- $(CC) $(CFLAGS) -std=c11 limine-hdd.o limine-install.c -o $@
-
-limine-hdd.o: bin/limine-hdd.bin
- $(OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) bin/limine-hdd.bin $@
+bin/limine-install:
+ $(MAKE) -C limine-install LIMINE_HDD_BIN=`realpath bin`/limine-hdd.bin
+ cp limine-install/limine-install bin/
clean: limine-bios-clean limine-uefi-clean
- rm -f limine-hdd.o
+ $(MAKE) -C limine-install clean
install: all
install -d $(DESTDIR)$(PREFIX)/bin
diff --git a/limine-install/Makefile b/limine-install/Makefile
new file mode 100644
index 00000000..42bfe58c
--- /dev/null
+++ b/limine-install/Makefile
@@ -0,0 +1,20 @@
+OBJCOPY = objcopy
+OBJCOPY_ARCH = default
+LIMINE_HDD_BIN = limine-hdd.bin
+BUILD_DIR = $(shell realpath .)
+
+CFLAGS = -O2 -pipe -Wall -Wextra
+
+.PHONY: all clean
+
+all: limine-install
+
+clean:
+ rm -f limine-hdd.o limine-install
+
+limine-install: limine-install.c limine-hdd.o
+ $(CC) $(CFLAGS) -std=c11 $^ -o $@
+
+limine-hdd.o: $(LIMINE_HDD_BIN)
+ cd `dirname $^` && \
+ $(OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) `basename $^` $(BUILD_DIR)/$@
diff --git a/limine-install/limine-install b/limine-install/limine-install
new file mode 100755
index 00000000..ccc1519d
Binary files /dev/null and b/limine-install/limine-install differ
diff --git a/limine-install.c b/limine-install/limine-install.c
similarity index 98%
rename from limine-install.c
rename to limine-install/limine-install.c
index 53a54972..3f18ad78 100644
--- a/limine-install.c
+++ b/limine-install/limine-install.c
@@ -262,9 +262,9 @@ static bool _device_write(const void *buffer, uint64_t loc, size_t count) {
} while (0)
#ifdef __MINGW32__
-extern uint8_t binary_bin_limine_hdd_bin_start[], binary_bin_limine_hdd_bin_end[];
+extern uint8_t binary_limine_hdd_bin_start[], binary_limine_hdd_bin_end[];
#else
-extern uint8_t _binary_bin_limine_hdd_bin_start[], _binary_bin_limine_hdd_bin_end[];
+extern uint8_t _binary_limine_hdd_bin_start[], _binary_limine_hdd_bin_end[];
#endif
int main(int argc, char *argv[]) {
@@ -274,9 +274,9 @@ int main(int argc, char *argv[]) {
size_t bootloader_file_size =
(size_t)binary_bin_limine_hdd_bin_end - (size_t)binary_bin_limine_hdd_bin_start;
#else
- uint8_t *bootloader_img = _binary_bin_limine_hdd_bin_start;
+ uint8_t *bootloader_img = _binary_limine_hdd_bin_start;
size_t bootloader_file_size =
- (size_t)_binary_bin_limine_hdd_bin_end - (size_t)_binary_bin_limine_hdd_bin_start;
+ (size_t)_binary_limine_hdd_bin_end - (size_t)_binary_limine_hdd_bin_start;
#endif
uint8_t orig_mbr[70], timestamp[6];
