-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
52 lines (38 loc) · 1.06 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
COMPILECPP = g++ -std=gnu++17 -g -O0 -Wall -Wextra
FLEX = flex --outfile=${CLGEN}
BISON = bison --defines=${HYGEN} \
--output=${CYGEN}
EXECBIN = oc
SOURCES = astree.cpp lyutils.cpp \
string_set.cpp auxlib.cpp \
symtable.cpp attr_bitset.cpp \
oiler.cpp main.cpp
ALLSOURCES = ${SOURCES} ${CLGEN} ${CYGEN}
HEADERS = astree.h lyutils.h string_set.h auxlib.h \
symtable.h attr_bitset.h oiler.h
LSOURCES = scanner.l
CLGEN = yylex.cpp
YSOURCES = parser.y
HYGEN = yyparse.h
CYGEN = yyparse.cpp
OBJECTS = ${ALLSOURCES:.cpp=.o}
MAKEFILE = Makefile
all : ${EXECBIN}
${EXECBIN} : ${CYGEN} ${HYGEN} ${OBJECTS}
${COMPILECPP} -o ${EXECBIN} ${OBJECTS}
%.o : %.cpp
#checksource ${SOURCES}
${COMPILECPP} -c $<
yylex.o : yylex.cpp
g++ -std=gnu++14 -g -O0 -c $<
${CLGEN} : ${LSOURCES}
${FLEX} ${LSOURCES}
${CYGEN} ${HYGEN} : ${YSOURCES}
${BISON} ${YSOURCES}
clean :
rm -f ${CLGEN} ${CYGEN} ${HYGEN} ${DEPFILE} \
*.output *.o *.out *.err *.str *.tok *.ast *.sym \
*.oil
spotless :
${MAKE} clean; rm -f ${EXECBIN}
ci :