]> git.saurik.com Git - wxWidgets.git/blob - utils/wxPython/src/makefile.vc
Fixed wxImage GetData and SetData to properly use String objects for
[wxWidgets.git] / utils / wxPython / src / makefile.vc
1 # -*- makefile -*-
2 #----------------------------------------------------------------------------
3 # Name: makefile.nt
4 # Purpose: Win32, VC++ 5/6 makefile for wxPython
5 #
6 # Author: Robin Dunn
7 #
8 # Created: 3/27/97
9 # RCS-ID: $Id$
10 # Copyright: (c) 1998 by Total Control Software
11 # Licence: wxWindows license
12 #----------------------------------------------------------------------------
13 VERSION=2.1b2
14
15 # Set WXDIR to the root wxWindows directory for your system
16 WXDIR = $(WXWIN)
17
18 # Set this to the root of the Python installation
19 PYTHONDIR=e:\Tools\Python15
20
21 # Set this to 1 for a non-debug, optimised compile
22 FINAL=0
23
24 # Set this to where you want the stuff installed at. It should
25 # be a directory contained in a PYTHONPATH directory, and should be
26 # named wxPython
27 TARGETDIR=..
28
29 # Set this to 1 for make to pre-compile the Python modules, 0 to
30 # just copy the sources and let Python compile them the first
31 # time they are imported.
32 COMPILEPY=0
33
34 # If your wxWindows is built as a DLL, set this to 1. Using 0 or unset
35 # means that wxWindows will be staticaly linked with wxPython.
36 WXUSINGDLL=1
37
38 # If you want to compile in code to aquire/release the Python
39 # Interpreter Lock at the appropriate places
40 WXP_USE_THREAD=1
41
42
43 # Set this if you want to build the wxGLCanvas
44 WITH_GLCANVAS=1
45
46 # (experimental)
47 SEPARATE=1
48
49 #----------------------------------------------------------------------
50
51 !if "$(WXP_USE_THREAD)" == "1"
52 THREAD=-DWXP_USE_THREAD=1
53 !endif
54
55 #----------------------------------------------------------------------
56
57 NOPCH=1
58 THISDIR=$(WXDIR)\utils\wxPython
59
60
61 EXTRALIBS=$(PYTHONDIR)\libs\python15.lib $(GLLIBS)
62 #EXTRALIBS=$(PYTHONDIR)\PCbuild\python15_d.lib -D_DEBUG
63 EXTRAINC=-I$(PYTHONDIR)\include -I. -I$(WXDIR)\utils\glcanvas\win
64 EXTRAFLAGS=/Fpwxp.pch /YXhelpers.h -DSWIG_GLOBAL -DHAVE_CONFIG_H $(THREAD)
65 OVERRIDEFLAGS=/GX- $(OTHERCFLAGS)
66
67
68 !if "$(WITH_GLCANVAS)" == "1"
69 GLLIBS=$(WXDIR)\lib\glcanvas.lib glu32.lib opengl32.lib
70 OTHERSWIGFLAGS=-DWITH_GLCANVAS
71 OTHERCFLAGS=-DWITH_GLCANVAS
72 !endif
73
74 SWIGFLAGS=-c++ -shadow -python -dnone -D__WXMSW__ $(OTHERSWIGFLAGS)
75 GENCODEDIR=msw
76
77
78 !include $(WXDIR)\src\makevc.env
79
80 #----------------------------------------------------------------------
81
82 TARGET = wxc
83
84 OBJECTS = wx.obj helpers.obj windows.obj events.obj \
85 misc.obj gdi.obj mdi.obj controls.obj \
86 controls2.obj windows2.obj cmndlgs.obj stattool.obj \
87 frames.obj windows3.obj image.obj printfw.obj \
88 misc2.obj \
89 !if "$(SEPARATE)" == "0"
90 utils.obj \
91 !if "$(WITH_GLCANVAS)" == "1"
92 glcanvas.obj
93 !endif
94 !else
95
96 OTHERCFLAGS=$(OTHERCFLAGS) -DSEPARATE=1
97 OTHERSWIGFLAGS=$(OTHERSWIGFLAGS) -DSEPARATE
98 TARGET2 = utilsc
99 OBJECTS2 = utils.obj
100 target2=$(TARGETDIR)\$(TARGET2).pyd
101
102 TARGET3 = glcanvasc
103 OBJECTS3 = glcanvas.obj
104 target3=$(TARGETDIR)\$(TARGET3).pyd
105
106 TARGET4 = oglcc
107 OBJECTS4 = ogl.obj
108 target4=$(TARGETDIR)\$(TARGET4).pyd
109 !endif
110
111 PYMODULES = $(TARGETDIR)\wx.py $(TARGETDIR)\events.py \
112 $(TARGETDIR)\windows.py $(TARGETDIR)\misc.py \
113 $(TARGETDIR)\gdi.py $(TARGETDIR)\mdi.py \
114 $(TARGETDIR)\controls.py $(TARGETDIR)\controls2.py \
115 $(TARGETDIR)\windows2.py $(TARGETDIR)\cmndlgs.py \
116 $(TARGETDIR)\stattool.py $(TARGETDIR)\frames.py \
117 $(TARGETDIR)\windows3.py $(TARGETDIR)\__init__.py \
118 $(TARGETDIR)\utils.py $(TARGETDIR)\image.py \
119 $(TARGETDIR)\printfw.py $(TARGETDIR)\misc2.py \
120 !if "$(WITH_GLCANVAS)" == "1"
121 $(TARGETDIR)\glcanvas.py
122 !endif
123
124 #----------------------------------------------------------------------
125
126 !if "$(FINAL)" == "0"
127 DEBUGLFLAGS = /DEBUG /INCREMENTAL:YES
128 !else
129 DEBUGLFLAGS = /INCREMENTAL:NO
130 !endif
131
132 LFLAGS= $(DEBUGLFLAGS) /DLL /subsystem:windows,3.50 /machine:I386 /nologo
133
134 #----------------------------------------------------------------------
135
136 default: $(TARGETDIR)\$(TARGET).pyd $(target2) $(target3) pycfiles
137
138 all: wx $(TARGET) $(TARGET2) $(TARGET3)
139
140 wx:
141 cd $(WXDIR)\src\msw
142 nmake -f makefile.nt FINAL=$(FINAL)
143 cd $(THISDIR)
144
145 wxclean:
146 cd $(WXDIR)\src\msw
147 nmake -f makefile.nt clean
148 cd $(THISDIR)
149
150
151 pycfiles : $(PYMODULES)
152 !if "$(COMPILEPY)" == "1"
153 $(PYTHONDIR)\python $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR)
154 $(PYTHONDIR)\python -O $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR)
155 !endif
156
157 #----------------------------------------------------------------------
158
159 $(TARGETDIR)\$(TARGET).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(TARGET).res
160 $(link) @<<
161 /out:$@ /dll
162 $(LFLAGS) /def:$(TARGET).def /implib:./$(TARGET).lib
163 $(DUMMYOBJ) $(OBJECTS) $(TARGET).res
164 $(LIBS)
165 <<
166
167 $(TARGETDIR)\$(TARGET2).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS2)
168 $(link) @<<
169 /out:$@ /dll
170 $(LFLAGS) /def:$(TARGET2).def /implib:./$(TARGET2).lib
171 $(DUMMYOBJ) $(OBJECTS2)
172 $(LIBS) wxc.lib
173 <<
174
175 $(TARGETDIR)\$(TARGET3).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS3)
176 $(link) @<<
177 /out:$@ /dll
178 $(LFLAGS) /def:$(TARGET3).def /implib:./$(TARGET3).lib
179 $(DUMMYOBJ) $(OBJECTS3)
180 $(LIBS) $(WXDIR)\lib\glcanvas.lib glu32.lib opengl32.lib wxc.lib
181 <<
182
183
184 $(TARGETDIR)\$(TARGET4).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS4)
185 $(link) @<<
186 /out:$@ /dll
187 $(LFLAGS) /def:$(TARGET4).def /implib:./$(TARGET4).lib
188 $(DUMMYOBJ) $(OBJECTS4)
189 $(LIBS) wxc.lib $(WXDIR)\lib\ogl$(LIBEXT).lib
190 <<
191
192
193 $(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc
194 $(rc) -r /i$(WXDIR)\include -fo$@ $(TARGET).rc
195
196
197
198 # implicit rule for compiling .cpp files
199 {}.cpp{}.obj:
200 $(cc) @<<
201 $(CPPFLAGS) /c /Tp $<
202 <<
203
204 {$(GENCODEDIR)}.cpp{}.obj:
205 $(cc) @<<
206 $(CPPFLAGS) /c /Tp $<
207 <<
208
209
210 clean:
211 -erase *.obj
212 -erase *.exe
213 -erase *.res
214 -erase *.map
215 -erase *.sbr
216 -erase *.pdb
217 -erase *.pch
218 -erase $(TARGET).exp
219 -erase $(TARGET).lib
220 -erase $(TARGETDIR)\$(TARGET).*
221 !if "$(SEPARATE)" != "0"
222 -erase $(TARGET2).exp
223 -erase $(TARGET2).lib
224 -erase $(TARGETDIR)\$(TARGET2).*
225 -erase $(TARGET3).exp
226 -erase $(TARGET3).lib
227 -erase $(TARGETDIR)\$(TARGET3).*
228 -erase $(TARGET4).exp
229 -erase $(TARGET4).lib
230 -erase $(TARGETDIR)\$(TARGET4).*
231 !endif
232 -erase $(TARGETDIR)\$(TARGET).pyd
233 -erase $(TARGETDIR)\*.py
234 -erase $(TARGETDIR)\*.pyc
235 -erase $(TARGETDIR)\*.pyo
236
237
238 showflags:
239 @echo $(CPPFLAGS)
240
241 #------------------------------------------------------------------------
242
243 .SUFFIXES : .i .py
244
245 # Implicit rules to run SWIG
246 {}.i{$(GENCODEDIR)}.cpp:
247 swig $(SWIGFLAGS) -c -o $@ $<
248
249 {}.i{$(GENCODEDIR)}.py:
250 swig $(SWIGFLAGS) -c -o $@ $<
251
252
253 {$(GENCODEDIR)}.py{$(TARGETDIR)}.py:
254 copy $< $@
255
256 {}.py{$(TARGETDIR)}.py:
257 copy $< $@
258
259 #{}.py{$(TARGETDIR)}.$(PYEXT):
260 # $(PYTHON) -c "import py_compile; py_compile.compile('$<', '$@')"
261
262
263
264
265 # This one must leave out the -c flag so we define the whole rule
266 $(GENCODEDIR)\wx.cpp $(GENCODEDIR)\wx.py : wx.i my_typemaps.i _defs.i _extras.py
267 swig $(SWIGFLAGS) -o $(GENCODEDIR)/wx.cpp wx.i
268
269
270 # Define some dependencies. These MUST use forward slashes so SWIG
271 # will write the shadow file to the right directory.
272 $(GENCODEDIR)/windows.cpp $(GENCODEDIR)/windows.py : windows.i my_typemaps.i _defs.i
273 $(GENCODEDIR)/windows2.cpp $(GENCODEDIR)/windows2.py : windows2.i my_typemaps.i _defs.i
274 $(GENCODEDIR)/windows3.cpp $(GENCODEDIR)/windows3.py : windows3.i my_typemaps.i _defs.i
275 $(GENCODEDIR)/events.cpp $(GENCODEDIR)/events.py : events.i my_typemaps.i _defs.i
276 $(GENCODEDIR)/misc.cpp $(GENCODEDIR)/misc.py : misc.i my_typemaps.i _defs.i
277 $(GENCODEDIR)/misc2.cpp $(GENCODEDIR)/misc2.py : misc2.i my_typemaps.i _defs.i
278 $(GENCODEDIR)/gdi.cpp $(GENCODEDIR)/gdi.py : gdi.i my_typemaps.i _defs.i
279 $(GENCODEDIR)/mdi.cpp $(GENCODEDIR)/mdi.py : mdi.i my_typemaps.i _defs.i
280 $(GENCODEDIR)/controls.cpp $(GENCODEDIR)/controls.py : controls.i my_typemaps.i _defs.i
281 $(GENCODEDIR)/controls2.cpp $(GENCODEDIR)/controls2.py : controls2.i my_typemaps.i _defs.i
282 $(GENCODEDIR)/cmndlgs.cpp $(GENCODEDIR)/cmndlgs.py : cmndlgs.i my_typemaps.i _defs.i
283 $(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py : stattool.i my_typemaps.i _defs.i
284 $(GENCODEDIR)/frames.cpp $(GENCODEDIR)/frames.py : frames.i my_typemaps.i _defs.i
285 $(GENCODEDIR)/image.cpp $(GENCODEDIR)/image.py : image.i my_typemaps.i _defs.i
286 $(GENCODEDIR)/printfw.cpp $(GENCODEDIR)/printfw.py : printfw.i my_typemaps.i _defs.i
287
288 !if "$(SEPARATE)" == "1"
289 $(GENCODEDIR)\utils.cpp $(GENCODEDIR)\utils.py : utils.i my_typemaps.i
290 swig $(SWIGFLAGS) -o $(GENCODEDIR)/utils.cpp utils.i
291
292 $(GENCODEDIR)\ogl.cpp $(GENCODEDIR)\ogl.py : ogl.i my_typemaps.i
293 swig $(SWIGFLAGS) -o $(GENCODEDIR)/ogl.cpp ogl.i
294
295 !if "$(WITH_GLCANVAS)" == "1"
296 $(GENCODEDIR)\glcanvas.cpp $(GENCODEDIR)\glcanvas.py : glcanvas.i my_typemaps.i
297 swig $(SWIGFLAGS) -c -o $(GENCODEDIR)/glcanvas.cpp glcanvas.i
298 !endif
299 !else
300 $(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py : utils.i my_typemaps.i _defs.i
301 !if "$(WITH_GLCANVAS)" == "1"
302 $(GENCODEDIR)/glcanvas.cpp $(GENCODEDIR)/glcanvas.py : glcanvas.i my_typemaps.i _defs.i
303 !endif
304 !endif
305
306
307 $(TARGETDIR)\wx.py : $(GENCODEDIR)\wx.py
308 $(TARGETDIR)\windows.py : $(GENCODEDIR)\windows.py
309 $(TARGETDIR)\windows2.py : $(GENCODEDIR)\windows2.py
310 $(TARGETDIR)\windows3.py : $(GENCODEDIR)\windows3.py
311 $(TARGETDIR)\events.py : $(GENCODEDIR)\events.py
312 $(TARGETDIR)\misc.py : $(GENCODEDIR)\misc.py
313 $(TARGETDIR)\misc2.py : $(GENCODEDIR)\misc2.py
314 $(TARGETDIR)\gdi.py : $(GENCODEDIR)\gdi.py
315 $(TARGETDIR)\mdi.py : $(GENCODEDIR)\mdi.py
316 $(TARGETDIR)\controls.py : $(GENCODEDIR)\controls.py
317 $(TARGETDIR)\controls2.py : $(GENCODEDIR)\controls2.py
318 $(TARGETDIR)\cmndlgs.py : $(GENCODEDIR)\cmndlgs.py
319 $(TARGETDIR)\frames.py : $(GENCODEDIR)\frames.py
320 $(TARGETDIR)\stattool.py : $(GENCODEDIR)\stattool.py
321 $(TARGETDIR)\__init__.py : __init__.py
322 $(TARGETDIR)\utils.py : $(GENCODEDIR)\utils.py
323 $(TARGETDIR)\image.py : $(GENCODEDIR)\image.py
324 $(TARGETDIR)\printfw.py : $(GENCODEDIR)\printfw.py
325
326 !if "$(WITH_GLCANVAS)" == "1"
327 $(TARGETDIR)\glcanvas.py : $(GENCODEDIR)\glcanvas.py
328 !endif
329
330
331 SOURCES = $(GENCODEDIR)\wx.cpp $(GENCODEDIR)\wx.py \
332 $(GENCODEDIR)/windows.cpp $(GENCODEDIR)/windows.py \
333 $(GENCODEDIR)/windows2.cpp $(GENCODEDIR)/windows2.py \
334 $(GENCODEDIR)/windows3.cpp $(GENCODEDIR)/windows3.py \
335 $(GENCODEDIR)/events.cpp $(GENCODEDIR)/events.py \
336 $(GENCODEDIR)/misc.cpp $(GENCODEDIR)/misc.py \
337 $(GENCODEDIR)/misc2.cpp $(GENCODEDIR)/misc2.py \
338 $(GENCODEDIR)/gdi.cpp $(GENCODEDIR)/gdi.py \
339 $(GENCODEDIR)/mdi.cpp $(GENCODEDIR)/mdi.py \
340 $(GENCODEDIR)/controls.cpp $(GENCODEDIR)/controls.py \
341 $(GENCODEDIR)/controls2.cpp $(GENCODEDIR)/controls2.py\
342 $(GENCODEDIR)/cmndlgs.cpp $(GENCODEDIR)/cmndlgs.py \
343 $(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py \
344 $(GENCODEDIR)/frames.cpp $(GENCODEDIR)/frames.py \
345 $(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py \
346 $(GENCODEDIR)/image.cpp $(GENCODEDIR)/image.py \
347 $(GENCODEDIR)/printfw.cpp $(GENCODEDIR)/printfw.py \
348 !if "$(WITH_GLCANVAS)" == "1"
349 $(GENCODEDIR)/glcanvas.cpp $(GENCODEDIR)/glcanvas.py \
350 !endif
351
352
353 sources : $(SOURCES)
354
355
356 dist:
357 cd ..\..
358 wxPython\distrib\zipit.bat $(VERSION)
359
360 #------------------------------------------------------------------------
361 #