global: Makefiles now support parallel compiles.
[h316.git] / programs / small-things / Makefile
CommitLineData
047c458f 1# Universal Makefile for X16 code
2
047c458f 3ASM_CMD=$(H316)/bin/asm
4FRTN_CMD=$(H316)/bin/frtn
5SRC_DIR=src
6BUILD_DIR=build
7
8PROGRAMS=$(foreach n, $(wildcard $(SRC_DIR)/*.f $(SRC_DIR)/*.asm),$(notdir $(basename $(n))))
9
d6a1a234 10default: all
047c458f 11
d6a1a234 12all: $(foreach prog, $(PROGRAMS),$(BUILD_DIR)/$(prog).obj)
047c458f 13
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)
047c458f 18
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)
047c458f 23
24clean :
25 @rm -rf *.obj $(BUILD_DIR)/ *.lst *.go *.par
26
d6a1a234 27.PHONY: default clean all