Codebase list mash / fresh-snapshots/main INSTALL.txt
fresh-snapshots/main

Tree @fresh-snapshots/main (Download .tar.gz)

INSTALL.txt @fresh-snapshots/mainraw · history · blame

Mash is normally distributed as a dependency-free binary for Linux or OSX (see
https://github.com/marbl/Mash/releases). This source distribution is intended
for other operating systems or for development. Mash requires c++11 to build,
which is available in and GCC >= 4.8 and OSX >= 10.7.

See http://mash.readthedocs.org for more information.

Dependencies:
-------------
   - Autoconf ( http://www.gnu.org/software/autoconf/ )
   - Cap'n Proto ( https://capnproto.org/ )
   - either...
       GNU Scientific Library ( http://www.gnu.org/software/gsl/ )
     or..
       Boost Library ( http://www.boost.org ) (see "-with-boost" below)
   - Zlib ( included with OS X and most Linuxes, http://www.zlib.net ) *


Steps:
------
   ./bootstrap.sh
   ./configure [--prefix=...] [--with-capnp=...] [--with-gsl=...] \
               [--with-boost=...]
   make
   [sudo] make install
   [make test]


Products:
---------
   - command line tool ( <prefix>/bin/mash )
   - static library ( <prefix>/lib/libmash.a )
   - includes ( <prefix>/include/mash/ )


Deployment:
-----------
OSX
  Mash can be built on any OSX version starting with 10.7 (XCode command line
  tools >= 4.6), and the binary should work across the same range of versions,
  regardless of the particular version it was built with.
Linux
  Mash must be built with at least GCC 4.8 due to its c++11 dependency. However,
  the resulting binary can run on Linux with older GCC libraries if libstdc++ is
  linked statically. To do this, ensure that you have a statically built library
  (libstdc++.a) and add "-static-libstdc++" to $CPPFLAGS before running "make".
  You may also need to use "-L <dir>"in $CPPFLAGS to tell GCC where to find
  libstdc++.a. GSL can be statically linked to avoid a runtime dependency (see
  configure options below).


Configure options:
------------------
--prefix=</path/to/install>
  Installs binaries to bin/ and libraries to lib/ within this path. The default
  is /usr/local/, which will typically require sudo for make install. Must be
  absolute path.
--with-capnp=</path/to/capnp/>
  Where to find the Cap'n Proto install if not in the default location
  (/usr/local). Must be absolute path and should not include bin/ or lib/
  paths and should not include "bin" or "lib".
--with-gsl=</path/to/gsl/>
  Where to find the GNU Scientific library install if not in the default
  location (/usr/local). Must be absolute path and should not include bin/ or
  lib/.
--enable-static-gsl
  Statically link the GNU Scientific library instead of dynamically. Be mindful
  of licensure if distributing.
--with-boost=</path/to/boost/>
  Use Boost from this location, instead of GSL. Must be absolute path and should
  not include bin/ or lib/. Will be statically linked. Be mindful of licensure
  if distributing.
  
* If Zlib is not installed in a standard system location (it usually is),
  CXXFLAGS and LDFLAGS will have to be modified before making.