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

SRC = Main.cpp TableTree.cpp QueryView.cpp ResultSetView.cpp BlobExplorer.cpp \
	Dialogs.cpp Shapefiles.cpp Exif.cpp TextCsv.cpp Postgres.cpp \
	Objects.cpp QueryViewComposer.cpp MalformedGeoms.cpp DialogsGraph.cpp \
	Raster.cpp Styles.cpp RasterSymbolizers.cpp VectorSymbolizers1.cpp \
	VectorSymbolizers2.cpp Wfs.cpp SqlFilterComposer.cpp AuxCurl.cpp \
	WmsDialog.cpp LayerTree.cpp MapPanel.cpp MapView.cpp \
	QuickStylesVector.cpp QuickStylesTopology.cpp QuickStylesRaster.cpp \
	HtmlHelp.cpp \
	win_resource/resource.rc
OBJ = Main.o TableTree.o QueryView.o ResultSetView.o BlobExplorer.o \
	Dialogs.o Shapefiles.o Exif.o TextCsv.o Objects.o Postgres.o \
	QueryViewComposer.o MalformedGeoms.o DialogsGraph.o AuxCurl.o \
	Raster.o Styles.o RasterSymbolizers.o VectorSymbolizers1.o \
	VectorSymbolizers2.o Wfs.o SqlFiltersComposer.o HtmlHelp.o \
	WmsDialog.o LayerTree.o MapPanel.o MapView.o QuickStylesVector.o \
	QuickStylesTopology.o QuickStylesRaster.o \
	win_resource/resource.o 
EXE = ./static_bin/spatialite_gui.exe
INCLUDE = Classdef.h 

# Define default flags:
CXXFLAGS = $(shell /mingw64/local/bin/wx-config --cxxflags)
LIB = -Wl,--subsystem,windows /mingw64/local/lib/libwx_mswu-3.0.a \
	-lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 \
	-lcomctl32 -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
EXTRAFLAGS = -Wall -Wextra -Wno-ctor-dtor-privacy \
	-fno-strict-aliasing -I/mingw64/local/include -D_LARGE_FILE=1 \
	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1
EXTRALIBS = /mingw64/local/lib/librasterlite2.a /mingw64/local/lib/libspatialite.a \
	/mingw64/local/lib/libxml2.a /mingw64/local/lib/librttopo.a \
	/mingw64/local/lib/libgeos_c.a /mingw64/local/lib/libiconv.a \
	/mingw64/local/lib/libgeos.a /mingw64/local/lib/libproj.a \
	/mingw64/local/lib/libcairo.a /mingw64/local/lib/libpixman-1.a \
	/mingw64/local/lib/libfreexl.a /mingw64/local/lib/libfontconfig.a \
	/mingw64/local/lib/libfreetype.a /mingw64/local/lib/libexpat.a \
	/mingw64/local/lib/libgeotiff.a /mingw64/local/lib/libtiff.a \
	/mingw64/local/lib/libpng.a /mingw64/local/lib/libjpeg.a \
	/mingw64/local/lib/libsqlite3.a /mingw64/local/lib/libcurl.a \
	/mingw64/local/lib/libwebp.a /mingw64/local/lib/libgif.a \
	/mingw64/local/lib/libssl.a /mingw64/local/lib/libcrypto.a \
	/mingw64/local/lib/libz.a /mingw64/local/lib/liblzma.a \
	/mingw64/local/lib/libCharLS.a /mingw64/local/lib/libopenjp2.a \
	/mingw64/local/lib/libvirtualpg.a
EXTRALIB2 = -lgdi32 -lmsimg32 -lws2_32 -lwldap32

CXX = g++ -static
REZ = $(shell /mingw64/local/bin/wx-config --rescomp)


all: $(EXE)

$(EXE): $(OBJ) $(EXTRALIBS)
	$(CXX) $(OBJ) -o $(EXE) $(LIB) $(EXTRALIBS) $(EXTRALIB2) \
	-static-libstdc++ -static-libgcc -static
	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)

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

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

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

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

VectorSymbolizers2.o: VectorSymbolizers2.cpp $(INCLUDE)
	$(CXX) -c VectorSymbolizers2.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)

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)

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

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

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

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

QuickStylesVector.o: QuickStylesVector.cpp $(INCLUDE)
	$(CXX) -c QuickStylesVector.cpp $(CXXFLAGS) $(EXTRAFLAGS)
	
QuickStylesTopology.o: QuickStylesTopology.cpp $(INCLUDE)
	$(CXX) -c QuickStylesTopology.cpp $(CXXFLAGS) $(EXTRAFLAGS)
	
QuickStylesRaster.o: QuickStylesRaster.cpp $(INCLUDE)
	$(CXX) -c QuickStylesRaster.cpp $(CXXFLAGS) $(EXTRAFLAGS)

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

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

win_resource/resource.o: win_resource/resource.rc
	echo $(CXXFLAGS)
	$(REZ) $(CXXFLAGS) -i win_resource/resource.rc -o win_resource/resource.o 
