-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
30 lines (21 loc) · 673 Bytes
/
Copy pathmakefile
File metadata and controls
30 lines (21 loc) · 673 Bytes
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
OBJECT = ./object
OBJ_O = ./obj_o
INCLUDE = ./include
TARGET_DIR = ./
OBJECT_SRC = $(wildcard ${OBJECT}/*.cpp)
OBJECT_TARGET = $(patsubst %.cpp, ${OBJ_O}/%.o, $(notdir ${OBJECT_SRC}))
TARGET_FILE = main
BIN_TARGET = ${TARGET_DIR}/${TARGET_FILE}
CC = g++
CCFLAGS = -I ${INCLUDE}
all: exec $(BIN_TARGET)
exec:
lex ./compile/lex.l
yacc -d ./compile/yacc.y && mv ./lex.yy.c ./object/lex.yy.cpp && mv ./y.tab.c ./object/y.tab.cpp && mv ./y.tab.h ./include/y.tab.h
${BIN_TARGET} : ${OBJECT_TARGET}
$(CC) -o $@ ${OBJECT_TARGET}
${OBJ_O}/%.o : ${OBJECT}/%.cpp
$(CC) $(CCFLAGS) -o $@ -c $<
clean:
find $(OBJ_O) -name *.o -exec rm -rf {} \;
rm -rf $(BIN_TARGET)