]> git.saurik.com Git - wxWidgets.git/blame - docs/tech/tn0013.txt
fix typo in \param (patch 1845351)
[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
83b7b21b 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"
83b7b21b
VZ
27 for each of them. Of course, you can also check out everything (use
28 wxWidgets module name instead of wxGTK) if the bandwidth and disk space
29 are not a problem.
6b5691cb 30
fc2171bd 31b) Create a build directory under wxWidgets, e.g. I use "gtk-release",
00fd036c
VZ
32 "cd" to it and run configure: the options don't really matter, you can use
33 something like
34
83b7b21b 35 ../configure -C --without-subdirs
00fd036c
VZ
36
37 to make it run a bit faster.
38
39c) Then type "make -j1 dist bzip-dist-only". This should create the
40 following files;
6b5691cb
VZ
41
42 wxGTK-${version}.tar.bz2
43 wxGTK-demos-${version}.tar.bz2
44 wxGTK-samples-${version}.tar.bz2
45 wxGTK-${version}.tar.gz
46 wxGTK-demos-${version}.tar.gz
47 wxGTK-samples-${version}.tar.gz
48
49 where version is something like 2.3.2.
50
51 Note 1: "-j1" is needed now because make dist target is broken and doesn't
52 allow parallelizing, if your make is aliased to "make -j4" (like
d1cd84e7 53 mine), it simply won't work.
6b5691cb 54
00fd036c 55 Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix
6b5691cb 56 means to just create the archive supposing that the files
d1cd84e7
VZ
57 themselves are already under _dist_dir/wxGTK-${version} where
58 "make dist" creates them
6b5691cb
VZ
59
602. Building the RPMs
61--------------------
62
00fd036c 63Note that we didn't check if the library actually could be built -- this is
6b5691cb
VZ
64because it is done during this step, during the RPM generation. If, for
65whatever reason, you don't build the RPMs, you must have checked previously
00fd036c 66that the library could be built -- nothing worse than a release which doesn't
6b5691cb
VZ
67even compile!
68
69The rest of this section applies to a system with RPM installed (Redhat in my
70case).
71
72a) Setting up the RPM tree: you should have the RPM tree set up properly
73 before doing anything else. If you are going to build the RPMs as root,
74 you already have one under /usr/src/redhat and can just build there.
75 Otherwise you may do it (without root rights) in any directory RPM_ROOT.
76 RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES,
77 SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should
00fd036c
VZ
78 also create the file ~/.rpmmacros containing at least a line like this:
79 "%_topdir /biton/zeitlin/rpm" (replace the directory with $RPM_ROOT, of
80 course)
6b5691cb
VZ
81
82 In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES
83 subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from
00fd036c 84 there -- like this you won't forget to update them after redoing "make
6b5691cb
VZ
85 dist").
86
00fd036c 87b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
2b5f62a0 88 SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out"
6b5691cb
VZ
89 (or "|& tee" if you're using the one true shell ;-) as it might be not
90 easy to detect errors in the verbose rpm output if anything goes wrong.
91
92 Then wait (and pray that nothing goes wrong because if anything does
93 you'll have to restart from the very beginning because rpm doesn't allow
94 to short circuit the package generation).
95
83b7b21b
VZ
96 If everything goes well, this should produce many files in SRPMS and
97 RPMS/i386 subdirectories.
6b5691cb 98
fad5a51f 99 Use "rpm -ba --with gtk2" to build GTK+2 version of wxGTK and use
83b7b21b
VZ
100 "rpm -ba --with gtk2 --with unicode" to build GTK+2 Unicode build
101 (these are defaults, you can use --without option to change this).
00fd036c
VZ
102
103 Note: you may want to set the environment variable SMP to 3 or 4 on an
104 SMP machine to speed up the build (it uses "make -j$SMP" if the
105 variable is set)
106
107c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual
108 and try to build some samples using makefile.unx ("make -f makefile.unx")
109 so that they use wx-config in the PATH and not from the build tree
110
d1cd84e7
VZ
1113. Building the DEBs
112--------------------
113
83b7b21b
VZ
114This is explained in more details in debian/README.HowToBuild.txt.
115
d1cd84e7
VZ
116
1174. Uploading the files
6b5691cb
VZ
118----------------------
119
76e5ecc5 120All files should be uploaded (via FTP) to several locations.
6b5691cb
VZ
121
122a) incoming.sourceforge.net, go to project admin page on sf.net and choose
123 add/edit releases for more details
124
f44b23b6 125b) ftp://biolpc22.york.ac.uk/pub (Julian has the password)
6b5691cb 126
d1cd84e7 1275. Announcing the release
6b5691cb
VZ
128-------------------------
129
76e5ecc5
VZ
130+ update www.wxwidgets.org
131
132+ FreshMeat:
133 - http://freshmeat.net/projects/wxwidgets/
e8565711
RR
134 - hit "new release" at the top
135 - follow the step by step
d1cd84e7 136
76e5ecc5 137+ wx-announce mailing list: mailto:wx-announce@lists.wxwidgets.org
d1cd84e7 138
36d5a083 139 The standard announcement text is in docs/publicity/announce.txt
1a2c3cae 140
6c15b5dc
VZ
141+ GnomeFiles:
142 - http://www.gnomefiles.org/app.php/wxWidgets
1943f688 143 (only for stable releases, probably need Robert's account)
6c15b5dc 144
76e5ecc5 145+ MacNN:
e8565711
RR
146 - http://www.macnn.com
147 - Contact or Contribute or something
148
76e5ecc5 149+ MacRumors:
e8565711
RR
150 - http://www.macrumors.com
151 - Contact or Contribute or something
152
76e5ecc5 153+ Apple Developers Connection:
e8565711 154 mailto: adcnews@apple.com
00fd036c 155
76e5ecc5 156+ LinuxDevices.com:
e8565711
RR
157 Interesting for wxUniversal.
158
76e5ecc5 159+ The Python mailing list:
e8565711 160