]> git.saurik.com Git - wxWidgets.git/blame - src/makeg95.env
fixed XRCID() lookup of numeric control IDs
[wxWidgets.git] / src / makeg95.env
CommitLineData
75515c52 1#
2bda0e17
KB
2# makeg95.env
3# Common makefile settings for wxWindows programs
014e19de 4# This file is included by all the other makefiles, thus changes
2bda0e17 5# made here take effect everywhere (except where overriden).
f3ef286f 6# The settings are for GnuWin32-derived compilers, i.e. Cygwin and Mingw32.
2bda0e17 7#
102f951d
GRG
8# Customize this file to match your own settings.
9#
75515c52
GRG
10# CVS_ID: $Id$
11#
f3ef286f 12
74afbadc
JS
13# If using Cygwin beta, set this to 0.
14# If using Mingw32 or Cygwin 1.0 or later, set this to 1.
741f371c 15MINGW32=1
1a7f3062
JS
16
17# Set to the version you have
fe5de1ea
JS
18#MINGW32VERSION=2.95
19MINGW32VERSION=3.0
2bda0e17 20
2b5f62a0
VZ
21# If we're using MSYS, or other utilities that
22# use forward slashes, we need to set this when
23# invoking the makefile from DOS, or the wrong separators
24# will be assumed.
8a653baa 25#OSTYPE=msys
2b5f62a0 26
75515c52 27# If building DLL, the version
c31752da 28WXVERSION=250
b3bd664a
MB
29
30ifndef UNICODE
c448540d
MB
31 UNICODE=0
32endif
33
34ifndef FINAL
8a653baa 35 FINAL=0
c448540d
MB
36endif
37
38ifndef wxUSE_GUI
39 wxUSE_GUI=1
b3bd664a 40endif
75515c52
GRG
41
42# Say yes if you have a "modern" linker that supports --shared option.
43# Note that you're probably going to wait forever for dlltool/gcc/etc
44# to build the DLL, so you should really use a newer linker that
45# supports --shared.
46LD_SUPPORTS_SHARED=yes
47
102f951d
GRG
48# Set to the appropriate remove command (must support forward slashes)
49# You can get a suitable rm.exe from ports/mingw32/extra.zip on the ftp site.
014e19de 50RM=rm -f
6474416b 51
102f951d 52# Set to the appropriate copy command (must support forward slashes)
a20a10fe
JS
53# You can get a suitable cp.exe from ports/mingw32/extra.zip on the ftp site.
54COPY=cp
01dba85a 55
2bda0e17
KB
56########################## Compiler ##################################
57
58# C++ compiler
f3ef286f
JS
59# Put a comment before --pipe for Cygwin, remove comment for Mingw32 2.95
60
46c0c2dc
MB
61# _GCC295 means GCC is GCC 2.95
62# _GCC3 mans GCC is 3.x or better (can actually just be 3.1 or better
63# for Cygwin/MinGW)
5991550a
MB
64ifneq (,$(findstring 2.95, $(MINGW32VERSION)))
65 _GCC295=1
66endif
67ifneq (,$(findstring 3., $(MINGW32VERSION)))
68 _GCC3=1
69endif
46c0c2dc 70
f3ef286f 71ifeq ($(MINGW32),1)
46c0c2dc 72 ifneq "$(_GCC295)$(_GCC3)" ""
9aacdd48 73 ifeq ($(_GCC3),1)
8a653baa 74 CC = gcc --pipe
9aacdd48 75 else
8a653baa 76 CC = gcc --pipe -fvtable-thunks
9aacdd48 77 endif
1a7f3062 78 else
8a653baa 79 CC = gcc
1a7f3062 80 endif
f3ef286f 81else
8a653baa 82 CC = gcc
f3ef286f 83endif
2bda0e17
KB
84
85# C compiler for pure C programs
8a653baa 86CCC = $(CC)
2bda0e17
KB
87
88# Compiler used for LEX generated C
8a653baa 89CCLEX=gcc
2bda0e17 90
102f951d
GRG
91# This shouldn't be needed as make is supposed to define this
92# variable itself. Uncomment it if your make complains.
93#MAKE=make
2bda0e17 94
102f951d 95# LEX (currently unused)
8870c26e 96LEX=flex # -t -L
2bda0e17 97
102f951d 98# YACC (currently unused)
2662e49e
RR
99YACC=byacc
100#YACC=bison
2bda0e17 101
57c208c5 102# Settings for Cyginw/Mingw32
102f951d
GRG
103# Some versions of windres cannot cope with the --preprocessor
104# option. Uncomment the RCPREPROCESSOR line below if yours can.
8a653baa 105RESCOMP=windres
57c208c5
JS
106RCINPUTSWITCH=-i
107RCOUTPUTSWITCH=-o
108RCINCSWITCH=--include-dir
109RCDEFSWITCH=--define
9f334bea
JS
110# Note that this can cause windres to fail (Win95/98 problem?)
111# but commenting out RCPREPROCESSOR then does the trick.
112#RCPREPROCESSOR=--preprocessor "$(CC) -c -E -xc-header -DRC_INVOKED"
2bda0e17 113
f4bfe7e0
JS
114# Don't make this too long (e.g. by adding contrib/include/wx) because it will
115# truncate the command line
53fdeb16
JS
116# Note: --use-temp-file removed since Mingw32 2.95.2 doesn't recognise it
117RESFLAGS=$(RCPREPROCESSOR) $(RCINCSWITCH) $(WXDIR)/include $(RCEXTRAINC) $(RCDEFSWITCH) __WIN32__ $(RCDEFSWITCH) __WIN95__ $(RCDEFSWITCH) __GNUWIN32__
2bda0e17 118
75515c52 119# Needed to build a DLL if your linker does not support --shared option.
8a653baa
JS
120AS = as
121DLLTOOL = dlltool
75515c52 122
2bda0e17
KB
123########################## Compiler flags #############################
124
125# Miscellaneous compiler options
172fde4f 126# GRG: the __MINGW32__ option is not needed anymore
d8c72298 127# add "-DHAVE_W32API_H" if you have w32api >= 0.5
172fde4f 128OPTIONS = -DSTRICT # -D__MINGW32__
2bda0e17 129
a0b9e27f 130# Add "-mthreads" if you want to have threads under mingw32
8a653baa 131COMMON_THREADFLAGS =
a0b9e27f 132
2bda0e17 133# Debugging information
c448540d
MB
134ifeq ($(FINAL),0)
135 DEBUGFLAGS = -g -D__WXDEBUG__
136endif
2bda0e17 137
2bda0e17
KB
138WIN95=1
139
140ifeq ($(WIN95),0)
141# With 3.50, Win95 will use your existing icons to show smaller ones.
142# With 4.0, you'll have to follow Win95 procedures for icons or you'll get the
143# default Windows icon.
144APPVER=3.50
145WINVERSION=-DWINVER=0x0350 -D__GNUWIN32__ -D__WIN32__ # Generic WIN32
146else
102f951d 147APPVER=4.0 # 3.50
2bda0e17
KB
148# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0).
149WINVERSION=-DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__
150endif
151
152CPU=i386
153
154# Suffixes
155OBJSUFF=o
156SRCSUFF=cpp
157LIBPREFIX=lib
158LIBSUFF=a
159EXESUFF=.exe
160RESSUFF=res
161RSCSUFF=rsc
162
163# Warnings
2bda0e17
KB
164WARN = -Wall
165
c448540d
MB
166# build wxbase/wxMSW
167ifeq ($(wxUSE_GUI),1)
168 TOOLKIT=msw
169 GUI = -D__WXMSW__ -D__WINDOWS__
170else
171 TOOLKIT=base
172 GUI = -D__WXMSW__ -D__WINDOWS__ -DwxUSE_GUI=0
173endif
174
2bda0e17 175
75515c52
GRG
176# According to Guillermo Rodriguez Garcia <guille@iies.es>, the
177# -fno-pcc-struct-return option is needed to make the standard div()
178# function work - otherwise it returns absolutely incorrect results
179# which breaks the wxImage class. This is true at least for
180# mingw32-gcc2.8.1, don't know about others.
c448540d
MB
181ifeq ($(FINAL),1)
182 OPT = -fno-pcc-struct-return -O2 -fno-rtti -fno-exceptions
183else
184 OPT = -fno-pcc-struct-return -fno-rtti -fno-exceptions
185endif
2bda0e17
KB
186
187# Options for ar archiver
188# AROPTIONS = crs # For IRIX and Solaris (both SYSVR4).
8a653baa 189AR = ar
2bda0e17 190AROPTIONS = ruv
8a653baa 191RANLIB = ranlib
2bda0e17 192
b4fe5125
JS
193# Extra compiler libraries
194COMPLIBS=
2bda0e17
KB
195
196# Compiler or system-specific include paths
48d1144b 197COMPPATHS=
2bda0e17 198
2bda0e17
KB
199########################## Directories ###############################
200
ae090fdb 201OLELIBS=-lole32 -loleaut32 -luuid
c448540d
MB
202BASELIBS=-lstdc++ -lgcc -lodbc32 -lwsock32
203ifeq ($(wxUSE_GUI),1)
204 WINLIBS= $(BASELIBS) \
205 -lwinspool -lwinmm -lshell32 \
206 -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 \
207 -lodbc32 -lwsock32 -lopengl32 -lglu32 $(OLELIBS) # -loldnames
208else
209 WINLIBS=$(BASELIBS)
210endif
b4fe5125
JS
211
212#WINLIBS=-lstdc++ -lgcc \
213# -lwinspool -lwinmm -lshell32 \
214# -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 -lwsock32 # -loldnames
2bda0e17
KB
215
216# Shouldn't need to change these...
6a570331
RR
217WXSRC=$(WXDIR)/src/msw
218WXINC=$(WXDIR)/include
219WXBASESRC=$(WXDIR)/src/common
f3ef286f 220
014e19de 221GNUWIN32EXTRA=-I$(WXDIR)/include/wx/msw/gnuwin32
1a7f3062
JS
222
223ifeq ($(MINGW32),1)
75515c52 224 ifneq "$(findstring 2.95, $(MINGW32VERSION))" ""
1a7f3062
JS
225 GNUWIN32EXTRA=
226 endif
227endif
228
f6a35171 229#ifeq ($(MINGW32),1)
9d8c2f41 230#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)
f6a35171 231#else
c448540d 232INC = -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
f6a35171 233#endif
f3ef286f 234
6a570331 235RCLFLAGS=-cpp "cpp -lang-c++ -DWIN32 -D_WIN32 -DRCL_INVOKED -I$(WXWIN)/include"
2bda0e17 236
75515c52
GRG
237ifdef WXUSINGDLL
238 # png, jpeg, etc are exported from wx dll, so skip and save on link time.
711df835 239 LIBS = $(EXTRALIBS) $(WXLIB) $(WINLIBS) $(COMPLIBS)
75515c52 240else
08e0d1cc 241 LIBS = $(EXTRALIBS) $(WXLIB) -lregex -lpng -ljpeg -lzlib -ltiff $(WINLIBS) $(COMPLIBS)
75515c52 242endif
2bda0e17
KB
243
244WINFLAGS=-D_X86_=1 -DWIN32 -D_WIN32 $(WINVERSION)
245
246#for windows 95
247XINCLUDE=$(WINFLAGS)
248XLIB=$(LIBS)
249LDLIBS = $(LIBS)
250
251# Directory for object files (don't change)
dbda9e86 252# OBJDIR = objects$(GUISUFFIX)
881eba2c 253OBJDIR = .
2bda0e17 254
c448540d
MB
255ifeq ($(FINAL),1)
256 DEBEXT=
257else
258 DEBEXT=d
259endif
260
b3bd664a
MB
261ifeq ($(UNICODE),1)
262 UNIEXT=u
263else
264 UNIEXT=
265endif
266
267ifeq ($(WXMAKINGDLL)$(WXUSINGDLL),)
c448540d 268 INCEXT=$(UNIEXT)$(DEBEXT)
b3bd664a 269else
c448540d 270 INCEXT=dll$(UNIEXT)$(DEBEXT)
b3bd664a
MB
271endif
272
c448540d
MB
273WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(TOOLKIT)$(UNIEXT)$(DEBEXT).$(LIBSUFF)
274
75515c52
GRG
275ifdef WXMAKINGDLL
276 EXTRADLLFLAGS = -DWXMAKINGDLL=1 -D_DLL=1 -D_WINDLL=1
c448540d 277 WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(TOOLKIT)$(WXVERSION)$(UNIEXT)$(DEBEXT).$(LIBSUFF)
75515c52
GRG
278endif
279
280ifdef WXUSINGDLL
281 EXTRADLLFLAGS = -DWXUSINGDLL=1
c448540d 282 WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx$(TOOLKIT)$(WXVERSION)$(UNIEXT)$(DEBEXT).$(LIBSUFF)
75515c52
GRG
283endif
284
285
2bda0e17 286# You shouldn't need to change these...
a0b9e27f 287CPPFLAGS = $(XINCLUDE) $(INC) $(COMMON_THREADFLAGS) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACPPFLAGS) $(EXTRADLLFLAGS)
e01893d4 288CFLAGS = $(XINCLUDE) $(INC) $(COMMON_THREADFLAGS) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACFLAGS) $(EXTRADLLFLAGS) -DWIN32_LEAN_AND_MEAN
c448540d
MB
289ifeq ($(wxUSE_GUI),1)
290 WINDOWSLDFLAGS=-Wl,--subsystem,windows -mwindows
291endif
a0b9e27f 292LDFLAGS = $(WINDOWSLDFLAGS) $(COMMON_THREADFLAGS) -L$(WXDIR)/lib -L$(WXDIR)/contrib/lib $(EXTRALDFLAGS)
2bda0e17 293
2b5f62a0 294.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .cxx .cc .c
2bda0e17
KB
295
296.c.o:
72c0d7d7 297 $(CC) -c $(CFLAGS) -o $@ $*.c
2bda0e17 298
2b5f62a0
VZ
299.cc.o:
300 $(CC) -c $(CPPFLAGS) -o $@ $*.cc
301
e828e4f7
GRG
302.cxx.o:
303 $(CC) -c $(CPPFLAGS) -o $@ $*.cxx
304
9b97ee33
GRG
305.$(SRCSUFF).$(OBJSUFF):
306 $(CC) -c $(CPPFLAGS) -o $@ $*.$(SRCSUFF)
307
2bda0e17 308
e828e4f7 309