]> git.saurik.com Git - wxWidgets.git/blame - utils/wxPython/BUILD.txt
more change documentation
[wxWidgets.git] / utils / wxPython / BUILD.txt
CommitLineData
41509312
RD
1Build Instructions
2------------------
3I used SWIG (http://www.swig.org) to create the source code for the
4extension module. This enabled me to only have to deal with a small
5amount of code and only have to bother with the exceptional issues.
6SWIG takes care of the rest and generates all the repetative code for
7me. You don't need SWIG to build the extension module as all the
8generated C++ code is included under the src directory.
9
10I added a few minor features to SWIG to control some of the code
11generation. If you want to play around with this you will need to get
12a recent version of SWIG from their CVS or from a daily build. See
13http://www.swig.org/ for details.
14
15wxPython is organized as a Python package. This means that the
16directory containing the results of the build process should be a
17subdirectory of a directory on the PYTHONPATH. (And preferably should
18be named wxPython.) You can control where the build process will dump
19wxPython by setting the TARGETDIR variable for the build utility, (see
20below.)
21
22
231. Build and install wxWindows as described in its BuildCVS.txt or
eec92d76
RD
24 INSTALL.txt file.
25
261a. Building wxWindows on Unix/Linux.
27
28 For *nix systems I run configure with these flags:
41509312
RD
29
30 --with-gtk
31 --with-libjpeg
32 --without-odbc
33 --enable-unicode=no
34 --enable-threads=yes
35 --enable-socket=yes
36 --enable-static=no
37 --enable-shared=yes
38 --disable-std_iostreams
39
990416e0 40 You can use whatever flags you want, but these work for me. Be
eec92d76
RD
41 sure to run "make install" to install the wxWindows headers and
42 shared library. You can check where the wxPython build will expect
43 to find them by running "wx-config --cflags" and "wx-config --libs"
44
451b. Building wxWindows on Win32.
41509312
RD
46
47 For Win32 systems I use Visual C++ 6.0, but 5.0 should work. The
1b55cabf 48 wxPython build utility currently does not support any other win32
41509312 49 compilers. Be sure to copy include/wx/msw/setup0.h to
eec92d76
RD
50 include/wx/msw/setup.h and edit it for the options you want. At a
51 minimum you should set the following:
52
53 wxUSE_NEW_GRID 0
54 wxUSE_GLOBAL_MEMORY_OPERATORS 0
55 wxUSE_LIBTIFF 1
56
57 I also change these:
58
59 wxUSE_DIALUP_MANAGER 0
60 wxUSE_SOCKETS 0
61 wxUSE_FS_INET 0
62
63 There are probably other flags that can be disabled to remove
64 things not being used in wxPython, but I havn't investigated all
65 the potential configurations yet.
66
67 I find it easiest to build wxWindows using the makefiles, that way
68 I don't have to worry about what the IDE might be doing behind the
69 scenes that might screw things up. Simply go to the src/msw
70 directory and run:
71
72 nmake -f makefile.vc CRTFLAG=/MD EXTRAFLAGS=-D__NO_VC_CRTDBG__ dll pch
73
74 If you want to make a release build, add FINAL=1 to the nmake
75 command, as well as to build.local for wxPython, (see below.)
41509312
RD
76
77
782. For either platform, you should be sure to set an environment
79 variable named WXWIN to be the path to the top of the wxWindows
80 tree.
81
1b55cabf 82
41509312
RD
833. If you are working from a copy of the code retrieved from CVS, then
84 you will find wxPython in $WXWIN/utils/wxPython. If you are
85 working from the tar.gz or .zip files then you will probably want
86 to unpack wxPython in the $WXWIN/utils directory and rename the new
87 directory to wxPython (or use a symlink.) If you want to keep it
88 in a separate directory then you can change where the build.py tool
1b55cabf 89 expects to find it by creating a file named build.local (see step 7
41509312
RD
90 for more examples about build.local,) containing something like
91 this:
92
93 WXPSRCDIR = "~/MyStuff/wxPython-2.1.11/src"
94
95
964. At this point you may want to make an alias or symlink, script,
1b55cabf 97 batch file, or whatever on the PATH that invokes
41509312
RD
98 $WXWIN/utils/wxPython/distrib/build.py to help simplify matters
99 somewhat. For example, on my win32 system I have a file named
100 build.bat in a directory on the PATH that contains:
101
102 python %WXWIN%/utils/wxPython/distrib/build.py %1 %2 %3 %4 %5 %6
103
104
1055. Change into the $(WXWIN)/utils/wxPython/src directory.
106
107
1b55cabf
RD
1086. If you don't use SWIG, or have a new enough version installed, you
109 may have to update the timestamps of the files it generates so the
110 make utility won't think they are out of date and try to run SWIG
111 to update them. The standard touch utility can do this for you:
112
113 touch gtk/*.cpp gtk/*.py
114
115
1167. Type "build -b" to build wxPython and "build -i" to install it.
41509312
RD
117
118 The build.py script actually generates a Makefile based on what it
119 finds on your system and information found in the build.cfg file.
120 If you have troubles building or you want it built or installed in
121 a different way, take a look at the docstring in build.py. You may
122 be able to override configuration options in a file named
1b55cabf
RD
123 build.local. For example, you can set a new TARGETDIR (the
124 installation directory) just by creating a file named build.local
125 in your wxPython source directory and assign a value to it, like
126 this:
41509312
RD
127
128 TARGETDIR = "/usr/local/lib/python1.5/site-packages/wxPython"
129
130 The build.local file is executed as Python code so you can do very
131 creative things there if you need to.
132
133
1b55cabf 1348. To build and install the add-on modules, change to the appropriate
41509312
RD
135 directory under $WXWIN/utils/wxPython/modules and run the build
136 utility again.
137
138
1b55cabf 1399. Change to the $WXWIN/utils/wxPython/demo directory.
41509312
RD
140
141
1b55cabf 14210. Try executing the demo program. For example:
41509312
RD
143
144 python demo.py
145
1b55cabf
RD
146 To run it without requiring a console on win32, you can use the
147 pythonw.exe version of Python either from the command line or from
148 a shortcut.