mirror of
https://github.com/Tom-on64/kern.git
synced 2026-11-03 18:22:22 +00:00
30 lines
532 B
Makefile
30 lines
532 B
Makefile
include ../defaults.mk
|
|
|
|
INC = ./include
|
|
BIN = ./bin
|
|
|
|
SRCS_C = $(shell find . -name '*.c')
|
|
SRCS_S = $(shell find . -name '*.s')
|
|
OBJS = $(patsubst %.c, $(BIN)/%.o, $(SRCS_C)) \
|
|
$(patsubst %.s, $(BIN)/%.s.o, $(SRCS_S))
|
|
LINKER = ./linker.ld
|
|
OUT = ./kernel.elf
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(OUT)
|
|
$(OUT): $(OBJS)
|
|
$(LD) $(LDFLAGS) -T$(LINKER) -o $@ $^
|
|
|
|
$(BIN)/%.o: %.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -I$(INC) -c -o $@ $<
|
|
|
|
$(BIN)/%.s.o: %.s
|
|
@mkdir -p $(dir $@)
|
|
$(AS) $(ASFLAGS) -felf32 -o $@ $<
|
|
|
|
clean:
|
|
rm -fr $(BIN) $(OUT)
|
|
|