From 0a1dfa766ea633a708cd776772277ff55173aea0 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Wed, 17 Mar 2021 18:38:47 +0100 Subject: [PATCH] misc: Move limine-install to own directory and provide source and Makefile for it in binary releases --- .github/workflows/main.yml | 19 ++++++++++------- Makefile | 15 +++++-------- limine-install/Makefile | 20 ++++++++++++++++++ limine-install/limine-install | Bin 0 -> 36336 bytes .../limine-install.c | 8 +++---- 5 files changed, 40 insertions(+), 22 deletions(-) create mode 100644 limine-install/Makefile create mode 100755 limine-install/limine-install rename limine-install.c => limine-install/limine-install.c (98%) 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 0000000000000000000000000000000000000000..ccc1519d32d15b10c781e07032991578528a92be GIT binary patch literal 36336 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 literal 0 HcmV?d00001 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];