MINGW32VERSION=2.95
# If building DLL, the version
-WXVERSION=232
+WXVERSION=233
ifndef UNICODE
- UNICODE=0
+ UNICODE=0
+endif
+
+ifndef FINAL
+ FINAL=0
+endif
+
+ifndef wxUSE_GUI
+ wxUSE_GUI=1
endif
# Say yes if you have a "modern" linker that supports --shared option.
# C++ compiler
# Put a comment before --pipe for Cygwin, remove comment for Mingw32 2.95
+# _GCC295 means GCC is GCC 2.95
+# _GCC3 mans GCC is 3.x or better (can actually just be 3.1 or better
+# for Cygwin/MinGW)
+_GCC295=$(if $(findstring 2.95, $(MINGW32VERSION)), 1,)
+_GCC3=$(if $(findstring 3., $(MINGW32VERSION)), 1,)
+
ifeq ($(MINGW32),1)
- ifneq "$(findstring 2.95, $(MINGW32VERSION))" ""
- CC = $(CROSS)gcc --pipe -fvtable-thunks
+ ifneq "$(_GCC295)$(_GCC3)" ""
+ CC = $(CROSS)gcc --pipe $(if $(_GCC3), , -fvtable-thunks)
else
CC = $(CROSS)gcc
endif
OPTIONS = -DSTRICT # -D__MINGW32__
# Debugging information
-DEBUGFLAGS = -D__WXDEBUG__
+ifeq ($(FINAL),0)
+ DEBUGFLAGS = -g -D__WXDEBUG__
+endif
WIN95=1
# Warnings
WARN = -Wall
-# Which GUI, -Dwx_xview or -Dwx_motif (don't change this)
-GUI = -D__WXMSW__ -D__WINDOWS__
+# build wxbase/wxMSW
+ifeq ($(wxUSE_GUI),1)
+ TOOLKIT=msw
+ GUI = -D__WXMSW__ -D__WINDOWS__
+else
+ TOOLKIT=base
+ GUI = -D__WXMSW__ -D__WINDOWS__ -DwxUSE_GUI=0
+endif
+
# According to Guillermo Rodriguez Garcia <guille@iies.es>, the
# -fno-pcc-struct-return option is needed to make the standard div()
# function work - otherwise it returns absolutely incorrect results
# which breaks the wxImage class. This is true at least for
# mingw32-gcc2.8.1, don't know about others.
-OPT = -fno-pcc-struct-return -O2 -fno-rtti -fno-exceptions
+ifeq ($(FINAL),1)
+ OPT = -fno-pcc-struct-return -O2 -fno-rtti -fno-exceptions
+else
+ OPT = -fno-pcc-struct-return -fno-rtti -fno-exceptions
+endif
# Options for ar archiver
# AROPTIONS = crs # For IRIX and Solaris (both SYSVR4).
########################## Directories ###############################
OLELIBS=-lole32 -loleaut32 -luuid
-WINLIBS=-lstdc++ -lgcc \
- -lwinspool -lwinmm -lshell32 \
- -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 \
- -lodbc32 -lwsock32 -lopengl32 -lglu32 $(OLELIBS) # -loldnames
+BASELIBS=-lstdc++ -lgcc -lodbc32 -lwsock32
+ifeq ($(wxUSE_GUI),1)
+ WINLIBS= $(BASELIBS) \
+ -lwinspool -lwinmm -lshell32 \
+ -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 \
+ -lodbc32 -lwsock32 -lopengl32 -lglu32 $(OLELIBS) # -loldnames
+else
+ WINLIBS=$(BASELIBS)
+endif
#WINLIBS=-lstdc++ -lgcc \
# -lwinspool -lwinmm -lshell32 \
WXSRC=$(WXDIR)/src/msw
WXINC=$(WXDIR)/include
WXBASESRC=$(WXDIR)/src/common
-WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx.$(LIBSUFF)
GNUWIN32EXTRA=-I$(WXDIR)/include/wx/msw/gnuwin32
#ifeq ($(MINGW32),1)
#INC = -I$(WXINC) -I$(WXDIR)/contrib/include -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff $(EXTRAINC) $(COMPPATHS)
#else
-INC = -I$(WXDIR)/lib/msw$(INCEXT) -I$(WXINC) -I$(WXDIR)/contrib/include -I$(WXDIR)/src/regex -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff $(EXTRAINC) $(COMPPATHS) -I$(WXDIR)/include/wx/msw/gnuwin32
+INC = -I$(WXDIR)/lib/$(TOOLKIT)$(INCEXT) -I$(WXINC) -I$(WXDIR)/contrib/include -I$(WXDIR)/src/regex -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff $(EXTRAINC) $(COMPPATHS) -I$(WXDIR)/include/wx/msw/gnuwin32
#endif
RCLFLAGS=-cpp "cpp -lang-c++ -DWIN32 -D_WIN32 -DRCL_INVOKED -I$(WXWIN)/include"
# OBJDIR = objects$(GUISUFFIX)
OBJDIR = .
+ifeq ($(FINAL),1)
+ DEBEXT=
+else
+ DEBEXT=d
+endif
+
ifeq ($(UNICODE),1)
UNIEXT=u
else
endif
ifeq ($(WXMAKINGDLL)$(WXUSINGDLL),)
- INCEXT=$(UNIEXT)
+ INCEXT=$(UNIEXT)$(DEBEXT)
else
- INCEXT=dll$(UNIEXT)
+ INCEXT=dll$(UNIEXT)$(DEBEXT)
endif
+WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(TOOLKIT)$(UNIEXT)$(DEBEXT).$(LIBSUFF)
+
ifdef WXMAKINGDLL
EXTRADLLFLAGS = -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1
- WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wxmsw$(WXVERSION)$(UNIEXT).$(LIBSUFF)
+ WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(TOOLKIT)$(WXVERSION)$(UNIEXT)$(DEBEXT).$(LIBSUFF)
endif
ifdef WXUSINGDLL
EXTRADLLFLAGS = -DWXUSINGDLL=1
- WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wxmsw$(WXVERSION)$(UNIEXT).$(LIBSUFF)
+ WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(TOOLKIT)$(WXVERSION)$(UNIEXT)$(DEBEXT).$(LIBSUFF)
endif
# You shouldn't need to change these...
CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACPPFLAGS) $(EXTRADLLFLAGS)
CFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACFLAGS) -DWIN32_LEAN_AND_MEAN
-WINDOWSLDFLAGS=-Wl,--subsystem,windows -mwindows
+ifeq ($(wxUSE_GUI),1)
+ WINDOWSLDFLAGS=-Wl,--subsystem,windows -mwindows
+endif
LDFLAGS = $(WINDOWSLDFLAGS) -L$(WXDIR)/lib -L$(WXDIR)/contrib/lib $(EXTRALDFLAGS)
.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .cxx .c