1 include kbuild_deps.mkinc
3 kbin_dir := $(BUILD_DIR)
6 tmp_kbin := $(BUILD_DIR)/tmpk.bin
7 klinking := link/lunaix.ld
9 CFLAGS += $(kcflags) -MMD -MP
11 all_linkable = $(filter-out $(klinking),$(1))
13 %.S.o: %.S $(khdr_files) kernel.mk
15 @$(CC) $(CFLAGS) -c $< -o $@
19 @$(CC) $(CFLAGS) -c $< -o $@
22 $(klinking): link/lunaix.ldx
24 @$(CC) $(CFLAGS) -x c -E -P $< -o $@
27 $(tmp_kbin): $(klinking) $(ksrc_objs)
30 @$(CC) -T $(klinking) $(config_h) $(LDFLAGS) -o $@ \
31 $(call all_linkable,$^)
33 ksymtable := lunaix_ksyms.o
34 ksecsmap := lunaix_ksecsmap.o
36 kautogen := $(ksecsmap) $(ksymtable)
38 $(ksymtable): $(tmp_kbin)
39 $(call status,KSYM,$@)
40 @ARCH=$(ARCH) scripts/gen-ksymtable DdRrTtAGg $< > lunaix_ksymtable.S
42 @$(CC) $(CFLAGS) -c lunaix_ksymtable.S -o $@
44 $(ksecsmap): $(tmp_kbin)
45 $(call status,KGEN,$@)
46 @scripts/elftool.tool -p -i $< > lunaix_ksecsmap.S
48 @$(CC) $(CFLAGS) -c lunaix_ksecsmap.S -o $@
52 __do_relink: $(klinking) $(ksrc_objs) $(kautogen)
53 $(call status,LD,$(kbin))
55 @$(CC) -T $(klinking) $(config_h) $(LDFLAGS) -o $(kbin) \
56 $(call all_linkable,$^)
69 @rm -f lunaix_ksymtable.S $(ksymtable)