# SandroFurieri (c) 2012
# Makefile ( Mingw & wxwidgets) for LibreAtlas

SRC = Main.cpp MapView.cpp MapHelpers.cpp Dialogs.cpp \
	win_resource/resource.rc
OBJ = Main.o MapView.o MapHelpers.o Dialogs.o \
	win_resource/resource.o 
EXE = ./static_bin/LibreAtlas.exe
INCLUDE = Classdef.h 

# Define default flags:
CXXFLAGS = $(shell wx-config --cxxflags) 
LIB = -Wl,--subsystem,windows -mwindows /usr/local/lib/libwx_mswu-2.8.a \
	-lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm \
	-lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 
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/libgeos_c.a \
	/usr/local/lib/libiconv.a /usr/local/lib/libgeos.a \
	/usr/local/lib/libproj.a /usr/local/lib/librasterlite.a \
	/usr/local/lib/libgeotiff.a /usr/local/lib/libtiff.a \
	/usr/local/lib/libjpeg.a /usr/local/lib/libpng.a \
	/usr/local/lib/libz.a /usr/local/lib/libfreexl.a \
	/usr/local/lib/libiconv.a /usr/local/lib/libsqlite3.a
EXTRALIB2 = -lgdiplus

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)

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

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

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

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