メモリ管理の改善
[YACASL2.git] / src / Makefile
index eab8363..ca967d9 100644 (file)
@@ -1,23 +1,41 @@
 INCLUDE = ../include
 CC = gcc
 CFLAGS = -g -Wall -I $(INCLUDE)
-COMMONSRC = struct.o cmd.o cerr.o
-ASSRC = assemble.o token.o label.o macro.o
-EXECSRC = exec.o dump.o
-.PHPNY: all clean
-all: ../casl2 ../comet2 TAGS
-../casl2: casl2.o $(COMMONSRC) $(ASSRC) $(EXECSRC)
+WORDOBJ = word.o
+HASHOBJ = hash.o
+CMEMOBJ = cmem.o
+CERROBJ = cerr.o
+COMMONOBJ = $(WORDOBJ) $(HASHOBJ) $(CMEMOBJ) $(CERROBJ) struct.o cmd.o
+ASOBJ = assemble.o token.o label.o macro.o
+EXECOBJ = exec.o dump.o
+COMMONHEAD = $(INCLUDE)/casl2.h $(INCLUDE)/word.h $(INCLUDE)/hash.h $(INCLUDE)/cmem.h $(INCLUDE)/cerr.h
+ASHEAD = $(INCLUDE)/assemble.h
+EXECHEAD = $(INCLUDE)/exec.h
+
+.PHONY: all clean
+
+all: ../casl2 ../comet2 ../dumpword
+
+../casl2: casl2.o $(COMMONOBJ) $(ASOBJ) $(EXECOBJ)
        $(CC) $(CFLAGS) -o $@ $^
-../comet2: comet2.o $(COMMONSRC) $(EXECSRC)
+
+../comet2: comet2.o $(COMMONOBJ) $(EXECOBJ)
        $(CC) $(CFLAGS) -o $@ $^
+
+../dumpword: dumpword.o $(WORDOBJ) $(CMEMOBJ) $(CERROBJ)
+       $(CC) $(CFLAGS) -o $@ $^
+
 %.o: %.c
        $(CC) -c $(CFLAGS) $<
-casl2.o comet2.o $(COMMONSRC) $(ASSRC) $(EXECSRC): $(INCLUDE)/casl2.h
-casl2.o $(ASSRC): $(INCLUDE)/assemble.h
-comet2.c $(EXECSRC): $(INCLUDE)/exec.h
+
+casl2.o comet2.o $(COMMONOBJ) $(ASOBJ) $(EXECOBJ): $(COMMONHEAD)
+
+casl2.o $(ASOBJ): $(ASHEAD)
+
+comet2.o $(EXECOBJ): $(EXECHEAD)
+
 TAGS: $(INCLUDE)/*.h *.c
-       @if test `which etags`; then \
-      etags $^; \
-    fi
+       @if test `which etags`; then etags $^; fi
+
 clean:
        @rm -f *.o