デバッグのため、ビルド後に*.oファイルを削除しないよう変更
[YACASL2.git] / src / Makefile
1 INCLUDE := ../include
2 CC := gcc
3 CFLAGS := -g -Wall -Wextra -I $(INCLUDE)
4 RM := rm -f
5
6 COMMONSRC := word.c cmem.c cerr.c
7 CASL2SRC := struct.c hash.c
8 ASSRC := assemble.c token.c label.c
9 EXECSRC := exec.c dump.c
10
11 .PHONY: all clean
12
13 all: ../casl2 ../comet2 ../dumpword
14
15 ../casl2: casl2.o $(subst .c,.o,$(COMMONSRC) $(CASL2SRC) $(ASSRC) $(EXECSRC))
16         $(CC) $(CFLAGS) -o $@ $^
17         @rm -f *.d
18
19 ../comet2: comet2.o $(subst .c,.o,$(COMMONSRC) $(CASL2SRC) $(EXECSRC))
20         $(CC) $(CFLAGS) -o $@ $^
21         @rm -f *.d
22
23 ../dumpword: dumpword.o $(subst .c,.o,$(COMMONSRC))
24         $(CC) $(CFLAGS) -o $@ $^
25         @rm -f *.d
26
27 %.o: %.c
28         $(CC) -c $(CFLAGS) $<
29
30 %.d: %.c
31         @$(CC) -MM -I $(INCLUDE) $< | sed 's/\($*\.o\):/\1 $@:/g' >$@
32
33 -include $(subst .c,.d,casl2.c comet2.c dumpword.c $(COMMONSRC) $(CASL2SRC) $(ASSRC) $(EXECSRC))
34
35 TAGS: $(INCLUDE)/*.h *.c
36         @if test `which etags`; then etags $^; fi
37
38 clean:
39         @rm -f ../casl2 ../comet2 ../dumpword
40         @rm -f *.o *.d