]>
Commit | Line | Data |
---|---|---|
41509312 RD |
1 | Build Instructions |
2 | ------------------ | |
3 | I used SWIG (http://www.swig.org) to create the source code for the | |
4 | extension module. This enabled me to only have to deal with a small | |
5 | amount of code and only have to bother with the exceptional issues. | |
6 | SWIG takes care of the rest and generates all the repetative code for | |
7 | me. You don't need SWIG to build the extension module as all the | |
8 | generated C++ code is included under the src directory. | |
9 | ||
10 | I added a few minor features to SWIG to control some of the code | |
11 | generation. If you want to play around with this you will need to get | |
12 | a recent version of SWIG from their CVS or from a daily build. See | |
13 | http://www.swig.org/ for details. | |
14 | ||
15 | wxPython is organized as a Python package. This means that the | |
16 | directory containing the results of the build process should be a | |
17 | subdirectory of a directory on the PYTHONPATH. (And preferably should | |
18 | be named wxPython.) You can control where the build process will dump | |
19 | wxPython by setting the TARGETDIR variable for the build utility, (see | |
20 | below.) | |
21 | ||
22 | ||
f6bcfd97 | 23 | |
41509312 | 24 | 1. Build and install wxWindows as described in its BuildCVS.txt or |
eec92d76 RD |
25 | INSTALL.txt file. |
26 | ||
f6bcfd97 | 27 | 1a. 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 | 55 | 1b. 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 | 93 | 2. 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 | 98 | 3. 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 | 113 | 4. 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 | 122 | 5. Change into the $(WXWIN)/wxPython/src directory. |
41509312 RD |
123 | |
124 | ||
f6bcfd97 BP |
125 | 6. 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 | ||
136 | 7. 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 | 154 | 8. 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 | 159 | 9. Change to the $WXWIN/wxPython/demo directory. |
41509312 RD |
160 | |
161 | ||
1b55cabf | 162 | 10. 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. |