build: add stpd.kernel.mk & stpd.module.mk

This commit is contained in:
d0p1 🏳️‍⚧️ 2025-10-10 12:03:34 +02:00
parent 262020773c
commit a79916574a
6 changed files with 73 additions and 66 deletions

View file

@ -1,15 +1,15 @@
include stpd.base.mk
COMMON_DIR = ../common COMMON_DIR = ../common
SYS_DIR = ../../kernel/sys SYS_DIR = ../../kernel/sys
KERNEL = stpdldr
COMMON_SRCS = const.inc \ COMMON_SRCS = const.inc \
bootinfo.inc bootinfo.inc
SYS_SRCS = bootinfo.inc \ SYS_SRCS = bootinfo.inc \
register.inc register.inc
LOADER_SRCS = loader.asm \ SRCS = loader.asm \
$(addprefix $(COMMON_DIR)/, $(COMMON_SRCS)) \ $(addprefix $(COMMON_DIR)/, $(COMMON_SRCS)) \
$(addprefix $(SYS_DIR)/, $(SYS_SRCS)) \ $(addprefix $(SYS_DIR)/, $(SYS_SRCS)) \
fat.inc \ fat.inc \
@ -21,23 +21,10 @@ LOADER_SRCS = loader.asm \
stpdfs.inc \ stpdfs.inc \
disk.inc disk.inc
.PHONY: all .PHONY: $(COMMON_DIR)/const.inc
all: stpdldr.sys $(COMMON_DIR)/const.inc: $(COMMON_DIR)/const.inc.in
stpdldr.sys: $(LOADER_SRCS)
$(MSG_BUILD)
@$(FASM) loader.asm $@ >/dev/null
%.inc: %.inc.in
@$(VERSION_SH) @$(VERSION_SH)
.PHONY: install CLEANFILES = $(COMMON_DIR)/const.inc
install: $(DESTDIR)/stpdldr.sys
$(DESTDIR)/stpdldr.sys: stpdldr.sys include stpd.kernel.mk
$(MSG_INSTALL)
@install -D $< $@
CLEANFILES = stpdldr.sys $(COMMON_DIR)/const.inc
include stpd.clean.mk

View file

@ -1,5 +1,3 @@
include stpd.base.mk
ASMINCS = sys/bootinfo.inc \ ASMINCS = sys/bootinfo.inc \
sys/coff.inc \ sys/coff.inc \
sys/cpu.inc \ sys/cpu.inc \
@ -44,33 +42,10 @@ SRCS = kernel.asm \
bio.inc \ bio.inc \
$(ASMINCS) $(ASMINCS)
.PHONY: all
all: $(KERNEL).sys $(KERNEL).sym
.PHONY: const.inc .PHONY: const.inc
const.inc: const.inc.in const.inc: const.inc.in
@$(VERSION_SH) @$(VERSION_SH)
$(KERNEL).sys $(KERNEL).fas &: $(SRCS) CLEANFILES = const.inc
$(MSG_BUILD)
@$(FASM) -s $(KERNEL).fas kernel.asm $(KERNEL).sys >/dev/null
$(KERNEL).sym: $(KERNEL).fas include stpd.kernel.mk
$(MSG_CREATE)
@$(FAS2SYM) -o $@ $<
.PHONY: install
install: $(DESTDIR)/$(KERNEL).sys $(SYMSDIR)/$(KERNEL).sym
$(DESTDIR)/$(KERNEL).sys: $(KERNEL).sys
$(MSG_INSTALL)
@install -D $< $@
$(SYMSDIR)/$(KERNEL).sym: $(KERNEL).sym
$(MSG_INSTALL)
@install -D $< $@
CLEANFILES = $(KERNEL).sys $(KERNEL).fas $(KERNEL).sys const.inc
include stpd.clean.mk
include stpd.inc.mk

View file

@ -1,20 +1,3 @@
include stpd.base.mk MODULE = dummy
MODULE = dummy.mod include stpd.module.mk
all: $(MODULE)
$(MODULE): $(MODULE:.mod=.asm)
$(MSG_BUILD)
@fasm $^ $@
$(DESTDIR)/$(MODULE): $(MODULE)
$(MSG_INSTALL)
@install -D $< $@
.PHONY: install
install: $(DESTDIR)/$(MODULE)
CLEANFILES = $(MODULE)
include stpd.clean.mk

32
share/mk/stpd.kernel.mk Normal file
View file

@ -0,0 +1,32 @@
include stpd.base.mk
ifdef KERNEL
.PHONY: all
all: $(KERNEL).sys $(KERNEL).sym
$(KERNEL).sys $(KERNEL).fas &: $(SRCS)
$(MSG_BUILD)
@$(FASM) -s $(KERNEL).fas $< $(KERNEL).sys >/dev/null
$(KERNEL).sym: $(KERNEL).fas
$(MSG_CREATE)
@$(FAS2SYM) -o $@ $<
.PHONY: install
install: $(DESTDIR)/$(KERNEL).sys $(SYMSDIR)/$(KERNEL).sym
$(DESTDIR)/$(KERNEL).sys: $(KERNEL).sys
$(MSG_INSTALL)
@install -D $< $@
$(SYMSDIR)/$(KERNEL).sym: $(KERNEL).sym
$(MSG_INSTALL)
@install -D $< $@
CLEANFILES += $(KERNEL).sys $(KERNEL).fas $(KERNEL).sys
include stpd.inc.mk
include stpd.clean.mk
endif

8
share/mk/stpd.man.mk Normal file
View file

@ -0,0 +1,8 @@
include stpd.base.mk
ifdef MAN
_MSECTIONS= 1 2 3 4 5 6 7 8 9
_MANINST=$(foreach S,$(_MSECTIONS),$(addprefix $(DESTDIR)$(MANDIR)/$S/,$(filter %.$S,$(MAN))))
endif

22
share/mk/stpd.module.mk Normal file
View file

@ -0,0 +1,22 @@
include stpd.base.mk
ifdef MODULE
all: $(MODULE).mod
%.mod: %.asm
$(MSG_BUILD)
@fasm $^ $@ >/dev/null
$(DESTDIR)/$(MODULE).mod: $(MODULE).mod
$(MSG_INSTALL)
@install -D $< $@
.PHONY: install
install: $(DESTDIR)/$(MODULE).mod
CLEANFILES += $(MODULE).mod
include stpd.clean.mk
endif