#
# MyGDB: GDB Frontend
# Makefile for MinGW (used msys)/ Linux
#

CC = g++
TARGET = mygdb
WXCONFIG = wx-config
PLATFORM= $(shell uname)

CFLAGS = -W -Wno-write-strings -I.

ifeq (OFF,$(DEBUG))
	CFLAGS += -O2
else
	CFLAGS += -g
endif

ifeq ($(PLATFORM), MINGW32_NT-5.1)
    # for boost
    CFLAGS += -I/opt/include
    CFLAGS += `$(WXCONFIG) --cxxflags`

    LDFLAGS =  -lwx_msw_stc-2.8 `$(WXCONFIG) --libs`
    LDFLAGS += -lws2_32 -lole32 -loleacc -lolepro32 -lgdi32 \
			   -luser32 -ladvapi32 -lcomctl32 -lcomdlg32 \
			   -luuid -lrpcrt4 -loleaut32 -lwinspool -lwinmm \
			   -lshell32 -lctl3d32 -lwsock32 -static
else
	CFLAGS += `$(WXCONFIG) --static=yes --cxxflags`
	LDFLAGS = -lwx_gtk2_stc-2.8 
	LDFLAGS += `$(WXCONFIG) --static=yes --libs `
endif


.SUFFIXES:
.SUFFIXES: .cpp .o

SRC = 	treelistctrl.cpp \
		Console.cpp Debugger.cpp MyGDB.cpp \
		Config.cpp MyAuiDockArt.cpp notebookstyles.cpp \
		Completion.cpp STCStyle.cpp InvokeApp.cpp \
		StyledTextCtrl.cpp CodeEditor.cpp Watch.cpp \
		Register.cpp CallStack.cpp Breakpoint.cpp \
		GridCtrl.cpp Memory.cpp About.cpp

OBJECTS = $(SRC:.cpp=.o)
ifeq ($(PLATFORM), MINGW32_NT-5.1)
	OBJECTS += mygdb.res
endif

.cpp.o : ; $(CC) -c $(CFLAGS) -o $*.o $<

%.res : %.rc
	windres `$(WXCONFIG) --cppflags -rescomp` -i $< -J rc -o $@ -O coff

all: $(TARGET)

$(TARGET): $(OBJECTS)
ifeq ($(PLATFORM), MINGW32_NT-5.1)
	$(CC) -o $@ -mthreads -Wl,--subsystem,windows -mwindows $(OBJECTS) $(LDFLAGS) 
else
	$(CC) -o $@ $(OBJECTS) $(LDFLAGS) 
endif

clean:
ifeq ($(PLATFORM), MINGW32_NT-5.1)
	rm -f *.o *.res $(TARGET).exe
else
	rm -f *.o $(TARGET)
endif
