]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/tech/tn0013.txt
define wxUSE_LINE_IN_LISTBOOK to avoid -Wundef warnings (but define it as 0 so thje...
[wxWidgets.git] / docs / tech / tn0013.txt
... / ...
CommitLineData
1 How to prepare wxGTK distribution
2 =================================
3
40. Introduction
5---------------
6
7This note explains what should be done, step by step, to prepare the packages
8for a wxGTK distribution. Note that the same instructions should be used for
9the other Unix-based ports including wxMotif, wxX11 and wxBase.
10
11See distrib/msw/makerpm for a script that embodies some of the steps
12below.
13
141. Preparing the sources
15------------------------
16
17a) Do a fresh checkout using the command
18
19 cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/packs/cvsroots/wxwidgets co wxGTK
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
26 wxWidgets directory created by the first cvs command and do "cvs up -d"
27 for each of them.
28
29b) Create a build directory under wxWidgets, e.g. I use "gtk-release",
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;
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
51 mine), it simply won't work.
52
53 Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix
54 means to just create the archive supposing that the files
55 themselves are already under _dist_dir/wxGTK-${version} where
56 "make dist" creates them
57
582. Building the RPMs
59--------------------
60
61Note that we didn't check if the library actually could be built -- this is
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
64that the library could be built -- nothing worse than a release which doesn't
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
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)
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
82 there -- like this you won't forget to update them after redoing "make
83 dist").
84
85b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
86 SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out"
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
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.
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
1133. Building the DEBs
114--------------------
115
116[Ron is doing this]
117
1184. Uploading the files
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
126b) ftp://biolpc22.york.ac.uk/pub (Julian has the password)
127
1285. Announcing the release
129-------------------------
130
131a) FreshMeat:
132 - http://freshmeat.net/projects/wxwidgetsgtk/
133 - username and password are "wxgtk" for logging in
134 - hit "new release" at the top
135 - follow the step by step
136
137b) wx-announce mailing list: mailto:wx-announce@lists.wxwidgets.org
138
139 [where is the announcement text? TODO]
140
141c) update www.wxwidgets.org
142
143d) GNOME (very effective, stays on front page for days):
144 - http://www.gnome.org/applist
145 - Search for wxWidgets
146 - Update the version number
147 - Ignore the error message
148
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
159
160h) LinuxDevices.com:
161 Interesting for wxUniversal.
162
163i) The Python mailing list:
164