37 lines
1.2 KiB
Makefile
37 lines
1.2 KiB
Makefile
|
|
|
||
|
|
JAVA=/usr/bin/java
|
||
|
|
OUTPUT=output
|
||
|
|
GENERATED=generated
|
||
|
|
GRAMMAR1=PlSqlParser.g4
|
||
|
|
GRAMMAR2=PlSqlLexer.g4
|
||
|
|
|
||
|
|
# here is where you plug in the runtime for your OS
|
||
|
|
RUNTIME=runtime-linux
|
||
|
|
CC=g++
|
||
|
|
CCARGS=-c -I $(RUNTIME)/antlr4-runtime/ -I $(GENERATED) -std=c++11
|
||
|
|
LDARGS=-g
|
||
|
|
LIBS=$(RUNTIME)/lib/libantlr4-runtime.a
|
||
|
|
|
||
|
|
all: parser
|
||
|
|
|
||
|
|
parser: dirs antlr4 example.cpp
|
||
|
|
$(CC) $(CCARGS) example.cpp -o $(OUTPUT)/example.o
|
||
|
|
$(CC) $(CCARGS) $(GENERATED)/PlSqlParserBaseListener.cpp -o $(OUTPUT)/PlSqlParserBaseListener.o
|
||
|
|
$(CC) $(CCARGS) $(GENERATED)/PlSqlLexer.cpp -o $(OUTPUT)/PlSqlLexer.o
|
||
|
|
$(CC) $(CCARGS) $(GENERATED)/PlSqlParserListener.cpp -o $(OUTPUT)/PlSqlParserListener.o
|
||
|
|
$(CC) $(CCARGS) $(GENERATED)/PlSqlParser.cpp -o $(OUTPUT)/PlSqlParser.o
|
||
|
|
|
||
|
|
#$(CC) $(LDARGS) $(OUTPUT)/parser.o $(OUTPUT)/PlSqlBaseListener.o $(OUTPUT)/PlSqlLexer.o $(OUTPUT)/PlSqlListener.o $(OUTPUT)/PlSqlParser.o $(LIBS) -o parser
|
||
|
|
$(CC) $(LDARGS) $(OUTPUT)/example.o $(OUTPUT)/PlSqlLexer.o $(OUTPUT)/PlSqlParser.o $(LIBS) -o example
|
||
|
|
|
||
|
|
antlr4: $(GRAMMAR1) $(GRAMMAR2)
|
||
|
|
$(JAVA) -jar antlr-4.7-complete.jar -Dlanguage=Cpp -o $(GENERATED) $(GRAMMAR1) $(GRAMMAR2)
|
||
|
|
|
||
|
|
dirs:
|
||
|
|
mkdir -p $(OUTPUT)
|
||
|
|
mkdir -p $(GENERATED)
|
||
|
|
|
||
|
|
clean:
|
||
|
|
rm -rf $(OUTPUT)
|
||
|
|
rm -rf $(GENERATED)
|