misc: incbin -> hgen
diff --git a/.gitignore b/.gitignore
index 44c11eac..fd880a9a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,4 +33,4 @@ stage23-uefi32
stage23-uefi64
decompressor-build
stage1.stamp
-incbin
+hgen
diff --git a/GNUmakefile.in b/GNUmakefile.in
index ea2a78ca..a1b7da25 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -196,19 +196,15 @@ override STAGE1_FILES := $(shell find '$(call SHESCAPE,$(SRCDIR))/stage1' -type
.PHONY: all
all: limine-uefi limine-bios
-$(call MKESCAPE,$(BUILDDIR))/incbin-build/incbin: $(call MKESCAPE,$(SRCDIR))/incbin/incbin.c
- mkdir -p '$(call SHESCAPE,$(BUILDDIR))/incbin-build'
- $(CC) $(CFLAGS) '$(call SHESCAPE,$(SRCDIR))/incbin/incbin.c' -o '$(call SHESCAPE,$(BUILDDIR))/incbin-build/incbin'
+$(call MKESCAPE,$(BUILDDIR))/hgen: $(call MKESCAPE,$(SRCDIR))/limine-install/hgen.c
+ mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
+ $(CC) $(CFLAGS) -std=c11 '$(call SHESCAPE,$(SRCDIR))/limine-install/hgen.c' -o '$(call SHESCAPE,$(BUILDDIR))/hgen'
.PHONY: limine-hdd.h
limine-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-hdd.h
-$(call MKESCAPE,$(BINDIR))/incbin.h: $(call MKESCAPE,$(SRCDIR))/incbin/incbin.h
- cp '$(call SHESCAPE,$(SRCDIR))/incbin/incbin.h' '$(call SHESCAPE,$(BINDIR))/incbin.h'
-
-$(call MKESCAPE,$(BINDIR))/limine-hdd.h: $(call MKESCAPE,$(BINDIR))/incbin.h $(call MKESCAPE,$(BUILDDIR))/incbin-build/incbin $(call MKESCAPE,$(BINDIR))/limine-hdd.bin
- cd '$(call SHESCAPE,$(BINDIR))' && \
- '$(call SHESCAPE,$(BUILDDIR))/incbin-build/incbin' -p _binary_ -Ssnake limine-install.c -o limine-hdd.h
+$(call MKESCAPE,$(BINDIR))/limine-hdd.h: $(call MKESCAPE,$(BUILDDIR))/hgen $(call MKESCAPE,$(BINDIR))/limine-hdd.bin
+ cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(BUILDDIR))/hgen' >limine-hdd.h
.PHONY: limine-install
limine-install:
@@ -219,7 +215,7 @@ limine-install:
.PHONY: clean
clean: limine-bios-clean limine-uefi32-clean limine-uefi64-clean
- rm -rf '$(call SHESCAPE,$(BINDIR))' '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp' '$(call SHESCAPE,$(BUILDDIR))/incbin-build'
+ rm -rf '$(call SHESCAPE,$(BINDIR))' '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp' '$(call SHESCAPE,$(BUILDDIR))/hgen'
.PHONY: install-data
install-data:
@@ -308,7 +304,6 @@ dist:
cp '$(call SHESCAPE,$(SRCDIR))'/install-sh '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)"/
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/reduced-gnu-efi/.git"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/stivale/.git"
- rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/incbin/.git"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/.git"
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/autom4te.cache"
echo "$(LIMINE_VERSION)" > '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/version"
diff --git a/autogen.sh b/autogen.sh
index ed8db0d1..5cafff59 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -11,11 +11,6 @@ cd "$srcdir"
[ -d stivale ] || git clone https://github.com/stivale/stivale.git
[ -d reduced-gnu-efi ] || git clone https://github.com/limine-bootloader/reduced-gnu-efi.git
-[ -d incbin ] || (
- git clone https://github.com/graphitemaster/incbin.git
- cd incbin
- git checkout 6e576cae5ab5810f25e2631f2e0b80cbe7dc8cbf
-)
automake --add-missing --copy || true
autoconf
diff --git a/limine-install/hgen.c b/limine-install/hgen.c
new file mode 100644
index 00000000..02834d07
--- /dev/null
+++ b/limine-install/hgen.c
@@ -0,0 +1,42 @@
+#include <stdio.h>
+
+int main(void) {
+ int ok = 0;
+
+ FILE *limine_hdd = fopen("limine-hdd.bin", "r+b");
+ if (limine_hdd == NULL) {
+ goto err;
+ }
+
+ printf("const uint8_t _binary_limine_hdd_bin_data[] = {\n\t");
+
+ int c = fgetc(limine_hdd);
+ for (size_t i = 0; ; i++) {
+ printf("0x%02x", c);
+
+ c = fgetc(limine_hdd);
+ if (c == EOF) {
+ break;
+ }
+
+ printf(", ");
+ if (i % 12 == 11) {
+ printf("\n\t");
+ }
+ }
+
+ printf("\n};\n");
+
+ goto cleanup;
+
+err:
+ perror("ERROR");
+ ok = 1;
+
+cleanup:
+ if (limine_hdd != NULL) {
+ fclose(limine_hdd);
+ }
+
+ return ok;
+}
diff --git a/limine-install/limine-install.c b/limine-install/limine-install.c
index 14cc700e..818bd52a 100644
--- a/limine-install/limine-install.c
+++ b/limine-install/limine-install.c
@@ -7,6 +7,8 @@
#include <inttypes.h>
#include <limits.h>
+#include "limine-hdd.h"
+
static int set_pos(FILE *stream, uint64_t pos) {
if (sizeof(long) >= 8) {
return fseek(stream, (long)pos, SEEK_SET);
@@ -271,17 +273,11 @@ static bool _device_write(const void *_buffer, uint64_t loc, size_t count) {
goto cleanup; \
} while (0)
-/* dummy incbin call so incbin generates the header
-INCBIN(limine_hdd_bin, "limine-hdd.bin");
-*/
-
-#include "limine-hdd.h"
-
int main(int argc, char *argv[]) {
int ok = 1;
int force_mbr = 0;
uint8_t *bootloader_img = (uint8_t *)_binary_limine_hdd_bin_data;
- size_t bootloader_file_size = (size_t)_binary_limine_hdd_bin_size;
+ size_t bootloader_file_size = sizeof(_binary_limine_hdd_bin_data);
uint8_t orig_mbr[70], timestamp[6];
if (argc < 2) {
