1
0
Fork 0
mirror of https://github.com/tailix/libkernaux.git synced 2025-02-24 15:55:41 -05:00
libkernaux/examples/kernel-multiboot2-grub/Makefile

49 lines
932 B
Makefile
Raw Normal View History

2022-01-10 06:30:40 +05:00
all: run
2022-01-12 10:05:32 +05:00
CCPREFIX = ../../vendor/cross/bin/i386-elf-
2022-01-09 08:06:03 +05:00
AS = $(CCPREFIX)as
CC = $(CCPREFIX)gcc
2022-01-10 07:24:49 +05:00
GRUB_FILE = grub-file
GRUB_MKRESCUE = grub-mkrescue
2022-01-09 08:06:03 +05:00
IMAGE = image.iso
LINKERSCR = linker.ld
ROOTFS = rootfs
GRUBCFG = $(ROOTFS)/boot/grub/grub.cfg
KERNEL = $(ROOTFS)/boot/kernel
2022-01-09 08:16:54 +05:00
CFLAGS = \
2022-01-09 08:06:03 +05:00
-std=c99 \
-pedantic \
-Wall \
-Wextra \
2022-01-09 08:08:26 +05:00
-Werror \
2022-01-09 08:06:03 +05:00
-ffreestanding \
-fno-builtin \
-fno-stack-protector \
-I../../include
OBJS = main.c.o start.S.o
2022-01-10 06:30:40 +05:00
run: $(IMAGE)
2022-01-09 08:06:03 +05:00
qemu-system-i386 -cdrom $< -serial stdio -display none
clean:
rm -f $(IMAGE) $(KERNEL) $(OBJS)
$(IMAGE): $(GRUBCFG) $(KERNEL)
2022-01-10 07:24:49 +05:00
$(GRUB_MKRESCUE) $(ROOTFS) -o $@
2022-01-09 08:06:03 +05:00
$(KERNEL): $(LINKERSCR) $(OBJS)
$(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -lgcc -lkernaux -Wl,-L../..
2022-01-10 07:24:49 +05:00
$(GRUB_FILE) --is-x86-multiboot2 $@
2022-01-09 08:06:03 +05:00
%.c.o: %.c
$(CC) -c $< -o $@ $(CFLAGS)
%.S.o: %.S
$(AS) $< -o $@