kernel/kernel/Makefile

63 lines
1.0 KiB
Makefile
Raw Normal View History

2021-12-12 13:39:29 +00:00
CCPREFIX = i386-elftailix-
2020-11-25 09:32:16 +00:00
AS = $(CCPREFIX)as
CC = $(CCPREFIX)gcc
2020-11-25 18:10:00 +00:00
LD = $(CCPREFIX)ld
2020-11-25 09:32:16 +00:00
KERNEL = tailix.multiboot2
2020-11-25 09:32:16 +00:00
2021-12-12 14:37:08 +00:00
CFLAGS = \
-std=gnu99 \
-Wall \
-Wextra \
-pedantic \
-ffreestanding \
-fno-builtin \
-fno-stack-protector \
-I/usr/local/include
2020-11-25 09:32:16 +00:00
# Architecture-dependent
OBJS = start.s.o
OBJS += main.c.o
2020-11-27 14:15:02 +00:00
OBJS += panic.c.o
2020-11-27 14:05:20 +00:00
OBJS += paging.c.o
2020-11-25 09:32:16 +00:00
# Architecture-independent
OBJS += info.c.o
# Built-in drivers
OBJS += pic.c.o
OBJS += timer.c.o
OBJS += protected.c.o protected.asm.cpp.o
OBJS += tss.c.o tss.asm.cpp.o
OBJS += tasks.asm.cpp.o
OBJS += interrupt.asm.cpp.o
OBJS += exception.c.o
OBJS += hwint.c.o
OBJS += syscall.c.o
all: $(KERNEL)
clean:
rm -f $(KERNEL) $(OBJS)
$(KERNEL): $(OBJS)
2020-11-27 14:05:20 +00:00
$(CC) -T linker.ld -o $@ $^ -ffreestanding -nostdlib -lgcc -lkernaux -Wl,-L/usr/local/lib
2020-11-25 09:32:16 +00:00
grub-file --is-x86-multiboot2 $@
%.c.o: %.c
$(CC) -c $< -o $@ $(CFLAGS)
%.s.o: %.s
$(AS) $< -o $@
%.asm.cpp.o: %.asm.cpp
2020-11-25 11:00:24 +00:00
nasm -f elf32 -o $@ $<
2020-11-25 09:32:16 +00:00
%.asm.cpp: %.asm
cpp -P $< $@