CPP  = g++.exe -D__DEBUG__
WINDRES  = windres.exe
RES_PATH = res
OBJ_PATH = obj
BIN_PATH = bin
ITUNNEL_PATH = iTunnel
RES  = $(RES_PATH)/iTunnelService.res
OBJ  = $(OBJ_PATH)/iTunnelService.o $(RES)
LIBS =  -L"D:/mingw/lib" -mwindows -g3 
LINKOBJ = $(OBJ) -static-libgcc
BIN = $(BIN_PATH)/iTunnelService.exe
CXXFLAGS = $(CXXINCS) -fexpensive-optimizations -O3 -g3
RM = del

.PHONY: all all-before all-after clean clean-custom

all: all-before exe all-after

clean: clean-custom
	del /Q $(OBJ_PATH)\* $(RES_PATH)\* $(BIN_PATH)\*

exe: $(OBJ)
	$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
	tools/upx -9 $(BIN)
	copy /Y *.cmd $(BIN_PATH)
	copy /Y ${ITUNNEL_PATH}\* $(BIN_PATH)

$(OBJ_PATH)/iTunnelService.o: iTunnelService.cpp
	$(CPP) -c iTunnelService.cpp -o $(OBJ_PATH)/iTunnelService.o $(CXXFLAGS)
	
$(RES_PATH)/iTunnelService.res: iTunnelService.rc 
	$(WINDRES) -i iTunnelService.rc --input-format=rc -o $(RES) -O coff 