misc: incbin -> hgen
This commit is contained in:
parent
8670057e40
commit
3ea53247c2
|
@ -33,4 +33,4 @@ stage23-uefi32
|
|||
stage23-uefi64
|
||||
decompressor-build
|
||||
stage1.stamp
|
||||
incbin
|
||||
hgen
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <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) {
|
||||
|
|
Loading…
Reference in New Issue