Guillaume Lazzara wrote:
> +that gives the best optimization/conformance tradeoff. However, note
> +that passing `-DNDEBUG' disable many sanity checks, while providing
> +only a poor performance improvement.
!!!
* headers.mk,
* generate_dist_headers.sh: make version.hh part of the distribution.
* mln/version.hh.in: base file used by autotools to generate
version.hh.
---
milena/ChangeLog | 16 +++++++++++++---
milena/generate_dist_headers.sh | 3 ++-
milena/headers.mk | 1 +
milena/mln/version.hh.in | 11 +++++++++++
4 files changed, 27 insertions(+), 4 deletions(-)
create mode 100644 milena/mln/version.hh.in
diff --git a/milena/ChangeLog b/milena/ChangeLog
index dcf963a..19ae6b7 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,14 +1,24 @@
2008-12-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add version.hh.
+
+ * headers.mk,
+ * generate_dist_headers.sh: make version.hh part of the distribution.
+
+ * mln/version.hh.in: base file used by autotools to generate
+ version.hh.
+
+2008-12-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Make the doc part of the distribution.
* doc/Doxyfile.in: make the user doc lighter.
* doc/Makefile.am: add the doc as extra dist.
- * mln/core/internal/graph_window_base.hh
- * mln/core/site_set/box.hh
- * mln/core/site_set/p_complex.hh
+ * mln/core/internal/graph_window_base.hh,
+ * mln/core/site_set/box.hh,
+ * mln/core/site_set/p_complex.hh,
* tests/morpho/complex_image_wst.cc,
* tests/morpho/tree/data.cc,
* trash/display_color_pretty.cc,
diff --git a/milena/generate_dist_headers.sh b/milena/generate_dist_headers.sh
index bb5bb30..7b9fb6a 100755
--- a/milena/generate_dist_headers.sh
+++ b/milena/generate_dist_headers.sh
@@ -7,9 +7,10 @@
echo "## Generated by ./generate_dist_headers, do not modify ##" > headers.mk
echo "" >> headers.mk
echo "nobase_include_HEADERS = \\" >> headers.mk
+echo "mln/version.hh \\" >> headers.mk
echo "generating headers.mk"
-find mln -type f | grep -v "\.svn" | sed -e 's/$/ \\/g' >> headers.mk
+find mln -type f | grep -v "\.svn" | sed -e 's/$/ \\/g' | grep -v "version.hh.in" >> headers.mk
last_line=`tail -n 1 headers.mk | sed -e 's/\\\//g'` # remove '\' in last line
sed '$d' < headers.mk > headers.mk.tmp # remove last line
diff --git a/milena/headers.mk b/milena/headers.mk
index 895ce0e..39fb190 100644
--- a/milena/headers.mk
+++ b/milena/headers.mk
@@ -1,6 +1,7 @@
## Generated by ./generate_dist_headers, do not modify ##
nobase_include_HEADERS = \
+mln/version.hh \
mln/histo/all.hh \
mln/histo/data.hh \
mln/histo/compute.hh \
diff --git a/milena/mln/version.hh.in b/milena/mln/version.hh.in
new file mode 100644
index 0000000..1b0cf19
--- /dev/null
+++ b/milena/mln/version.hh.in
@@ -0,0 +1,11 @@
+/** The address where bug reports should be sent. */
+#undef MLN_PACKAGE_BUGREPORT
+
+/** The full name of this package. */
+#undef MLN_PACKAGE_NAME
+
+/** The full name and version of this package. */
+#undef MLN_PACKAGE_STRING
+
+/** The version of this package. */
+#undef MLN_PACKAGE_VERSION
--
1.5.6.5
* configure.ac: add missing Makefile entry.
* INSTALL,
* README: new files.
---
ChangeLog | 9 ++
INSTALL | 243 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NEWS | 2 +-
README | 83 ++++++++++++++++++++
configure.ac | 9 ++-
5 files changed, 342 insertions(+), 4 deletions(-)
create mode 100644 INSTALL
create mode 100644 README
diff --git a/ChangeLog b/ChangeLog
index f10f343..8613740 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-12-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add missing INSTALL and README.
+
+ * configure.ac: add missing Makefile entry.
+
+ * INSTALL,
+ * README: new files.
+
2008-12-18 Nicolas Ballas <ballas(a)lrde.epita.fr>
Add milena/tests/opt/Makefile in configure.ac.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..354f7c0
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,243 @@
+This file contains information about the installation process of Olena.
+
+ You can read the `README' file for general information about Olena.
+
+1.1 Required software
+=====================
+
+Here is a non-exhaustive list of required software required to build
+Olena successfully.
+
+ * to compile the user examples:
+ - a POSIX shell, like Bash
+
+ - a decent C++ compiler, like GNU C++
+
+ - a `make' utility, like GNU or BSD `make'
+
+Optional:
+
+ * to compile the documentation:
+ - a LaTeX distribution
+
+ - the `listings' TeX package
+
+ - the utility `convert' from ImageMagick
+
+ - GNU Autogen
+
+ - `hevea', a TeX to HTML conversion tool
+
+ - the `texinfo' utilities from GNU
+
+ * to develop _in_ Olena:
+ - GNU Autotools (Autoconf 2.54, Automake 1.7)
+
+
+1.2 Configuration
+=================
+
+In order to prepare the build process, you need to configure the source
+tree.
+
+ Assuming your Olena distribution is uncompressed in directory
+`olena-1.0', follow these steps:
+
+ $ mkdir ../build
+ $ cd ../build && ../olena-1.0/configure CXXFLAGS=''
+
+ *Note:* take care to set `CXXFLAGS' always when running `configure',
+for the default value computed by `configure' may yield to compilation
+issues (conflicts between optimization and debugging).
+
+ The build process can be altered by a number of options you can pass
+to the `configure' script. The following sections describe them.
+
+ Additionally, if you are an Olena maintainer (a person who runs
+`make distcheck'), _prefer setting `CXXFLAGS' as an environment
+variable_: the flags given on the commandline to `configure' are not
+propagated to recursive runs by `make distcheck'.
+
+
+1.2.1 Installation path
+-----------------------
+
+By default, Olena 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>
+
+
+1.2.2 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 `CCC' 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 most compilers, `configure' will select debugging and minimal
+optimization (`-g -O2' with g++), which is wrong. You should override
+the default C++ flags by giving `configure' your selection of flags:
+
+ $ .../configure CXXFLAGS="<your-favorite-flags>"
+
+ This is especially useful to solve a number of problems, described
+in the following section.
+
+
+1.3 Using `CXXFLAGS' to solve compilation problems
+==================================================
+
+1.3.1 Olena needs C99
+---------------------
+
+While Olena is written in C++, it uses a number of features (math
+functions) from ISO C99. However most C++ compilers do not enable these
+features by default. If your compilation fails with (e.g.) undefined
+references to `roundf', but you know what flags can activate these
+functions, add them to `CXXFLAGS'.
+
+ In case your system does not provide some math functions necessary
+for Olena, you can force the use of a local, overloaded, implementation,
+by using macros of the form `-DOLN_NEED_xxx', where `xxx' stands for
+the name of the missing function, in uppercase. For example, on Darwin
+(MacOS X), the flag `-DOLN_NEED_SQRTF' is needed (but `configure'
+should add it anyway).
+
+
+1.3.2 Olena needs deep template recursion
+-----------------------------------------
+
+The C++ design patterns used in Olena use deep template nesting and
+recursion. However, the C++ standard specifies that C++ compiler need
+only handle template recursion up to 19 levels, which is insufficient
+for Olena. This is a problem for GCC 2.95 and probably other compilers.
+
+ Hopefully, `configure' tries to fix this automatically by adding
+`-ftemplate-depth-NN' when necessary, but other compilers than GCC may
+need other flags. If you know these flags, add them to `CXXFLAGS'.
+
+
+1.3.3 Debugging flags make Olena slow
+-------------------------------------
+
+Because Olena depends on C++ optimizations to provide the best
+performance, and enabling debugging flags often disable optimizations,
+you are advised to override the `CXXFLAGS_OPTIMIZE' with any options
+that gives the best optimization/conformance tradeoff. However, note
+that passing `-DNDEBUG' disable many sanity checks, while providing
+only a poor performance improvement.
+
+
+
+1.3.4 Speeding up the compilation
+---------------------------------
+
+When using GCC, by default separate phases of the compilation of each
+file are run sequentially (compilation then assembly). Using `-pipe' in
+`CXXFLAGS' allows GCC to fork processes and run compilation phases in
+parallel, which brings a compilation speedup on multiprocessor machines
+or machines with slow storage access (when using `-pipe', no
+intermediary data is saved).
+
+
+1.4 Speeding up the configuration process
+=========================================
+
+`configure' can manage a cache of autodetected features and values.
+This cache speeds up `configure' runs and can be activated with the
+`-C' option.
+
+ _NOTE_: the effects of many of the flags passed to `configure' are
+stored in the cache. If you decide to re-run `configure' with other
+flags, delete the `config.cache' file first.
+
+
+1.5 Elidable components
+=======================
+
+Several build targets can be disabled, in case you are only interested
+in "parts" of the full Olena distribution.
+
+ The elidable parts are so-called "components", and you can obtain a
+list of them by running:
+
+ $ .../configure --help
+
+
+1.6 Building
+============
+
+Once your build directory is `configure'd, you can run
+
+ $ make
+
+ to recursively build all selected components.
+
+
+ Additionally, you can build and run the testsuite and demonstration
+programs with:
+
+ $ make check
+
+ However, this process is very time- and memory- consuming.
+
+
+1.7 Compiler notes
+==================
+
+Olena has been tested on the following configurations :
+
+System Compiler
+Linux g++ 4.0, 4.1, 4.2
+MacOS X g++ 4.0.1
+
+
+2.1 Installing
+==============
+
+To install the Olena headers and additional files on your system, run:
+
+ $ make install
+
+ from the build directory.
+
+ If not overridden with `--prefix' (see the BUILD file) , this will
+install:
+
+ * the headers in `/usr/local/include/mln',
+
+ * sample images in `/usr/local/share/milena',
+
+
+ You can later remove Olena from your system by running
+
+ $ make uninstall
+
+ from the build directory.
+
diff --git a/NEWS b/NEWS
index 81ecb85..766cbac 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-Olena 1.0
+Olena 1.0beta
* Rewritten from scratch.
* First release of the Olena Platform with Milena as the
diff --git a/README b/README
new file mode 100644
index 0000000..d9a09cb
--- /dev/null
+++ b/README
@@ -0,0 +1,83 @@
+Abstract
+********
+
+This is a public testing version of Olena, a generic image processing
+library in C++.
+
+ Please read the files INSTALL for information about building and
+installing Olena.
+
+ Olena is a project developed by the EPITA Research and Development
+Laboratory (<http://www.lrde.epita.fr>) since 1997. We did numerous
+prototypes and throwaway experiments before settling into the kind of
+programming paradigm which is finally here.
+
+ The documentation does not cover the whole project yet. In the `doc/'
+directory you will find the first draft of a reference manual. It
+includes a quick reference guide and a tutorial. This is a good start.
+In `milena/tools', `milena/doc/tutorial/samples' and `milena/doc/examples'
+few sample programs are available. Most of them are already used to
+illustrate the tutorial.
+For the rest, we're afraid you will have to dig the code or e-mail us.
+
+ Please direct any question or comments to <olena(a)lrde.epita.fr>, or
+<olena-bugs(a)lrde.epita.fr>.
+
+ Olena also has a web page, located at
+<http://www.lrde.epita.fr/Olena>.
+
+Bibliography
+============
+
+Further information about Olena can be found into the following related
+papers:
+
+ * Thierry Géraud, Yoann Fabre, Dimitri Papadopoulos-Orfanos, and
+ Jean-François Mangin. `Vers une réutilisabilité totale des
+ algorithmes de traitement d'images'. In the Proceedings of the
+ 17th Symposium GRETSI on Signal and Image Processing, vol. 2,
+ pages 331-334, Vannes, France, September 1999. In French
+ (available in English as Technical Report 9902: `Towards a Total
+ Reusability of Image Processing Algorithms').
+
+ * Thierry Géraud, Yoann Fabre, Alexandre Duret-Lutz, Dimitri
+ Papadopoulos-Orfanos, and Jean-François Mangin. `Obtaining
+ Genericity for Image Processing and Pattern Recognition
+ Algorithms'. In the Proceedings of the 15th International
+ Conference on Pattern Recognition (ICPR'2000), IEEE Computer
+ Society, vol. 4, pages 816-819, Barcelona, Spain, September 2000.
+
+ * Alexandre Duret-Lutz. `Olena: a Component-Based Platform for
+ Image Processing, mixing Generic, Generative and OO
+ Programming'. In the Proceedings of the 2nd International
+ Symposium on Generative and Component-Based Software Engineering
+ (GCSE 2000), Young Researchers Workshop (published in
+ "Net.ObjectDays2000"; ISBN 3-89683-932-2), pages 653-659,
+ Erfurt, Germany, October 2000.
+
+ * Alexandre Duret-Lutz, Thierry Géraud, and Akim Demaille. `Generic
+ Design Patterns in C++'. In the Proceedings of the 6th USENIX
+ Conference on Object-Oriented Technologies and Systems
+ (COOTS'2001), pages 189-202, San Antonio, Texas, USA,
+ January-February 2001.
+
+ * Thierry Géraud, Yoann Fabre, and Alexandre Duret-Lutz. `Applying
+ Generic Programming to Image Processing'. In the Proceedings of
+ the IASTED International Conference on Applied Informatics
+ (AI'2001) - Symposium Advances in Computer Applications, ACTA
+ Press, pages 577-581, Innsbruck, Austria, February 2001.
+
+ * `Generic Implementation of Morphological Image Operators',
+ Jérôme Darbon, Thierry Géraud, and Alexandre Duret-Lutz,
+ submitted to International Symposium On Mathematical Morphology VI
+ (ISMM 2002), April 3-5, 2002, Sydney, Australia.
+
+ * `Static C++ Object-Oriented Programming (SCOOP)' Nicolas
+ Burrus, Alexandre Duret-Lutz, Thierry Géraud, David Lesage, and
+ Raphaël Poss. In the Proceedings of the Workshop on Multiple
+ Paradigm with OO Languages (MPOOL'03) Anaheim, CA Oct. 2003.
+
+ You can download these papers and related materials from
+<http://www.lrde.epita.fr/cgi-bin/twiki/view/Publications>
+
+
diff --git a/configure.ac b/configure.ac
index 24e7ad3..ee54879 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,8 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
+m4_pattern_forbid([^MLN_])
+
AC_PREREQ([2.61])
@@ -8,7 +10,7 @@ AC_PREREQ([2.61])
## Package set up. ##
## ---------------- ##
-AC_INIT([Olena], [1.0], [olena(a)lrde.epita.fr], [olena])
+AC_INIT([Olena], [1.0beta], [olena(a)lrde.epita.fr], [olena])
# Auxiliary files.
AC_CONFIG_AUX_DIR([build-aux])
@@ -16,7 +18,7 @@ AC_CONFIG_FILES([build-aux/Makefile])
# Automake.
AM_INIT_AUTOMAKE([1.10 foreign check-news dist-bzip2 nostdinc -Wall])
-
+AC_CONFIG_HEADERS([config.h] [milena/mln/version.hh])
## --------------------- ##
## C++ compiler set up. ##
@@ -136,7 +138,7 @@ AC_CONFIG_FILES(m4_do([swilena/python/sps-local],
## --------------- ##
# Ask for config.h.
-AM_CONFIG_HEADER([config.h])
+#AM_CONFIG_HEADER([config.h])
# Ask for the Makefile creations.
AC_CONFIG_FILES([
@@ -219,6 +221,7 @@ AC_CONFIG_FILES([
milena/tests/norm/Makefile
milena/tests/opt/Makefile
milena/tests/pw/Makefile
+ milena/tests/registration/Makefile
milena/tests/set/Makefile
milena/tests/subsampling/Makefile
milena/tests/tag/Makefile
--
1.5.6.5