]> git.saurik.com Git - wxWidgets.git/blob - wxPython/distrib/howto-distrib.txt
wx-config didn't include WXUSINGDLL on Mingw
[wxWidgets.git] / wxPython / distrib / howto-distrib.txt
1 How to make a wxPython distribution
2 ===================================
3
4 This file documents all the steps that need to be taken to make a full
5 dsitribution of wxPython, building source and binary packages for
6 Linux, Windows and OSX. Much of this info is just "notes to self" and
7 are specific to my machines and their custom setup, and may not be
8 entirly applicable to others. If other folks are able to glean some
9 useful information from this then that is wonderful, but is not the
10 main intent of this document...
11
12
13
14 Preflight Checklist
15 -------------------
16
17 * Ensure that the version info in wxPython/setup.py is correct.
18
19 * Ensure that all build machines are up to date with CVS, they should
20 have the same versions of all the wxWidgets files if possible. (Use
21 a CVS tag if this is an official release.)
22
23 * Ensure that all SWIG files have been regnerated, by doing a "b 23 t"
24 in wxPython, and then "b 23". Check CVS status again, committing
25 changes and updating on other build machines as neccessary. This
26 includes build scripts too, so as tweaks are made in the various
27 processes below be sure to check in the scripts.
28
29 * Make the wxPython metadata XML file and ensure that it is committed
30 to CVS. On Xavier do:
31
32 docs/bin/simplify.py
33
34 * Ensure that docs/CHANGES.txt and docs/MigrationGuide.txt are
35 updated, accurate and checked in to CVS.
36
37 * Regenerate the html versions of the ReST docs in wxPython/docs, and
38 check in to CVS. On Xavier do:
39
40 cd wxPython/docs
41 docutils-buildhtml
42
43
44
45 Windows (build env is on Cyclops)
46 ----------------------------------
47
48 * Clean out unneded files from wx/BIN
49
50 *.pdb # debugger data
51 wx*d_*.dll # debug version of the DLLs
52 # also old versions
53 # etc.
54
55 * Clean out the same files in wx/lib/vc_dll. (NOTE to self: There is
56 probably no reason any more to move stuff to the BIN dir. Update
57 the build and packager scripts and the PATHs and then get rid of
58 it.)
59
60 * Do a clean build of the ansi and unicode hybrid versions of
61 wxWidgets:
62
63 cd wx/build/msw
64 .make both-hybrid clean
65 .make both-hybrid
66
67 * Make the .mo files
68
69 cd wx/locale
70 makemo.py
71
72 * Build the tools. This btm script makes a static release version of
73 wxWidgets, and then builds copies of wxrc.exe and tex2rtf.exe
74 linking with that lib, placing them in wx/BIN.
75
76 .make_tools.btm
77
78 * Make the HTMLHelp files. In the wx\wxPython directory run:
79
80 distrib\makedocs.bat
81
82 * Clean and old wxPython builds:
83
84 del /sx build build.unicode
85
86 * Build all four versions of wxPython installers:
87
88 b 23 a
89
90 * Build the -devel .zip file:
91
92 dsitrib\makedev.bat $(VERSION)
93
94 * Copy the all the files created in wx\wxPython\dist to the file
95 server at s:\Development\wxPython\dist\$(VERSION)
96
97
98
99 Linux
100 -----
101
102 The distribution build for Linux is split across two machines, one to
103 create the source archives and another to build the binaries. On the
104 primary development box (Xavier) do the following steps from the
105 wx/wxPython dir:
106
107 * Clean out any former RPM build dirs, and any former dist files:
108
109 rm -r _build_rpm
110 rm dist/*
111
112
113 * Make the demo tarball:
114
115 dsitrib/makedemo
116
117 * Make the docs tarball:
118
119 distrib/makedocs
120
121 * Make the source tarball:
122
123 distrib/makerpm 2.3 skipclean skiprpm
124
125 * Make the four SRPMs:
126
127 distrib/makerpm 2.2 skipclean skipcopy skiptar srpm
128 distrib/makerpm 2.3 skipclean skipcopy skiptar srpm
129 distrib/makerpm 2.2 skipclean skipcopy skiptar srpm gtk2
130 distrib/makerpm 2.3 skipclean skipcopy skiptar srpm gtk2
131
132 * Copy all the files created in wx/wxPython/dist to the file server at
133 /stuff/Development/wxPython/dist/$(VERSION)
134
135
136
137 * The second half of the build process for Linux (building the binary
138 RPMs) is performed on a fairly raw (uncustomized, only used for
139 these builds, etc.) RedHat 9 machine. This is done to make the RPMs
140 as generic as possible, ensuring that there are no dependencies on
141 non-standard libs and such that may be on my main development
142 machine. There are RH-9 VMware VMs both on Cyclops and on Xavier
143 that are setup to do this, with both Python 2.2 and 2.3 installed,
144 gtk+12 and gtk+2 devel libs, etc. As the root user, do the
145 following:
146
147 mkdir /tmp/build
148 cd /tmp/build
149 SRCDIR=/stuff/Development/wxPython/dist/$(VERSION)
150 for srpm in $SRCDIR/*.src.rpm; do
151 myrpmbuild --rebuild $srpm
152 done
153
154 * Copy the resulting RPMs to /stuff/Development/wxPython/dist/$(VERSION)
155
156
157
158
159 Mac OSX
160 -------
161
162 The Mac OSX build uses the tarball created on Linux, so it must be
163 created first and in place on the file server. There are currently
164 two builds made of wxPythonOSX, one for Panther and Apple's version of
165 Python, and one for Jaguar and a self-installed MacPythonOSX.
166
167 * On BigMac run the following as root:
168
169 cd wx/wxPython
170 distrib/mac/wxPythonOSX/build panther
171
172 * On Whopper run the following as root:
173
174 cd wx/wxPython
175 distrib/mac/wxPythonOSX/build jaguar
176
177 * Copy the resulting disk image files in wx/wxPython/dist on each
178 machine to /stuff/Development/wxPython/dist/$(VERSION) on the file
179 server.
180
181