Compare commits

...

10 Commits

Author SHA1 Message Date
mintsuki
6a5c7fb13a Binary release v2.3.2 2021-04-20 05:05:37 +00:00
mintsuki
c934aa50bb Binary release v2.3.1 2021-04-16 11:03:16 +00:00
mintsuki
e1c6ab55e6 Binary release v2.3 2021-04-15 02:54:38 +00:00
mintsuki
ed690885b9 Binary release v2.2.6 2021-04-11 08:33:26 +00:00
mintsuki
11414ed6e3 Binary release v2.2.5 2021-04-11 00:49:33 +00:00
mintsuki
8423a5007f Binary release v2.2.4 2021-04-10 23:53:29 +00:00
mintsuki
0c98d680e8 Binary release v2.2.3 2021-04-10 21:31:58 +00:00
mintsuki
d8ba22b093 Binary release v2.2.2 2021-04-10 04:26:16 +00:00
mintsuki
e823c0bfd6 Binary release v2.2.1 2021-04-09 18:35:00 +00:00
mintsuki
9d9b8b4153 Binary release v2.2 2021-04-09 01:24:34 +00:00
12 changed files with 48 additions and 32 deletions

Binary file not shown.

View File

@@ -1,8 +1,9 @@
CC = cc
OBJCOPY = objcopy
PREFIX = /usr/local
DESTDIR =
OBJCOPY = objcopy
OBJCOPY_ARCH = default
LIMINE_HDD_BIN = limine-hdd.bin
BUILD_DIR = $(shell realpath .)
@@ -13,22 +14,18 @@ CFLAGS = -O2 -pipe -Wall -Wextra
all: limine-install
install: all
install -d $(DESTDIR)$(PREFIX)/bin
install -s limine-install $(DESTDIR)$(PREFIX)/bin/
install -d $(DESTDIR)$(PREFIX)/share
install -d $(DESTDIR)$(PREFIX)/share/limine
install -m 644 limine.sys $(DESTDIR)$(PREFIX)/share/limine/
install -m 644 limine-cd.bin $(DESTDIR)$(PREFIX)/share/limine/
install -m 644 limine-eltorito-efi.bin $(DESTDIR)$(PREFIX)/share/limine/
install -m 644 limine-pxe.bin $(DESTDIR)$(PREFIX)/share/limine/
install -m 644 BOOTX64.EFI $(DESTDIR)$(PREFIX)/share/limine/
install -d "$(DESTDIR)$(PREFIX)/bin"
install -s limine-install "$(DESTDIR)$(PREFIX)/bin/"
install -d "$(DESTDIR)$(PREFIX)/share"
install -d "$(DESTDIR)$(PREFIX)/share/limine"
install -m 644 limine.sys "$(DESTDIR)$(PREFIX)/share/limine/"
install -m 644 limine-cd.bin "$(DESTDIR)$(PREFIX)/share/limine/"
install -m 644 limine-eltorito-efi.bin "$(DESTDIR)$(PREFIX)/share/limine/"
install -m 644 limine-pxe.bin "$(DESTDIR)$(PREFIX)/share/limine/"
install -m 644 BOOTX64.EFI "$(DESTDIR)$(PREFIX)/share/limine/"
clean:
rm -f limine-hdd.o limine-install limine-install.exe
rm -f limine-install limine-install.exe
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)/$@
limine-install: limine-install.c inc.S $(LIMINE_HDD_BIN)
$(CC) $(CFLAGS) -std=c11 -DLIMINE_HDD_BIN='"$(LIMINE_HDD_BIN)"' limine-install.c inc.S -o $@

29
inc.S Normal file
View File

@@ -0,0 +1,29 @@
#if defined (__APPLE__)
.data
.global __binary_limine_hdd_bin_start
__binary_limine_hdd_bin_start:
.incbin LIMINE_HDD_BIN
.global __binary_limine_hdd_bin_end
__binary_limine_hdd_bin_end:
#elif defined (__MINGW32__)
.section .data
.global __binary_limine_hdd_bin_start
__binary_limine_hdd_bin_start:
.incbin LIMINE_HDD_BIN
.global __binary_limine_hdd_bin_end
__binary_limine_hdd_bin_end:
#elif defined (__linux__) || defined (__unix__)
.section .data
.global _binary_limine_hdd_bin_start
_binary_limine_hdd_bin_start:
.incbin LIMINE_HDD_BIN
.global _binary_limine_hdd_bin_end
_binary_limine_hdd_bin_end:
#endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -261,23 +261,13 @@ static bool _device_write(const void *buffer, uint64_t loc, size_t count) {
goto cleanup; \
} while (0)
#ifdef __MINGW32__
extern uint8_t binary_limine_hdd_bin_start[], binary_limine_hdd_bin_end[];
#else
extern uint8_t _binary_limine_hdd_bin_start[], _binary_limine_hdd_bin_end[];
#endif
int main(int argc, char *argv[]) {
int ok = 1;
#ifdef __MINGW32__
uint8_t *bootloader_img = binary_limine_hdd_bin_start;
size_t bootloader_file_size =
(size_t)binary_limine_hdd_bin_end - (size_t)binary_limine_hdd_bin_start;
#else
uint8_t *bootloader_img = _binary_limine_hdd_bin_start;
size_t bootloader_file_size =
(size_t)_binary_limine_hdd_bin_end - (size_t)_binary_limine_hdd_bin_start;
#endif
uint8_t orig_mbr[70], timestamp[6];
if (sizeof(off_t) != 8) {
@@ -421,7 +411,7 @@ int main(int argc, char *argv[]) {
fprintf(stderr, "GPT partition NOT specified. Attempting GPT embedding.\n");
ssize_t max_partition_entry_used = -1;
for (ssize_t i = 0; i < gpt_header.number_of_partition_entries; i++) {
for (ssize_t i = 0; i < (ssize_t)gpt_header.number_of_partition_entries; i++) {
struct gpt_entry gpt_entry;
device_read(&gpt_entry,
(gpt_header.partition_entry_lba * lb_size)
@@ -541,9 +531,9 @@ int main(int argc, char *argv[]) {
if (!device_flush_cache())
goto cleanup;
fprintf(stderr, "WARNING: Remember to copy the limine.sys file in either\n"
" the root or /boot directories of one of the partitions\n"
" on the device, or boot will fail!\n");
fprintf(stderr, "Reminder: Remember to copy the limine.sys file in either\n"
" the root or /boot directories of one of the partitions\n"
" on the device, or boot will fail!\n");
fprintf(stderr, "Limine installed successfully!\n");

Binary file not shown.

Binary file not shown.