# SandroFurieri (c) 2008
# Makefile ( Mingw & wxwidgets) for spatialite-GUI

SRC = Main.cpp TableTree.cpp QueryView.cpp ResultSetView.cpp BlobExplorer.cpp \
	Dialogs.cpp Shapefiles.cpp Network.cpp Exif.cpp TextCsv.cpp \
	Objects.cpp QueryViewComposer.cpp MalformedGeoms.cpp DialogsGraph.cpp \
	Wfs.cpp win_resource/resource.rc
OBJ = Main.o TableTree.o QueryView.o ResultSetView.o BlobExplorer.o \
	Dialogs.o Shapefiles.o Network.o Exif.o TextCsv.o Objects.o \
	QueryViewComposer.o MalformedGeoms.o DialogsGraph.o \
	Wfs.o win_resource/resource.o 
EXE = ./static_bin/spatialite_gui.exe
INCLUDE = Classdef.h 

# Define default flags:
CXXFLAGS = $(shell wx-config --cxxflags)
LIB = $(shell wx-config --libs)
EXTRAFLAGS = -Wall -Wextra -Wno-ctor-dtor-privacy \
	-fno-strict-aliasing -I/usr/local/include -D_LARGE_FILE=1 \
	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1
REZ = $(shell wx-config --rescomp)
EXTRALIBS = /usr/local/lib/libspatialite.a /usr/local/lib/libxml2.a \
	/usr/local/lib/liblwgeom.a /usr/local/lib/libgeos_c.a \
	/usr/local/lib/libiconv.a /usr/local/lib/libgeos.a \
	/usr/local/lib/libproj.a /usr/local/lib/libgaiagraphics.a \
	/usr/local/lib/libcairo.a /usr/local/lib/libpixman-1.a \
	/usr/local/lib/libfreexl.a /usr/local/lib/libfontconfig.a \
	/usr/local/lib/libfreetype.a /usr/local/lib/libexpat.a \
	/usr/local/lib/libgeotiff.a /usr/local/lib/libtiff.a \
	/usr/local/lib/libpng.a /usr/local/lib/libz.a \
	/usr/local/lib/liblzma.a /usr/local/lib/libjpeg.a \
	/usr/local/lib/libsqlite3.a
EXTRALIB2 = -lmsimg32 -lws2_32

all: $(EXE)

$(EXE): $(OBJ) $(EXTRALIBS)
	$(CXX) $(OBJ) -o $(EXE) $(LIB) $(EXTRALIBS) $(EXTRALIB2) \
	-static-libstdc++ -static-libgcc
	strip --strip-all  $(EXE)

clean :
	$(RM) $(OBJ) $(EXE)
	
Main.o: Main.cpp $(INCLUDE)
	$(CXX) -c Main.cpp $(CXXFLAGS) $(EXTRAFLAGS)

TableTree.o: TableTree.cpp $(INCLUDE)
	$(CXX) -c TableTree.cpp $(CXXFLAGS) $(EXTRAFLAGS)

QueryView.o: QueryView.cpp $(INCLUDE)
	$(CXX) -c QueryView.cpp $(CXXFLAGS) $(EXTRAFLAGS)

ResultSetView.o: ResultSetView.cpp $(INCLUDE)
	$(CXX) -c ResultSetView.cpp $(CXXFLAGS) $(EXTRAFLAGS)

BlobExplorer.o: BlobExplorer.cpp $(INCLUDE)
	$(CXX) -c BlobExplorer.cpp $(CXXFLAGS) $(EXTRAFLAGS)

Dialogs.o: Dialogs.cpp $(INCLUDE)
	$(CXX) -c Dialogs.cpp $(CXXFLAGS) $(EXTRAFLAGS)

DialogsGraph.o: DialogsGraph.cpp $(INCLUDE)
	$(CXX) -c DialogsGraph.cpp $(CXXFLAGS) $(EXTRAFLAGS)

Shapefiles.o: Shapefiles.cpp $(INCLUDE)
	$(CXX) -c Shapefiles.cpp $(CXXFLAGS) $(EXTRAFLAGS)

Network.o: Network.cpp $(INCLUDE)
	$(CXX) -c Network.cpp $(CXXFLAGS) $(EXTRAFLAGS)

Exif.o: Exif.cpp $(INCLUDE)
	$(CXX) -c Exif.cpp $(CXXFLAGS) $(EXTRAFLAGS)

TextCsv.o: TextCsv.cpp $(INCLUDE)
	$(CXX) -c TextCsv.cpp $(CXXFLAGS) $(EXTRAFLAGS)

Objects.o: Objects.cpp $(INCLUDE)
	$(CXX) -c Objects.cpp $(CXXFLAGS) $(EXTRAFLAGS)

QueryViewComposer.o: QueryViewComposer.cpp $(INCLUDE)
	$(CXX) -c QueryViewComposer.cpp $(CXXFLAGS) $(EXTRAFLAGS)

MalformedGeoms.o: MalformedGeoms.cpp $(INCLUDE)
	$(CXX) -c MalformedGeoms.cpp $(CXXFLAGS) $(EXTRAFLAGS)
			
win_resource/resource.o: win_resource/resource.rc
	$(REZ) -i win_resource/resource.rc -o win_resource/resource.o 
