2 include toolchain.mkinc
4 ksrc_files = $(shell cat .builder/sources.list)
5 kinc_dirs = $(shell cat .builder/includes.list)
6 khdr_files = $(shell cat .builder/headers.list)
7 khdr_files += .builder/configs.h
9 kbin_dir := $(BUILD_DIR)
12 ksrc_objs := $(addsuffix .o,$(ksrc_files))
13 ksrc_deps := $(addsuffix .d,$(ksrc_files))
14 khdr_opts := $(addprefix -include ,$(khdr_files))
15 kinc_opts := $(addprefix -I,$(kinc_dirs))
17 tmp_kbin := $(BUILD_DIR)/tmpk.bin
18 ksymtable := lunaix_ksyms.o
20 CFLAGS += $(khdr_opts)
24 %.S.o: %.S $(khdr_files) kernel.mk
26 @$(CC) $(CFLAGS) $(kinc_opts) -MMD -MP -c $< -o $@
28 %.c.o: %.c $(khdr_files) kernel.mk
30 @$(CC) $(CFLAGS) $(kinc_opts) -MMD -MP -c $< -o $@
32 $(tmp_kbin): $(ksrc_objs)
34 @$(CC) -T link/linker.ld $(LDFLAGS) -o $@ $^
36 $(ksymtable): $(tmp_kbin)
37 $(call status_,KSYM,$@)
38 @scripts/gen_ksymtable.sh DdRrTtAGg $< > .lunaix_ksymtable.S
39 @$(CC) $(CFLAGS) -c .lunaix_ksymtable.S -o $@
42 __do_relink: $(ksrc_objs) $(ksymtable)
43 $(call status_,LD,$(kbin))
44 @$(CC) -T link/linker.ld $(LDFLAGS) -o $(kbin) $^
53 @rm -f .lunaix_ksymtable.S $(ksymtable)