more - a C++ library Code
Brought to you by:
petter_urkedal
XXX old abstract: libmore is a collection of C++ classes and algorithms designed to work well with the the standard C++ library. It mainly reflects my own needs -- in particular you will find types and functions related to mathematics, quantum mechanics and nuclear physics. There are also some extensions to the STL library, a class to parse the command line options, various IO functions (including a system independent binary format), and an ENSDF (Evaluated Nuclear Data File) fetcher and parser. Requirements ============ gc (recommended) Parts of libmore depends on the Boehm-Demers-Weiser conservative garbage collector, which is available at http://www.hpl.hp.com/personal/Hans_Boehm/gc/ When installing, make sure also the headers are accessible in a standard location, though an -I flag in CPPFLAGS. Else give the option '--with-bdwgc=TOP_BUILDDIR' to configure. libffi (optional) The more::lang module uses libffi (Foreign Function Interface) if present. libffi is available from http://sources.redhat.com/libffi/ or in the GCC tree, if you have the habbit of brewing your own gcc binaries. curl (optional) The phys::ens module depends on curl for fetching data. In case it is missing on your system, see http://curl.haxx.se/ How to build ============ If you have just checked out the source from the Git repository, run ./autogen.sh first. If you are using a tarball this is not needed, and it will not work unless you have sufficiently recent Autotools on your system. In most cases, start with one of these ./configure # to install in /usr/local ./configure --prefix=$HOME/local # to install in $HOME/local For more options, see ./configure --help Also, you may first create and cd to a separate build directory and invoke path/to/configure from there. Check that the grabage collector was detected if needed. Then type make make install make doc How to use ========== An API reference is created by Doxygen from the sources. Type make doc which will (after some time) result in the documentation accessible from $builddir/doc/html/index.html $builddir/doc/man/man3/* If $MANPATH is set up, "man more_lang" should display the API reference of the "more::lang" module, etc. The documentation is not installed at the moment and will not be cleand by "make clean". Using libmore with autoconf --------------------------- Autoconf macro is installed in $prefix/share/aclocal/more.m4 Put this in your configure.in: AM_LIB_MORE(0.7) CPPFLAGS="$MORE_CPPFLAGS $CPPFLAGS" LIBS="$MORE_LIBS $LIBS" or, better, drop the last line and put $(MORE_LIBS) in the appropriate *_LDADD and *_LIBADD variables in Makefile.am. Using libmore without autoconf ------------------------------ A config script is installed as $prefix/bin/more-config invoke it with the --help option for usage. Otherwise, the library is installed in standard locations: Headers in $prefix/include/more/$pkg -- Headers for the NS "more::$pkg" $prefix/include/more/bits -- Internal use only $prefix/include/more/backward -- Obsolete headers Libraries in $prefix/lib/libmore.la -- The main library $prefix/lib/libmorethread.la -- Parts depending on POSIX threads $prefix/lib/libmorebackward.la -- Obsolete headers Documentation would have been installed in $prefix/share/doc/more/en/html -- Not used yet $prefix/share/man/man3 -- Not used yet Parts of the library uses UTF-8 ------------------------------- Both the some of the source code and output is UTF-8 encoded when needed. In particular, the ENSDF module. Hints: xterm: Something like (replacing the font as proper): LANG=en_US.utf8 \ xterm -u8 -fn -misc-fixed-medium-r-normal-*-15-*-*-*-c-*-iso10646-1 konsole (KDE): LANG=en_US.utf8 konsole emacs: Get 21.x (beta) or the emacs-oc-unicode package. vim: UTF-8 is supported by versions from 6.0