Files
jsix/modules.mk
Justin C. Miller e19c7cee50 Give kernel image a header.
Kernel image now has a header with version, magic number, and a
pointer to its actual entrypoint. Entry point is now _start in
boot.s, and we now generate versions.s in the build tree for the
version macros.
2018-03-24 18:34:44 -07:00

32 lines
801 B
Makefile

ifeq "$(MOD_NAME)" ""
include "you must specify a MOD_NAME"
endif
ifndef SOURCES
SOURCES := $(wildcard src/modules/$(MOD_NAME)/*.c)
SOURCES += $(wildcard src/modules/$(MOD_NAME)/*.s)
endif
ifeq "$(SOURCES)" ""
include "you must specify a SOURCES list"
endif
MOD_SRC_D := src/modules/$(MOD_NAME)
MOD_BUILD_D := $(BUILD_D)/d.$(MOD_NAME)
MOD_LIBNAME := $(BUILD_D)/lib$(MOD_NAME).a
MOD_TARGETS += $(MOD_LIBNAME)
OBJS_$(MOD_NAME) := $(patsubst %,build/d.%.o,$(patsubst src/modules/%,%,$(SOURCES)))
$(MOD_LIBNAME): $(OBJS_$(MOD_NAME))
$(AR) cr $@ $(OBJS_$(MOD_NAME))
$(MOD_BUILD_D)/%.c.o: $(MOD_SRC_D)/%.c $(INIT_DEP)
$(CC) $(CFLAGS) -c -o $@ $<
$(MOD_BUILD_D)/%.s.o: $(MOD_SRC_D)/%.s $(BUILD_D)/versions.s $(INIT_DEP)
$(AS) $(ASFLAGS) -o $@ $<
DEPS += $(patsubst %.o,%.d,$(OBJS_$(MOD_NAME)))