*** empty log message ***
[h316.git] / programs / tools / Makefile
index 54afeb8c8743ef1e500ad4c661b1a6f1c689ab4c..17cd216d8e0636afe46bc133704e75ba15b1ca7b 100644 (file)
@@ -1,32 +1,26 @@
-# Makefile for assembler sources
+# Universal Makefile for X16 code
 
-SRC_DIR = src
-OBJ_DIR = build
-LIB_DIR = lib
 
-MODULES = binal cleanup cleanup2 restart
+ASM_CMD=$(H316)/bin/asm
+FRTN_CMD=$(H316)/bin/frtn
+SRC_DIR=src
+BUILD_DIR=build
 
-FRTN_COMMAND = frtn
-ASM_COMMAND  = asm
+PROGRAMS=$(foreach n, $(wildcard $(SRC_DIR)/*.f $(SRC_DIR)/*.asm),$(notdir $(basename $(n))))
 
-SRC_FILES = $(foreach obj, $(MODULES),$(obj).asm)
-OBJ_FILES = $(SRC_FILES:.asm=.obj)
-OBJ_FILES_FULL = $(foreach file, $(OBJ_FILES),$(OBJ_DIR)/$(file))
+#$(PROGRAMS):%:/$(BUILD_DIR)/%.f
 
-##########################################
+default: $(foreach prog, $(PROGRAMS),$(BUILD_DIR)/$(prog).obj)
 
-obj : $(OBJ_FILES_FULL)
+$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.f
+       @if [ ! -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi
+       $(FRTN_CMD) $< && mv $(notdir $(basename $<)).obj $(BUILD_DIR)
 
-$(OBJ_FILES_FULL):$(OBJ_DIR)/%.obj:$(SRC_DIR)/%.asm
-       @echo Building: $(subst $$,\$$,$@)
-       @if [ ! -d $(OBJ_DIR) ]; then mkdir $(OBJ_DIR); fi
-       @ rm -f $@
-       @ cd $(OBJ_DIR) && $(ASM_COMMAND) ../$(subst $$,\$$,$^)
-#      @ cd $(OBJ_DIR) && ldc -s -l $(notdir $(subst $$,\$$,$@))
+$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.asm
+       @if [ ! -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi
+       $(ASM_CMD) $< && mv $(notdir $(basename $<)).obj $(BUILD_DIR)
 
-clean:
-       @echo Cleaning up.
-       @rm -rf $(OBJ_DIR) $(LIB_DIR)  *.lst *.go 
-
-.PHONY: clean all org obj libs
+clean :
+       @rm -rf *.obj $(BUILD_DIR)/ *.lst *.go *.par
 
+.PHONY: default clean