X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/2a49908006b177c4d6354309333d06b1b96e4887..f09e806d5032150564df39a2f7b1192c4d84cf15:/lunaix-os/kernel.mk?ds=inline diff --git a/lunaix-os/kernel.mk b/lunaix-os/kernel.mk new file mode 100644 index 0000000..81e8921 --- /dev/null +++ b/lunaix-os/kernel.mk @@ -0,0 +1,44 @@ +include os.mkinc +include toolchain.mkinc + +define ksrc_dirs + kernel + hal + debug + libs + arch/$(ARCH) +endef + +define kinc_dirs + includes + includes/usr +endef + + +kbin_dir := $(BUILD_DIR) +kbin := $(BUILD_NAME) + +ksrc_files := $(foreach f, $(ksrc_dirs), $(shell find $(f) -name "*.[cS]")) +ksrc_objs := $(addsuffix .o,$(ksrc_files)) + +kinc_opts := $(addprefix -I,$(kinc_dirs)) + + +CFLAGS += -include flags.h + +%.S.o: %.S + $(call status_,AS,$<) + @$(CC) $(kinc_opts) -c $< -o $@ + +%.c.o: %.c + $(call status_,CC,$<) + @$(CC) $(CFLAGS) $(kinc_opts) -c $< -o $@ + +$(kbin): $(ksrc_objs) $(kbin_dir) + $(call status_,LD,$@) + @$(CC) -T link/linker.ld -o $(kbin) $(ksrc_objs) $(LDFLAGS) + +all: $(kbin) + +clean: + @rm -f $(ksrc_objs) \ No newline at end of file