]> git.saurik.com Git - wxWidgets.git/blame - wxPython/BUILD.txt
First draft of a cygwin script to create wxMSW distributions
[wxWidgets.git] / 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
f6bcfd97 23
41509312 241. Build and install wxWindows as described in its BuildCVS.txt or
eec92d76
RD
25 INSTALL.txt file.
26
f6bcfd97 271a. Building wxWindows on Unix/Linux/Etc.
eec92d76
RD
28
29 For *nix systems I run configure with these flags:
41509312
RD
30
31 --with-gtk
32 --with-libjpeg
f6bcfd97 33 --with-opengl
41509312
RD
34 --without-odbc
35 --enable-unicode=no
36 --enable-threads=yes
37 --enable-socket=yes
38 --enable-static=no
39 --enable-shared=yes
40 --disable-std_iostreams
f6bcfd97
BP
41 --enable-newgrid
42
43 You can use whatever flags you want, but these work for me. If you
44 want debug libraries, then you should add the "--enable-debug
45 --enable-mem_tracing" flags. I reccommend creating an empty build
46 directory, and then running make and configure from there. This
47 makes it easy to experiment with different configure options
48 without losing old builds.
41509312 49
f6bcfd97 50 Be sure to run "make install" to install the wxWindows headers and
eec92d76
RD
51 shared library. You can check where the wxPython build will expect
52 to find them by running "wx-config --cflags" and "wx-config --libs"
53
f6bcfd97 54
eec92d76 551b. Building wxWindows on Win32.
41509312
RD
56
57 For Win32 systems I use Visual C++ 6.0, but 5.0 should work. The
1b55cabf 58 wxPython build utility currently does not support any other win32
41509312 59 compilers. Be sure to copy include/wx/msw/setup0.h to
eec92d76
RD
60 include/wx/msw/setup.h and edit it for the options you want. At a
61 minimum you should set the following:
62
f6bcfd97 63 wxUSE_NEW_GRID 1
eec92d76
RD
64 wxUSE_GLOBAL_MEMORY_OPERATORS 0
65 wxUSE_LIBTIFF 1
f6bcfd97 66 wxUSE_GLCANVAS 1
eec92d76
RD
67
68 I also change these:
69
70 wxUSE_DIALUP_MANAGER 0
f6bcfd97
BP
71 wxUSE_DYNLIB_CLASS 0
72 wxUSE_DOC_VIEW_ARCHITECTURE 0
73 wxUSE_MDI_ARCHITECTURE 0
74 wxUSE_PLOT 0
75 wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
76
eec92d76
RD
77
78 There are probably other flags that can be disabled to remove
79 things not being used in wxPython, but I havn't investigated all
80 the potential configurations yet.
81
82 I find it easiest to build wxWindows using the makefiles, that way
83 I don't have to worry about what the IDE might be doing behind the
84 scenes that might screw things up. Simply go to the src/msw
85 directory and run:
86
87 nmake -f makefile.vc CRTFLAG=/MD EXTRAFLAGS=-D__NO_VC_CRTDBG__ dll pch
88
89 If you want to make a release build, add FINAL=1 to the nmake
90 command, as well as to build.local for wxPython, (see below.)
41509312
RD
91
92
3ca6a5f0 932. For the win32 platform you should be sure to set an environment
41509312 94 variable named WXWIN to be the path to the top of the wxWindows
3ca6a5f0 95 source tree.
41509312 96
1b55cabf 97
41509312 983. If you are working from a copy of the code retrieved from CVS, then
f6bcfd97
BP
99 you will find wxPython in $WXWIN/wxPython. If you are working from
100 the tar.gz or .zip files then you will probably want to unpack
101 wxPython in the $WXWIN directory and rename the new directory to
102 wxPython (or use a symlink.) If you want to keep it in a separate
103 directory then you can change where the build.py tool expects to
104 find it by creating a file named build.local (see step 7 for more
105 examples about build.local,) containing something like this:
41509312 106
f6bcfd97 107 WXPSRCDIR = "~/MyStuff/wxPython-2.1.15/src"
41509312 108
3ca6a5f0
BP
109 If your wxPython sources are not under $WXWIN then you'll need to
110 adjust the remainder of these instructions accordingly.
111
41509312 112
f6bcfd97 1134. At this point you may want to make an alias, symlink, script,
1b55cabf 114 batch file, or whatever on the PATH that invokes
f6bcfd97
BP
115 $WXWIN/wxPython/distrib/build.py to help simplify matters somewhat.
116 For example, on my win32 system I have a file named build.bat in a
117 directory on the PATH that contains:
41509312 118
f6bcfd97 119 python %WXWIN%/wxPython/distrib/build.py %1 %2 %3 %4 %5 %6
41509312
RD
120
121
3ca6a5f0 1225. Change into the $(WXWIN)/wxPython/src directory.
41509312
RD
123
124
f6bcfd97
BP
1256. If you don't use SWIG, or don't have a new enough version
126 installed, you may have to update the timestamps of the files it
127 generates so the make utility won't think they are out of date and
128 try to run SWIG to update them. The standard touch utility can do
129 this for you:
1b55cabf 130
f6bcfd97
BP
131 touch gtk/*.cpp gtk/*.py
132 or
133 touch msw\*.cpp msw\*.py
1b55cabf
RD
134
135
1367. Type "build -b" to build wxPython and "build -i" to install it.
41509312
RD
137
138 The build.py script actually generates a Makefile based on what it
139 finds on your system and information found in the build.cfg file.
140 If you have troubles building or you want it built or installed in
f6bcfd97 141 a different way, take a look at the doc-string in build.py. You may
41509312 142 be able to override configuration options in a file named
1b55cabf
RD
143 build.local. For example, you can set a new TARGETDIR (the
144 installation directory) just by creating a file named build.local
145 in your wxPython source directory and assign a value to it, like
146 this:
41509312
RD
147
148 TARGETDIR = "/usr/local/lib/python1.5/site-packages/wxPython"
149
150 The build.local file is executed as Python code so you can do very
151 creative things there if you need to.
152
153
1b55cabf 1548. To build and install the add-on modules, change to the appropriate
f6bcfd97
BP
155 directory under $WXWIN/wxPython/contrib and run the build utility
156 again.
41509312
RD
157
158
3ca6a5f0 1599. Change to the $WXWIN/wxPython/demo directory.
41509312
RD
160
161
1b55cabf 16210. Try executing the demo program. For example:
41509312
RD
163
164 python demo.py
165
1b55cabf
RD
166 To run it without requiring a console on win32, you can use the
167 pythonw.exe version of Python either from the command line or from
168 a shortcut.