]> git.saurik.com Git - wxWidgets.git/blob - wxPython/distrib/howto-distrib.txt
more build tweaks
[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/config.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 * Do a clean build of the ansi and unicode hybrid versions of
49 wxWidgets:
50
51 cd wx/build/msw
52 .make both-hybrid clean
53 .make both-hybrid
54
55 * Build the tools. This btm script makes a static release version of
56 wxWidgets, and then builds copies of wxrc.exe and tex2rtf.exe
57 linking with that lib, placing them in wx/lib/vc_dll, (which you
58 should have on the PATH.)
59
60 .make_tools.btm
61
62 * Make the .mo files
63
64 cd wx/locale
65 makemo.py
66
67 * Make the HTMLHelp files. In the wx\wxPython directory run:
68
69 distrib\makedocs.bat
70
71 * Clean any old wxPython builds:
72
73 del /sx build build.unicode
74
75 * Build all four versions of wxPython installers:
76
77 b 23 a
78
79 * Build the -devel .zip file:
80
81 dsitrib\makedev.bat $(VERSION)
82
83 * Copy the all the files created in wx\wxPython\dist to the file
84 server at s:\Development\wxPython\dist\$(VERSION)
85
86
87
88 Linux
89 -----
90
91 The distribution build for Linux is split across two machines, one to
92 create the source archives and another to build the binaries. On the
93 primary development box (Xavier) do the following steps from the
94 wx/wxPython dir:
95
96 * Clean out any former RPM build dirs, and any former dist files:
97
98 rm -r _build_rpm
99 rm dist/*
100
101
102 * Make the demo tarball:
103
104 distrib/makedemo
105
106 * Make the docs tarball:
107
108 distrib/makedocs
109
110 * Make the source tarball:
111
112 distrib/makerpm 2.3 skipclean skiprpm
113
114 * Make the four SRPMs:
115
116 distrib/makerpm 2.2 skipclean skipcopy skiptar srpm
117 distrib/makerpm 2.3 skipclean skipcopy skiptar srpm
118 distrib/makerpm 2.2 skipclean skipcopy skiptar srpm gtk2
119 distrib/makerpm 2.3 skipclean skipcopy skiptar srpm gtk2
120
121 * Copy all the files created in wx/wxPython/dist to the file server at
122 /stuff/Development/wxPython/dist/$(VERSION)
123
124
125
126 * The second half of the build process for Linux (building the binary
127 RPMs) is performed on a fairly raw (uncustomized, only used for
128 these builds, etc.) RedHat 9 machine. This is done to make the RPMs
129 as generic as possible, ensuring that there are no dependencies on
130 non-standard libs and such that may be on my main development
131 machine. There are RH-9 VMware VMs both on Cyclops and on Xavier
132 that are setup to do this, with both Python 2.2 and 2.3 installed,
133 gtk+1.2 and gtk+2 devel libs, etc. As the root user, do the
134 following:
135
136 mkdir /tmp/build
137 cd /tmp/build
138 SRCDIR=/stuff/Development/wxPython/dist/$(VERSION)
139 for srpm in $SRCDIR/*.src.rpm; do
140 myrpmbuild --rebuild $srpm
141 done
142
143 * Copy the resulting RPMs to /stuff/Development/wxPython/dist/$(VERSION)
144
145
146
147
148 Mac OSX
149 -------
150
151 The Mac OSX build uses the tarball created on Linux, so it must be
152 created first and in place on the file server. There are currently
153 two builds made of wxPythonOSX, one for Panther and Apple's version of
154 Python, and one for Jaguar and a self-installed MacPythonOSX.
155
156 * On BigMac run the following as root:
157
158 cd wx/wxPython
159 distrib/mac/wxPythonOSX/build panther
160
161 * On Whopper run the following as root:
162
163 cd wx/wxPython
164 distrib/mac/wxPythonOSX/build jaguar
165
166 * Copy the resulting disk image files in wx/wxPython/dist on each
167 machine to /stuff/Development/wxPython/dist/$(VERSION) on the file
168 server.
169
170