COMPARGS = -DMYSQL_SERVER \
-DDEFAULT_MYSQL_HOME="\"/usr\"" \
-DDATADIR="\"/var/lib/mysql\"" \
-DSHAREDIR="\"/usr/share/mysql\"" \
-DHAVE_CONFIG_H \
-I. \
-I.. \
-I../innobase/include \
-I../ndb/include \
-I../ndb/include/ndbapi \
-I../ndb/include/mgmapi \
-I../include \
-I../include \
-I../regex \
-DDBUG_ON \
-DSAFE_MUTEX \
-DBIG_JOINS=1 \
-felide-constructors \
-fno-rtti \
-fno-implicit-templates \
-fno-exceptions \
-fno-rtti   \
-I../sql \
-DTEST=0

.SUFFIXES : .cc .y .l $(SUFFIXES)

.cc.o :
	g++ $(COMPARGS) -Wno-deprecated -g -Wall -I . -I$(CENTERCCLIBDIR)/incl -c  $*.cc

.y.cc :
	bison++ -p sparql -d -v -o $*.cc -h $*.h  $*.y
	sed "s/YY_sparqlParser_CLASS(YY_sparqlParser_CONSTRUCTOR_PARAM);/\\0\\x0a virtual ~YY_sparqlParser_CLASS() {;}/1" < $*.cc > $*.tmp
	mv $*.tmp $*.cc
	sed "s/YY_sparqlParser_CLASS(YY_sparqlParser_CONSTRUCTOR_PARAM);/\\0\\x0a virtual ~YY_sparqlParser_CLASS() {;}/1" < $*.h > $*.tmp
	mv $*.tmp $*.h
.l.cc :
	flex++ $(FLEXOPTS) -o$*.cc $*.l
.y.h :
	bison++ -p sparql -d  -v-o $*.cc -h $*.h  $*.y
	sed "s/YY_sparqlParser_CLASS(YY_sparqlParser_CONSTRUCTOR_PARAM);/\\0\\x0a virtual ~YY_sparqlParser_CLASS() {;}/1" < $*.cc > $*.tmp
	mv $*.tmp $*.cc
	sed "s/YY_sparqlParser_CLASS(YY_sparqlParser_CONSTRUCTOR_PARAM);/\\0\\x0a virtual ~YY_sparqlParser_CLASS() {;}/1" < $*.h > $*.tmp
	mv $*.tmp $*.h
.l.h :
	flex++ $(FLEXOPTS) -o$*.cc $*.l

$(top_builddir)/sql/mysqld: objs
	(cd ../sql && make)

objs: sparqlParser.o sparqlScanner.o

main : main.cc sparqlParser.o sparqlScanner.o sparqlFrob.h
	g++ $(COMPARGS) -Wno-deprecated -g -Wall -o $@ main.cc sparqlParser.o sparqlScanner.o

clean :
	rm -f sparql{{Parser,Scanner}.{cc,o},Parser.h,} *.out{,put}

sparqlParser.o : sparqlParser.cc sparqlParser.h FlexLexer.h sparqlFrob.h

sparqlScanner.o : sparqlScanner.cc sparqlParser.h FlexLexer.h sparqlFrob.h

sparqlParser.cc : sparqlParser.y

sparqlScanner.cc : sparqlScanner.l FlexLexer.h

sparqlParser.h : sparqlParser.y

sparqlParser.y : bnf
	PERL5LIB=~eric/sources/public/perl/modules ~eric/sources/public/perl/modules/W3C/Grammar/bin/yacker -lang cpp -n -stubs -o sparql bnf #  -code sparqlParser.y
	patch sparqlParser.y sparqlParser.y.headersAndFooters.patch 
	patch sparqlScanner.l sparqlScanner.l.headersAndFooters.patch 

