メモリ管理の改善
[YACASL2.git] / test / unit / TEST.mk
index fee632d..fbda62a 100644 (file)
@@ -4,18 +4,20 @@
 # make prepare : CMDで設定されたコマンドを実行した出力結果を0.txt(テストの想定結果)に出力
 # make clean   : 「make」で生成されたファイルをクリア
 # make cleanall: 「make」と「make clean」で生成されたファイルをクリア
-LOGFILE = ../TEST.log
 ERRFILE = err.txt
 UNITNAME = `pwd | xargs basename`
 
+SRCDIR = ../../../src
 INCLUDE = ../../../include
 CC = gcc
 CFLAGS = -g -Wall -I $(INCLUDE)
-SRCDIR = ../../../src
-COMMONSRC = $(SRCDIR)/struct.o $(SRCDIR)/hash.o $(SRCDIR)/cmd.o $(SRCDIR)/cerr.o $(SRCDIR)/dump.o
+COMMONSRC = $(SRCDIR)/word.o $(SRCDIR)/struct.o $(SRCDIR)/hash.o $(SRCDIR)/cmd.o $(SRCDIR)/cmem.o  $(SRCDIR)/cerr.o
 ASSRC = $(SRCDIR)/assemble.o $(SRCDIR)/token.o $(SRCDIR)/label.o $(SRCDIR)/macro.o
-EXECSRC = $(SRCDIR)/exec.o
+EXECSRC = $(SRCDIR)/exec.o $(SRCDIR)/dump.o
 
+ifeq "$(UCLASS)" "ALL"
+  SRC = $(COMMONSRC) $(ASSRC) $(EXECSRC)
+endif
 ifeq "$(UCLASS)" "AS"
   SRC = $(COMMONSRC) $(ASSRC)
 endif
@@ -34,13 +36,12 @@ clean:
 cleanall: clean
        @rm -f 0.txt
 a.out: $(SRC) $(TESTSRCFILE)
-       @gcc $(CFLAGS) $(SRC) $(TESTSRCFILE)
-$(SRCDIR)/%.o: $(SRCDIR)/%.c
-       @$(CC) -c $(CFLAGS) $<
+       @make -sC $(SRCDIR)
+       gcc $(CFLAGS) $(SRC) $(TESTSRCFILE)
 0.txt 1.txt: a.out
        @./a.out >$@ 2>&1
 diff.txt: 1.txt
-       @-diff 0.txt 1.txt >$@ 2>&1
+       @-diff -c 0.txt 1.txt >$@ 2>&1
 report.txt: diff.txt
        @echo -n "$(UNITNAME): Test " >$@; \
      if test ! -s $^; then echo -n "Success " >>$@; rm -f $^; else echo -n "Failure " >>$@; fi; \