global: Makefiles now support parallel compiles.
[h316.git] / programs / punchomat / Makefile
CommitLineData
d6a1a234 1# Universal Makefile for X16 code
8321626c 2
d6a1a234 3ASM_CMD=$(H316)/bin/asm
4FRTN_CMD=$(H316)/bin/frtn
5SRC_DIR=src
6BUILD_DIR=build
8321626c 7
d6a1a234 8PROGRAMS=$(foreach n, $(wildcard $(SRC_DIR)/*.f $(SRC_DIR)/*.asm),$(notdir $(basename $(n))))
8321626c 9
d6a1a234 10default: all
11
12all: $(foreach prog, $(PROGRAMS),$(BUILD_DIR)/$(prog).obj)
8321626c 13
d6a1a234 14$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.f
4ad624fd 15 @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi
d6a1a234 16 @$(FRTN_CMD) "$(subst $$,\$$,$^)" &&\
17 mv "$(notdir $(basename $(subst $$,\$$,$^))).obj" $(BUILD_DIR)
8321626c 18
d6a1a234 19$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.asm
4ad624fd 20 @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi
d6a1a234 21 @$(ASM_CMD) "$(subst $$,\$$,$^)" &&\
22 mv "$(notdir $(basename "\"$(subst $$,\$$,$^)\"")).obj" $(BUILD_DIR)
8321626c 23
d6a1a234 24clean :
25 @rm -rf *.obj $(BUILD_DIR)/ *.lst *.go *.par
8321626c 26
d6a1a234 27.PHONY: default clean all