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

46 lines
870 B
Makefile
Raw Normal View History

2022-01-09 08:06:03 +05:00
CCPREFIX = i386-elftailix-
AS = $(CCPREFIX)as
CC = $(CCPREFIX)gcc
IMAGE = image.iso
LINKERSCR = linker.ld
ROOTFS = rootfs
GRUBCFG = $(ROOTFS)/boot/grub/grub.cfg
KERNEL = $(ROOTFS)/boot/kernel
CFLAGS = \
-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
all: run
run: $(IMAGE)
qemu-system-i386 -cdrom $< -serial stdio -display none
clean:
rm -f $(IMAGE) $(KERNEL) $(OBJS)
$(IMAGE): $(GRUBCFG) $(KERNEL)
grub-mkrescue $(ROOTFS) -o $@
$(KERNEL): $(LINKERSCR) $(OBJS)
$(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -lgcc -lkernaux -Wl,-L../..
grub-file --is-x86-multiboot2 $@
%.c.o: %.c
$(CC) -c $< -o $@ $(CFLAGS)
%.S.o: %.S
$(AS) $< -o $@