wxWidgets Logo

Develop

Bounties
CVS access
Guidelines
Opportunities

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

  1. A wxWidgets hierarchy from CVS.
  2. A copy of Tex2RTF in your path.
  3. 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.
  4. Adobe Acrobat to generate the PDF documentation.
  5. 4DOS (Windows 9x) or 4NT (W2K and above).
  6. 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.
  7. To make the setup.exe version of the distribution, a copy of Inno Setup.
  8. The UPX compression utility, to shrink the sample executables.
  9. A lot of disk space.

Steps

  1. Regenerate makefiles from the tmake templates, if necessary. Most makefiles have a target to do this using the makefile name, or else 'self'.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. Likewise, ensure that vc.rsp contains references to all the sample project files (that have been generated by projgen).

  7. Ensure include/wx/version.h specifies the correct wxWidgets version.

  8. Ensure docs/msw/install.txt is up-to-date (detail any gotchas for particular compiler versions, etc.).

  9. Update docs/readme.txt, docs/release.txt, docs/changes.txt.

  10. 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.

  11. Edit distrib/msw/zipdistinno.bat and change the version variable to the appropriate version.

  12. 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.

  13. 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).

  14. 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.

Tagging a release

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


 
 

Quick Links

 
  Tutorials
Mailing Lists
Latest Docs

Community

wxForum
wxCommunity
Applications
Add-ons
wxWiki
 
 
 
 

wx Solutions

 
   
 
 
 

wxWidgets Book

 
 

Buy it From:
Amazon.com
Amazon.co.uk

 
 
 
 

Donate Now

 
 
 
 
SourceForge.net Logo

Site design and update scripts by Kevin Ollivier, with special thanks to Brad Anderson for his improvements to the sidebar, intro table and navbar designs, Bryan Petty for the new wxWidgets blocks graphics and logo text, and to the wxWidgets community for all their helpful suggestions, comments and testing!