HyriseSQLParser/Makefile

64 lines
1.4 KiB
Makefile
Raw Normal View History

# directories
BIN = bin
SRC = src
SRCPARSER = src/parser
2014-12-15 18:32:46 +01:00
# files
PARSERFILES = $(SRCPARSER)/bison_parser.cpp $(SRCPARSER)/flex_lexer.cpp
LIBCPP = $(shell find $(SRC)/ -name '*.cpp' -not -path "$(SRCPARSER)/*") $(SRCPARSER)/bison_parser.cpp $(SRCPARSER)/flex_lexer.cpp
LIBOBJ = $(LIBCPP:%.cpp=%.o)
2015-12-23 16:14:39 +01:00
TESTCPP = $(shell find test/lib/ -name '*.cpp')
# compile & link flages
CC = g++
CFLAGS = -std=c++11 -Wall -fPIC
LIBFLAGS = -shared
TARGET = libsqlparser.so
2014-12-15 18:32:46 +01:00
2015-12-23 16:14:39 +01:00
CTESTFLAGS = -Wall -Isrc/ -Itest/ -L./ -std=c++11
2014-12-15 18:32:46 +01:00
all: library
2015-12-23 16:14:39 +01:00
library: $(TARGET)
2015-12-23 16:14:39 +01:00
$(TARGET): $(LIBOBJ)
$(CC) $(LIBFLAGS) -o $(TARGET) $(LIBOBJ)
2014-12-15 18:32:46 +01:00
%.o: %.cpp $(PARSERFILES)
$(CC) $(CFLAGS) -c -o $@ $<
$(SRCPARSER)/bison_parser.cpp: parser
$(SRCPARSER)/flex_lexer.cpp: parser
parser:
make -C $(SRCPARSER)/
clean:
2015-12-23 16:14:39 +01:00
rm -f $(TARGET)
rm -rf $(BIN)
find $(SRC) -type f -name '*.o' -delete
cleanparser:
make -C $(SRCPARSER)/ clean
2015-12-23 17:00:41 +01:00
cleanall: clean cleanparser
2015-12-23 16:14:39 +01:00
############
### Test ###
############
test: $(BIN)/sql_tests $(BIN)/sql_grammar_test
LD_LIBRARY_PATH=./ $(BIN)/sql_grammar_test -f "test/lib/valid_queries.sql"
LD_LIBRARY_PATH=./ $(BIN)/sql_tests
$(BIN)/sql_tests: library
@mkdir -p $(BIN)/
$(CC) $(CTESTFLAGS) $(TESTCPP) test/sql_tests.cpp -o $(BIN)/sql_tests -lsqlparser
$(BIN)/sql_grammar_test: library
@mkdir -p $(BIN)/
$(CC) $(CTESTFLAGS) test/sql_grammar_test.cpp -o $(BIN)/sql_grammar_test -lsqlparser