]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/tech/tn0013.txt
Use _UNICODE instead of UNICODE in wx/msw/winundef.h.
[wxWidgets.git] / docs / tech / tn0013.txt
index 6ea1800f3a1a2bd3406ae015c6cc7213a60b7af8..4e4dc232901c3b813608e506fd729119872fde77 100644 (file)
@@ -5,26 +5,29 @@
 ---------------
 
 This note explains what should be done, step by step, to prepare the packages
 ---------------
 
 This note explains what should be done, step by step, to prepare the packages
-for a wxGTK distribution.
+for a wxGTK distribution. Note that the same instructions should be used for
+the other Unix-based ports including wxMotif, wxX11 and wxBase.
+
+See distrib/msw/makerpm for a script that embodies some of the steps
+below.
 
 1. Preparing the sources
 ------------------------
 
 a) Do a fresh checkout using the command
 
 
 1. Preparing the sources
 ------------------------
 
 a) Do a fresh checkout using the command
 
-        cvs -d :pserver:anoncvs@cvs.wxwindows.org:/home/wxcvs co wxGTK
+   svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk wxWidgets
+
+b) Create a build directory under wxWidgets, e.g. I use "gtk-release",
+   "cd" to it and run configure: the options don't really matter, you can use
+   something like
 
 
-   NB: if you realize later that some needed files were not checked out
-       by this command, please modify CVSROOT/modules to include the missing
-       files so that it works for the next release!
+       ../configure -C --without-subdirs
 
 
-   You also need the samples, demos and contrib directories, so change to
-   wxWindows directory created by the first cvs command and do "cvs up -d"
-   for each of them.
+   to make it run a bit faster.
 
 
-b) Create a build directory under wxWindows, e.g. I use "gtk-release",
-   "cd" to it and type "make -j1 dist bzip-dist-only". This should create
-   the  following files;
+c) Then type "make -j1 dist bzip-dist-only". This should create the
+   following files;
 
    wxGTK-${version}.tar.bz2
    wxGTK-demos-${version}.tar.bz2
 
    wxGTK-${version}.tar.bz2
    wxGTK-demos-${version}.tar.bz2
@@ -39,7 +42,7 @@ b) Create a build directory under wxWindows, e.g. I use "gtk-release",
            allow parallelizing, if your make is aliased to "make -j4" (like
            mine), it simply won't work.
 
            allow parallelizing, if your make is aliased to "make -j4" (like
            mine), it simply won't work.
 
-   Note 2; there are also dist-only and bzip-dist targets, the "-only" suffix
+   Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix
            means to just create the archive supposing that the files
            themselves are already under _dist_dir/wxGTK-${version} where
            "make dist" creates them
            means to just create the archive supposing that the files
            themselves are already under _dist_dir/wxGTK-${version} where
            "make dist" creates them
@@ -47,10 +50,10 @@ b) Create a build directory under wxWindows, e.g. I use "gtk-release",
 2. Building the RPMs
 --------------------
 
 2. Building the RPMs
 --------------------
 
-Note that we didn't check if the library actually could be built - this is
+Note that we didn't check if the library actually could be built -- this is
 because it is done during this step, during the RPM generation. If, for
 whatever reason, you don't build the RPMs, you must have checked previously
 because it is done during this step, during the RPM generation. If, for
 whatever reason, you don't build the RPMs, you must have checked previously
-that the library could be built - nothing worse than a release which doesn't
+that the library could be built -- nothing worse than a release which doesn't
 even compile!
 
 The rest of this section applies to a system with RPM installed (Redhat in my
 even compile!
 
 The rest of this section applies to a system with RPM installed (Redhat in my
@@ -62,16 +65,17 @@ a) Setting up the RPM tree: you should have the RPM tree set up properly
    Otherwise you may do it (without root rights) in any directory RPM_ROOT.
    RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES,
    SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should
    Otherwise you may do it (without root rights) in any directory RPM_ROOT.
    RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES,
    SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should
-   also create the file ~/.rpmmacros containing at least the following line:
-   "%_topdir /biton/zeitlin/rpm".
+   also create the file ~/.rpmmacros containing at least a line like this:
+   "%_topdir /biton/zeitlin/rpm" (replace the directory with $RPM_ROOT, of
+   course)
 
    In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES
    subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from
 
    In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES
    subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from
-   there - like this you won't forget to update them after redoing "make
+   there -- like this you won't forget to update them after redoing "make
    dist").
 
    dist").
 
-b) Start RPM build by going to RPM_ROOT directory and typing "rpm -bb
-   SPECS/wxGTK.spec". It may be a good idea to append "2&>1 | tee wxGTK.out"
+b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
+   SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out"
    (or "|& tee" if you're using the one true shell ;-) as it might be not
    easy to detect errors in the verbose rpm output if anything goes wrong.
 
    (or "|& tee" if you're using the one true shell ;-) as it might be not
    easy to detect errors in the verbose rpm output if anything goes wrong.
 
@@ -79,23 +83,31 @@ b) Start RPM build by going to RPM_ROOT directory and typing "rpm -bb
    you'll have to restart from the very beginning because rpm doesn't allow
    to short circuit the package generation).
 
    you'll have to restart from the very beginning because rpm doesn't allow
    to short circuit the package generation).
 
-   If everything goes well, the following files are produced:
+   If everything goes well, this should produce many files in SRPMS and
+   RPMS/i386 subdirectories.
+
+   Use "rpm -ba --with gtk2" to build GTK+2 version of wxGTK and use
+   "rpm -ba --with gtk2 --with unicode" to build GTK+2 Unicode build
+   (these are defaults, you can use --without option to change this).
+
+   Note: you may want to set the environment variable SMP to 3 or 4 on an
+         SMP machine to speed up the build (it uses "make -j$SMP" if the
+         variable is set)
 
 
-   SRPMS/wxGTK-${version}-1.src.rpm
-   RPMS/i386/wxGTK-${version}-1.i386.rpm
-   RPMS/i386/wxGTK-devel-${version}-1.i386.rpm
-   RPMS/i386/wxGTK-gl-${version}-1.i386.rpm
-   RPMS/i386/wxGTK-static-${version}-1.i386.rpm
+c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual
+   and try to build some samples using makefile.unx ("make -f makefile.unx")
+   so that they use wx-config in the PATH and not from the build tree
 
 3. Building the DEBs
 --------------------
 
 
 3. Building the DEBs
 --------------------
 
-[Ron is doing this]
+This is explained in more details in debian/README.HowToBuild.txt.
+
 
 4. Uploading the files
 ----------------------
 
 
 4. Uploading the files
 ----------------------
 
-All 11 files should be uploaded (via FTP) to several locations.
+All files should be uploaded (via FTP) to several locations.
 
 a) incoming.sourceforge.net, go to project admin page on sf.net and choose
    add/edit releases for more details
 
 a) incoming.sourceforge.net, go to project admin page on sf.net and choose
    add/edit releases for more details
@@ -105,37 +117,34 @@ b) ftp://biolpc22.york.ac.uk/pub (Julian has the password)
 5. Announcing the release
 -------------------------
 
 5. Announcing the release
 -------------------------
 
-a) FreshMeat:
-   - http://freshmeat.net/projects/wxwindowsgtk/
-   - username and password are "wxgtk" for logging in
++ update www.wxwidgets.org
+
++ FreshMeat:
+   - http://freshmeat.net/projects/wxwidgets/
    - hit "new release" at the top
    - follow the step by step
 
    - hit "new release" at the top
    - follow the step by step
 
-b) wx-announce mailing list: mailto:wx-announce@lists.wxwindows.org
++ wx-announce mailing list: mailto:wx-announce@lists.wxwidgets.org
 
 
-   [where is the announcement text? TODO]
+   The standard announcement text is in docs/publicity/announce.txt
 
 
-c) update www.wxwindows.org
++ GnomeFiles:
+   - http://www.gnomefiles.org/app.php/wxWidgets
+     (only for stable releases, probably need Robert's account)
 
 
-d) GNOME (very effective, stays on front page for days):
-    - http://www.gnome.org/applist
-    - Search for wxWindows
-    - Update the version number
-    - Ignore the error message
-    
-e) MacNN:
++ MacNN:
    - http://www.macnn.com
    - Contact or Contribute or something
 
    - http://www.macnn.com
    - Contact or Contribute or something
 
-f) MacRumors:
++ MacRumors:
    - http://www.macrumors.com
    - Contact or Contribute or something
 
    - http://www.macrumors.com
    - Contact or Contribute or something
 
-g) Apple Developers Connection:
++ Apple Developers Connection:
     mailto: adcnews@apple.com
     mailto: adcnews@apple.com
-   
-h) LinuxDevices.com:
+
++ LinuxDevices.com:
     Interesting for wxUniversal.
 
     Interesting for wxUniversal.
 
-i) The Python mailing list:
++ The Python mailing list: