aboutsummaryrefslogtreecommitdiff
path: root/rules.mk
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2022-10-29 20:49:03 +0300
committeraqua <aqua@iserlohn-fortress.net>2022-10-30 12:19:57 +0200
commit841b0527a69a76ab9dd9a376cc2a2d37049c6b54 (patch)
tree4a0d63825238060099cb6bc4487587d9e4454771 /rules.mk
parentRemove meson.build files (diff)
downloadkernel-841b0527a69a76ab9dd9a376cc2a2d37049c6b54.tar.xz
makefile: auto-generate OBJS from SRCS
Diffstat (limited to 'rules.mk')
-rw-r--r--rules.mk21
1 files changed, 19 insertions, 2 deletions
diff --git a/rules.mk b/rules.mk
index a3491df..152cc74 100644
--- a/rules.mk
+++ b/rules.mk
@@ -1,7 +1,20 @@
+# generate ,OBJS variable for each ,SRCS
+, = ,
+$(foreach V,$(filter %$(,)SRCS, ${.VARIABLES}),\
+ $(eval $(V:$(,)SRCS=$(,)OBJS) += $(foreach f,$($(V)),$(addsuffix .o,$(basename $(f))))) \
+ $(eval $(V:$(,)SRCS=.a): $($(V:$(,)SRCS=$(,)OBJS))) \
+ $(eval clean: $($(V:$(,)SRCS=$(,)OBJS))) \
+)
+
+# Suffix rules
+%.a:
+ @echo ' AR $@'
+ @${AR} ${ARFLAGS} $@ $(filter %.o,$^)
+
.SUFFIXES: .s .S .c .o
.s.o:
- @echo ' CC $^'
- @$(CC) $(CCFLAGS) -c -o $@ $^
+ @echo ' AS $^'
+ @$(AS) $(ASFLAGS) -c -o $@ $^
.S.o:
@echo ' CC $^'
@@ -11,3 +24,7 @@
@echo ' CC $^'
@$(CC) $(CCFLAGS) -c -o $@ $^
+# clean target
+.PHONY: clean
+clean:
+ @rm -rf $^