1
0
Fork 0
mirror of https://github.com/tailix/libkernaux.git synced 2025-06-02 18:21:48 -04:00

Automate kernel examples

This commit is contained in:
Alex Kotov 2022-01-15 12:32:37 +05:00
parent 19677e617a
commit 0f3747e5b6
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
15 changed files with 64 additions and 6 deletions

View file

@ -1,3 +1,6 @@
/build-libkernaux/*
!/build-libkernaux/.keep
/image.iso
/main.c.d
/output.txt

View file

@ -5,11 +5,13 @@ CCPREFIX = ../../vendor/cross/bin/x86_64-elf-
AS = $(CCPREFIX)as
CC = $(CCPREFIX)gcc
CONFIG_LIBKERNAUX = ../../config/x86_64-stivale2
DIFF = diff
LIMINE = ../../vendor/limine/build/bin
QEMU = qemu-system-x86_64
XORRISO = xorriso
BUILD_LIBKERNAUX = build-libkernaux
EXPECTED = expected.txt
IMAGE = image.iso
LINKERSCR = linker.ld
@ -63,14 +65,15 @@ run: $(IMAGE)
$(QEMU) -cdrom $< -serial stdio -display none | tee $(OUTPUT)
clean:
make -C $(BUILD_LIBKERNAUX) distclean || true
rm -f $(OUTPUT) $(IMAGE) $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE_SYS) $(OBJS)
$(IMAGE): $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE_SYS)
$(XORRISO) -as mkisofs -b $(REL_LIMINE_CD) -no-emul-boot -boot-load-size 4 -boot-info-table --efi-boot $(REL_LIMINE_ELTORITO) -efi-boot-part --efi-boot-image --protective-msdos-label $(ROOTFS) -o $@
$(LIMINE_INSTALL) $@
$(FULL_KERNEL): $(LINKERSCR) $(OBJS)
$(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -zmax-page-size=0x1000 -static -lgcc # -lkernaux -Wl,-L../..
$(FULL_KERNEL): $(LINKERSCR) $(OBJS) build-libkernaux.a
$(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -zmax-page-size=0x1000 -static -lgcc -lkernaux -Wl,-L$(BUILD_LIBKERNAUX)
$(FULL_LIMINE_CD):
cp -f $(LIMINE_CD) $(FULL_LIMINE_CD)
@ -81,6 +84,10 @@ $(FULL_LIMINE_ELTORITO):
$(FULL_LIMINE_SYS):
cp -f $(LIMINE_SYS) $(FULL_LIMINE_SYS)
build-libkernaux.a:
cd $(BUILD_LIBKERNAUX) && ../$(CONFIG_LIBKERNAUX)
cd $(BUILD_LIBKERNAUX) && make libkernaux.a
%.c.o: %.c
$(CC) -c $< -o $@ $(CFLAGS)