]> git.saurik.com Git - wxWidgets.git/blame - docs/tech/tn0013.txt
compilation fix for non PCH build
[wxWidgets.git] / docs / tech / tn0013.txt
CommitLineData
d1cd84e7
VZ
1 How to prepare wxGTK distribution
2 =================================
6b5691cb
VZ
3
40. Introduction
5---------------
6
7This note explains what should be done, step by step, to prepare the packages
00fd036c
VZ
8for a wxGTK distribution. Note that the same instructions should be used for
9the other Unix-based ports including wxMotif, wxX11 and wxBase.
6b5691cb 10
2e9a77b6
JS
11See distrib/msw/makerpm for a script that embodies some of the steps
12below.
13
6b5691cb
VZ
141. Preparing the sources
15------------------------
16
17a) Do a fresh checkout using the command
18
77ffb593 19 cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/packs/cvsroots/wxwidgets co wxGTK
6b5691cb
VZ
20
21 NB: if you realize later that some needed files were not checked out
22 by this command, please modify CVSROOT/modules to include the missing
23 files so that it works for the next release!
24
25 You also need the samples, demos and contrib directories, so change to
fc2171bd 26 wxWidgets directory created by the first cvs command and do "cvs up -d"
6b5691cb
VZ
27 for each of them.
28
fc2171bd 29b) Create a build directory under wxWidgets, e.g. I use "gtk-release",
00fd036c
VZ
30 "cd" to it and run configure: the options don't really matter, you can use
31 something like
32
33 ../configure --no-recursion
34
35 to make it run a bit faster.
36
37c) Then type "make -j1 dist bzip-dist-only". This should create the
38 following files;
6b5691cb
VZ
39
40 wxGTK-${version}.tar.bz2
41 wxGTK-demos-${version}.tar.bz2
42 wxGTK-samples-${version}.tar.bz2
43 wxGTK-${version}.tar.gz
44 wxGTK-demos-${version}.tar.gz
45 wxGTK-samples-${version}.tar.gz
46
47 where version is something like 2.3.2.
48
49 Note 1: "-j1" is needed now because make dist target is broken and doesn't
50 allow parallelizing, if your make is aliased to "make -j4" (like
d1cd84e7 51 mine), it simply won't work.
6b5691cb 52
00fd036c 53 Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix
6b5691cb 54 means to just create the archive supposing that the files
d1cd84e7
VZ
55 themselves are already under _dist_dir/wxGTK-${version} where
56 "make dist" creates them
6b5691cb
VZ
57
582. Building the RPMs
59--------------------
60
00fd036c 61Note that we didn't check if the library actually could be built -- this is
6b5691cb
VZ
62because it is done during this step, during the RPM generation. If, for
63whatever reason, you don't build the RPMs, you must have checked previously
00fd036c 64that the library could be built -- nothing worse than a release which doesn't
6b5691cb
VZ
65even compile!
66
67The rest of this section applies to a system with RPM installed (Redhat in my
68case).
69
70a) Setting up the RPM tree: you should have the RPM tree set up properly
71 before doing anything else. If you are going to build the RPMs as root,
72 you already have one under /usr/src/redhat and can just build there.
73 Otherwise you may do it (without root rights) in any directory RPM_ROOT.
74 RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES,
75 SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should
00fd036c
VZ
76 also create the file ~/.rpmmacros containing at least a line like this:
77 "%_topdir /biton/zeitlin/rpm" (replace the directory with $RPM_ROOT, of
78 course)
6b5691cb
VZ
79
80 In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES
81 subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from
00fd036c 82 there -- like this you won't forget to update them after redoing "make
6b5691cb
VZ
83 dist").
84
00fd036c 85b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
2b5f62a0 86 SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out"
6b5691cb
VZ
87 (or "|& tee" if you're using the one true shell ;-) as it might be not
88 easy to detect errors in the verbose rpm output if anything goes wrong.
89
90 Then wait (and pray that nothing goes wrong because if anything does
91 you'll have to restart from the very beginning because rpm doesn't allow
92 to short circuit the package generation).
93
94 If everything goes well, the following files are produced:
95
96 SRPMS/wxGTK-${version}-1.src.rpm
97 RPMS/i386/wxGTK-${version}-1.i386.rpm
98 RPMS/i386/wxGTK-devel-${version}-1.i386.rpm
99 RPMS/i386/wxGTK-gl-${version}-1.i386.rpm
100 RPMS/i386/wxGTK-static-${version}-1.i386.rpm
101
fad5a51f
VS
102 Use "rpm -ba --with gtk2" to build GTK+2 version of wxGTK and use
103 "rpm -ba --with gtk2 --with unicode" to build GTK+2 Unicode build.
00fd036c
VZ
104
105 Note: you may want to set the environment variable SMP to 3 or 4 on an
106 SMP machine to speed up the build (it uses "make -j$SMP" if the
107 variable is set)
108
109c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual
110 and try to build some samples using makefile.unx ("make -f makefile.unx")
111 so that they use wx-config in the PATH and not from the build tree
112
d1cd84e7
VZ
1133. Building the DEBs
114--------------------
115
116[Ron is doing this]
117
1184. Uploading the files
6b5691cb
VZ
119----------------------
120
121All 11 files should be uploaded (via FTP) to several locations.
122
123a) incoming.sourceforge.net, go to project admin page on sf.net and choose
124 add/edit releases for more details
125
f44b23b6 126b) ftp://biolpc22.york.ac.uk/pub (Julian has the password)
6b5691cb 127
d1cd84e7 1285. Announcing the release
6b5691cb
VZ
129-------------------------
130
e8565711 131a) FreshMeat:
77ffb593 132 - http://freshmeat.net/projects/wxwidgetsgtk/
e8565711
RR
133 - username and password are "wxgtk" for logging in
134 - hit "new release" at the top
135 - follow the step by step
d1cd84e7 136
77ffb593 137b) wx-announce mailing list: mailto:wx-announce@lists.wxwidgets.org
d1cd84e7
VZ
138
139 [where is the announcement text? TODO]
1a2c3cae 140
fc2171bd 141c) update www.wxwidgets.org
1a2c3cae 142
e8565711
RR
143d) GNOME (very effective, stays on front page for days):
144 - http://www.gnome.org/applist
fc2171bd 145 - Search for wxWidgets
e8565711
RR
146 - Update the version number
147 - Ignore the error message
00fd036c 148
e8565711
RR
149e) MacNN:
150 - http://www.macnn.com
151 - Contact or Contribute or something
152
153f) MacRumors:
154 - http://www.macrumors.com
155 - Contact or Contribute or something
156
157g) Apple Developers Connection:
158 mailto: adcnews@apple.com
00fd036c 159
e8565711
RR
160h) LinuxDevices.com:
161 Interesting for wxUniversal.
162
163i) The Python mailing list:
164