*** empty log message ***
[h316.git] / lib / iolib / Makefile
index ae5956688958a38828e0b433cd8e72b77fd79202..f9c684612ba6c494007f12672463c8321377092c 100644 (file)
@@ -1,38 +1,39 @@
-# Skript, das die neue Bibliothek zusammenbauen soll 
+# Skript, das die neue Bibliothek zusammenbauen soll (01.01.06)
 
-OWN =  o$$al  o$$la o$$pl o$$pb i$$pa
-OWN_1=$(foreach obj, $(OWN),$(obj).asm)
-OWN_2=$(OWN_1:.asm=.obj)
-OWN_3=$(shell echo $(subst $$,\$$,$(OWN)) | dd conv=ucase 2>/dev/null) 
+SRC_DIR = src
+OBJ_DIR = obj
+LIB_DIR = lib
 
-ORG_USE=I$$AB I$$AI O$$AI O$$AB 
-ASM=$H316/bin/asm
+MODULES = o$$al  o$$la o$$pl o$$pb i$$pa
 
-##########################################
+FRTN_COMMAND = frtn
+ASM_COMMAND  = asm
+LDC_COMMAND  = ldc
 
-all: io.lib
+SRC_FILES = $(foreach obj, $(MODULES),$(obj).asm)
+OBJ_FILES = $(SRC_FILES:.asm=.obj)
+OBJ_FILES_FULL = $(foreach file, $(OBJ_FILES),$(OBJ_DIR)/$(file))
 
-io.lib: $(foreach org, $(ORG_USE), original/$(org)) $(OWN_3)
-       @echo Baue Bibliothek endgültig zusammen.
-       cat $(subst $$,\$$,\
-          $(OWN_3)\
-          $(foreach og, $(ORG_USE),original/$(og))\
-       )\
-       $(H316)/snippets/endseq \
-       > io.lib || rm io.lib
+##########################################
 
-obj object objects : $(OWN_2)
+libs : $(OBJ_FILES_FULL)
+       buildlib.sh
 
-$(OWN_3): $(OWN_2)
-       cat $(subst $$,\$$,$(OWN_2)) | ldc -s -l
+obj : $(OBJ_FILES_FULL)
 
-$(OWN_2):%.obj:src/%.asm
-       asm $(subst $$,\$$,$^)
+$(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:
-       @rm -f *.obj $(subst $$,\$$,$(OWN_3) $(foreach obj,$(OWN_2),src/$(obj))) io.lib *.lst
+       @echo Cleaning up.
+       @rm -rf $(OBJ_DIR) $(LIB_DIR)  *.lst *.go 
+       @buildlib.sh clean
+org:
+       ./makeorg.sh
+
+.PHONY: clean all org obj libs
 
-###########
-.PHONY: clean all obj object objects