bin_PROGRAMS = pracrod macrotool

pracrod_LDADD = $(LD_EFENCE) $(PQXX_LIBS) $(CONFIG_LIBS) $(LUA_LIBS) -lpthread

pracrod_CXXFLAGS = $(PQXX_CXXFLAGS) $(CONFIG_CXXFLAGS) $(LUA_CXXFLAGS)

pracrod_SOURCES = \
	pracrod.cc \
	daemon.cc \
	database.cc \
	configuration.cc \
	configurationparser.cc \
	debug.cc \
	exception.cc \
	queryhandlerpentominos.cc \
	queryhandlerpracro.cc \
	queryparser.cc \
	journal_commit.cc \
	log.cc \
	luaquerymapper.cc \
	luaresume.cc \
	macroheaderparser.cc \
	macrolist.cc \
	macroparser.cc \
	pracrodao.cc \
	pracrodaopgsql.cc \
	resumeparser.cc \
	saxparser.cc \
	server.cc \
	templateparser.cc \
	transactionparser.cc \
	tcpsocket.cc \
	utf8.cc \
	versionstr.cc \
	widgetgenerator.cc \
	xml_encode_decode.cc

macrotool_LDADD = $(LD_EFENCE) $(PQXX_LIBS) $(CONFIG_LIBS) $(LUA_LIBS) -lpthread

macrotool_CXXFLAGS = $(PQXX_CXXFLAGS) $(CONFIG_CXXFLAGS) $(LUA_CXXFLAGS)

macrotool_SOURCES = \
	macrotool.cc \
	debug.cc \
	configuration.cc \
	configurationparser.cc \
	database.cc \
	exception.cc \
	log.cc \
	macroheaderparser.cc \
	macrolist.cc \
	macroparser.cc \
	macrotool_dump.cc \
	macrotool_fieldnames.cc \
	macrotool_filehandler.cc \
	macrotool_util.cc \
	pracrodao.cc \
	pracrodaopgsql.cc \
	saxparser.cc \
	templateparser.cc \
	versionstr.cc

EXTRA_DIST = \
	configuration.h \
	configurationparser.h \
	daemon.h \
	database.h \
	dbtypes.h \
	debug.h \
	exception.h \
	queryhandler.h \
	queryhandlerpentominos.h \
	queryhandlerpracro.h \
	queryparser.h \
	journal_commit.h \
	log.h \
	luaquerymapper.h \
	luaresume.h \
	macroheaderparser.h \
	macrolist.h \
	macroparser.h \
	macrotool_dump.h \
	macrotool_fieldnames.h \
	macrotool_filehandler.h \
	macrotool_util.h \
	pracrodao.h \
	pracrodaopgsql.h \
	resumeparser.h \
	saxparser.h \
	server.h \
	templateparser.h \
	transactionparser.h \
	tcpsocket.h \
	utf8.h \
	versionstr.h \
	widgetgenerator.h \
	xml_encode_decode.h

TESTFILES = \
	test_versionstr \
	test_macrolist \
	test_queryhandlerpentominos \
	test_queryhandlerpracro \
	test_queryparser \
	test_luaquerymapper \
	test_templateparser \
	test_server \
	test_pracrodaopgsql \
	test_macroparser \
	test_xml_encode_decode \
	test_journal_commit


TESTLOGS = `for F in ${TESTFILES}; do echo $$F.log; done`

BASICS = "-I.. -DHAVE_CONFIG_H exception.cc log.cc debug.cc configuration.cc utf8.cc"
PARSERBASICS = "saxparser.cc -lexpat"
DBBASICS = "database.cc pracrodao.cc pracrodaopgsql.cc $(PQXX_LIBS) $(PQXX_CXXFLAGS)"

test: $(TESTFILES)
	@echo "All tests done."

test_clean:
	rm -f $(TESTFILES)

test_versionstr: versionstr.cc
	@../../tools/test versionstr.cc $(BASICS)

test_macrolist: macrolist.cc
	@../../tools/test macrolist.cc versionstr.cc macroheaderparser.cc $(PARSERBASICS) $(BASICS)

test_queryhandlerpentominos: queryhandlerpentominos.cc
	@../../tools/test queryhandlerpentominos.cc tcpsocket.cc queryparser.cc $(PARSERBASICS) $(BASICS)

test_queryhandlerpracro: queryhandlerpracro.cc
	@../../tools/test queryhandlerpracro.cc tcpsocket.cc queryparser.cc $(DBBASICS) $(PARSERBASICS) $(BASICS)

test_queryparser: queryparser.cc
	@../../tools/test queryparser.cc queryhandlerpentominos.cc tcpsocket.cc $(BASICS) $(PARSERBASICS)

test_luaquerymapper: luaquerymapper.cc
	@../../tools/test luaquerymapper.cc queryparser.cc queryhandlerpentominos.cc tcpsocket.cc $(BASICS) $(PARSERBASICS) $(LUA_LIBS)

test_templateparser: templateparser.cc
	@../../tools/test templateparser.cc $(PARSERBASICS) $(BASICS)

test_macroparser: macroparser.cc
	@../../tools/test macroparser.cc $(PARSERBASICS) $(BASICS)

test_server: server.cc
	@../../tools/test server.cc templateparser.cc queryparser.cc queryhandlerpentominos.cc journal_commit.cc macrolist.cc queryhandlerpracro.cc macroheaderparser.cc versionstr.cc resumeparser.cc luaquerymapper.cc tcpsocket.cc $(BASICS) transactionparser.cc widgetgenerator.cc database.cc pracrodao.cc pracrodaopgsql.cc luaresume.cc macroparser.cc xml_encode_decode.cc $(PARSERBASICS) $(LUA_LIBS) $(CONFIG_LIBS) $(PQXX_LIBS) $(PQXX_CXXFLAGS)
	@sleep 1s; killall -9 test_server

test_pracrodaopgsql: pracrodaopgsql.cc
	@../../tools/test pracrodaopgsql.cc pracrodao.cc $(BASICS) $(PQXX_LIBS) $(PQXX_CXXFLAGS) -I..

test_xml_encode_decode: xml_encode_decode.cc
	@../../tools/test xml_encode_decode.cc

test_journal_commit: journal_commit.cc
	@../../tools/test journal_commit.cc templateparser.cc $(PARSERBASICS) $(BASICS)

CLEANFILES = $(TESTFILES) $(TESTLOGS) *~