Making wxWidgets distributions
|
wxMSW |
wxGTK |
wxMac |
wxX11 |
All |
Docs
These are some notes on the steps involved in making distributions from
a CVS hierarchy.
Making a wxMSW distribution
|
The distribution scripts are in the distrib/msw directory. Currently the distribution
needs 4DOS or 4NT, which is a commercial replacement shell available for 30-day free trial.
In future the distribution will be changed to use MinGW/MSYS and bash scripts.
Requirements
- A wxWidgets hierarchy from CVS.
- A copy of Tex2RTF in your path.
- 32-bit zip and unzip utilities. I use zip 2.0.1 by Mark Adler and others, and unzip 5.12
by Info-ZIP. I call them zip32 and unzip32 in the scripts.
- Adobe Acrobat to generate the PDF documentation.
- 4DOS (Windows 9x) or 4NT (W2K and above).
- Several Windows compilers to test out the distribution (see below). VC++ 6 is assumed, for
running some of the scripts, e.g. the makefile for running Tex2RTF.
- To make the setup.exe version of the distribution, a copy of Inno Setup.
- The UPX compression utility, to shrink the sample executables.
- A lot of disk space.
Steps
- Regenerate makefiles from the tmake templates, if necessary. Most makefiles have a target to do this using the makefile name,
or else 'self'.
- Check that distrib/msw/setup.h is a copy of setup0.h and has the standard options
set for distribution (for example, memory debug options set to zero).
- Make WIN32 release executables of Dialog Editor, the Life! demo (and its breeder.lif sample file),
widgets, Tex2RTF and place them in the top-level bin directory in your CVS hierarchy. Also make add .manifest files
for the executables for Windows XP look and feel. You can get some of these files from a previous
wxWidgets distribution.
- Ensure that the library and most of the samples/demos compile for the popular compilers. Currently I check
with the following compilers:
VC++ 6.0 (static and DLL), BC++ 4.5 (WIN32), BC++ 5.5 (WIN32),
Cygwin, MinGW 2. For VC++ 6, check compilation using both the
makefiles and the project files. Try all reasonable configurations, including wxUniversal compilation.
- Ensure that all .rsp files, that list the files to go in the distribution, are up-to-date.
For example, samples or demos may have been added to the hierarchy.
- Likewise, ensure that vc.rsp contains references to all the sample project files (that have been generated
by projgen).
- Ensure include/wx/version.h specifies the correct wxWidgets version.
- Ensure docs/msw/install.txt is up-to-date (detail any gotchas for particular compiler versions, etc.).
- Update docs/readme.txt, docs/release.txt, docs/changes.txt.
- Update the date in docs/latex/wx/manual.tex, and build the WinHelp, HTML, and PDF documentation
via the VC++ makefile, src/msw/makefile.vc using the 'alldocs' target. The PDF documentation is produced from the Word RTF
document, and read into Word. Select all, press F9 to reformat the fields. Apply the wxWidgets Manual
template style from the gallery (see distrib/msw/wordstyle.dot). Check the table of contents for
overspill from the body of a section into the TOC. If there's a problem, it's due to the lack of a
blank line at the end of the relevant .tex file. Insert the blank line, regenerate the RTF, and reload into Word.
Then use Adobe Distiller to generate the PDF. This will take several hours, so do a day or two
in advance of release time.
- Edit distrib/msw/zipdistinno.bat and change the version variable to the appropriate version.
- You need to edit the Inno script to change the version number, and any other changes you wish to make.
For simple changes, you can edit distrib/msw/innotop.txt and distrib/msw/innobott.txt directly with a text editor.
- Make a deliver directory in the top-level wxWin hierarchy, change directory to distrib\msw,
and run zipdistinno inno (omit 'inno' if you don't want to build the setup.exe files).
- You should now have lots of .zip files in your deliver folder, some setup.* files,
plus a wx hierarchy (extracted
from the zips) that you can now delete.
Making a wxGTK distribution
|
Please see docs/tech/tn0013.txt in the distribution for notes about making
this distribution. Also, see distrib/msw/makerpm which gives a simplified
interface for building wxGTK, wxBase and wxX11 RPMs, including steps
not necessarily documented in tn0013.txt.
Making a wxMac distribution
|
Please see 'Making a wxMSW distribution' for building the wxMac-x.y.z.zip
archive. To build the wxMac-x.y.z.tar.gz archive on Linux (or Darwin), use the distrib/msw/tardist
script, e.g.:
% cd ~/wx/wxWidgets
% mkdir deliver
% distrib/msw/tardist ~/wx/wxWidgets ~/wx/wxWidgets/deliver 2.4.0 --wxmac
Making a wxX11 distribution
|
On Linux, use the distrib/msw/tardist script, e.g.:
% cd ~/wx/wxWidgets
% mkdir deliver
% distrib/msw/tardist ~/wx/wxWidgets ~/wx/wxWidgets/deliver 2.4.0 --wxx11
Note that the wxMotif distribution has been rolled into the wxX11
distribution, so only wxX11 is required.
Making a wxAll distribution
|
On Linux, use the distrib/msw/tardist script, e.g.:
% cd ~/wx/wxWidgets
% mkdir deliver
% distrib/msw/tardist ~/wx/wxWidgets ~/wx/wxWidgets/deliver 2.4.0 --wxall
This builds wxAll-x.y.z.tar.gz, an archive containing the files necessary for all ports.
Before running the script, make an 'extra' folder within the 'deliver' folder
and copy wxWidgets-${WXVER}-VC.zip to it, containing an archive of all
.dsp and .dsw project files, since not all of these are in CVS.
You may just wish to use the --all flag to build wxX11, wxAll, wxMac, the documentation, etc.
Making documentation archives
|
The HTML, MS HTML Help, HTB (wxWidgets HTML Help), WinHelp, PDF documentation is made and archived in
the wxMSW distribution steps (above). You then need to copy the HTML, HTB and PDF
these to a Linux box and unarchive them under the CVS tree you're using, before doing this:
% cd ~/wx/wxWidgets
% mkdir deliver
% distrib/msw/tardist ~/wx/wxWidgets ~/wx/wxWidgets/deliver 2.4.0 --wxdocs
This will create the HTML, HTB and PDF .tar.gz archives. The Windows-specific MS HTML Help
and WinHelp formats are only distributed in zip format.
Just before a release, you can tag with a command like this:
% cvs rtag -r WX_2_4_BRANCH -F WX_2_4_0 wxWidgets
This assumes that you are tagging a 2.4.0 release on the WX_2_4_BRANCH.
It creates or moves the WX_2_4_0 tag to the latest revisions on
the 2.4 branch. If you wish to make the tag with the files
you have on your disk, then you can instead do:
% cvs tag WX_2_4_0 wxWidgets
If you have already tagged, but then edit a file and wish
to move the tag to that revision, do something like this:
% cvs tag -F WX_2_4_0 myfile.txt
If you wish to rename a tag, for example because a re-spin was
required, do something like this:
% cvs rtag -r WX_2_4_0 WX_2_4_0_OLD wxWidgets