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