2 include toolchain.mkinc
4 kexclusion = $(shell cat ksrc.excludes)
20 kbin_dir := $(BUILD_DIR)
23 ksrc_files := $(foreach f, $(ksrc_dirs), $(shell find $(f) -name "*.[cS]"))
24 ksrc_files := $(filter-out $(kexclusion),$(ksrc_files))
25 ksrc_objs := $(addsuffix .o,$(ksrc_files))
26 ksrc_deps := $(addsuffix .d,$(ksrc_files))
28 kinc_opts := $(addprefix -I,$(kinc_dirs))
30 tmp_kbin := $(BUILD_DIR)/tmpk.bin
31 ksymtable := lunaix_ksyms.o
33 CFLAGS += -include flags.h
34 CFLAGS += -include config.h
38 @$(CC) $(CFLAGS) $(kinc_opts) -c $< -o $@
42 @$(CC) $(CFLAGS) $(kinc_opts) -c $< -o $@
44 $(tmp_kbin): $(ksrc_objs)
46 @$(CC) -T link/linker.ld $(LDFLAGS) -o $@ $^
48 $(ksymtable): $(tmp_kbin)
49 $(call status_,KSYM,$@)
50 @scripts/gen_ksymtable.sh DdRrTtAGg $< > .lunaix_ksymtable.S
51 @$(CC) $(CFLAGS) -c .lunaix_ksymtable.S -o $@
54 __do_relink: $(ksrc_objs) $(ksymtable)
55 $(call status_,LD,$(kbin))
56 @$(CC) -T link/linker.ld $(LDFLAGS) -o $(kbin) $^
65 @rm -f .lunaix_ksymtable.S $(ksymtable)