Files
my-os-project2/kernel/Makefile

93 lines
1.8 KiB
Makefile

include $(ROOT)/mk/grabsrc.mk
.PHONY: all clean
PUTCHAR_ ?= fb
CFLAGS := -ffreestanding -Wall -Wextra -g -fcommon -nostdinc
CFLAGS += -I. \
-I$(ROOT)/limine \
-I$(ROOT)/std/include \
-I./std \
-I./flanterm/src \
-I$(ROOT)/share \
-DPRINTF_INCLUDE_CONFIG_H=1 \
-DLFS_NO_ASSERT \
-DLFS_NO_DEBUG \
-DLFS_NO_WARN \
-DLFS_NO_ERROR \
-DUACPI_BAREBONES_MODE
ifeq ($(ARCH),x86_64)
CFLAGS += -Ihal/x86_64/uACPI/include
endif
ifeq ($(PUTCHAR_),fb)
CFLAGS += -DPUTCHAR_=PUTCHAR_FB
else
CFLAGS += -DPUTCHAR_=PUTCHAR_SERIAL
endif
include arch/$(ARCH)/$(ARCH).mk
include extconf/extra.mk
LDFLAGS += -nostdlib -static -T arch/$(ARCH)/link.ld $(shell $(CC) -print-libgcc-file-name)
SRCFILES :=
SRCFILES += $(call GRABSRC, \
. \
printf \
bitmap \
pmm \
bootinfo \
spinlock \
term \
dlmalloc \
vfs \
storedev \
util \
fs/kvfs \
fs/littlefs \
fs/portlfs \
baseimg \
proc \
proc/kproc \
proc/ps2kbproc \
proc/termproc \
hal \
hal/$(ARCH) \
std \
flanterm/src \
flanterm/src/flanterm_backends \
syscall \
path \
rbuf \
ipc/pipe \
drivers/ps2kb \
)
ifeq ($(ARCH),x86_64)
SRCFILES += $(call GRABSRC, hal/x86_64/uACPI/source)
endif
CFILES := $(call GET_CFILES, $(SRCFILES))
ASFILES := $(call GET_ASFILES, $(SRCFILES))
OBJ := $(call GET_OBJ, $(SRCFILES))
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.S
$(CC) $(CFLAGS) -c $< -o $@
all: mop2
mop2: $(OBJ)
$(LD) $^ $(LDFLAGS) -o $@
clean:
rm -f $(OBJ) mop2