|
|
|
CFLAGS=-O2 -g -std=gnu++11 -fvisibility=hidden -fpic -flto -pthread -Wall
|
|
|
|
LDFLAGS=-O2 -fvisibility=hidden -Wl,--export-dynamic -fpic -flto -pthread -Wall
|
|
|
|
|
|
|
|
CC=g++
|
|
|
|
|
|
|
|
SOURCE = $(wildcard *.cpp) parser/lexical.cpp parser/grammatical.cpp
|
|
|
|
DEPENDS = $(subst .cpp,.d,$(SOURCE))
|
|
|
|
OBJECTS = $(subst .cpp,.o,$(SOURCE))
|
|
|
|
|
|
|
|
makemap: $(OBJECTS)
|
|
|
|
$(CC) $(LDFLAGS) -o $@ $(OBJECTS)
|
|
|
|
|
|
|
|
include $(DEPENDS)
|
|
|
|
|
|
|
|
%.o: %.cpp
|
|
|
|
$(CC) -c $(CFLAGS) -o $@ $<
|
|
|
|
|
|
|
|
%.d: %.cpp
|
|
|
|
$(CC) $(CFLAGS) -MM -MT $(subst .cpp,.o,$<) $< | sed 's%\(^.*\):%\1 $@ :%g' >$@
|
|
|
|
|
|
|
|
$(DEPENDS): parser/grammatical.h parser/lexical.h
|
|
|
|
|
|
|
|
|
|
|
|
parser/grammatical.d: parser/lexical.h
|
|
|
|
|
|
|
|
parser/lexical.cpp: parser/lexical.l
|
|
|
|
cd parser && flex lexical.l
|
|
|
|
[ -f parser/lexical.h ] && touch parser/lexical.h
|
|
|
|
|
|
|
|
parser/grammatical.cpp: parser/grammatical.y
|
|
|
|
cd parser && bison grammatical.y
|
|
|
|
[ -f parser/grammatical.h ] && touch parser/grammatical.h
|
|
|
|
|
|
|
|
parser/grammatical.h: parser/grammatical.y parser/grammatical.cpp
|
|
|
|
parser/lexical.h: parser/lexical.l parser/lexical.cpp
|
|
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f *.o *.d parser/*.{o,d} parser/{lexical,grammatical}.{cpp,h}
|
|
|
|
|
|
|
|
distclean: clean
|
|
|
|
rm -f makemap
|