# Universal Makefile for X16 code
-
ASM_CMD=$(H316)/bin/asm
FRTN_CMD=$(H316)/bin/frtn
SRC_DIR=src
PROGRAMS=$(foreach n, $(wildcard $(SRC_DIR)/*.f $(SRC_DIR)/*.asm),$(notdir $(basename $(n))))
-#$(PROGRAMS):%:/$(BUILD_DIR)/%.f
+default: all
-default: $(foreach prog, $(PROGRAMS),$(BUILD_DIR)/$(prog).obj)
+all: $(foreach prog, $(PROGRAMS),$(BUILD_DIR)/$(prog).obj)
$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.f
- @if [ ! -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi
- $(FRTN_CMD) $< && mv $(notdir $(basename $<)).obj $(BUILD_DIR)
+ @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi
+ @$(FRTN_CMD) "$(subst $$,\$$,$^)" &&\
+ mv "$(notdir $(basename $(subst $$,\$$,$^))).obj" $(BUILD_DIR)
$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.asm
- @if [ ! -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi
- $(ASM_CMD) $< && mv $(notdir $(basename $<)).obj $(BUILD_DIR)
+ @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi
+ @$(ASM_CMD) "$(subst $$,\$$,$^)" &&\
+ mv "$(notdir $(basename "\"$(subst $$,\$$,$^)\"")).obj" $(BUILD_DIR)
clean :
@rm -rf *.obj $(BUILD_DIR)/ *.lst *.go *.par
-.PHONY: default clean
+.PHONY: default clean all