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