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 \
	pracrodaotest.cc \
	resumeparser.cc \
	saxparser.cc \
	server.cc \
	templatelist.cc \
	templateheaderparser.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 \
	pracrodaotest.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 \
	pracrodaotest.h \
	resumeparser.h \
	saxparser.h \
	server.h \
	templatelist.h \
	templateheaderparser.h \
	templateparser.h \
	transactionparser.h \
	tcpsocket.h \
	utf8.h \
	versionstr.h \
	widgetgenerator.h \
	xml_encode_decode.h

################
# Test Section #
################

TESTFILES = \
	test_tcpsocket \
	test_pracrodaotest \
	test_widgetgenerator \
	test_configurationparser \
	test_exception \
	test_templateheaderparser \
	test_macroheaderparser \
	test_templatelist \
	test_saxparser \
	test_transactionparser \
	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`

BASICFILES = exception.cc log.cc debug.cc configuration.cc utf8.cc
BASICFLAGS = -I.. -DHAVE_CONFIG_H $(CONFIG_CXXFLAGS) $(CONFIG_LIBS)

PARSERFILES = saxparser.cc
PARSERFLAGS = -lexpat

DBFILES = database.cc pracrodao.cc pracrodaopgsql.cc pracrodaotest.cc
DBFLAGS = $(PQXX_LIBS) $(PQXX_CXXFLAGS)

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

test_clean:
	rm -f $(TESTFILES) $(TESTLOGS)

TEST_TCPSOCKET_FILES = \
	tcpsocket.cc \
	$(BASICFILES)
test_tcpsocket: $(TEST_TCPSOCKET_FILES)
	@../../tools/test $(TEST_TCPSOCKET_FILES) $(BASICFLAGS)

TEST_PRACRODAOTEST_FILES = \
	pracrodaotest.cc \
	pracrodao.cc \
	$(BASICFILES)
test_pracrodaotest: $(TEST_PRACRODAOTEST_FILES)
	@../../tools/test $(TEST_PRACRODAOTEST_FILES) $(BASICFLAGS)

TEST_WIDGETGENERATOR_FILES = \
	widgetgenerator.cc \
	xml_encode_decode.cc \
	luaquerymapper.cc \
	$(BASICFILES) \
	$(DBFILES)
test_widgetgenerator: $(TEST_WIDGETGENERATOR_FILES)
	@../../tools/test $(TEST_WIDGETGENERATOR_FILES) $(BASICFLAGS) $(LUA_LIBS) $(DBFLAGS)

TEST_CONFIGURATIONPARSER_FILES = \
	configurationparser.cc \
	configuration.cc \
	exception.cc \
	log.cc
test_configurationparser: $(TEST_CONFIGURATIONPARSER_FILES)
	@../../tools/test $(TEST_CONFIGURATIONPARSER_FILES) $(BASICFLAGS)

TEST_EXCEPTION_FILES = \
	exception.cc \
	log.cc
test_exception: $(TEST_EXCEPTION_FILES)
	@../../tools/test $(TEST_EXCEPTION_FILES)

TEST_TEMPLATEHEADERPARSER_FILES = \
	templateheaderparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_templateheaderparser: $(TEST_TEMPLATEHEADERPARSER_FILES)
	@../../tools/test $(TEST_TEMPLATEHEADERPARSER_FILES) $(BASICFLAGS) $(PARSERFLAGS)

TEST_MACROHEADERPARSER_FILES = \
	macroheaderparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_macroheaderparser: $(TEST_MACROHEADERPARSER_FILES)
	@../../tools/test $(TEST_MACROHEADERPARSER_FILES) $(BASICFLAGS) $(PARSERFLAGS)

TEST_TEMPLATELIST_FILES = \
	templatelist.cc \
	versionstr.cc \
	templateheaderparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_templatelist: $(TEST_TEMPLATELIST_FILES)
	@../../tools/test $(TEST_TEMPLATELIST_FILES) $(PARSERFLAGS) $(BASICFLAGS)

TEST_MACROLIST_FILES = \
	macrolist.cc \
	versionstr.cc \
	macroheaderparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_macrolist: $(TEST_MACROLIST_FILES)
	@../../tools/test $(TEST_MACROLIST_FILES) $(PARSERFLAGS) $(BASICFLAGS)

TEST_SAXPARSER_FILES = \
	saxparser.cc \
	$(BASICFILES)
test_saxparser: $(TEST_SAXPARSER_FILES)
	@../../tools/test $(TEST_SAXPARSER_FILES) $(BASICFLAGS) $(PARSERFLAGS)

TEST_TRANSACTIONPARSER_FILES = \
	transactionparser.cc \
	$(BASICFILES) \
	$(PARSERFILES)
test_transactionparser: $(TEST_TRANSACTIONPARSER_FILES)
	@../../tools/test $(TEST_TRANSACTIONPARSER_FILES) $(BASICFLAGS) $(PARSERFLAGS)

TEST_VERSIONSTR_FILES = \
	versionstr.cc \
	$(BASICFILES)
test_versionstr: $(TEST_VERSIONSTR_FILES)
	@../../tools/test $(TEST_VERSIONSTR_FILES) $(BASICFLAGS)

TEST_QUERYHANDLERPENTOMINOS_FILES = \
	queryhandlerpentominos.cc \
	tcpsocket.cc \
	queryparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_queryhandlerpentominos: $(TEST_QUERYHANDLERPENTOMINOS_FILES)
	@../../tools/test $(TEST_QUERYHANDLERPENTOMINOS_FILES) $(PARSERFLAGS) $(BASICFLAGS)

TEST_QUERYHANDLERPRACRO_FILES = \
	queryhandlerpracro.cc \
	tcpsocket.cc \
	queryparser.cc \
	$(DBFILES) \
	$(PARSERFILES) \
	$(BASICFILES)
test_queryhandlerpracro: $(TEST_QUERYHANDLERPRACRO_FILES)
	@../../tools/test $(TEST_QUERYHANDLERPRACRO_FILES) $(DBFLAGS) $(PARSERFLAGS) $(BASICFLAGS)

TEST_QUERYPARSER_FILES = \
	queryparser.cc \
	$(BASICFILES) \
	$(PARSERFILES)
test_queryparser: $(TEST_QUERYPARSER_FILES)
	@../../tools/test $(TEST_QUERYPARSER_FILES) $(BASICFLAGS) $(PARSERFLAGS)

TEST_LUAQUERMAPPER_FILES = \
	luaquerymapper.cc \
	$(BASICFILES)
test_luaquerymapper: $(TEST_LUAQUERMAPPER_FILES)
	@../../tools/test $(TEST_LUAQUERMAPPER_FILES) $(LUA_LIBS) $(BASICFLAGS)

TEST_TEMPLATEPARSER_FILES = \
	templateparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_templateparser: $(TEST_TEMPLATEPARSER_FILES)
	@../../tools/test $(TEST_TEMPLATEPARSER_FILES) $(BASICFLAGS) $(PARSERFLAGS)

TEST_MACROPARSER_FILES = \
	macroparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_macroparser: $(TEST_MACROPARSER_FILES)
	@../../tools/test $(TEST_MACROPARSER_FILES) $(BASICFLAGS) $(PARSERFLAGS)

TEST_SERVER_FILES = \
	server.cc \
	templateparser.cc \
	templatelist.cc \
	templateheaderparser.cc \
	queryparser.cc \
	queryhandlerpentominos.cc \
	journal_commit.cc \
	macrolist.cc \
	queryhandlerpracro.cc \
	macroheaderparser.cc \
	versionstr.cc \
	resumeparser.cc \
	luaquerymapper.cc \
	tcpsocket.cc \
	transactionparser.cc \
	widgetgenerator.cc \
	database.cc \
	pracrodao.cc \
	pracrodaotest.cc \
	pracrodaopgsql.cc \
	luaresume.cc \
	macroparser.cc \
	xml_encode_decode.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_server: $(TEST_SERVER_FILES)
	@../../tools/test $(TEST_SERVER_FILES) $(BASICFLAGS) $(LUA_LIBS) $(DBFLAGS) $(PARSERFLAGS)

TEST_PRACRODAOPGSQL_FILES = \
	pracrodaopgsql.cc \
	pracrodao.cc \
	$(BASICFILES)
test_pracrodaopgsql: $(TEST_PRACRODAOPGSQL_FILES)
	@../../tools/test $(TEST_PRACRODAOPGSQL_FILES) $(DBFLAGS) $(BASICFLAGS)

TEST_XMLENCODEDECODE_FILES = \
	xml_encode_decode.cc
test_xml_encode_decode: $(TEST_XMLENCODEDECODE_FILES)
	@../../tools/test $(TEST_XMLENCODEDECODE_FILES)

TEST_JOURNALCOMMIT_FILES = \
	journal_commit.cc \
	templateparser.cc \
	$(PARSERFILES) \
	$(BASICFILES)
test_journal_commit: $(TEST_JOURNALCOMMIT_FILES)
	@../../tools/test $(TEST_JOURNALCOMMIT_FILES) $(PARSERFLAGS) $(BASICFLAGS)

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