From: <den...@us...> - 2010-07-25 21:24:02
|
Revision: 232 http://stdair.svn.sourceforge.net/stdair/?rev=232&view=rev Author: denis_arnaud Date: 2010-07-25 21:23:53 +0000 (Sun, 25 Jul 2010) Log Message: ----------- [Doc] Improved (a lot) the generated documentation. Modified Paths: -------------- trunk/stdair/Makefile.am trunk/stdair/doc/Makefile.am trunk/stdair/doc/local/authors.doc trunk/stdair/doc/local/codingrules.doc trunk/stdair/doc/local/documentation.doc trunk/stdair/doc/local/features.doc trunk/stdair/doc/local/help_wanted.doc trunk/stdair/doc/local/index.doc trunk/stdair/doc/local/installation.doc trunk/stdair/doc/local/linking.doc trunk/stdair/doc/local/sources.mk trunk/stdair/doc/local/verification.doc trunk/stdair/doc/sourceforge/howto_release_stdair.html trunk/stdair/doc/tutorial/tutorial.doc Added Paths: ----------- trunk/stdair/doc/local/howto_release.doc Modified: trunk/stdair/Makefile.am =================================================================== --- trunk/stdair/Makefile.am 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/Makefile.am 2010-07-25 21:23:53 UTC (rev 232) @@ -44,11 +44,11 @@ dist-html: $(MAKE) -C doc dist-html -dist-tex: - $(MAKE) -C doc dist-tex +dist-pdf: + $(MAKE) -C doc dist-pdf -snapshot: snapshot-src snapshot-html snapshot-tex +snapshot: snapshot-src snapshot-html snapshot-pdf snapshot-src: @@ -57,10 +57,10 @@ snapshot-html: $(MAKE) -C doc dist-html html_tarname=@PACKAGE_TARNAME@-doc-`date +"%Y%m%d"` -snapshot-tex: - $(MAKE) -C doc dist-tex tex_tarname=@PACKAGE_TARNAME@-tex-`date +"%Y%m%d"` +snapshot-pdf: + $(MAKE) -C doc dist-pdf pdf_tarname=@PACKAGE_TARNAME@-pdf-`date +"%Y%m%d"` -upload: upload-src upload-html upload-tex +upload: upload-src upload-html upload-pdf upload-src: dist @UPLOAD_COMMAND@ @PACKAGE_TARNAME@-@VERSION@.tar.gz \ @@ -70,6 +70,6 @@ @UPLOAD_COMMAND@ @PACKAGE_TARNAME@-doc-@VERSION@.tar.gz \ @PACKAGE_TARNAME@-doc-@VERSION@.tar.bz2 -upload-tex: dist-tex - @UPLOAD_COMMAND@ @PACKAGE_TARNAME@-tex-@VERSION@.tar.gz \ - @PACKAGE_TARNAME@-tex-@VERSION@.tar.bz2 +upload-pdf: dist-pdf + @UPLOAD_COMMAND@ @PACKAGE_TARNAME@-pdf-@VERSION@.tar.gz \ + @PACKAGE_TARNAME@-pdf-@VERSION@.tar.bz2 Modified: trunk/stdair/doc/Makefile.am =================================================================== --- trunk/stdair/doc/Makefile.am 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/Makefile.am 2010-07-25 21:23:53 UTC (rev 232) @@ -15,10 +15,11 @@ docdir = @docdir@ html_tarname = @PACKAGE_TARNAME@-doc-@PACKAGE_VERSION@ -tex_tarname = @PACKAGE_TARNAME@-tex-@PACKAGE_VERSION@ +pdf_tarname = @PACKAGE_TARNAME@-pdf-@PACKAGE_VERSION@ -noinst_DATA = sourceforge/howto_release_stdair.html.in -EXTRA_DIST = $(noinst_DATA) +#noinst_DATA = sourceforge/howto_release_stdair.html.in +#EXTRA_DIST = $(noinst_DATA) +EXTRA_DIST = # Targets all-local: html-local @@ -50,13 +51,13 @@ bzip2 -9 -c > $(top_builddir)/$(html_tarname).tar.bz2 rm -rf $(top_builddir)/$(html_tarname) -dist-tex: html-local - cp -a $(top_builddir)/doc/latex $(top_builddir)/$(tex_tarname) - tar chof - $(top_builddir)/$(tex_tarname) | \ - gzip --best -c > $(top_builddir)/$(tex_tarname).tar.gz - tar chof - $(top_builddir)/$(tex_tarname) | \ - bzip2 -9 -c > $(top_builddir)/$(tex_tarname).tar.bz2 - rm -rf $(top_builddir)/$(tex_tarname) +dist-pdf: html-local + cp -a $(top_builddir)/doc/latex $(top_builddir)/$(pdf_tarname) + tar chof - $(top_builddir)/$(pdf_tarname) | \ + gzip --best -c > $(top_builddir)/$(pdf_tarname).tar.gz + tar chof - $(top_builddir)/$(pdf_tarname) | \ + bzip2 -9 -c > $(top_builddir)/$(pdf_tarname).tar.bz2 + rm -rf $(top_builddir)/$(pdf_tarname) install-data-local: html-local $(mkinstalldirs) $(DESTDIR)$(docdir) Modified: trunk/stdair/doc/local/authors.doc =================================================================== --- trunk/stdair/doc/local/authors.doc 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/local/authors.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -10,23 +10,22 @@ \section developers Developers -- Daniel Perez <dan...@us...> (\ref N) - Christophe Lacombe <dd...@us...> (\ref N) \section retired Retired Developers -- Rémi Casacci (\ref N) +- Son Nguyen Kim <sng...@us...> (\ref N) \section contributors Contributors -- Emmanuel Bastien (\ref N) +- Emmanuel Bastien <eba...@us...> (\ref N) \section distributors Distribution Maintainers -- Denis Arnaud <den...@us...> +- Denis Arnaud <den...@us...> (\ref N) \note \anchor N Modified: trunk/stdair/doc/local/codingrules.doc =================================================================== --- trunk/stdair/doc/local/codingrules.doc 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/local/codingrules.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -7,80 +7,46 @@ \section cr_variables Default Naming Rules for Variables -Variables are named using lower-case letters and words are separated -using under-score. Abbreviations, when used in variable names, are also -written with lower-case letters. Examples: +Variables names follow Java naming conventions. +Examples: +- \c `lNumberOfPassengers' +- \c `lSeatAvailability' -<ul> -<li> \c `fft_size' </li> -<li> \c `nrof_paths' </li> -<li> \c `my_variable_name' </li> -</ul> -Some variable names or parts of variable names are commonly used in -several different functions and files to denote the same thing. For -instance the following common names and prefixes should be used: - -<ul> -<li> \c `rows' - number of rows in a matrix </li> -<li> \c `cols' - number of columns in a matrix </li> -<li> \c `nrof_' - number of ... </li> -</ul> - - -\section cr_files Default Naming Rules for Files - -Files are named using lower-case letters and words are separated using -under-score. Abbreviations, when used in file names, are also written -with lower-case letters. - -Source files are named using <tt>`.cpp'</tt> suffix, whereas header -files end with <tt>`.h'</tt> extension. Examples: - -<ul> -<li> <tt>`my_file.h'</tt> </li> -<li> <tt>`my_file.cpp'</tt> </li> -</ul> - - \section cr_functions Default Naming Rules for Functions -Function names are named using lower-case letters and words are -separated using under-score. Abbreviations, when used in function -names, are also written with lower-case letters. This rule applies -both to stand-alone functions as well as to member functions of -classes. Example: +Function names follow Java naming conventions. Example: +- \c `int \c myFunctionName (\c const \c int& \c a, \c int \c b)' -<ul> -<li> <tt>int my_function_name(int a, int b)</tt> </li> -</ul> - \section cr_classes Default Naming Rules for Classes and Structures Each new word in a class or structure name should always start with a capital letter and the words should be separated with an under-score. Abbreviations are written with capital letters. Examples: +- \c `MyClassName' +- \c `MyStructName' -<ul> -<li> \c `My_Class_Name' </li> -<li> \c `My_Struct_Name' </li> -<li> \c `OFDM' </li> -</ul> +\section cr_files Default Naming Rules for Files +Files are named after the C++ class names. + +Source files are named using \c `.cpp' suffix, whereas header +files end with \c `.hpp' extension. Examples: +- \c `FlightDate.hpp' +- \c `SegmentDate.cpp' + + + \section cr_classes_functionality Default Functionality of Classes All classes that are configured by input parameters should include: +- default empty constructor +- one or more additional constructor(s) that takes input parameters + and initializes the class instance +- setup function, preferably named \c `setup' or \c `set_parameters' -<ul> -<li> default empty constructor </li> -<li> one or more additional constructor(s) that takes input parameters -and initializes the class instance </li> -<li> setup function, preferably named \c `setup' or \c -`set_parameters' </li> -</ul> - Explicit destructor functions are not required, unless they are needed. It shall not be possible to use any of the other member functions unless the class has been properly initiated with the input Modified: trunk/stdair/doc/local/documentation.doc =================================================================== --- trunk/stdair/doc/local/documentation.doc 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/local/documentation.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -3,26 +3,24 @@ \section doc_general General Rules -All classes in IT++ should be properly documented with Doxygen -comments in include (`.h') files. Source (`.cpp') files should be +All classes in StdAir should be properly documented with Doxygen +comments in include (\c `.hpp') files. Source (\c `.cpp') files should be documented according to a normal standard for well documented C++ code. -An example of how the interface of a class shall be documented in IT++ +An example of how the interface of a class shall be documented in StdAir is shown here: \verbatim /*! - * \brief Brief description of My_Class here + * \brief Brief description of MyClass here * - * Detailed description of My_Class here. With example code if needed. + * Detailed description of MyClass here. With example code if needed. */ -class My_Class { - +class MyClass { public: - //! Default constructor - My_Class(void) { setup_done = false; } + MyClass(void) { setup_done = false; } /*! * \brief Constructor that initializes the class with parameters @@ -32,10 +30,10 @@ * \param[in] param1 Description of \a param1 here * \param[in] param2 Description of \a param2 here */ - My_Class(TYPE1 param1, TYPE2 param2) { setup(param1, param2); } + MyClass(TYPE1 param1, TYPE2 param2) { setup(param1, param2); } /*! - * \brief Setup function for My_Class + * \brief Setup function for MyClass * * Detailed description of the setup function here if needed * @@ -45,23 +43,23 @@ void setup(TYPE1 param1, TYPE2 param2); /*! - * \brief Brief description of member_function1 + * \brief Brief description of memberFunction1 * - * Detailed description of member_function1 here if needed + * Detailed description of memberFunction1 here if needed * * \param[in] param1 Description of \a param1 here * \param[in] param2 Description of \a param2 here * \param[in,out] param3 Description of \a param3 here * \return Description of the return value here */ - TYPE4 member_function1(TYPE1 param1, TYPE2 param2, TYPE3 ¶m3); + TYPE4 memberFunction1(TYPE1 param1, TYPE2 param2, TYPE3 ¶m3); private: - bool setup_done; /*!< Variable that checks if the class is properly + bool _setupDone; /*!< Variable that checks if the class is properly initialized with parameters */ - TYPE1 private_variable1; //!< Short description of private_variable1 here - TYPE2 private_variable2; //!< Short description of private_variable2 here + TYPE1 _privateVariable1; //!< Short description of _privateVariable1 here + TYPE2 _privateVariable2; //!< Short description of _privateVariable2 here }; \endverbatim @@ -85,14 +83,13 @@ * * ------------------------------------------------------------------------- * - * IT++ - C++ library of mathematical, signal processing, speech processing, - * and communications classes and functions + * StdAir - C++ Standard Airline IT Object Library * - * Copyright (C) 1995-2005 (see AUTHORS file for a list of contributors) + * Copyright (C) 2009-2010 (see AUTHORS file for a list of contributors) * * This program 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; either version 2 of the License, or + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -125,20 +122,20 @@ The following example shows how to document the function \c -`my_function' and how to add it to the group \c `my_group': +`myFunction' and how to add it to the group \c `my_group': \verbatim /*! - * \brief Brief description of my_function here + * \brief Brief description of myFunction here * \ingroup my_group * - * Detailed description of my_function here + * Detailed description of myFunction here * * \param[in] param1 Description of \a param1 here * \param[in] param2 Description of \a param2 here * \return Description of the return value here */ -TYPE3 my_function(TYPE1 param1, TYPE2 ¶m2); +TYPE3 myFunction(TYPE1 param1, TYPE2 ¶m2); \endverbatim */ Modified: trunk/stdair/doc/local/features.doc =================================================================== --- trunk/stdair/doc/local/features.doc 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/local/features.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -1,75 +1,29 @@ /*! -\page features Main features of IT++ +\page features Main features of StdAir -A short list of the main features of IT++ is given below sorted in different +A short list of the main features of StdAir is given below sorted in different categories. Many more features and functions exist and for these we refer to the reference documentation. -\section prog_features Programming features -- templated array and stack container classes -- input and file argument parser -- timing functions and classes +\section airline_it_bom Standard Airline IT Business Object Model (BOM) +- (Airline) Network-related classes: + - Network, ReachableUniverse +- (Air) Travel-related classes: + - TravelSolution, OriginDestination, +- (Airline) Inventory-related classes: + - Inventory, FlightDate, SegmentDate, SegmentCabin, BookingClass, + LegDate, LegCabin, + Bucket +- (Airline) Schedule-related classes: + - FlightPeriod, SegmentPeriod, LegPeriod +- (Simulated) Passenger-related demand classes: + - DemandStream, BookingRequest +- (Air) Price-related classes: + - YieldStore -\section math_features Basic mathematical features -- templated vector and matrix classes -- sparse vectors and matrix classes -- elementary functions on vectors and matrices -- statistics classes and functions -- matrix decompositions such as eigenvalue, Cholesky, LU, Schur, SVD, and QR -- solving linear system of equations (including over and underdetermined) -- random number generation (Mersenne Twister generator) -- binary and Galois types (both scalar and vector and matrices) -- integration of 1-dimensional functions -- unconditional nonlinear optimization (Quasi-Newton search) +\section architecture Architecture of the StdAir library +- Separate structure and content classes +- <a href="http://www.boost.org/doc/libs/1_43_0/libs/fusion/doc/html/index.html">Boost.Fusion</a> - -\section sigproc_features Signal processing -- filter functions and classes -- frequency domain filtering -- FFT, DFT, DCT, and Hadamard transforms -- time and frequency domain windows -- evaluating and finding roots of polynomials (and inverse operations) -- filter design functions -- fast independent component analysis (fast ICA) - - -\section comm_features Communications -- modulators (BPSK, PSK, PAM, QAM) -- vector modulators (e.g. for OFDM and MIMO) -- OFDM and CDMA modulators -- pulse shaping filters (including RC and RRC) -- binary symmetric (BSC) and additive white Gaussian Noise (AWGN) channels -- multipath fading channels (both frequency-flat and frequency-selective) -- COST 207, COST 257, and ITU channel models -- Hamming, extended Golay, and CRC codes -- BCH and Reed-Solomon codes -- convolutional and punctured convolutional codes -- recursive convolutional codes -- turbo codes -- interleavers - - -\section protocol_features Protocol simulation -- event-based simulation classes -- signal and slots for simplified syntax -- TCP clients and servers -- selective repeat ARQ -- queue classes -- packet generators - - -\section srccode_features Source coding -- Scalar Quantizer (SQ) and Vector Quantizer (VQ) classes and functions for - training of these -- LPC, LSF, and cepstrum parameter calculation for speech processing -- Gaussian Mixture Modeling -- reading and saving several different audiofile formats -- reading and saving images in PNM format - - -\section other_features Other features -- binary file format for most built in and IT++ types -- fixed-point scalar, vector and matrix types - */ Modified: trunk/stdair/doc/local/help_wanted.doc =================================================================== --- trunk/stdair/doc/local/help_wanted.doc 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/local/help_wanted.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -1,29 +1,29 @@ /*! \page help_wanted Make a Difference -<b>Do not ask what IT++ can do for you. Ask what you can do for IT++.</b> +<b>Do not ask what StdAir can do for you. Ask what you can do for StdAir.</b> -You can help us to develop the IT++ library. There are always a lot of things +You can help us to develop the StdAir library. There are always a lot of things you can do: -- Start using IT++ -- Tell your friends about IT++ and help them to get started using it +- Start using StdAir +- Tell your friends about StdAir and help them to get started using it - If you find a bug, report it to us. Without your help we can never hope to produce a bug free code. - Help us to improve the documentation by providing information about documentation bugs -- Answer support requests in the IT++ discussion forums on SourceForge. If -you know the answer to a question, help others to overcome their IT++ +- Answer support requests in the StdAir discussion forums on SourceForge. If +you know the answer to a question, help others to overcome their StdAir problems. - Help us to improve our algorithms. If you know of a better way (e.g. that is faster or requires less memory) to implement some of our algorithms, then let us know. -- Help us to port IT++ to new platforms. If you manage to compile IT++ on a +- Help us to port StdAir to new platforms. If you manage to compile StdAir on a new platform, then tell us how you did it. -- Send us your code. If you have a good IT++ compatible code, which you can -release under the GPL, and you think it should be included in IT++, then +- Send us your code. If you have a good StdAir compatible code, which you can +release under the GPL, and you think it should be included in StdAir, then send it to us. -- Become an IT++ developer. Send us an e-mail and tell what you can do for -IT++. +- Become an StdAir developer. Send us an e-mail and tell what you can do for +StdAir. */ Copied: trunk/stdair/doc/local/howto_release.doc (from rev 231, trunk/stdair/doc/sourceforge/howto_release_stdair.html) =================================================================== --- trunk/stdair/doc/local/howto_release.doc (rev 0) +++ trunk/stdair/doc/local/howto_release.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -0,0 +1,216 @@ +/*! +\page howto_release How to release a new version of StdAir + +\htmlonly +<!-- +The following tags are permitted: a, b, blockquote, br, code, dd, div, +dl, dt, em, hr, i, li, ol, p, pre, strong, tt, ul, u. All other tags will be +stripped. All tags aside from the following must be closed: br, hr, li, p. +Failure to close tags may result in HTML output which is not rendered +properly. Any style attributes or on* attributes (such as mouseover) will be +stripped. JavaScript will result in the total stripping of HTML tags from +your input. Please limit your input to properly formed HTML snippets +conforming to the above rules. +--> +\endhtmlonly + +\section description Introduction + +This document describes briefly the recommended procedure of releasing +a new version of StdAir using a Linux development machine and the +SourceForge project site. + +The following steps are required to make a release of the distribution package. + + +\section initialisation Initialisation + +Check out locally the full +<a href="https://stdair.svn.sourceforge.net/svnroot/stdair">Subversion project</a>: +\verbatim +cd ~ +mkdir -p dev +cd ~/dev +svn co https://stdair.svn.sourceforge.net/svnroot/stdair stdairsvn +\endverbatim + + +\section branch_preparation Branch preparation + +Prepare the branch for its creation on the Subversion repository: +\verbatim +cd ~/dev +cd stdairsvn/branches/stdair +mkdir 0.1.0 +svn add 0.1.0 +svn ci -m "[Branch 0.1.0] Prepared the branch 0.1.0 to be copied from head of the trunk." +\endverbatim + +\section check_release_revision Check Subversion revision for the release + +Check to which Subversion revision the release corresponds to. For instance +the <a href="http://sourceforge.net/apps/trac/stdair/changeset/220/">StdAir + release 0.1.0 corresponds to Subversion revision r218</a>. +The trunk <tt>configure.ac</tt> file specifies a fake release number, namely +99.99.99, +for current (head) development. When a release is made, two Subversion +revisions are committed with, as the sole change, the release number within +the <tt>configure.ac</tt> file: +- one revision is committed with the to-be-released version number (e.g., + 0.1.0) and commit message prefixed with "[Release x.y.z]", +- and another one with the release number back to 99.99.99 and message stating + "[Release] Back to working version (99.99.99)." +. +That way, it is then easy to spot the starting point of any release within +the Subversion repository, with something like: +\verbatim +cd ~/dev +cd stdairsvn/trunk/stdair +svn log configure.ac | less +\endverbatim + + +\section create_release_branch Create the release branch + +Create a release branch by copying the +<a href="https://stdair.svn.sourceforge.net/svnroot/stdair/trunk/stdair">source + tree</a> to be released, from the found revision (e.g., +<a href="http://sourceforge.net/apps/trac/stdair/changeset/218">r218</a>) +into the dedicated +<a href="https://stdair.svn.sourceforge.net/svnroot/stdair/branches/stdair/0.1.0">'branches' sub-directory of the Subversion repository</a>, e.g.: +\verbatim +svn copy -r218 \ + https://stdair.svn.sourceforge.net/svnroot/stdair/trunk/stdair \ + https://stdair.svn.sourceforge.net/svnroot/stdair/branches/stdair/0.1.0/main \ + -m "[Release] Created the main 0.1.0 release branch, from revision r218." +\endverbatim + +Check the results:<br> +\c firefox -new-tab \"<a href="http://sourceforge.net/apps/trac/stdair/browser/branches/stdair/0.1.0/main">http://sourceforge.net/apps/trac/stdair/browser/branches/stdair/0.1.0/main</a>\" + + +\section checkout_new_release Check-out the new release + +Check-out the release StdAir sources from the branch, so that patches +may be made (for instance, on the RPM specification file): +\verbatim +cd ~/dev +cd stdairsvn/branches/stdair/0.1.0 +svn up +cd main +\endverbatim + + +\section alter_released_files Alter released files + +<b>Only if needed</b>, alter a few files on the branch. + +<b>Note that the release branch is not the place where to develop for a +release.</b> +The <b>release</b> branch is aimed at keeping track of a release and of all +the patches having made their way into that branch, so that the software +can always be generated according to that release. + +Developments for a particular release should be made on the trunk (e.g., by +adding features not activated by default, but activated for the release +developers only) or, if really needed, on a dedicated <b>development</b> branch. + + +\section create_packages Create distribution packages + +Create the distribution packages using the following command:<br> +\verbatim +cd ~/dev +cd stdairsvn/branches/stdair/0.1.0/main +./autogen.sh && make distcheck +\endverbatim + + +This will configure, compile and check the package. The output packages will +be named, for instance, \c stdair-0.1.0.tar.gz and \c stdair-0.1.0.tar.bz2. + + +\section generate_rpm_packages Generation the RPM packages + +Optionally, generate the RPM package (for instance, for +<a href="http://fedoraproject.org">Fedora</a>/<a href="http://www.redhat.com">RedHat</a>): +\verbatim +cd ~/dev +cd stdairsvn/branches/stdair/0.1.0/main +./autogen.sh && make dist +\endverbatim + +To perform this step, autoconf, automake and libtool tools have to be +available in the system. +\verbatim +cp stdair.spec ~/dev/packages/SPECS \ + && cp stdair-0.1.0.tar.bz2 ~/dev/packages/SOURCES +cd ~/dev/packages/SPECS +rpmbuild -ba stdair.spec +rpmlint -i ../SPECS/stdair.spec ../SRPMS/stdair-0.1.0-1.fc13.src.rpm \ + ../RPMS/i686/stdair-* +\endverbatim + + +\section update_changelog Update distributed change log + +Update the \c NEWS and \c ChangeLog files with appropriate +information, including what has changed since the previous release. Then +commit the changes into the +<a href="https://sourceforge.net/apps/trac/stdair/browser">StdAir's + Subversion (SVN) repository</a>. + + +\section create_doc_packages Create the documentation packages + +Create the documentation packages using the following command: +\c make dist-html and \c make dist-tex + +The output documentation packages will be named, for instance: +- \c stdair-doc-0.1.0.tar.gz and \c stdair-doc-0.1.0.tar.bz2 for the + HTML documentation. +- \c stdair-pdf-0.1.0.tar.gz and \c stdair-pdf-0.1.0.tar.bz2 for the + PDF documentation. + + +\section upload_files Upload the files to SourceForge + +Upload the distribution and documentation packages to the SourceForge server. +Check +<a href="https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download#SCP">SourceForge help page on uploading software</a>. + + +\section upload_doc Upload the documentation to SourceForge + +In order to update the Web site files, either: +- <a href="https://sourceforge.net/apps/trac/sourceforge/wiki/Shell%20service#Accessingyourfileswithothertools">synchronise them with rsync and SSH</a>: +\verbatim +cd ~/dev +cd stdairsvn/branches/stdair/0.1.0/main +rsync -aiv doc/html joe,st...@we...:htdocs/ +\endverbatim +where \c -aiv options mean: + - \c -a: archive/mirror mode; equals \c -rlptgoD + (no \c -H, \c -A, \c -X) + - \c -v: increase verbosity + - \c -i: output a change-summary for all updates +- or use the + <a href="https://sourceforge.net/apps/trac/sourceforge/wiki/Shell%20service">SourceForge Shell service</a>. + + +\section post_news Make a new post + +- submit a new entry in the <a href="https://sourceforge.net/news/submit.php?group_id=267760">SourceForge project-related news feed</a> +- make a new post on the <a href="https://sourceforge.net/apps/wordpress/stdair/wp-admin/">SourceForge hosted WordPress blog</a> +- and update, if necessary, +<a href="https://sourceforge.net/apps/trac/stdair/report">Trac tickets</a>. + + +\section send_announce Send an email on the announcement mailing-list + +Finally, you should send an announcement to + <a href="mailto:std...@li...">std...@li...</a> + (see <a href="https://lists.sourceforge.net/lists/listinfo/stdair-announce">https://lists.sourceforge.net/lists/listinfo/stdair-announce</a> + for the archives) + +*/ Modified: trunk/stdair/doc/local/index.doc =================================================================== --- trunk/stdair/doc/local/index.doc 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/local/index.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -8,47 +8,46 @@ <div style="float:right; width:200px; background-color: #eeeeff; border: 1px solid #b0b0b0; margin: 0 0 10px 20px; padding: 10px; font-size: 90%;"> +\endhtmlonly -<b>Getting Started:</b> -<ul> -<li><a href="features.html">Features</a></li> -<li><a href="installation.html">Installation</a></li> -<li><a href="linking.html">Linking with StdAir</a></li> -<li><a href="users_guide.html">Short Introduction to StdAir</a></li> -<li><a href="tutorial.html">Some Tutorial Examples</a></li> -<li><a href="verification.html">StdAir Verification</a></li> -<li><a href="copyright.html">Copyright and License</a></li> -<li><a href="help_wanted.html">Make a Difference</a></li> -<li><a href="authors.html">Authors</a></li> -</ul> +\section getting_started Getting Started +- <a href="features.html">Features</a> +- <a href="installation.html">Installation</a> +- <a href="linking.html">Linking with StdAir</a> +- <a href="users__guide.html">Short Introduction to StdAir</a> +- <a href="tutorial.html">Some Tutorial Examples</a> +- <a href="verification.html">StdAir Verification</a> +- <a href="copyright.html">Copyright and License</a> +- <a href="help__wanted.html">Make a Difference</a> +- <a href="howto__release.html">Make a new release</a> +- <a href="authors.html">Authors</a> -<a href="http://sourceforge.net/projects/stdair/"><b>StdAir at SourceForge:</b></a> -<ul> -<li><a href="http://sourceforge.net/project/showfiles.php?group_id=267760">Download StdAir</a></li> -<li><a href="http://stdair.sourceforge.net/RPM-GPG-KEY-freshrpms-free">RPM-GPG-Key</a> for StdAir RPMs (save the file, and type 'rpm --import RPM-GPG-KEY-freshrpms-free' as root)</li> -<li><a href="http://sourceforge.net/tracker/?group_id=267760&atid=882290">Bug Reports</a></li> -<li><a href="http://sourceforge.net/tracker/?group_id=267760&atid=882293">Feature Requests</a></li> -<li><a href="http://sourceforge.net/tracker/?group_id=267760&atid=882292">Submit Patches</a></li> -<li><a href="http://sourceforge.net/tracker/?group_id=267760&atid=882291">Support Request</a></li> -<li><a href="http://sourceforge.net/mail/?group_id=267760">Mailing lists</a></li> -<li><a href="http://sourceforge.net/forum/forum.php?forum_id=613897">Discuss about Development issues</a></li> -<li><a href="http://sourceforge.net/forum/forum.php?forum_id=613896">Ask for Help</a></li> -<li><a href="http://sourceforge.net/forum/forum.php?forum_id=613895">Discuss StdAir</a></li> -</ul> -<b>StdAir Development:</b> -<ul> -<li><a href="http://stdair.svn.sourceforge.net/viewvc/stdair/">SVN Repository</a></li> -<li><a href="codingrules.html">Coding Rules</a></li> -<li><a href="documentation.html">Documentation Rules</a></li> -<li><a href="test.html">Test Rules</a></li> -</ul> +\section at_sourceforge StdAir at SourceForge +- <a href="http://sourceforge.net/projects/stdair/">Project page</a> +- <a href="http://sourceforge.net/project/showfiles.php?group_id=267760">Download StdAir</a> +- <a href="https://sourceforge.net/apps/trac/stdair/newticket">Open a ticket fora bug or feature</a> +- <a href="http://sourceforge.net/mail/?group_id=267760">Mailing lists</a> +- <a href="https://sourceforge.net/apps/phpbb/stdair/">Forums</a> + - <a href="https://sourceforge.net/apps/phpbb/stdair/viewforum.php?f=1">Discuss about Development issues</a> + - <a href="https://sourceforge.net/apps/phpbb/stdair/viewforum.php?f=2">Ask for Help</a> + - <a href="https://sourceforge.net/apps/phpbb/stdair/viewforum.php?f=3">Discuss StdAir</a> -<b>External Libraries:</b> -<ul> -<li><a href="http://www.gnu.org/software/gsl">GSL</a></li> -</ul> +\section development StdAir Development +- <a href="http://stdair.svn.sourceforge.net/viewvc/stdair/">SVN Repository</a> +- <a href="codingrules.html">Coding Rules</a> +- <a href="documentation.html">Documentation Rules</a> +- <a href="test.html">Test Rules</a> + + +\section external_libs External Libraries +- <a href="http://www.boost.org">Boost (C++ STL extensions)</a> +- <a href="http://dev.mysql.com/">MySQL client</a> +- <a href="http://soci.sourceforge.net/">SOCI (C++ DB API)</a> + + +\htmlonly </div> <!-- end of left margin --> \endhtmlonly Modified: trunk/stdair/doc/local/installation.doc =================================================================== --- trunk/stdair/doc/local/installation.doc 2010-07-25 16:06:47 UTC (rev 231) +++ trunk/stdair/doc/local/installation.doc 2010-07-25 21:23:53 UTC (rev 232) @@ -1,597 +1,542 @@ /*! -\page installation IT++ Installation +\page installation StdAir Installation \section toc Table of Contents +- \ref rpm_linux - \ref requirements -- \ref download -- \ref compilation -- \ref macosx -- \ref localinst -- \ref msvc +- \ref basic_instructions +- \ref compilers +- \ref compiling_for_multi_arch +- \ref installation_names +- \ref optional_features +- \ref particular_systems +- \ref specifying_system_type +- \ref sharing_defaults +- \ref defining_variables +- \ref configure_invocation -\section requirements IT++ Requirements +\section rpm_linux Fedora/RedHat Linux distributions -IT++ should compile without errors or warnings on most GNU/Linux systems, +Note that on +<a href="http://fedoraproject.org">Fedora</a>/<a href="http://www.redhat.com">RedHat</a> +Linux distributions, RPM packages are available and can be installed +with your usual package manager. For instance:<br> +<code> yum -y install stdair-devel stdair-doc </code> + +RPM packages can also be available on the +<a href="http://sourceforge.net/project/showfiles.php?group_id=267760">SourceForge download site</a>. + + +\section requirements StdAir Requirements + +StdAir should compile without errors or warnings on most GNU/Linux systems, on UNIX systems like Solaris SunOS, and on POSIX based environments for Microsoft Windows like Cygwin or MinGW with MSYS. It can be also built on Microsoft Windows NT/2000/XP using Microsoft's Visual C++ .NET, but our support for this compiler is limited. For GNU/Linux, SunOS, Cygwin and MinGW we assume that you have at least the following GNU software installed on your computer: -- <a href="http://www.gnu.org/software/make/">GNU make</a>, version 3.72.1 -or later (check version with <tt>`make --version'</tt>) -- <a href="http://gcc.gnu.org/">GCC</a> - GNU Compilers Collection (gcc, g++ -and g77 or gfortran), version 3.3.x or later (check version with <tt>`gcc ---version'</tt>) +- GNU Autotools: + - <a href="http://www.gnu.org/software/autoconf/">autoconf</a>, + - <a href="http://www.gnu.org/software/automake/">automake</a>, + - <a href="http://www.gnu.org/software/libtool/">libtool</a>, + - <a href="http://www.gnu.org/software/make/">make</a>, version 3.72.1 + or later (check version with \c `make --version') +- <a href="http://gcc.gnu.org/">GCC</a> - GNU C++ Compiler (g++), version 4.3.x + or later (check version with \c `gcc --version') +- <a href="http://www.boost.org/">Boost</a> - C++ STL extensions, version 1.35 + or later (check version with + \c `grep "define BOOST_LIB_VERSION" /usr/include/boost/version.hpp') +- <a href="http://dev.mysql.com/">MySQL</a> - Database client libraries, + version 5.0 or later (check version with \c `mysql --version') +- <a href="http://soci.sourceforge.net/">SOCI</a> - C++ database client + library wrapper, version 3.0.0 or later (check version with + \c `soci-config --version') . -To perform tests, two command line programs: \c sed and \c diff are -required. Optionally, you might need a few additional programs, i.e. +Optionally, you might need a few additional programs: <a href="http://www.doxygen.org/">Doxygen</a>, <a href="http://www.latex-project.org/">LaTeX</a>, <a href="http://www.radicaleye.com/dvips.html">Dvips</a> and <a href="http://www.cs.wisc.edu/~ghost/">Ghostscript</a>, to generate the -HTML documentation. +HTML and PDF documentation. We strongly recommend that you use recent stable releases of the GCC, if possible. We do not actively work on supporting older versions of the GCC, and they may therefore (without prior notice) become unsupported in future -releases of IT++. +releases of StdAir. -In order to use all functionality provided by the IT++ library, it is -recommended that you have some external libraries compiled and installed in -your computer. The basic set of them is: -<a href="http://www.netlib.org/blas/">BLAS</a>, -<a href="http://www.netlib.org/lapack/">LAPACK</a> and -<a href="http://www.fftw.org/">FFTW</a> (version 3.0.0 or later). To improve -some vector based operations a C interface of BLAS, namely -<a href="http://www.netlib.org/blas/">CBLAS</a>, is also recommended. -Instead of NetLib's reference BLAS, CBLAS and LAPACK implementations, some -optimized platform-specific libraries can be used as well, i.e.: -- <a href="http://math-atlas.sourceforge.net/">ATLAS</a> (<em>Automatically - Tuned Linear Algebra Software</em>) - includes optimised BLAS, CBLAS and a - limited set of LAPACK routines (version 3.6.0 or later) -- <a href="http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/">MKL</a> - (<em>Intel Math Kernel Library</em>) - includes all required BLAS, CBLAS, - LAPACK and FFT routines (version 8.0.0 or later; FFTW not required) -- <a href="http://developer.amd.com/acml.aspx">ACML</a> (<em>AMD Core Math - Library</em>) - includes BLAS, CBLAS, LAPACK and FFT routines (version - 2.5.3 or later; FFTW not required) +\section basic_instructions Basic Installation -It is possible to compile and use IT++ without these libraries, but the -functionality will be reduced. We therefore recommend that you take some -time and effort to provide these external libraries in your system. Please -note, that some of them (FFTW, BLAS and LAPACK) are usually included in -most modern Linux distributions. + Briefly, the shell commands \c `./configure; make; make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the \c `README' file for +instructions specific to this package. Some packages provide this +\c `INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in the info page corresponding to "Makefile Conventions: +(standards)Makefile Conventions". + The \c `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a \c `Makefile' in each directory of the package. +It may also create one or more \c `.h' files containing system-dependent +definitions. Finally, it creates a shell script \c `config.status' that +you can run in the future to recreate the current configuration, and a +file \c `config.log' containing compiler output (useful mainly for +debugging \c `configure'). -\section download Obtaining the IT++ Source Codes + It can also use an optional file (typically called \c `config.cache' +and enabled with \c `--cache-file=config.cache' or simply \c `-C') that +saves the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. -IT++ is released under the GNU General Public License (GPL) and hence the -source code of the IT++ library is available for free download. To obtain -the IT++ source code, visit the project pages on SourceForge: -- <a href="http://itpp.sourceforge.net/">http://itpp.sourceforge.net/</a> -. -and download the file named \c itpp-\<VERSION\>.tar.gz or -\c itpp-\<VERSION\>.tar.bz2, where \c \<VERSION\> is the latest release -number, e.g. 3.9.0. + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the \c `README' so they can +be considered for the next release. If you are using the cache, and at +some point \c `config.cache' contains results you don't want to keep, you +may remove or edit it. + The file \c `configure.ac' (or \c `configure.in') is used to create +\c `configure' by a program called \c `autoconf'. You need \c `configure.ac' +if you want to change it or regenerate \c `configure' using a newer version +of \c `autoconf'. -\section compilation General IT++ Configuration, Compilation and Installation Instructions +The simplest way to compile this package is: +-# \c `cd' to the directory containing the package's source code and type + \c `./configure' to configure the package for your system. + Running \c `configure' might take a while. While running, it prints + some messages telling which features it is checking for. +-# Type \c `make' to compile the package. +-# Optionally, type \c `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. +-# Type \c `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. +-# Optionally, type \c `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior \c `make install' required + root privileges, verifies that the installation completed + correctly. +-# You can remove the program binaries and object files from the + source code directory by typing \c `make clean'. To also remove the + files that \c `configure' created (so you can compile the package for + a different kind of computer), type \c `make distclean'. There is + also a \c `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. +-# Often, you can also type \c `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. +-# Some packages, particularly those that use Automake, provide \c `make + distcheck', which can by used by developers to test that all other + targets like \c `make install' and \c `make uninstall' work correctly. + This target is generally not run by end users. -Assuming that you have already downloaded the latest IT++ sources, untar -and unpack the sources, and enter the unpacked directory. Depending on the -package type you have downloaded, use the following commands: -\verbatim -% gzip -cd itpp-<VERSION>.tar.gz | tar xf - -% cd itpp-<VERSION> -\endverbatim +\section compilers Compilers and Options -\verbatim -% bzip2 -cd itpp-<VERSION>.tar.bz2 | tar xf - -% cd itpp-<VERSION> -\endverbatim + Some systems require unusual options for compilation or linking that +the \c `configure' script does not know about. Run \c `./configure --help' +for details on some of the pertinent environment variables. -Since version 3.9.0, the IT++ library uses autoconf, automake and libtool -for preparing Makefiles and configuration script, so the compilation -procedure resembles a standard, well-known GNU method, i.e. + You can give \c `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: -\verbatim -% ./configure -% make +\verbatim +./configure CC=c99 CFLAGS=-g LIBS=-lposix \endverbatim -The \c `configure' command can be invoked with additional switches and -options (run <tt>`./configure --help'</tt> to get a list of them). The -most important are: -- \c `--prefix=PREFIX' - set top installation directory to a certain \c - PREFIX value. By default it is set to \c `/usr/local', so <tt>`make - install'</tt> will install appropriate files into \c `/usr/local/include', - \c `/usr/local/lib`, etc. -- \c `--enable-debug' - build an extra library named \c `libitpp_debug.*' - using special debugging flags for compiler and linker (disabled by default) -- \c `--enable-exceptions' - enable exceptions handling of run-time errors - instead of aborting the program (disabled by default) -- \c `--disable-html-doc' - do not generate and install the HTML - documentation (enabled by default) -- \c `--disable-shared' - do not build the shared version of the library - (enabled by default for non Windows based platforms) -- \c `--disable-static' - do not build the static version of the library - (enabled by default for Windows based platforms) -. -Plese note that each \c `--enable-\<OPTION\>' switch can be replaced -with its opposite switch \c `--disable-\<OPTION\>'. + *Note \ref defining_variables for more details. -Since version 3.99.0, a modularization of the library has been introduced. -Therefore, several additional switches have been added to the configure -script, which can be used to disable building some of the library -components. Here is a list of them: -- \c `--disable-comm' - do not build the `Communications' module -- \c `--disable-fixed' - do not build the `Fixed-point' module -- \c `--disable-optim' - do not build the `Numerical optimisations' module -- \c `--disable-protocol' - do not include the `Protocols' module -- \c `--disable-signal' - do not build the `Signal processing' module -- \c `--disable-srccode' - do not build the `Source coding' module -By default, the \c `configure' script checks for a few external libraries, -which might be used by the IT++ library (cf. \ref requirements). BLAS and -LAPACK libraries require a fortran compiler for linking. Therefore, if no -fortran compiler can be found, only some FFT library is searched. -Otherwise, the detection procedure is as follows: --# First, the presence of a BLAS library among the MKL, ACML, ATLAS and - NetLib's reference BLAS is checked. If one of the above mentioned can be - used, \c HAVE_BLAS is defined. --# If the BLAS library can be found, the C interface of BLAS, namely CBLAS, - is detected. The CBLAS is provided by default by the MKL, ATLAS and - NetLib's reference CBLAS libraries. The ACML has also a C interface of - BLAS, which can be used, but it is not compatible with the standard - CBLAS. On success, \c HAVE_CBLAS is defined. --# Next, some LAPACK library is searched, but only if a BLAS library - is available. Full set of LAPACK routines can be found in the MKL, ACML - and NetLib's reference LAPACK libraries. Besides, the ATLAS contains a - subset of optimised LAPACK routines, which can be used with NetLib's LAPACK - library (this is described in the ATLAS documentation). If a LAPACK - library can be found, \c HAVE_LAPACK is defined. --# Finally, a set of separate checks for some FFT library is executed. - Currently three different libraries providing FFT/IFFT routines can be - used: MKL, ACML and FFTW. If at least one of them is found, \c HAVE_FFT - id defined. Besides, one of the following: \c HAVE_FFT_MKL8, \c - HAVE_FFT_ACML or \c HAVE_FFTW3 is defined. +\section compiling_for_multi_arch Compiling For Multiple Architectures -If some external libraries are installed in a non-standard location in your -system, e.g. MKL in <tt>`/opt/intel/mkl/8.0.1'</tt>, the \c `configure' script -will not detect them automatically. In such a case, you should use LDFLAGS -and CPPFLAGS environment variables to define additional directories to be -searched for libraries (LDFLAGS) and include files (CPPFLAGS). For instance, -to configure IT++ to link to the MKL 8.0.1 external library, which is -installed in <tt>`/opt/intel/mkl/8.0.1'</tt> directory, you should use the -following commands: + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. -\verbatim -% export LDFLAGS="-L/opt/intel/mkl/8.0.1/lib/32" -% export CPPFLAGS="-I/opt/intel/mkl/8.0.1/include" -% ./configure -\endverbatim + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. -In the case that external libraries have non-standard names, e.g. -<tt>`libcblas-3.a'</tt> for CBLAS, you might specify them to the configure -using \c `--with-\<LIBNAME\>' switches, where \c \<LIBNAME\> is one of the -following: \c `blas', \c `cblas', \c `lapack' or \c `fft'. You might use -more then one library names by quoting them with doublequotes, e.g. + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: \verbatim -% ./configure --with-blas="-latlas -lblas" +./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" \endverbatim -If there is only one library specified, you can use a simplified notation -without the preceding `-l', e.g. \c `--with-fft=fftw3' instead of \c -`--with-fftw=-lfftw3'. + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. -Although it is not recommended, you can intentionally prevent detection of -some external libraries. To do this you should use \c -`--without-\<LIBNAME\>' or \c `--with-\<LIBNAME\>=no', e.g.: -\verbatim -% ./configure --without-cblas --without-lapack -\endverbatim +\section installation_names Installation Names -It is recommended to set CXXFLAGS environment variable with some -compiler- and platform-specific optimisation flags before invoking the -\c `configure' command. For example, in the case of using the Intel Pentium -4 processor one might employ the following flags: + By default, \c `make install' installs the package's commands under +\c `/usr/local/bin', include files under \c `/usr/local/include', etc. You +can specify an installation prefix other than \c `/usr/local' by giving +\c `configure' the option \c `--prefix=PREFIX', where \c PREFIX must be an +absolute file name. -\verbatim -% CXXFLAGS="-O3 -pipe -march=pentium4" ./configure -\endverbatim + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option \c `--exec-prefix=PREFIX' to `configure', the package uses +\c PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. -In the case of Sun's UltraSPARC 64-bit platform and GCC compiler, the flags -might be set as follows: + In addition, if you use an unusual directory layout you can give +options like \c `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of \c `${prefix}', so that +specifying just \c `--prefix' will affect all of the other directory +specifications that were not explicitly provided. -\verbatim -% export CXXFLAGS="-O3 -pipe -mcpu=v9 -m64" -% ./confiugre -\endverbatim + The most portable way to affect installation locations is to pass the +correct locations to \c `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +\c `make install' command line to change installation locations without +having to reconfigure or recompile. -If CXXFLAGS is not set in the environment, it will be initialised with -the default flags, i.e. <tt>"-DASSERT_LEVEL=1 -O3 -pipe"</tt>. + The first method involves providing an override variable for each +affected directory. For example, +\c `make install prefix=/alternate/directory' will choose an alternate location +for all directory configuration variables that were expressed in terms of +\c `${prefix}'. Any directories that were specified during \c `configure', +but not in terms of \c `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. -When the configuration process is finished, a status message is displayed. -For instance, after having invoked the following configuration -command on a recent Gentoo Linux system: + The second method involves providing the \c `DESTDIR' variable. For +example, \c `make install DESTDIR=/alternate/directory' will prepend +\c `/alternate/directory' before all installation names. The approach of +\c `DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of \c `${prefix}' +at \c `configure' time. -\verbatim -% ./configure --with-blas="-lblas" -\endverbatim -one can observe something like this: +\section optional_features Optional Features -\verbatim ------------------------------------------------------------------------------- -itpp-3.99.0 library configuration: ------------------------------------------------------------------------------- + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving \c `configure' the +option \c `--program-prefix=PREFIX' or \c `--program-suffix=SUFFIX'. -Directories: - - prefix ......... : /usr/local - - exec_prefix .... : ${prefix} - - includedir ..... : ${prefix}/include - - libdir ......... : ${exec_prefix}/lib - - docdir ......... : ${prefix}/share/doc/itpp-3.99.0 + Some packages pay attention to \c `--enable-FEATURE' options to +\c `configure', where \c FEATURE indicates an optional part of the package. +They may also pay attention to \c `--with-PACKAGE' options, where \c PACKAGE +is something like \c `gnu-as' or \c `x' (for the X Window System). The +\c `README' should mention any \c `--enable-' and \c `--with-' options that +the package recognizes. -Switches: - - debug .......... : no - - exceptions ..... : no - - html-doc ....... : yes - - shared ......... : yes - - static ......... : no + For packages that use the X Window System, \c `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the \c `configure' options \c `--x-includes=DIR' and +\c `--x-libraries=DIR' to specify their locations. -Documentation tools: - - doxygen ........ : yes - - latex .......... : yes - - dvips .......... : yes - - ghostscript .... : yes + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running \c `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with \c `make V=1'; while running \c `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with \c `make V=0'. -Testing tools: - - diff ........... : yes - - sed ............ : yes -Optional modules: - - comm ........... : yes - - fixed .......... : yes - - optim .......... : yes - - protocol ....... : yes - - signal ......... : yes - - srccode ........ : yes +\section particular_systems Particular systems -External libs: - - BLAS ........... : yes - * MKL .......... : no - * ACML ......... : no - * ATLAS ........ : yes - - CBLAS .......... : yes - - LAPACK ......... : yes - - FFT ............ : yes - * MKL .......... : no - * ACML ......... : no - * FFTW ......... : yes + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: -Compiler/linker flags/libs/defs: - - CXX ............ : g++ - - F77 ............ : gfortran - - CXXFLAGS ....... : -DASSERT_LEVEL=1 -O3 -fno-exceptions -pipe - - CXXFLAGS_DEBUG . : - - CPPFLAGS ....... : - - LDFLAGS ........ : - - LIBS ........... : -lfftw3 -llapack -lcblas -lblas -lgfortran +\verbatim +./configure CC="cc -Ae -D_XOPEN_SOURCE=500" +\endverbatim ------------------------------------------------------------------------------- -Now type 'make && make install' to build and install itpp-3.99.0 library ------------------------------------------------------------------------------- +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its \c `<wchar.h>' header file. The option \c `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + +\verbatim +./configure CC="cc" \endverbatim -Now, it is time for compiling and linking the IT++ library. To do so, -please simply run the following command: +and if that doesn't work, try \verbatim -% make +./configure CC="cc -nodtk" \endverbatim -IT++ should compile without any errors or warnings. If this is not the -case, please submit a bug-report on the IT++ project page at SourceForge. -Please include information about your OS, compiler version, external -libraries and their versions, etc. + On Solaris, don't put \c `/usr/ucb' early in your \c `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in \c `/usr/bin'. So, if you need \c `/usr/ucb' +in your \c `PATH', put it _after_ \c `/usr/bin'. -It is recommended that you check if your library has been compiled and -linked properly and works as expected. To do so, you should execute the -testing process: + On Haiku, software installed for all users goes in \c `/boot/common', +not \c `/usr/local'. It is recommended to use the following options: \verbatim -% make check +./configure --prefix=/boot/common \endverbatim -As a result, you should obtain a similar report: -\verbatim ------------------------------------------------------------------------------- -Test `array_test' PASSED. ------------------------------------------------------------------------------- -Test `bessel_test' PASSED. ------------------------------------------------------------------------------- +\section specifying_system_type Specifying the System Type -[...] + There may be some features \c `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +\c `--build=TYPE' option. \c TYPE can either be a short name for the +system type, such as \c `sun4', or a canonical name which has the form +\c CPU-COMPANY-SYSTEM ------------------------------------------------------------------------------- -Test `window_test' PASSED. ------------------------------------------------------------------------------- -Test `histogram_test' PASSED. ------------------------------------------------------------------------------- -Test `stat_test' PASSED. ------------------------------------------------------------------------------- -\endverbatim +where \c SYSTEM can have one of these forms: +- \c OS +- \c KERNEL-OS -Check if all the executed tests PASSED. If not, please contact us by filling -a bug-report. + See the file `config.sub' for the possible values of each field. If +\c `config.sub' isn't included in this package, then this package doesn't +need to know the machine type. -Finally, you should install the compiled and linked library, include files -and (optionally) HTML documentation by typing: + If you are _building_ compiler tools for cross-compiling, you should +use the opt... [truncated message content] |