X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=programs%2Ftools%2FMakefile;h=ead349c2971a3d0188d051a8e760fd8730accae8;hb=52147402c19a69c9774bb256420a16233043d3fe;hp=436f1d57917f8ecaeaededf88c480175440adb2e;hpb=325547c41c97f16f4f6d8a0c430caf68f7fb64b6;p=h316.git diff --git a/programs/tools/Makefile b/programs/tools/Makefile index 436f1d5..ead349c 100644 --- a/programs/tools/Makefile +++ b/programs/tools/Makefile @@ -1,32 +1,27 @@ -# Makefile for assembler sources +# Universal Makefile for X16 code -SRC_DIR = src -OBJ_DIR = build -LIB_DIR = lib +ASM_CMD=$(H316)/bin/asm +FRTN_CMD=$(H316)/bin/frtn +SRC_DIR=src +BUILD_DIR=build -MODULES = binal cleanup cleanup2 +PROGRAMS=$(foreach n, $(wildcard $(SRC_DIR)/*.f $(SRC_DIR)/*.asm),$(notdir $(basename $(n)))) -FRTN_COMMAND = frtn -ASM_COMMAND = asm +default: all -SRC_FILES = $(foreach obj, $(MODULES),$(obj).asm) -OBJ_FILES = $(SRC_FILES:.asm=.obj) -OBJ_FILES_FULL = $(foreach file, $(OBJ_FILES),$(OBJ_DIR)/$(file)) +all: $(foreach prog, $(PROGRAMS),$(BUILD_DIR)/$(prog).obj) -########################################## +$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.f + @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi + @$(FRTN_CMD) "$(subst $$,\$$,$^)" &&\ + mv "$(notdir $(basename $(subst $$,\$$,$^))).obj" $(BUILD_DIR) -obj : $(OBJ_FILES_FULL) +$(BUILD_DIR)/%.obj:$(SRC_DIR)/%.asm + @if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi + @$(ASM_CMD) "$(subst $$,\$$,$^)" &&\ + mv "$(notdir $(basename "\"$(subst $$,\$$,$^)\"")).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 $$,\$$,$@)) - -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 all