misc: incbin -> hgen
This commit is contained in:
parent
8670057e40
commit
3ea53247c2
|
@ -33,4 +33,4 @@ stage23-uefi32
|
||||||
stage23-uefi64
|
stage23-uefi64
|
||||||
decompressor-build
|
decompressor-build
|
||||||
stage1.stamp
|
stage1.stamp
|
||||||
incbin
|
hgen
|
||||||
|
|
|
@ -196,19 +196,15 @@ override STAGE1_FILES := $(shell find '$(call SHESCAPE,$(SRCDIR))/stage1' -type
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: limine-uefi limine-bios
|
all: limine-uefi limine-bios
|
||||||
|
|
||||||
$(call MKESCAPE,$(BUILDDIR))/incbin-build/incbin: $(call MKESCAPE,$(SRCDIR))/incbin/incbin.c
|
$(call MKESCAPE,$(BUILDDIR))/hgen: $(call MKESCAPE,$(SRCDIR))/limine-install/hgen.c
|
||||||
mkdir -p '$(call SHESCAPE,$(BUILDDIR))/incbin-build'
|
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
|
||||||
$(CC) $(CFLAGS) '$(call SHESCAPE,$(SRCDIR))/incbin/incbin.c' -o '$(call SHESCAPE,$(BUILDDIR))/incbin-build/incbin'
|
$(CC) $(CFLAGS) -std=c11 '$(call SHESCAPE,$(SRCDIR))/limine-install/hgen.c' -o '$(call SHESCAPE,$(BUILDDIR))/hgen'
|
||||||
|
|
||||||
.PHONY: limine-hdd.h
|
.PHONY: limine-hdd.h
|
||||||
limine-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-hdd.h
|
limine-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-hdd.h
|
||||||
|
|
||||||
$(call MKESCAPE,$(BINDIR))/incbin.h: $(call MKESCAPE,$(SRCDIR))/incbin/incbin.h
|
$(call MKESCAPE,$(BINDIR))/limine-hdd.h: $(call MKESCAPE,$(BUILDDIR))/hgen $(call MKESCAPE,$(BINDIR))/limine-hdd.bin
|
||||||
cp '$(call SHESCAPE,$(SRCDIR))/incbin/incbin.h' '$(call SHESCAPE,$(BINDIR))/incbin.h'
|
cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(BUILDDIR))/hgen' >limine-hdd.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
|
|
||||||
|
|
||||||
.PHONY: limine-install
|
.PHONY: limine-install
|
||||||
limine-install:
|
limine-install:
|
||||||
|
@ -219,7 +215,7 @@ limine-install:
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean: limine-bios-clean limine-uefi32-clean limine-uefi64-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
|
.PHONY: install-data
|
||||||
install-data:
|
install-data:
|
||||||
|
@ -308,7 +304,6 @@ dist:
|
||||||
cp '$(call SHESCAPE,$(SRCDIR))'/install-sh '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)"/
|
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)/reduced-gnu-efi/.git"
|
||||||
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/stivale/.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)/.git"
|
||||||
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/autom4te.cache"
|
rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/autom4te.cache"
|
||||||
echo "$(LIMINE_VERSION)" > '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/version"
|
echo "$(LIMINE_VERSION)" > '$(call SHESCAPE,$(BUILDDIR))'/"limine-$(LIMINE_VERSION)/version"
|
||||||
|
|
|
@ -11,11 +11,6 @@ cd "$srcdir"
|
||||||
|
|
||||||
[ -d stivale ] || git clone https://github.com/stivale/stivale.git
|
[ -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 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
|
automake --add-missing --copy || true
|
||||||
autoconf
|
autoconf
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
|
@ -7,6 +7,8 @@
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
|
#include "limine-hdd.h"
|
||||||
|
|
||||||
static int set_pos(FILE *stream, uint64_t pos) {
|
static int set_pos(FILE *stream, uint64_t pos) {
|
||||||
if (sizeof(long) >= 8) {
|
if (sizeof(long) >= 8) {
|
||||||
return fseek(stream, (long)pos, SEEK_SET);
|
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; \
|
goto cleanup; \
|
||||||
} while (0)
|
} 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 main(int argc, char *argv[]) {
|
||||||
int ok = 1;
|
int ok = 1;
|
||||||
int force_mbr = 0;
|
int force_mbr = 0;
|
||||||
uint8_t *bootloader_img = (uint8_t *)_binary_limine_hdd_bin_data;
|
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];
|
uint8_t orig_mbr[70], timestamp[6];
|
||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
|
|
Loading…
Reference in New Issue