-# Makefile für Apfelmännchenprogramm
+# Universal Makefile for X16 code
-ASM=$(H316)/bin/asm
-FRTN=$(H316)/bin/frtn
+ASM_CMD=$(H316)/bin/asm
+FRTN_CMD=$(H316)/bin/frtn
+SRC_DIR=src
+BUILD_DIR=build
-default: build/apfel3.obj build/apfel4.obj
+PROGRAMS=$(foreach n, $(wildcard $(SRC_DIR)/*.f $(SRC_DIR)/*.asm),$(notdir $(basename $(n))))
-build/apfel3.obj : src/apfel3.f
- @if [ ! -d build ]; then mkdir build; fi
- $(FRTN) src/apfel3.f && mv apfel3.obj build
+#$(PROGRAMS):%:/$(BUILD_DIR)/%.f
+default: $(foreach prog, $(PROGRAMS),$(BUILD_DIR)/$(prog).obj)
-build/apfel4.obj : src/apfel4.f
- @if [ ! -d build ]; then mkdir build; fi
- $(FRTN) src/apfel4.f && mv apfel4.obj build
+$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.f
+ @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi
+ @$(FRTN_CMD) $< && mv $(notdir $(basename $<)).obj $(BUILD_DIR)
+
+$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.asm
+ @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi
+ @$(ASM_CMD) $< && mv $(notdir $(basename $<)).obj $(BUILD_DIR)
clean :
- @rm -rf *.obj build/ *.lst *.go *.par
+ @rm -rf *.obj $(BUILD_DIR)/ *.lst *.go *.par
.PHONY: default clean
-
-
-%.obj:%.f
- $(FRTN) $^
-
-%.obj:%.asm
- $(ASM) $^
\ No newline at end of file