3066: Add missing INSTALL and README.

* 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@lrde.epita.fr> + + Add missing INSTALL and README. + + * configure.ac: add missing Makefile entry. + + * INSTALL, + * README: new files. + 2008-12-18 Nicolas Ballas <ballas@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@lrde.epita.fr>, or +<olena-bugs@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@lrde.epita.fr], [olena]) +AC_INIT([Olena], [1.0beta], [olena@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
participants (1)
-
Guillaume Lazzara