52 lines
966 B
Makefile
52 lines
966 B
Makefile
#
|
|
# make source (build the source code into build/)
|
|
#
|
|
# make library
|
|
#
|
|
#
|
|
#
|
|
#
|
|
|
|
# directories
|
|
BIN = bin
|
|
SRC = src
|
|
SRCSQL = src/lib/sql
|
|
SRCPARSER = src/parser
|
|
|
|
# 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)
|
|
LIBHEADERS = $(shell find $(SRCSQL)/ -name '*.h') $(SRC)/SQLParser.h
|
|
|
|
# compile & link flages
|
|
CC = g++
|
|
CFLAGS = -std=c++11 -Wall -fPIC
|
|
LIBFLAGS = -shared
|
|
TARGET = libsqlparser.so
|
|
|
|
|
|
all: library
|
|
|
|
|
|
library: $(LIBOBJ)
|
|
$(CC) $(LIBFLAGS) -o $(TARGET) $(LIBOBJ)
|
|
|
|
|
|
%.o: %.cpp $(PARSERFILES)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(SRCPARSER)/bison_parser.cpp: parser
|
|
$(SRCPARSER)/flex_lexer.cpp: parser
|
|
|
|
parser:
|
|
make -C $(SRCPARSER)/
|
|
|
|
clean:
|
|
find $(SRC) -type f -name '*.o' -delete
|
|
|
|
cleanparser:
|
|
make -C $(SRCPARSER)/ clean
|
|
|
|
FORCE:
|