1 include toolchain.mkinc
2 include lunabuild.mkinc
4 include $(lbuild_mkinc)
6 kbin_dir := $(BUILD_DIR)
9 ksrc_objs := $(addsuffix .o,$(_LBUILD_SRCS))
10 ksrc_deps := $(addsuffix .d,$(_LBUILD_SRCS))
11 khdr_opts := $(addprefix -include ,$(_LBUILD_HDRS))
12 kinc_opts := $(addprefix -I,$(_LBUILD_INCS))
13 config_h += -include $(lbuild_config_h)
15 tmp_kbin := $(BUILD_DIR)/tmpk.bin
16 klinking := link/lunaix.ld
18 CFLAGS += $(khdr_opts) $(kinc_opts) $(config_h) -MMD -MP
22 all_linkable = $(filter-out $(klinking),$(1))
24 %.S.o: %.S $(khdr_files) kernel.mk
26 @$(CC) $(CFLAGS) -c $< -o $@
30 @$(CC) $(CFLAGS) -c $< -o $@
33 $(klinking): link/lunaix.ldx
35 @$(CC) $(CFLAGS) -x c -E -P $< -o $@
38 $(tmp_kbin): $(klinking) $(ksrc_objs)
41 @$(CC) -T $(klinking) $(config_h) $(LDFLAGS) -o $@ \
42 $(call all_linkable,$^)
44 ksymtable := lunaix_ksyms.o
45 ksecsmap := lunaix_ksecsmap.o
47 kautogen := $(ksecsmap) $(ksymtable)
49 $(ksymtable): $(tmp_kbin)
50 $(call status_,KSYM,$@)
51 @ARCH=$(ARCH) scripts/gen-ksymtable DdRrTtAGg $< > lunaix_ksymtable.S
53 @$(CC) $(CFLAGS) -c lunaix_ksymtable.S -o $@
55 $(ksecsmap): $(tmp_kbin)
56 $(call status_,KGEN,$@)
57 @scripts/elftool.tool -p -i $< > lunaix_ksecsmap.S
59 @$(CC) $(CFLAGS) -c lunaix_ksecsmap.S -o $@
63 __do_relink: $(klinking) $(ksrc_objs) $(kautogen)
64 $(call status_,LD,$(kbin))
66 @$(CC) -T $(klinking) $(config_h) $(LDFLAGS) -o $(kbin) \
67 $(call all_linkable,$^)
80 @rm -f lunaix_ksymtable.S $(ksymtable)