TEST_TIMEOUT=60

include Params.inc

#COV_CFLAGS=-fprofile-arcs -ftest-coverage

CXXFLAGS=-Wall -Wno-unknown-pragmas -ggdb3 -fpermissive $(COV_CFLAGS)
INCLUDES=-Iinclude `mysql_config --cflags` \
	-I$(top_srcdir)\
	-I$(top_srcdir)/modules/interfaces\
	-I$(top_srcdir)/modules\
	-I$(top_srcdir)/modules/wb.model/src\
	-I$(top_srcdir)/generated/\
	-I$(top_srcdir)/library/base/include\
	-I$(top_srcdir)/library/utilities/src\
	-I$(top_srcdir)/library/utilities/shared_include\
	-I$(top_srcdir)/library/sql-parser/include\
	-I$(top_srcdir)/library/grt/src\
	-I$(top_srcdir)/library/grt/unit-tests\
	-I$(top_srcdir)/library/canvas/src\
	-I$(top_srcdir)/backend\
	-I$(top_srcdir)/backend/workbench\
	-I$(top_srcdir)/backend/wbcanvas\
	-I$(top_srcdir)/backend/grt\
	-I$(top_srcdir)/backend/grtdb\
	-I$(top_srcdir)/modules/db.mysql/src\
	-I$(top_srcdir)/modules/wb.validation/src\
	-I$(top_srcdir)/plugins/db/backend\
	-I$(top_srcdir)/library/grt/src/diff\
	-I$(top_srcdir)/library/dbc/common/src\
	-I$(top_srcdir)/generated/grti\
	-I$(top_srcdir)/frontend/linux/workbench/include\
	-I$(top_srcdir)/testing/tut\
	-DENABLE_LUA_MODULES -DEXCLUDE_MYSQL_SUPPORT \
	 `pkg-config glib-2.0 libxml-2.0 sigc++-2.0 cairo glitz-glx --cflags` `pcre-config --cflags` \
	-DIMAGE_TESTS ${FLAGS}

GRT_LIB=../../library/grt/src/.libs/libgrt.a
GRT_EXTRAS=`pkg-config gthread-2.0 --libs`
GC_LIBS=../../library/canvas/src/.libs/libmdcanvas.a
GC_EXTRAS=`pkg-config cairo glitz cairo-glitz glitz-glx --libs` -lGLU
PARSER_LIBS=../../library/sql-parser/source/.libs/libsqlparser.a
UTIL_LIBS=../../library/utilities/src/.libs/libguiutil.a
BEC_LIBS=../../backend/grtdb/.libs/libgrtdbbe.a ../../backend/grt/.libs/libgrtbe.a
WBC_LIBS=../../backend/wbcanvas/.libs/libcanvasbe.a
WB_LIBS=../../backend/workbench/libwbbe.a
WB_VAL=../../modules/wb.validation/.libs/wb.validation.grt.a
MODULES=../../modules/db.mysql/src/.libs/db.mysql.grt.a ../../modules/db.mysql.sqlparser/src/.libs/db.mysql.sqlparser.a
#WB_FRNTWB=../../frontend/linux/libfrontwblinux.a
WB_EXTRAS=$(IP_LIBS)

#MAC_LIBS=-framework CoreFoundation

#LUALIB=/sw/lib/liblua.a
LUALIB=

ALL_EXTRAS=$(GRT_EXTRAS) $(GC_EXTRAS)

ALL_LIBS=  $(WB_VAL) $(WB_LIBS) $(MODULES)  $(WBC_LIBS) $(BEC_LIBS) $(PARSER_LIBS) $(GRT_LIB) $(UTIL_LIBS) \
$(GRT_LIB) $(GRT_LIBS) $(WB_LIBS) $(ZIP_LIBS) $(GC_LIBS) $(GLU_LIBS) $(WB_EXTRAS) $(WB_FRNTWB) \
$(CTEMPLATE_LIBS)

LIBS=`mysql_config --libs` `pkg-config libxml-2.0 glib-2.0 sigc++-2.0 gmodule-2.0 gthread-2.0 --libs`\
	$(ALL_LIBS) $(ALL_EXTRAS) `pcre-config --libs`  $(LUALIB) $(COV_CFLAGS) $(MAC_LIBS) $(GNOME_LIBS)


all: test_all wbdata


update: flconv MySQLWorkbenchTutTests.vcproj
	./flconv --mode=dump --list-file=filelist --proj-file=MySQLWorkbenchTutTests.vcproj


update-vs: flconv MySQLWorkbenchTutTests.vcproj
	./flconv --mode=update --list-file=filelist --proj-file=MySQLWorkbenchTutTests.vcproj

flconv:
	make -C ../tools/FilelistConvertTool flconv
	ln -s ../tools/FilelistConvertTool/flconv .

include filelist

OBJECTS=$(addsuffix .o,$(basename $(SOURCES)))


test_all: $(OBJECTS) $(ALL_LIBS)
	$(CXX) -o $@ $(OBJECTS) $(LIBS) $(TEST_CFLAGS) 

%.o: %.cpp
	$(CXX) -o $@ -c $^ $(CXXFLAGS) $(INCLUDES) $(TEST_CFLAGS)


test: test_all
	LD_LIBRARY_PATH=$(prefix)/lib/mysql-workbench ./run_tests.py $(TEST_TIMEOUT) 


wbdata:
	mkdir wbdata
	mkdir wbdata/data
	mkdir -p wbdata/modules/data
	mkdir -p wbdata/structs
	cp ../../res/grt/*xml wbdata/structs
	cp ../../res/grtdata/*.xml wbdata/data
	cp ../../res/wbdata/*.xml wbdata/data
	cp ../../modules/db.mysql/res/* wbdata/modules/data


clean:
	rm -f $(OBJECTS)
	rm -fr wbdata




