> <\body> > with > This section concerns the compilation, installation, or local use of several packages together, from sources. For a minimal build of the interpreter, you will need to ensure that |../external/libtool.en.tm> has been installed on your system with support for building dynamic libraries. In addition, you probably want to install |../external/readline.en.tm>, which is convenient if you want to use the interpreter from ashell. The other packages of each come with their specific dependencies; see the . The two most important dependencies are |../external/gmp.en.tm> and |../external/mpfr.en.tm>, which are required by almost all other packages. Developers also need to install , , , and |../external/index.en.tm>. The sources of can be downloaded from the server located at via the following command: <\shell-code> svn checkout https://subversion.renater.fr/anonscm/svn/mmx/ This will create a directory containing all the source files. <\remark*> If you have an account on , then you may ask to join the Mathemagix project and contribute your own code. If you created such a developer account \P>\Q, then you should use the following command instead for checking out: <\shell-code> svn checkout --username https://subversion.renater.fr/authscm//svn/mmx/ packages comply with the standard GNU installation procedure. For a complete description please refer to the documentation of individual packages. In this section we describe how several packages can be configured, compiled and installed with the top level tools available in the directory. In a text terminal or console, and within the directory, you can type the following command:\ <\shell-code> ./configure The default list of the packages to be handled is thus printed. The latter list can be customized thanks to the options. Dependencies are treated automatically. For instance <\shell-code> ./configure --enable-algebramix --enable-mmxlight will build the package and the interpreter , as well as all dependencies (in this case and ). Notice that extra packages can be enabled , simply by redoing a ; this will recompile the packages which are already available. To build on certain architectures you may need to specify additional include and library paths. For example, if external dependencies have been installed via on a platform then you have to type: <\shell-code> ./configure CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib Default installation path is , but you can customize it with the option as follows: <\shell-code> ./configure --prefix=... In order to build the documentation, you have to add the option to the script, but it requires that |http://www.texmacs.org> and |http://www.doxygen.org> are installed on your platform. Finally the list of all configuration options is obtained using: <\shell-code> ./configure --help Once the configuration stage is finished you can start the compilation by typing: <\shell-code> make The following command performs the installation of : <\shell-code> make install If you do not want to install , then you can use it, either to try or to contribute, via the . For this purpose you need to setup the paths needed for the applications to be built and used locally, by typing the following command in the directory: <\shell-code> source set-devel-paths This will allow you for instance to run the tests, the benchmarks, and the interpreter without installation, by typing for instance: <\shell-code> mmx-light Since consists of several packages, this development mode is convenient for developers. Indeed, otherwise reinstalling a package after a modification may cause dependant packages to be recompiled over and over again. In case you have passed the option you can build the whole html documentation by typing . If the one wants to run in the specific only then one can type: <\shell-code> make package-all The other targets (which behave similarly) are: <\description-dash> >run the test suite of the package(s). > clean the package(s). >clean the configuration file of the package(s). > build the distribution archive for each selected package. >clean the built files and the (s). >build the html documentation of the package(s). >install \ the package(s) in the directory specified by the option of \ . > unsintall the package(s). The following variables should not be modified, unless you really know what you are doing. <\itemize-dot> : prefix used for the installation. If not set then is used by default. : path to user's ressources. If not set then is used by default. : path to configuration directory. It is set to by default. : path for loading files. If not set then is used by default. Beside global variables a global boot file is located at . It is automatically loaded by . At the end, the latter boot file further loads a user boot file located at . Use the shell option to disable these loadings. <\itemize-dot> Within the , the development mode does not perfectly behave. In fact, if a version of is on your system (in as a default place) then you must prevent from of accidental linking conflicts by using the following 'trick': <\shell-code> ./configure --prefix=/tmp/dummy assuming that is an empty directory. The latter option ensures that no local installation is to be found in the directory, hence preventing from linking of a library in development with another one already installed. support via is still incomplete. You will need to configure using the option . This will result in one huge executable to which all individual libraries have been linked statically. Not all packages have been tested yet too. Under some Linux distributions you may face a problem with SELinux whenever it is in standard strict mode. Indeed SELinux will prevent you from loading 's dynamic librairies when in the development mode. As a solution you can go to your menu and . We strongly recommend you to refer to the SELinux documentation to really know what this change involves for the global security of your system. . If you don't have this file, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.> >