* bootstrap (usage): New function. Call it when invoked with
option `-h, --help'.
Do not install the GNU Build System (with autoreconf) if invoked
with option `--no-autoreconf'.
Remove the workaround for autoheader no honoring `--force'.
* configure.gnu: New.
* Makefile.am (EXTRA_DIST): Add configure.gnu.
---
extatica/ChangeLog | 12 ++++++++++++
extatica/Makefile.am | 3 +++
extatica/bootstrap | 37 +++++++++++++++++++++++++++++++------
extatica/configure.gnu | 39 +++++++++++++++++++++++++++++++++++++++
4 files changed, 85 insertions(+), 6 deletions(-)
create mode 100644 extatica/configure.gnu
diff --git a/extatica/ChangeLog b/extatica/ChangeLog
index 4758923..141c0b6 100644
--- a/extatica/ChangeLog
+++ b/extatica/ChangeLog
@@ -1,5 +1,17 @@
2010-11-10 Roland Levillain <roland(a)lrde.epita.fr>
+ Prepare Extatica to be bundled with Olena.
+
+ * bootstrap (usage): New function. Call it when invoked with
+ option `-h, --help'.
+ Do not install the GNU Build System (with autoreconf) if invoked
+ with option `--no-autoreconf'.
+ Remove the workaround for autoheader no honoring `--force'.
+ * configure.gnu: New.
+ * Makefile.am (EXTRA_DIST): Add configure.gnu.
+
+2010-11-10 Roland Levillain <roland(a)lrde.epita.fr>
+
Properly configure xtc-config.
* configure.ac: Execute `chmod +x bin/xtc-config' only once.
diff --git a/extatica/Makefile.am b/extatica/Makefile.am
index 44f7b5f..5d8880d 100644
--- a/extatica/Makefile.am
+++ b/extatica/Makefile.am
@@ -24,3 +24,6 @@ endif SWIG_PYTHON_BINDINGS
ACLOCAL_AMFLAGS = -I config -I libltdl
EXTRA_DIST = bootstrap
+
+# `configure' wrapper used in recursive configuration.
+EXTRA_DIST += configure.gnu
diff --git a/extatica/bootstrap b/extatica/bootstrap
index 5f624d0..c4ae947 100755
--- a/extatica/bootstrap
+++ b/extatica/bootstrap
@@ -1,6 +1,7 @@
#! /bin/sh
-# Copyright (C) 2005, 2009 EPITA Research and Development Laboratory (LRDE).
+# Copyright (C) 2005, 2009, 2010 EPITA Research and Development
+# Laboratory (LRDE).
#
# This file is part of Olena.
#
@@ -21,6 +22,31 @@ set -e
# Tell what's going on.
set -x
+# Run autoreconf?
+run_autoreconf_p=true
+
+usage ()
+{
+ cat <<EOF
+Usage: $0 [OPTION]
+
+Options:
+ -h, --help display this message
+ --no-autoreconf do not run autoreconf
+
+Report bugs to <olena-bugs(a)lrde.epita.fr>
+EOF
+}
+
+# Process arguments.
+for arg in "$@"; do
+ case "$arg" in
+ -h|--help) usage; exit 0 ;;
+ --no-autoreconf) run_autoreconf_p=false ;;
+ *) fatal "error: unrecognized option: $1" ;;
+ esac
+done
+
mkdir -p _config
touch _config/local-config.rb.in
@@ -36,8 +62,7 @@ export LIBTOOLIZE=$libtoolize
# Make the libtool with ltdl
"$libtoolize" --force --copy --automake --ltdl
-# Finally, install the GNU Build System.
-autoreconf -f -v -i
-
-# FIXME: autoheader does not obey --force.
-find . -name 'config.h*.in' -o -name 'local-config.*.in' | xargs touch
+if $run_autoreconf_p; then
+ # Finally, install the GNU Build System.
+ autoreconf -f -v -i
+fi
diff --git a/extatica/configure.gnu b/extatica/configure.gnu
new file mode 100644
index 0000000..09a9463
--- /dev/null
+++ b/extatica/configure.gnu
@@ -0,0 +1,39 @@
+#! /bin/sh
+
+# This `configure.gnu' script is invoked by the parent `configure'
+# instead of `configure' in recursive configurations (see
+# ``Configuring Other Packages in Subdirectories'' in Autoconf's
+# manual). This is convenient to pass extra options, like the path to
+# Milena's source directory.
+#
+# This idea was taken and adapted from this message:
+# http://lists.gnu.org/archive/html/autoconf/2002-12/msg00116.html
+
+# Is option checking disabled?
+no_option_checking_p=false
+# Is ``--with-milena' not provided?
+no_milena_p=true
+
+for i; do
+ case "$i" in
+ # First try to get SRCDIR from a possible `--srcdir' argument.
+ --srcdir=*) srcdir=`echo "$i" | sed 's/^--srcdir=//'`;;
+ --disable-option-checking) no_option_checking_p=true;;
+ --with-milena*) no_milena_p=false;;
+ esac
+done
+
+# Then try to guess it from this script's path.
+test x"${srcdir+set}" != xset && srcdir=`dirname $0`
+
+# Disabled option checking is a hint that this `configure.gnu' was
+# called from a parent `configure'. If so, and if no `--with-milena'
+# option was provided, pass our own `--with-milena' option to the
+# recursive call to the actual `configure', carrying the path to
+# Milena's source directory.
+if $no_option_checking_p && $no_milena_p; then
+ milena_dir=`cd "$srcdir/../milena" && pwd`
+ exec "$srcdir/configure" ${1+"$@"} "--with-milena=$milena_dir"
+else
+ exec "$srcdir/configure" ${1+"$@"}
+fi
--
1.5.6.5
* bootstrap (usage): New function. Call it when invoked with
option `-h, --help'.
Do not install the GNU Build System (with autoreconf) if invoked
with option `--no-autoreconf'.
Remove the workaround for autoheader no honoring `--force'.
* configure.gnu: New.
* Makefile.am (EXTRA_DIST): Add configure.gnu.
---
extatica/ChangeLog | 12 ++++++++++++
extatica/Makefile.am | 3 +++
extatica/bootstrap | 37 +++++++++++++++++++++++++++++++------
extatica/configure.gnu | 39 +++++++++++++++++++++++++++++++++++++++
4 files changed, 85 insertions(+), 6 deletions(-)
create mode 100644 extatica/configure.gnu
diff --git a/extatica/ChangeLog b/extatica/ChangeLog
index 3166f76..41b95fa 100644
--- a/extatica/ChangeLog
+++ b/extatica/ChangeLog
@@ -1,5 +1,17 @@
2010-11-10 Roland Levillain <roland(a)lrde.epita.fr>
+ Prepare Extatica to be bundled with Olena.
+
+ * bootstrap (usage): New function. Call it when invoked with
+ option `-h, --help'.
+ Do not install the GNU Build System (with autoreconf) if invoked
+ with option `--no-autoreconf'.
+ Remove the workaround for autoheader no honoring `--force'.
+ * configure.gnu: New.
+ * Makefile.am (EXTRA_DIST): Add configure.gnu.
+
+2010-11-10 Roland Levillain <roland(a)lrde.epita.fr>
+
Properly configure xtc-config.
* configure.ac: Execute `chmod +x bin/xtc-config' only once.
diff --git a/extatica/Makefile.am b/extatica/Makefile.am
index 44f7b5f..5d8880d 100644
--- a/extatica/Makefile.am
+++ b/extatica/Makefile.am
@@ -24,3 +24,6 @@ endif SWIG_PYTHON_BINDINGS
ACLOCAL_AMFLAGS = -I config -I libltdl
EXTRA_DIST = bootstrap
+
+# `configure' wrapper used in recursive configuration.
+EXTRA_DIST += configure.gnu
diff --git a/extatica/bootstrap b/extatica/bootstrap
index 5f624d0..c4ae947 100755
--- a/extatica/bootstrap
+++ b/extatica/bootstrap
@@ -1,6 +1,7 @@
#! /bin/sh
-# Copyright (C) 2005, 2009 EPITA Research and Development Laboratory (LRDE).
+# Copyright (C) 2005, 2009, 2010 EPITA Research and Development
+# Laboratory (LRDE).
#
# This file is part of Olena.
#
@@ -21,6 +22,31 @@ set -e
# Tell what's going on.
set -x
+# Run autoreconf?
+run_autoreconf_p=true
+
+usage ()
+{
+ cat <<EOF
+Usage: $0 [OPTION]
+
+Options:
+ -h, --help display this message
+ --no-autoreconf do not run autoreconf
+
+Report bugs to <olena-bugs(a)lrde.epita.fr>
+EOF
+}
+
+# Process arguments.
+for arg in "$@"; do
+ case "$arg" in
+ -h|--help) usage; exit 0 ;;
+ --no-autoreconf) run_autoreconf_p=false ;;
+ *) fatal "error: unrecognized option: $1" ;;
+ esac
+done
+
mkdir -p _config
touch _config/local-config.rb.in
@@ -36,8 +62,7 @@ export LIBTOOLIZE=$libtoolize
# Make the libtool with ltdl
"$libtoolize" --force --copy --automake --ltdl
-# Finally, install the GNU Build System.
-autoreconf -f -v -i
-
-# FIXME: autoheader does not obey --force.
-find . -name 'config.h*.in' -o -name 'local-config.*.in' | xargs touch
+if $run_autoreconf_p; then
+ # Finally, install the GNU Build System.
+ autoreconf -f -v -i
+fi
diff --git a/extatica/configure.gnu b/extatica/configure.gnu
new file mode 100644
index 0000000..09a9463
--- /dev/null
+++ b/extatica/configure.gnu
@@ -0,0 +1,39 @@
+#! /bin/sh
+
+# This `configure.gnu' script is invoked by the parent `configure'
+# instead of `configure' in recursive configurations (see
+# ``Configuring Other Packages in Subdirectories'' in Autoconf's
+# manual). This is convenient to pass extra options, like the path to
+# Milena's source directory.
+#
+# This idea was taken and adapted from this message:
+# http://lists.gnu.org/archive/html/autoconf/2002-12/msg00116.html
+
+# Is option checking disabled?
+no_option_checking_p=false
+# Is ``--with-milena' not provided?
+no_milena_p=true
+
+for i; do
+ case "$i" in
+ # First try to get SRCDIR from a possible `--srcdir' argument.
+ --srcdir=*) srcdir=`echo "$i" | sed 's/^--srcdir=//'`;;
+ --disable-option-checking) no_option_checking_p=true;;
+ --with-milena*) no_milena_p=false;;
+ esac
+done
+
+# Then try to guess it from this script's path.
+test x"${srcdir+set}" != xset && srcdir=`dirname $0`
+
+# Disabled option checking is a hint that this `configure.gnu' was
+# called from a parent `configure'. If so, and if no `--with-milena'
+# option was provided, pass our own `--with-milena' option to the
+# recursive call to the actual `configure', carrying the path to
+# Milena's source directory.
+if $no_option_checking_p && $no_milena_p; then
+ milena_dir=`cd "$srcdir/../milena" && pwd`
+ exec "$srcdir/configure" ${1+"$@"} "--with-milena=$milena_dir"
+else
+ exec "$srcdir/configure" ${1+"$@"}
+fi
--
1.5.6.5
* AUTHORS, NEWS: Here.
* README (GNU Libiberty): Remove the paragraph on Libiberty as a
dependency.
(Layout of the Tarball): Mention directories `include' and
`libiberty'.
---
extatica/AUTHORS | 1 +
extatica/ChangeLog | 10 ++++++++++
extatica/NEWS | 5 +++--
extatica/README | 14 ++++++--------
4 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/extatica/AUTHORS b/extatica/AUTHORS
index cbae6fe..f9ffc95 100644
--- a/extatica/AUTHORS
+++ b/extatica/AUTHORS
@@ -15,6 +15,7 @@ Active LRDE Staff.
- Addition of a few wrappers around Milena.
- First experiments with SWIG and Python.
- Modernization of the package and renaming as ``Extatica''.
+ - Integration of a Libiberty (for the C++ mangler/demangler).
================================
Past contributors of LRDE Staff.
diff --git a/extatica/ChangeLog b/extatica/ChangeLog
index 827e565..2a0e684 100644
--- a/extatica/ChangeLog
+++ b/extatica/ChangeLog
@@ -1,3 +1,13 @@
+2010-11-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Mention Libiberty in Extatica's AUTHORS, NEWS and README.
+
+ * AUTHORS, NEWS: Here.
+ * README (GNU Libiberty): Remove the paragraph on Libiberty as a
+ dependency.
+ (Layout of the Tarball): Mention directories `include' and
+ `libiberty'.
+
2010-11-08 Roland Levillain <roland(a)lrde.epita.fr>
Work around a defect in Libiberty's `configure.ac' (in Extatica).
diff --git a/extatica/NEWS b/extatica/NEWS
index 4066a0f..2466b76 100644
--- a/extatica/NEWS
+++ b/extatica/NEWS
@@ -7,8 +7,9 @@
``Extatica''.
* Better handling of extra dependencies of the package: many
- Ruby parts have been turned into C++ code; dependencies (MD5)
- have been integrated into the project.
+ Ruby parts have been turned into C++ code; dependencies (MD5,
+ Libiberty's C++ mangler/demangler) have been integrated into
+ the project.
* First experiments with Milena: addition of a few wrappers
around Milena routines; first ``dynamic'' Python wrappers
diff --git a/extatica/README b/extatica/README
index 34d76f2..cf93f8a 100644
--- a/extatica/README
+++ b/extatica/README
@@ -116,14 +116,6 @@ section by this command:
% ../configure --with-milena=$HOME/local
-GNU Libiberty
-=============
-
-Extatica depends on GNU Libiberty, which is part of GNU Binutils (and
-GCC). If `configure' cannot find Libiberty, you can pass the path to
-the library (usually named `libiberty.a') through `LDFLAGS', e.g.
-
- % ../configure LDFLAGS="-L/opt/local/lib"
Installation Path
=================
@@ -256,6 +248,12 @@ config
data
Extatica template used to generate wrappers.
+include
+ Headers of Libiberty.
+
+libiberty
+ Third-party library containing a C++ mangler/demangler.
+
libltdl
Third-party library used to load dynamic modules.
--
1.5.6.5
* AUTHORS, NEWS: Here.
* README (GNU Libiberty): Remove the paragraph on Libiberty as a
dependency.
(Layout of the Tarball): Mention directories `include' and
`libiberty'.
---
extatica/AUTHORS | 1 +
extatica/ChangeLog | 10 ++++++++++
extatica/NEWS | 5 +++--
extatica/README | 14 ++++++--------
4 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/extatica/AUTHORS b/extatica/AUTHORS
index cbae6fe..f9ffc95 100644
--- a/extatica/AUTHORS
+++ b/extatica/AUTHORS
@@ -15,6 +15,7 @@ Active LRDE Staff.
- Addition of a few wrappers around Milena.
- First experiments with SWIG and Python.
- Modernization of the package and renaming as ``Extatica''.
+ - Integration of a Libiberty (for the C++ mangler/demangler).
================================
Past contributors of LRDE Staff.
diff --git a/extatica/ChangeLog b/extatica/ChangeLog
index b208ae7..90696c0 100644
--- a/extatica/ChangeLog
+++ b/extatica/ChangeLog
@@ -1,3 +1,13 @@
+2010-11-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Mention Libiberty in Extatica's AUTHORS, NEWS and README.
+
+ * AUTHORS, NEWS: Here.
+ * README (GNU Libiberty): Remove the paragraph on Libiberty as a
+ dependency.
+ (Layout of the Tarball): Mention directories `include' and
+ `libiberty'.
+
2010-11-08 Roland Levillain <roland(a)lrde.epita.fr>
Work around a defect in Libiberty's `configure.ac' (in Extatica).
diff --git a/extatica/NEWS b/extatica/NEWS
index 4066a0f..2466b76 100644
--- a/extatica/NEWS
+++ b/extatica/NEWS
@@ -7,8 +7,9 @@
``Extatica''.
* Better handling of extra dependencies of the package: many
- Ruby parts have been turned into C++ code; dependencies (MD5)
- have been integrated into the project.
+ Ruby parts have been turned into C++ code; dependencies (MD5,
+ Libiberty's C++ mangler/demangler) have been integrated into
+ the project.
* First experiments with Milena: addition of a few wrappers
around Milena routines; first ``dynamic'' Python wrappers
diff --git a/extatica/README b/extatica/README
index 34d76f2..cf93f8a 100644
--- a/extatica/README
+++ b/extatica/README
@@ -116,14 +116,6 @@ section by this command:
% ../configure --with-milena=$HOME/local
-GNU Libiberty
-=============
-
-Extatica depends on GNU Libiberty, which is part of GNU Binutils (and
-GCC). If `configure' cannot find Libiberty, you can pass the path to
-the library (usually named `libiberty.a') through `LDFLAGS', e.g.
-
- % ../configure LDFLAGS="-L/opt/local/lib"
Installation Path
=================
@@ -256,6 +248,12 @@ config
data
Extatica template used to generate wrappers.
+include
+ Headers of Libiberty.
+
+libiberty
+ Third-party library containing a C++ mangler/demangler.
+
libltdl
Third-party library used to load dynamic modules.
--
1.5.6.5
* AUTHORS: Add details.
* NEWS: Update.
* README: Update and add instructions and information.
---
extatica/AUTHORS | 18 +++-
extatica/ChangeLog | 8 ++
extatica/NEWS | 17 +++-
extatica/README | 343 ++++++++++++++++++++++++++++++++++++++++++++++++----
4 files changed, 359 insertions(+), 27 deletions(-)
diff --git a/extatica/AUTHORS b/extatica/AUTHORS
index 98ed64d..f9ffc95 100644
--- a/extatica/AUTHORS
+++ b/extatica/AUTHORS
@@ -4,21 +4,37 @@ This package was written by and with the assistance of
Active LRDE Staff.
==================
+* Thierry Géraud theo(a)lrde.epita.fr
+ - Original idea and implementation.
+
* Roland Levillain roland(a)lrde.epita.fr
+ - Project maintainer.
+ - Revival of the `dynamic-use-of-static-c++' prototype.
+ - Integration of a third-party C++ implementation of the MD5 algorithm.
+ - Progressive conversion of Ruby parts into C++ code.
+ - Addition of a few wrappers around Milena.
+ - First experiments with SWIG and Python.
+ - Modernization of the package and renaming as ``Extatica''.
+ - Integration of a Libiberty (for the C++ mangler/demangler).
================================
Past contributors of LRDE Staff.
================================
* Alexandre Duret-Lutz adl(a)lrde.epita.fr
-* Thierry Géraud theo(a)lrde.epita.fr
+ - Original idea and implementation.
=========
Students.
=========
* Nicolas Pouillard
+ - Initial work on the `dynamic-use-of-static-c++' prototype
+ (dynamic-static bridge).
+
* Damien Thivolle
+ - Initial work on the `dynamic-use-of-static-c++' prototype
+ (dynamic-static bridge).
.. Local Variables:
diff --git a/extatica/ChangeLog b/extatica/ChangeLog
index 75b9eae..8e66bcb 100644
--- a/extatica/ChangeLog
+++ b/extatica/ChangeLog
@@ -1,3 +1,11 @@
+2010-11-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Update and augment Extatica's AUTHORS, NEWS and README.
+
+ * AUTHORS: Add details.
+ * NEWS: Update.
+ * README: Update and add instructions and information.
+
2010-11-08 Roland Levillain <roland(a)lrde.epita.fr>
Work around a defect in Libiberty's `configure.ac' (in Extatica).
diff --git a/extatica/NEWS b/extatica/NEWS
index 8eebf76..2466b76 100644
--- a/extatica/NEWS
+++ b/extatica/NEWS
@@ -1,6 +1,19 @@
* Extatica 0.1a MONTH DAY, YEAR
- * Initial public release.
+ * First public release.
+
+ * Revival of the `dynamic-use-of-static-c++' prototype,
+ modernization of the infrastructure, and renaming as
+ ``Extatica''.
+
+ * Better handling of extra dependencies of the package: many
+ Ruby parts have been turned into C++ code; dependencies (MD5,
+ Libiberty's C++ mangler/demangler) have been integrated into
+ the project.
+
+ * First experiments with Milena: addition of a few wrappers
+ around Milena routines; first ``dynamic'' Python wrappers
+ over Milena using SWIG and Extatica.
Local Variables:
@@ -10,7 +23,7 @@ End:
----
-Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE).
This file is part of Olena.
diff --git a/extatica/README b/extatica/README
index 78ef1eb..cf93f8a 100644
--- a/extatica/README
+++ b/extatica/README
@@ -1,31 +1,326 @@
-HOW TO USE THIS PROJECT
+Copyright (C) 2005, 2009, 2010 EPITA Research and Development
+Laboratory (LRDE).
- Note: These instructions have been updated since this project has
- been re-integrated into the Olena repository (October 2009).
- However, they will probably evolve again, since the project should
- eventually become a part of the Olena distribution. The biggest
- change will probably be to run things from the parent directory
- (Olena's) and enable a configure flag to activate this module.
+This file is part of Olena.
-From the repository:
+Olena is free software: you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation, version 2 of the License.
- # Initialize the build system.
- ./bootstrap
+Olena is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
- # Make a build dir.
- mkdir _build && cd _build
+You should have received a copy of the GNU General Public License
+along with Olena. If not, see <http://www.gnu.org/licenses/>.
- # Configure the build for your system.
- ../configure
+The complete GNU General Public License Notice can also be found in
+the 'COPYING' file in the root directory.
- # You can also use the file `config.site' shipped with the
- # distribution, though it is a bit old. `config.site' tries to use
- # more efficient tools (g++-4.0 and ccache). It also enables
- # configure's caching mechanism. With `--prefix' you can set the
- # destination (here, `../_install').
- CONFIG_SITE=`pwd`/../config.site ../configure --prefix=`pwd`/../_install
- # You may want to add the `bin/' directory to your path, but it is
- # no longer mandatory (`xtc-config' from `bin/' used to be required
- # by programs compiled with our system).
- export PATH=$PATH:`pwd`/bin
+========================
+Introduction to Extatica
+========================
+
+Extatica is a part of Olena_, a generic and efficient platform
+dedicated to image processing.
+
+.. _Olena: http://olena.lrde.epita.fr
+
+Extatica is a dynamic-static C++ bridge, enabling users to generate,
+compile and link C++ functions and methods at run time. Extatica
+features a simple yet powerful C++ Just-In-Time (JIT) compiling
+engine. A common use case is the execution of C++ template routines
+that are not already compiled.
+
+The name of project comes from the phrase ``ex static'' (from the
+static [world]); add the canonical `-a' suffix to make it Olena-ish,
+and you get Extatica.
+
+Extatica can be used to provide dynamic services over the C++
+front-end directly, or indirectly (e.g., through a SWIG-based
+wrapper). This way, other languages or environment can benefit from
+the power of C++ JIT compiling.
+
+Extatica is currently distributed as a standalone package, but like
+other Olena sub-projects, it will eventually come in two flavors: as a
+standalone package and as a component of the Olena meta-package.
+
+
+=====================
+Detailed Instructions
+=====================
+
+-----------------
+Required Software
+-----------------
+
+Here is a non-exhaustive list of required software required to build
+Extatica successfully.
+
+ * to compile the user examples:
+
+ - a POSIX shell, like Bash
+
+ - a decent C++ compiler, like GNU C++
+
+ - a `make' utility, like GNU `make'
+
+ - Ruby 1.8.6 or greater.
+
+ * if you want to build the SWIG Python bindings, you will also need:
+
+ - the Simplified Wrapper and Interface Generator (SWIG_).
+
+ - Python_
+
+.. _SWIG: http://www.swig.org
+
+.. _Python: http://www.python.org
+
+You also need a working Milena_ install (Milena is shipped with
+Olena).
+
+.. _Milena: http://olena.lrde.epita.fr
+
+
+-------------
+Configuration
+-------------
+
+In order to prepare the build process, you need to configure the source
+tree.
+
+ Assuming your Extatica distribution is uncompressed in directory
+`extatica-1.1', follow these steps:
+
+ % cd extatica-1.1
+ % mkdir _build
+ % cd _build
+ % ../configure
+
+ The build process can be altered by a number of options you can pass
+to the `configure' script. The following sections describe them.
+
+
+Milena path
+===========
+
+Extatica requires the Milena library. If Extatica's `configure' is
+unable to find your installation of Milena, or if you want to use a
+specific installation, you must help `configure' find it using the
+`--with-milena' flag. For instance, if you have installed Milena in
+`$HOME/local', replace the call to `configure' from the previous
+section by this command:
+
+ % ../configure --with-milena=$HOME/local
+
+
+Installation Path
+=================
+
+By default, Extatica is installed in the standard "local" directory of
+your system. This is usually `/usr/local' under Unix.
+
+ You can change this path with the following flag:
+
+ --prefix=<installation prefix>
+
+
+Compiler Selection and Compilation Flags
+========================================
+
+By default, `configure' will try to use the first C++ compiler it
+encounters on your system. If `CXX' is not set, it will look, in order,
+for:
+
+ - the value of the `CXX' environment variable,
+
+ - the GNU C++ compiler (`g++'),
+
+ - the `c++' or `gpp' commands on your system,
+
+ - `aCC', the HP-UX standard C++ compiler,
+
+ - the `CC', `cxx', `cc++' or `cl' commands on your system,
+
+ - KAI's C++ compiler (`KCC'),
+
+ - `RCC', `xlC_r' or `xlC'.
+
+ You can override the detection system by passing your favorite
+compiler name to `configure', as follows:
+
+ % ../configure CXX=<your-favorite-C++-compiler>
+
+ As an alternative, you can also set the environment variable `CXX'.
+
+
+ For some compilers (GNU g++ and Intel's icpc to some extent) ,
+`configure' will use default CXXFLAGS. You can override the default
+C++ flags by giving `configure' your selection of flags:
+
+ % ../configure CXXFLAGS="<your-favorite-C++-flags>"
+
+
+ Extatica uses some C components: likewise, you can set set the C
+compiler and the C compilation flags by setting `CC' and `CFLAGS'
+respectively:
+
+ % ../configure CC=<your-favorite-C-compiler>
+
+ % ../configure CFLAGS="<your-favorite-C-flags>"
+
+You can of course use all of these all together:
+
+ % ../configure CC="<C-compiler>" CFLAGS="<C-flags>" \
+ CXX="<C++-compiler>" CXXFLAGS="<C++-flags>"
+
+
+--------
+Building
+--------
+
+Once your build directory is `configure'd, you can run
+
+ % make
+
+to build Extatica.
+
+
+ Additionally, you can build and run the test suite with:
+
+ % make check
+
+However, this process is time- and memory- consuming, and you probably
+do not need it except if you are developing/debugging Extatica.
+
+
+----------
+Installing
+----------
+
+To install Extatica on your system, run:
+
+ % make install
+
+from the build directory.
+
+ If not overridden with `--prefix', this will install:
+
+ * the `xtc-config' script in `/usr/local/bin',
+
+ * Extatica headers in `/usr/local/include',
+
+ * Extatica libraries in `/usr/local/lib',
+
+ * Python bindings in `/usr/local/lib/python2.x/site-packages'.
+
+ * Extatica boilerplate code in `/usr/local/share/extatica'.
+
+
+ You can later remove Extatica from your system by running
+
+ % make uninstall
+
+from the build directory (if you have kept it). We recommend the use
+of GNU Stow (or any similar program) during the installation of Extatica,
+to make the uninstallation of Extatica easier.
+
+
+=====================
+Layout of the Tarball
+=====================
+
+The Extatica project directory layout is as follows:
+
+_config
+ Auxiliary tools used by the GNU Build System during ``configure``
+ and ``make`` stages.
+
+bin
+ Scripts used by the build system or Extatica.
+
+config
+ Extra Autoconf macros and generators.
+
+data
+ Extatica template used to generate wrappers.
+
+include
+ Headers of Libiberty.
+
+libiberty
+ Third-party library containing a C++ mangler/demangler.
+
+libltdl
+ Third-party library used to load dynamic modules.
+
+libmd5
+ Third-party library providing a C++ implementation of the MD5 algorithm.
+
+src
+ Code of libextatica.
+
+ wrappers
+ Code to generate wrappers around libraries (currently, Milena).
+
+swig
+
+ python
+ SWIG Python bindings.
+
+test
+ Extatica's test suite.
+
+
+===================
+Supported Platforms
+===================
+
+Extatica has been tested on the following configurations:
+
+=========================== =============================================
+System Compiler
+=========================== =============================================
+GNU/Linux on IA-32 g++ (GNU GCC) 4.4
+Mac OS X (10.6) on IA-32 g++ (GNU GCC) 4.2.1
+=========================== =============================================
+
+
+See Also
+========
+
+There are other sources of interest in the distribution.
+
+- Headline news about the project can be found in the file ``NEWS`` at
+ the root of the source tree.
+
+
+License
+=======
+
+Extatica is released under the GNU General Public License. See the file
+``COPYING`` (at the root of the source tree) for details.
+
+
+Contacts
+========
+
+The team can be reached by mail at olena(a)lrde.epita.fr. The snail
+mail address follows.
+
+* Olena - LRDE
+
+ | Laboratoire de Recherche et Développement de l'EPITA (LRDE)
+ | 14-16 rue Voltaire
+ | FR-94276 Le Kremlin-Bicêtre CEDEX
+ | France
+
+
+
+.. Local Variables:
+.. mode: rst
+.. ispell-local-dictionary: "american"
+.. End:
--
1.5.6.5
* bootstrap: Remove a directory wrongfully created by autreconf,
because of Libiberty's buggy `configure.ac'.
---
extatica/ChangeLog | 7 +++++++
extatica/bootstrap | 9 +++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/extatica/ChangeLog b/extatica/ChangeLog
index f59d675..827e565 100644
--- a/extatica/ChangeLog
+++ b/extatica/ChangeLog
@@ -1,5 +1,12 @@
2010-11-08 Roland Levillain <roland(a)lrde.epita.fr>
+ Work around a defect in Libiberty's `configure.ac' (in Extatica).
+
+ * bootstrap: Remove a directory wrongfully created by autreconf,
+ because of Libiberty's buggy `configure.ac'.
+
+2010-11-08 Roland Levillain <roland(a)lrde.epita.fr>
+
Fix the distribution of Libiberty.
* libiberty.mk: New.
diff --git a/extatica/bootstrap b/extatica/bootstrap
index c4ae947..c6d2077 100755
--- a/extatica/bootstrap
+++ b/extatica/bootstrap
@@ -66,3 +66,12 @@ if $run_autoreconf_p; then
# Finally, install the GNU Build System.
autoreconf -f -v -i
fi
+
+# `autoreconf' wrongfully creates a directory named
+# `libiberty/$libiberty_topdir' (containing an actual `$' sign)
+# because Libiberty's `configure.ac' invokes `AC_CONFIG_AUX_DIR' with
+# a shell variable as argument (`$libiberty_topdir'); remove this
+# (presumably empty) directory.
+if test -d 'libiberty/$libiberty_topdir'; then
+ rmdir 'libiberty/$libiberty_topdir'
+fi
--
1.5.6.5