-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
64 lines (46 loc) · 1.4 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
CC = clang
CXX = clang++
YACC = bison
LEX = flex
INSTALL = install -c
DEBUG = -ggdb3 -DGC_DEBUG
RELEASE = -O2 -DNDEBUG
CFLAGS = --std=c99 -Wpedantic -Wall -Wextra -Werror $(DEBUG)
LFLAGS = -D_POSIX_C_SOURCE=200809L
LLVM_MODULES = core executionengine mcjit interpreter analysis native bitwriter
CFLAGS += $(shell llvm-config --cflags)
CXXFLAGS += $(shell llvm-config --cppflags)
LDFLAGS += $(shell llvm-config --ldflags)
LDLIBS += $(shell llvm-config --libs $(LLVM_MODULES) --system-libs)
.PHONY: default all clean test install uninstall
default: all
all: sinc
install: all
$(INSTALL) -d $(PREFIX)/bin/
$(INSTALL) sinc $(PREFIX)/bin/
uninstall:
$(RM) $(PREFIX)/bin/sinc
sinc.o: sinc.h parse.h debug.h error.h scope.h llvm_codegen.h \
graphviz_codegen.h
llvm_codegen.o: llvm_codegen.h sinc.h scope.h debug.h parse.h error.h
sinter_codegen.o: sinter_codegen.h parse.h
graphviz_codegen.o: graphviz_codegen.h parse.h error.h
parse.o: sinc.h
lex.o: sinc.h parse.h
scope.o: scope.h error.h debug.h
common.o: debug.h
sinc: sinc.o parse.o lex.o scope.o llvm_codegen.o sinter_codegen.o \
graphviz_codegen.o
$(LINK.cc) $(OUTPUT_OPTION) $^ $(LDLIBS)
test: all
$(MAKE) -C examples test
parse.o: parse.c
$(CC) -c --std=c99 $(OUTPUT_OPTION) $<
lex.o: lex.c
$(CC) -c --std=c99 $(OUTPUT_OPTION) $<
%.h: %.y
$(YACC) --defines=$@ $<
%.c: %.y
$(YACC) -o $@ $<
clean:
$(RM) sinc *.tab.* *.o lex.c parse.c parse.h