git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			171 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| How to make a wxPython distribution
 | |
| ===================================
 | |
| 
 | |
| This file documents all the steps that need to be taken to make a full
 | |
| dsitribution of wxPython, building source and binary packages for
 | |
| Linux, Windows and OSX.  Much of this info is just "notes to self" and
 | |
| are specific to my machines and their custom setup, and may not be
 | |
| entirly applicable to others.  If other folks are able to glean some
 | |
| useful information from this then that is wonderful, but is not the
 | |
| main intent of this document...
 | |
| 
 | |
| 
 | |
| 
 | |
| Preflight Checklist
 | |
| -------------------
 | |
| 
 | |
| * Ensure that the version info in wxPython/config.py is correct.
 | |
| 
 | |
| * Ensure that all build machines are up to date with CVS, they should
 | |
|   have the same versions of all the wxWidgets files if possible.  (Use
 | |
|   a CVS tag if this is an official release.)
 | |
| 
 | |
| * Ensure that all SWIG files have been regnerated, by doing a "b 23 t"
 | |
|   in wxPython, and then "b 23".  Check CVS status again, committing
 | |
|   changes and updating on other build machines as neccessary.  This
 | |
|   includes build scripts too, so as tweaks are made in the various
 | |
|   processes below be sure to check in the scripts.
 | |
| 
 | |
| * Make the wxPython metadata XML file and ensure that it is committed 
 | |
|   to CVS.  On Xavier do:
 | |
| 
 | |
|        docs/bin/simplify.py
 | |
| 
 | |
| * Ensure that docs/CHANGES.txt and docs/MigrationGuide.txt are
 | |
|   updated, accurate and checked in to CVS.
 | |
| 
 | |
| * Regenerate the html versions of the ReST docs in wxPython/docs, and
 | |
|   check in to CVS.  On Xavier do:
 | |
| 
 | |
|        cd wxPython/docs
 | |
|        docutils-buildhtml	 
 | |
| 
 | |
| 
 | |
| 
 | |
| Windows  (build env is on Cyclops)
 | |
| ----------------------------------
 | |
| 
 | |
| * Do a clean build of the ansi and unicode hybrid versions of
 | |
|   wxWidgets:
 | |
| 
 | |
| 	cd wx/build/msw
 | |
| 	.make both-hybrid clean
 | |
| 	.make both-hybrid
 | |
| 
 | |
| * Build the tools. This btm script makes a static release version of
 | |
|   wxWidgets, and then builds copies of wxrc.exe and tex2rtf.exe
 | |
|   linking with that lib, placing them in wx/lib/vc_dll, (which you
 | |
|   should have on the PATH.)
 | |
| 
 | |
|        .make_tools.btm
 | |
| 
 | |
| * Make the .mo files
 | |
| 
 | |
|        cd wx/locale
 | |
|        makemo.py
 | |
| 
 | |
| * Make the HTMLHelp files.  In the wx\wxPython directory run: 
 | |
| 
 | |
| 	distrib\makedocs.bat
 | |
| 
 | |
| * Clean any old wxPython builds:
 | |
| 
 | |
| 	del /sx build build.unicode
 | |
| 
 | |
| * Build all four versions of wxPython installers:
 | |
| 
 | |
| 	 b 23 a
 | |
| 
 | |
| * Build the -devel .zip file:
 | |
| 
 | |
| 	dsitrib\makedev.bat $(VERSION)
 | |
| 
 | |
| * Copy the all the files created in wx\wxPython\dist to the file
 | |
|   server at s:\Development\wxPython\dist\$(VERSION)
 | |
| 
 | |
| 
 | |
| 
 | |
| Linux
 | |
| -----
 | |
| 
 | |
| The distribution build for Linux is split across two machines, one to
 | |
| create the source archives and another to build the binaries.  On the
 | |
| primary development box (Xavier) do the following steps from the
 | |
| wx/wxPython dir:
 | |
| 
 | |
| * Clean out any former RPM build dirs, and any former dist files:
 | |
| 
 | |
| 	rm -r _build_rpm
 | |
| 	rm dist/*
 | |
| 
 | |
| 
 | |
| * Make the demo tarball:
 | |
|        
 | |
|        distrib/makedemo
 | |
| 
 | |
| * Make the docs tarball:
 | |
| 
 | |
|        distrib/makedocs
 | |
| 
 | |
| * Make the source tarball:
 | |
| 
 | |
|        distrib/makerpm 2.3 skipclean skiprpm
 | |
| 
 | |
| * Make the four SRPMs:
 | |
| 
 | |
|        distrib/makerpm 2.2 skipclean skipcopy skiptar srpm
 | |
|        distrib/makerpm 2.3 skipclean skipcopy skiptar srpm
 | |
|        distrib/makerpm 2.2 skipclean skipcopy skiptar srpm gtk2
 | |
|        distrib/makerpm 2.3 skipclean skipcopy skiptar srpm gtk2
 | |
| 
 | |
| * Copy all the files created in wx/wxPython/dist to the file server at
 | |
|   /stuff/Development/wxPython/dist/$(VERSION)
 | |
| 
 | |
| 
 | |
| 
 | |
| * The second half of the build process for Linux (building the binary
 | |
|   RPMs) is performed on a fairly raw (uncustomized, only used for
 | |
|   these builds, etc.) RedHat 9 machine.  This is done to make the RPMs
 | |
|   as generic as possible, ensuring that there are no dependencies on
 | |
|   non-standard libs and such that may be on my main development
 | |
|   machine.  There are RH-9 VMware VMs both on Cyclops and on Xavier
 | |
|   that are setup to do this, with both Python 2.2 and 2.3 installed,
 | |
|   gtk+12 and gtk+2 devel libs, etc. As the root user, do the
 | |
|   following:
 | |
| 
 | |
|      mkdir /tmp/build
 | |
|      cd /tmp/build
 | |
|      SRCDIR=/stuff/Development/wxPython/dist/$(VERSION)
 | |
|      for srpm in $SRCDIR/*.src.rpm; do
 | |
| 	 myrpmbuild --rebuild $srpm
 | |
|      done
 | |
| 
 | |
| * Copy the resulting RPMs to /stuff/Development/wxPython/dist/$(VERSION)
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Mac OSX
 | |
| -------
 | |
| 
 | |
| The Mac OSX build uses the tarball created on Linux, so it must be
 | |
| created first and in place on the file server.  There are currently
 | |
| two builds made of wxPythonOSX, one for Panther and Apple's version of
 | |
| Python, and one for Jaguar and a self-installed MacPythonOSX.  
 | |
| 
 | |
| * On BigMac run the following as root:
 | |
| 
 | |
|      cd wx/wxPython
 | |
|      distrib/mac/wxPythonOSX/build panther
 | |
| 
 | |
| * On Whopper run the following as root: 
 | |
| 
 | |
|      cd wx/wxPython
 | |
|      distrib/mac/wxPythonOSX/build jaguar
 | |
| 
 | |
| * Copy the resulting disk image files in wx/wxPython/dist on each
 | |
|   machine to /stuff/Development/wxPython/dist/$(VERSION) on the file
 | |
|   server. 
 | |
| 
 | |
| 
 |