:: commit b138b1952e87a10a58da8825a457937d710ffa00

mintsuki <mintsuki@protonmail.com> — 2022-02-10 13:47

parents: b80fb36744

limine-install: Make hgen a shell script

diff --git a/.gitignore b/.gitignore
index 879dc0c9..bd764927 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,4 +35,3 @@
 /common-uefi64
 /decompressor-build
 /stage1.stamp
-/hgen
diff --git a/GNUmakefile.in b/GNUmakefile.in
index fcb7d6ef..8ed79a29 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -26,9 +26,6 @@ CC := @CC@
 endif
 export CC
 
-HOST_CC ?= @HOST_CC@
-export HOST_CC
-
 INSTALL ?= @INSTALL@
 export INSTALL
 
@@ -80,15 +77,11 @@ override STAGE1_FILES := $(shell find '$(call SHESCAPE,$(SRCDIR))/stage1' -type
 .PHONY: all
 all: limine-uefi limine-bios
 
-$(call MKESCAPE,$(BUILDDIR))/hgen: $(call MKESCAPE,$(SRCDIR))/limine-install/hgen.c
-	mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
-	$(HOST_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))/limine-hdd.h: $(call MKESCAPE,$(BUILDDIR))/hgen $(call MKESCAPE,$(BINDIR))/limine-hdd.bin
-	cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(BUILDDIR))/hgen' >limine-hdd.h
+$(call MKESCAPE,$(BINDIR))/limine-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-hdd.bin
+	cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(SRCDIR))/limine-install/hgen.sh' >limine-hdd.h
 
 .PHONY: limine-install
 limine-install:
@@ -99,7 +92,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))/hgen'
+	rm -rf '$(call SHESCAPE,$(BINDIR))' '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
 
 .PHONY: install-data
 install-data:
diff --git a/configure.ac b/configure.ac
index c3bd144c..522db57f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -62,9 +62,6 @@ if ! test "x$BUILD_ELTORITO_EFI" = "xno"; then
     AC_SUBST(build_eltorito_efi, [yes])
 fi
 
-AC_ARG_VAR(HOST_CC, [C compiler for the build host [default: $CC]])
-test "x$HOST_CC" = "x" && HOST_CC="$CC"
-
 AC_ARG_VAR(TOOLCHAIN, [Alternative toolchain prefix [default: limine]])
 test "x$TOOLCHAIN" = "x" && TOOLCHAIN='limine'
 
diff --git a/limine-install/hgen.c b/limine-install/hgen.c
deleted file mode 100644
index 02834d07..00000000
--- a/limine-install/hgen.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#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/hgen.sh b/limine-install/hgen.sh
new file mode 100755
index 00000000..c4a044d4
--- /dev/null
+++ b/limine-install/hgen.sh
@@ -0,0 +1,14 @@
+#! /bin/sh
+
+LC_ALL=C
+export LC_ALL
+
+cat <<EOF
+const uint8_t _binary_limine_hdd_bin_data[] = {
+EOF
+
+od -v -An -t x1 <limine-hdd.bin | "$SED" 's/ /, 0x/g;s/^, /    /g;s/$/,/g'
+
+cat <<EOF
+};
+EOF
diff --git a/version.sh b/version.sh
index 95ccaf38..f7418d30 100755
--- a/version.sh
+++ b/version.sh
@@ -1,4 +1,7 @@
 #! /bin/sh
 
+LC_ALL=C
+export LC_ALL
+
 [ -f version ] || ( git describe --exact-match --tags $(git log -n1 --pretty='%h') 2>/dev/null || git log -n1 --pretty='%h' ) | sed 's/^v//g' | xargs printf '%s'
 [ -f version ] && ( cat version 2>/dev/null ) | xargs printf '%s'
tab: 248 wrap: offon