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