-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmakefile
More file actions
31 lines (24 loc) · 686 Bytes
/
makefile
File metadata and controls
31 lines (24 loc) · 686 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
30
31
# LambLexer
# by James 2017/04/06
CXX = g++
CXXFLAGS = -g -Wall -O2 -std=c++11
BIN = bin
SRC = src
OBJ = obj
COMPILER = $(BIN)/compiler
LEXER = $(BIN)/lexer
COMPILER_MODULES = parser compiler test token lex util main
COMPILER_OBJS = $(COMPILER_MODULES:%=$(OBJ)/%.o)
LEXER_MODULES = lex token test util lex_main
LEXER_OBJS = $(LEXER_MODULES:%=$(OBJ)/%.o)
$(OBJ)/%.o: $(SRC)/%.cpp
@test -d $(OBJ) || mkdir $(OBJ)
$(CXX) $(CXXFLAGS) -c -o $@ $<
compiler: $(COMPILER_OBJS)
@test -d $(OBJ) || mkdir $(BIN)
$(CXX) $(CXXFLAGS) -o $(COMPILER) $(COMPILER_OBJS)
lexer: $(LEXER_OBJS)
@test -d $(OBJ) || mkdir $(BIN)
$(CXX) $(CXXFLAGS) -o $(LEXER) $(LEXER_OBJS)
clean:
rm $(OBJ)/*.o