Make sure that you have the following programs available. Most can be found at any GNU software FTP repository.
--without-f77
as an option to the configure script, however, this will not work unless you only want the utility libraries. The compilers listed below are known to work. Other ISO C++ compilers should work as well.
--with-cxx='xlC_r -qrtti'
.
--with-cxx='cxx -D__USE_STD_IOSTREAM'
--with-cxx='KCC --one_instantiation_per_object' --with-ar=KCC --with-ar-flags=-o
Make sure that FlexLexer.h
from flex is in your include path. You may need to give the path to FlexLexer.h
to configure with an argument that looks something like: --with-include=-I/usr/local/include
You can build MPQC in the source code directory or you can make a companion directory which will be used to hold all of the files generated by the compilation. You may name this directory anything you want. Typically, this directory is named to indicate the architecture (e.g. mpqc.i686-linux
) and will be referred to as the target directory below.
In the target directory execute the configure
command which is located in the SC source directory. Use the absolute pathname to the configure script. This command should build a hierarchy of target directories and the necessary makefiles. Do a configure --help
to see a list of options. Options are specified with an equals sign, as in configure --prefix=/usr/local
. Some options, such as all the enable
and disable
options, do not require an argument. Useful options to configure include:
--prefix
/usr/local/mpqc/
version-number
--enable-debug
--enable-debug=opt
to use both debugging and optimization options.
--with-default-parallel
none
for no default or mtmpi
for MTMPIMemoryGrp (MPI must be fully thread-safe) and MPIMessageGrp specializations. The parallelism model can be overridden with command line arguments or environmental variables.
--enable-always-use-mpi
This can be given if MPIMessageGrp is to be the only MessageGrp that will be used. This option should be given if the real argc and argv must be given to MPI_Init.
--disable-parallel
--disable-threads
--enable-shared
--disable-static
--enable-stl
--enable-ref-debug
--disable-ref-macros
--enable-cross-compile
--enable-shared-libs
--with-build-id
--with-cc
--with-cxx
--with-f77
--without-f77
--with-ranlib
--with-ar
--with-ld
--with-include
--with-include="-I/u/local/inc -I/u/cljanss/include"
--with-libs
--with-libs=-llapack_IRIX.a
.
--with-libdirs
--with-libdirs=-L/usr/local/lib64
.
If you would like to further customize your target directory, you can edit src/lib/scconfig.h
and lib/LocalMakefile
to suit your needs. The next time you run configure, these files and all the makefiles will be overwritten.
Now you are ready to build the libraries and executables. Do this by typing make
in your target directory. If you are running on a symmetric multi-processor, you can use GNU make to parallelize the compilation. To compile four files at a time, type make -j4
. This feature works correctly with GNU make version 3.78.1 or later; for older versions of GNU make use make JOBS=-j4
.
You can install the executables and data files with make install
.
You can install the libraries and header files with make install_devel
, however, make install
must be also be run to install the files needed for run-time support.