48254ab695fc6a4b6c46b9c003615cf155fe4316
[YACASL2.git] / src / Makefile
1 INCLUDE = ../include
2 CC = gcc
3 CFLAGS = -g -Wall -I $(INCLUDE)
4 HASHSRC = hash.o
5 CERRSRC = cerr.o
6 WORDSRC = word.o
7 COMMONSRC = $(WORDSRC) $(HASHSRC) $(CERRSRC) struct.o cmd.o
8 ASSRC = assemble.o token.o label.o macro.o
9 EXECSRC = exec.o dump.o
10
11 .PHONY: all clean
12
13 all: ../casl2 ../comet2 ../dumpword
14
15 ../casl2: casl2.o $(COMMONSRC) $(ASSRC) $(EXECSRC)
16         $(CC) $(CFLAGS) -o $@ $^
17
18 ../comet2: comet2.o $(COMMONSRC) $(EXECSRC)
19         $(CC) $(CFLAGS) -o $@ $^
20
21 ../dumpword: dumpword.o $(WORDSRC) $(CERRSRC)
22         $(CC) $(CFLAGS) -o $@ $^
23
24 %.o: %.c
25         $(CC) -c $(CFLAGS) $<
26
27 casl2.o comet2.o $(COMMONSRC) $(ASSRC) $(EXECSRC): $(INCLUDE)/casl2.h $(INCLUDE)/word.h $(INCLUDE)/hash.h $(INCLUDE)/cerr.h
28
29 casl2.o $(ASSRC): $(INCLUDE)/assemble.h
30
31 comet2.o $(EXECSRC): $(INCLUDE)/exec.h
32
33 TAGS: $(INCLUDE)/*.h *.c
34         @if test `which etags`; then etags $^; fi
35
36 clean:
37         @rm -f *.o