This is a description of how to generate and how to use the new 'pre-generated' system. How to generate --------------- In the source tree there is scrit 'src/scripts/mkdist.sh'. This script is used to make releases. Normal use is path_to/mkdist.sh --copy-lisp --copy-phts --copy_help=path_to_help where 'path_to/mkdist.sh' is full pathname of the script, 'path_to_help' is path to directory containing help files (they are _not_ generated by build process). The script should be invoked in build directory after out-of-source build. It creates 'dist' subdirectory which contains (tree of) files that should go into distribution tarball. Other options can be used to generate variants, where some but not all parts are pregenerated. Alternatively, FriCAS build system comes with a new make target "dist" which creates a full source tarball together with pre-generated machine-independent data that speed up the build process. The command "make dist" has to be executed in an out-of-source build after completion of a full successful build. Furthermore, the source tree must be a clean checkout from the repository (SVN or GIT), since all files in this tree will be copied into the distribution. It creates a file fricas-VERSION.tar.bz2 where VERSION corresponds to the second argument of AC_INIT in configure.ac. Currently, one cannot simply call "make dist", but must provide a location for the directory of (not-yet-generated) .help files. The typical invocation is thus: make helpsrcdir=/path/to/spadhelp dist The generated tarball will contain a "pre-generated" subdirectory with all the machine-independent pre-generated files. How to use ---------- FriCAS can be configured to used machine-independent files from an earlier compilation. In short, the Makefile variable PREGENERATED must either be empty (then no pre-generated data is used) or contain the absolute path of the directory of pre-generated data. There are several ways to let the FriCAS build system know about where the pre-generated data is located. In each case the build system assumes that the provided data is sane and does not explicitly check. 1) If there is a subdirectory "pre-generated" inside the FriCAS source tree, then configure will automatically set PREGENERATED to point to this directory. 2) If configure is called with --with-pre-generated=/absolute/path/to/pre-generated, then PREGENERATED is set to /absolute/path/to/pre-generated. 3) One can call make like make PREGENERATED=/absolute/path/to/pre-generated which does the obvious thing. |