| 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 $(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 $(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 |