blob: b210efdf205b5c0b7046dadbf9b4a2dfb66e9821 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
include ../../defaults.mk
VPATH := ../../lib ../
TARGET := kernel.os
.DEFAULT: $(TARGET)
CPPFLAGS += -I../../api
CFLAGS += -Wno-unused-const-variable -Wno-unused-function -fvisibility=hidden -g
LIBDIRS += -L$(dir $(shell $(CC) -print-libgcc-file-name))
LDSCRIPT := ../component.ld
LDFLAGS += -z max-page-size=4096 --export-dynamic -pic --no-dynamic-linker
LOADLIBES := -lgcc
SOBJS :=
GOBJS := entry_x86_64.o reloc_x86_64.o kprint.o serial.o port.o \
kc_main.o main.o memory.o memset.o memcpy.o memmove.o memcmp.o cpu.o \
exceptions.o panic.o
IOBJS :=
# __attribute__((interrupt)) requires -mgeneral-regs-only
$(IOBJS): CFLAGS += -mgeneral-regs-only
$(IOBJS) $(GOBJS): CFLAGS += -mcmodel=small -fPIC
OBJS := $(SOBJS) $(GOBJS) $(IOBJS)
DEPS := $(patsubst %.o,%.d,$(OBJS))
$(TARGET): $(LDSCRIPT) $(MAKEFILE_LIST)
$(TARGET): $(OBJS)
CLEANLIST := $(wildcard $(OBJS) $(TARGET))
DCLEANLIST := $(wildcard $(DEPS))
include ../../rules.mk
-include $(DEPS)
.DEFAULT: $(TARGET)
|