| 
     
      
      
      From: <ai...@us...> - 2013-12-02 01:48:05
      
     
   | 
Revision: 12799
          http://sourceforge.net/p/plplot/code/12799
Author:   airwin
Date:     2013-12-02 01:48:01 +0000 (Mon, 02 Dec 2013)
Log Message:
-----------
Update scripts for regenerating build configurations, and refer to
those scripts in the developer documentation rather than repeating
all the commands in those scripts.
Modified Paths:
--------------
    trunk/cmake/epa_build/README.developers
    trunk/cmake/epa_build/update_added_packages.sh
    trunk/cmake/epa_build/update_pango_packages.sh
Modified: trunk/cmake/epa_build/README.developers
===================================================================
--- trunk/cmake/epa_build/README.developers	2013-12-02 00:53:19 UTC (rev 12798)
+++ trunk/cmake/epa_build/README.developers	2013-12-02 01:48:01 UTC (rev 12799)
@@ -6,48 +6,17 @@
 which keeps its configuration files in xml form.  Here is how you
 convert that form of build-configuration data to the epa_build form.
 
-# Chose this latest version (as of August 2013) because it probably has
-# improved build and dependency instructions compared to previous versions.
-# For example, the glib version (2.37.4) is known to solve a build issue
-# that I ran into for earlier glib versions.
-export GTK_VERSION=3.9.4
-mkdir -p $GTK_VERSION
-cd $GTK_VERSION
-# This downloads all the relevant xml build configuration files
-# for the given version of GTK
-wget -nd  ftp://ftp.acc.umu.se/pub/GNOME/teams/releng/$GTK_VERSION/*
-cd ..
-./gtk_xml_recursive_process.py \
-$GTK_VERSION/gnome-apps-$GTK_VERSION.modules \
->| gtk_packages_$GTK_VERSION.xml
+# Download the jhbuild data for GTK_VERSION=3.9.4, collect all the
+# *.xml results into one giant xml file, "gtk_packages.xml", patch
+# that file, create a schema for that file, "gtk_packages.rnc" (not
+# used for anything but debugging of xml issues), convert that file to
+# a sequential form that can be read in by cmake called
+# "pango_packages.data", transform those data into build
+# configurations, */CMakeLists.txt, and patch those results.
+./update_pango_packages.sh
 
-# Patch this result to correct errors I have discovered in the jhbuild
-# configuration or else to use new versions of packages.
+Check for any errors:
 
-patch --no-backup-if-mismatch <patch_gtk_packages.xml
-
-# To create the schema for gtk_packages.xml use
-trang -I xml gtk_packages_$GTK_VERSION.xml gtk_packages_$GTK_VERSION.rnc
-
-# That resulting schema file is quite helpful in figuring out
-# how to process gtk_packages_$GTK_VERSION.xml as below.
-
-# Transform the xml form to a form that can be used by a cmake script.
-# Note, there will be some information messages sent to stderr by this
-# script that typically relate to good packages (ones that can be
-# transformed by this script) and bad packages. Currently the list of
-# bad packages are confined just to those which are completely missing
-# from the jhbuild data for gtk.  The first command-line argument is
-# the starting package name and the second command-line argument is a
-# control variable where the least significant bit is ON for following (hard)
-# "dependencies" dependencies, the next least significant bit is ON
-# for following (soft) "suggests", dependencies, and the next least
-# significant bit is ON for following (would be nice) "after"
-# dependencies.  Currently I use a command variable of 1 to keep
-# the number of packages configured for building pango and
-# (hard) dependencies to a minimum.
-./gtk_transform.py "pango" 1 <gtk_packages_$GTK_VERSION.xml 1>| pango_packages.data 2>|pango_packages.stderr
-
 # Check for errors:
 less  pango_packages.stderr
 
@@ -57,52 +26,29 @@
 # be configured another way).
 
 # N.B. there are no plans to keep gtk_packages.xml, gtk_packages.rnc,
-# or pango_packages.data under version control.  However,
+# or pango_packages.data under version control.  However, all
+# essential files referred to by update_pango_packages.sh such as
 # gtk_xml_recursive_process.py, patch_gtk_packages.xml, and
 # gtk_transform.py are all kept under version control so that
 # gtk_packages_$GTK_VERSION.xml, gtk_packages_$GTK_VERSION.rnc, and
 # pango_packages.data can be reproduced at any time for the current
-# $GTK_VERSION value or produced for some updated $GTK_VERSION value.
-# Note that in that latter case, it will be necessary to edit the file
-# names in patch_gtk_packages.xml to conform to the new version.
+# $GTK_VERSION value or produced for some updated $GTK_VERSION value
+# in the future.  Note that in that latter case, it will be necessary
+# to edit the file names in patch_gtk_packages.xml to conform to the
+# new version.
 
-# Finally to actually generate build configurations for build_packages run
-# the following command.
-
-cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_epa.cmake
-
-# Patch generated configuration files.  This patch file contains
-# additional changes that cannot be done via a patch to the *.xml file.
-# Typically, these changes are hand edits which are tested then committed.
-# So typically the patch is created by rerunning the above cmake
-# command then using "svn diff" >| configured_pango.patch" to generate
-# the reverse form of the patch to change the result created by the
-# above cmake command into the svn committed form which is done with
-# the following patch command.
-
-patch --reverse --no-backup-if-mismatch -p0 <configured_pango.patch
-
-N.B. configured_pango.patch is kept under version control.
-
 # One known issue with the gtk+ stack and other software we build is
 # certain package dependencies are completely missing (called "bad
 # packages above) such as pkg-config and libffi which have to be built
 # independently.  For some of those missing packages we use a
-# hand-generated configuration (e.g., pkg-config/bp.cmake).  For
-# others that can be configured with a template (e.g., libffi) we use
-# add_packages.xml (under version control) as follows:
+# hand-generated configuration (e.g., pkg-config/CMakeLists.txt).  For
+# others that can be configured with a template (e.g., libffi) we add
+# additional configurations to add_packages.xml, process that file
+# with enough starting packages to include all dependent packages
+# in the resulting sequential file called "add_packages.data" which
+# is then processed to generated added build configurations such as libffi.
 
-rm -f add_packages.data add_packages.stderr
-touch add_packages.data add_packages.stderr
-# PACKAGE_LIST only contains the package names in add_packages.xml
-# that do not depend on any other package in that file.  Thus,
-# PACKAGE_LIST contains a list of "starting" packages and the
-# dependencies of those should suck in the rest of the packages in
-# add_packages.xml.
-PACKAGE_LIST="libffi intltool pixman gperf swig libxslt"
-for PACKAGE in $PACKAGE_LIST; do
-  ./gtk_transform.py $PACKAGE 1 <add_packages.xml 1>> add_packages.data 2>> add_packages.stderr
-done
+./update_added_packages.sh
 
 # Look for any bad results:
 less add_packages.stderr
@@ -110,6 +56,27 @@
 # It turns out there is one "bad" package, pkg-config which must be
 # configured with a hand-edited configuration.
 
-# Generate the "good" package configurations.
+# N.B. The build configurations generated by
+# "./update_pango_packages.sh" and "./update_added_packages.sh" are
+# committed under svn control so that care should be used to keep
+# everything consistent so that the above scripts introduce no svn
+# diffs.
 
+# Assuming no changes have been made to the essential files used by
+# "update_pango_packages.sh" (which are gtk_xml_recursive_process.py,
+# patch_gtk_packages.xml, and gtk_transform.py) to generate
+# pango_packages.data, then you can quickly check for such consistency
+# without running "./update_pango_packages.sh" using
+
+cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_epa.cmake
+patch --reverse --no-backup-if-mismatch -p0 <configured_pango.patch
+svn diff
+
+# Similarly, assuming no changes have been made to the essential files
+# used by "update_added_packages.sh" (which are add_packages.xml and
+# gtk_transform.py) to generate add_packages.data, then you can
+# quickly check for such consistency without running
+# "./update_added_packages.sh" using
 cmake -DFILENAME:FILEPATH=add_packages.data -P configure_epa.cmake
+svn diff
+
Modified: trunk/cmake/epa_build/update_added_packages.sh
===================================================================
--- trunk/cmake/epa_build/update_added_packages.sh	2013-12-02 00:53:19 UTC (rev 12798)
+++ trunk/cmake/epa_build/update_added_packages.sh	2013-12-02 01:48:01 UTC (rev 12799)
@@ -1,12 +1,16 @@
 #!/bin/bash
 # Update build configurations of added packages that are described by
-# gtk_packages_add.xml
+# add_packages.xml
 
-rm -f add_packages.data
-touch add_packages.data
-# Ignore libxml2 since that is sucked in by the libxslt dependency.
-PACKAGE_LIST="libffi intltool pixman gperf libxslt ragel"
+rm -f add_packages.data add_packages.stderr
+touch add_packages.data add_packages.stderr
+# PACKAGE_LIST only contains the package names in add_packages.xml
+# that do not depend on any other package in that file.  Thus,
+# PACKAGE_LIST contains a list of "starting" packages and the
+# dependencies of those should suck in the rest of the packages in
+# add_packages.xml.
+PACKAGE_LIST="libffi intltool pixman gperf swig libxslt ragel"
 for PACKAGE in $PACKAGE_LIST; do
-  ./gtk_transform.py $PACKAGE 1 <gtk_packages_add.xml 1>> add_packages.data
+  ./gtk_transform.py $PACKAGE 1 <add_packages.xml 1>> add_packages.data 2>> add_packages.stderr
 done
-cmake -DFILENAME:FILEPATH=add_packages.data -P configure_bp.cmake
+cmake -DFILENAME:FILEPATH=add_packages.data -P configure_epa.cmake
Modified: trunk/cmake/epa_build/update_pango_packages.sh
===================================================================
--- trunk/cmake/epa_build/update_pango_packages.sh	2013-12-02 00:53:19 UTC (rev 12798)
+++ trunk/cmake/epa_build/update_pango_packages.sh	2013-12-02 01:48:01 UTC (rev 12799)
@@ -2,7 +2,11 @@
 # Update build configurations of pango packages that are described by
 # GTK+ jhbuild build configuration
 
-GTK_VERSION=3.9.4
+# Chose this latest version (as of August 2013) because it probably has
+# improved build and dependency instructions compared to previous versions.
+# For example, the glib version (2.37.4) is known to solve a build issue
+# that I ran into for earlier glib versions.
+export GTK_VERSION=3.9.4
 rm -rf $GTK_VERSION
 mkdir $GTK_VERSION
 cd $GTK_VERSION
@@ -12,10 +16,49 @@
 cd ..
 ./gtk_xml_recursive_process.py \
 $GTK_VERSION/gnome-apps-$GTK_VERSION.modules \
->|gtk_packages_$GTK_VERSION.xml_original
+>| gtk_packages_$GTK_VERSION.xml
+
 rm -rf $GTK_VERSION
-cp gtk_packages_$GTK_VERSION.xml_original gtk_packages_$GTK_VERSION.xml 
-patch --no-backup-if-mismatch gtk_packages_$GTK_VERSION.xml patch_gtk_packages.xml
 
-./gtk_transform.py pango 1 <gtk_packages_$GTK_VERSION.xml 1>| pango_packages.data
-cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake
+# Patch this result to correct errors I have discovered in the jhbuild
+# configuration or else to use new versions of packages.
+
+patch --no-backup-if-mismatch <patch_gtk_packages.xml
+
+# To create the schema for gtk_packages.xml use
+trang -I xml gtk_packages_$GTK_VERSION.xml gtk_packages_$GTK_VERSION.rnc
+
+# That resulting schema file is quite helpful in figuring out
+# how to process gtk_packages_$GTK_VERSION.xml as below.
+
+# Transform the xml form to a form that can be used by a cmake script.
+# Note, there will be some information messages sent to stderr by this
+# script that typically relate to good packages (ones that can be
+# transformed by this script) and bad packages. Currently the list of
+# bad packages are confined just to those which are completely missing
+# from the jhbuild data for gtk.  The first command-line argument is
+# the starting package name and the second command-line argument is a
+# control variable where the least significant bit is ON for following (hard)
+# "dependencies" dependencies, the next least significant bit is ON
+# for following (soft) "suggests", dependencies, and the next least
+# significant bit is ON for following (would be nice) "after"
+# dependencies.  Currently I use a command variable of 1 to keep
+# the number of packages configured for building pango and
+# (hard) dependencies to a minimum.
+./gtk_transform.py "pango" 1 <gtk_packages_$GTK_VERSION.xml 1>| pango_packages.data 2>|pango_packages.stderr
+
+# Finally to actually generate build configurations for build_packages run
+# the following command.
+
+cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_epa.cmake
+
+# Patch generated configuration files.  This patch file contains
+# additional changes that cannot be done via a patch to the *.xml file.
+# Typically, these changes are hand edits which are tested then committed.
+# So typically the patch is created by rerunning the above cmake
+# command then using "svn diff" >| configured_pango.patch" to generate
+# the reverse form of the patch to change the result created by the
+# above cmake command into the svn committed form which is done with
+# the following patch command.
+
+patch --reverse --no-backup-if-mismatch -p0 <configured_pango.patch
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |