TARGET = kernel.o SRCS = $(wildcard *.c) ASMS = $(wildcard *.s) OBJS = $(SRCS:.c=.o) $(ASMS:.s=.o) CFLAGS = -m32 -I../include -ffreestanding -nostdinc -nostdlib -fno-stack-protector -fno-pie -gstabs+ -g LDFLAGS = -m elf_i386 -r ASMFLAGS = -f elf32 CC = gcc $(CFLAGS) LD = ld $(LDFLAGS) ASM = nasm $(ASMFLAGS) all: build build: $(TARGET) .s.o: $(ASM) -o $*.o $^ .c.o: $(CC) -c -o $*.o $^ $(TARGET): $(OBJS) $(LD) -o $(TARGET) $(OBJS) clean: rm -f $(OBJS) rm -f $(TARGET)