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