<\body> > The tool allows to generate automatically the configuration files. So for the following, you need \ to have installed. The process can be decomposed into 3 steps: <\enumerate-numeric> Initialisation and generation of the configuration, using the command ; Configuration using the command ; Construction using the command .\ The generation of the configuration files for is based on a . A default specification file can be generated in the package directory , with the command <\shell-code> mmxmake -init If the current directory name is , a directory and a file are created or udpated if it exists. This file contains the information to generate the configuration files. In our case, it looks like the following: <\mmx-code> pkg: Package := package ("pkg", "0.1"); \; //List of files to be generated automaticaly\ pkg.automatic := ["CMakeLists.txt",\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "doc/tools", \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "cmake/FindPkg.cmake.in" ]; \; create_package (pkg); \; This file can be > to tune the generated files as wanted. This specification of a package can also be displayed with . It gives <\shell-code> Package \ \ \ \ : pkg 0.1\ Automatics \ : ["CMakeLists.txt","doc/tools","cmake/FindPkg.cmake.in"]\ This specification step can be run from another directory with the option : <\shell-code> mmxmake ../pkg -init In this example, the specification files are generated in the folder . To add dependencies whith other packages for the libraries or the glue, one can use the command such as: <\shell-code> mmxmake -init +l basix +l gmp +g numerix +v 0.1.2 The file then contains <\mmx-code> pkg: Package := package ("pkg", "0.1.2"); \; //List of files to be generated automaticaly\ pkg.automatic := ["CMakeLists.txt"\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ,"doc/texmacs/index.en.tm"\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ,"cmake/FindPkg.cmake.in" ]; \; //List of packages on which the lib of the package depends\ pkg.libs := ["basix", "gmp"]; \; //List of packages on which the glue lib of the package depends\ pkg.glue := ["numerix"]; \; create_package (pkg); Here the package depends on and for the construction of the library and for the construction of the glue . Now the command yields: <\shell-code> Package \ \ \ \ : pkg 0.1.2\ Automatics \ : ["CMakeLists.txt","doc/texmacs/index.en.tm", \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "cmake/FindPkg.cmake.in"]\ Libs \ \ \ \ \ \ \ : ["basix", "gmp"] Glue \ \ \ \ \ \ \ : ["numerix"]\ Default options can be passed to the file using a command of the form: <\shell-code> mmxmake -init +o glue -o test In this exemple, the part will be built by default but not the part. If the option is not used>>, the indicated options will be >: <\shell-code> mmxmake -o glue This command turns \ the default by default but keep the other options as they are. To assembled in a same package several mathemagix subpackages, the following can be used: <\shell-code> mmxmake -init +p basix +p numerix +p mmxlight \ The following line will be added in the specification file: <\mmx-code> pkg.subpackages := \ ["basix", "numerix", "mmxlight"]; \; If the packages , , are not available, they will be downloaded from its server (using an anonymous ). If you want to create a new package and add it to as a subfolder, you need first to configure this package. The corresponding subdirectories will be added in the build tree of the package .\ Subpackages can be included but not used by default as follows: <\shell-code> mmxmake -init +p basix +p numerix +p mmxlight -o numerix The configuration is initialized if the option is used and updated otherwise. The following instruction will be added in the specification file: <\mmx-code> pkg.subpackages := \ ["basix", "numerix", "mmxlight"]; \; set_option ("numerix", false); In this case, when is run, the package will not be configured. To turn on the corresponding option for , use (see below). The option can be used to remove a package from the list of subpackages: <\shell-code> mmxmake -p mmxlight The configuration files are updated accordingly (but the corresponding folder will not be removed). A list of packages is available . Notice that the package depends on two external libraries: <\itemize-dot> |http://gmplib.org/> for integer and rational numbers, |http://www.mpfr.org/> for floating point numbers. If they are not installed globally, the option can be turned to download and build them:\ <\shell-code> cmake ../pkg -DEXTERNAL=ON The new libraries can now be built: <\shell-code> make A list of packages is available . The list of libraries on which a package depends can be updated with the options . Here is an example: <\shell-code> mmxmake ../pkg -l gmp +l numerix This will remove from the list and add to it. The list of libraries for building the glue with the interpreter can be updated with the options . Here is an example: <\shell-code> mmxmake ../pkg -g numerix +g algebramix This will remove from the list and add to it . Similarly, the dependencies for \ building the plugins for interpreter can be updated with the options :\ <\shell-code> mmxmake ../pkg +a shape This will add to the list . Also the list of subpackages of the package can be updated :\ <\shell-code> mmxmake ../pkg +p shape This will add to the list of subpackages of . Once these files have been generated, they can used >, with in the usual way. The configuration can be done out-of-source, for instance in a folder : <\shell-code> mkdir build; cd build; \ The configuration process is performed with:\ <\shell-code> cmake ../pkg\ For more details on the different options, see . Once is run, the command can be used: <\shell-code> make\ For more details, see . . If you don't have this file, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.>