= Installation = The recent bundle of the MUSCLE can be downloaded from the [[http://apps.man.poznan.pl/trac/muscle/downloads|Downloads section]]. The bundled package contains the source code of MUSCLE, documentation and precompiled Java archives (jar). == Dependencies == The core functionality of the MUSCLE is written in Java. To be able to integrate native code with the MUSCLE, there is also a native part which is written in C++. Bootstrapping and platform independent configuration is done with a highly flexible setup mechanism written in Ruby. In order to use the MUSCLE, you need a recent Java runtime. You can obtain it at either http://www.java.com/en/download/index.jsp (Sun-Java) or http://openjdk.java.net/ (Open-JDK). A Ruby installation can be downloaded from: [[http://www.ruby-lang.org/en/downloads/]]. The MUSCLE does currently not work with Ruby 1.9.1 or newer. For ruby 1.8.x the json library is also required - install it with e.g. sudo gem install json. In principle it should be possible to run MUSCLE with JRuby instead of the standard Ruby. == General Instructions == If the dependencies are in place, you are ready to use the MUSCLE. In general no compilation required! Extract the download, e. g. {{{ #!div style="font-size: 90%" {{{#!sh $ unzip muscle-1.0.1.zip }}} }}} Change your working directory to the the MUSCLE directory (e. g.) {{{ #!div style="font-size: 90%" {{{#!sh $ cd muscle-1.0.1 }}} }}} See if the MUSCLE is working correctly {{{ #!div style="font-size: 90%" {{{#!sh $ ./src/ruby/muscle.rb --version }}} }}} In case you plan to use the MUSCLE with native code, you will have to compile the native library part of the MUSCLE using a C++ compiler (such as g++). The build script belonging to the MUSCLE also has a target to build the native libraries. This requires a C++ compiler and CMake (http://www.cmake.org/) to be available. You can also use your favourite IDE/build system instead. == What’s in the bundle? == The MUSCLE download bundle contains the following items: * '''build''' - This directory contains the compiled Java bytecode and C++ libraries. * '''build.rb''' - The build script. It can compile the java sources, build jar archives build the native shared libraries. * '''CMakeLists.txt''' - The configuration file for cmake. Only needed if the native libraries are to be built. This file is used by the build.rb, you do not have to call cmake manually. * '''doc''' - The documentation files. * '''OTF''' - The configuration and helper scripts for OTF trace logger. * '''src''' - This directory contains the MUSCLE source code. * '''thirdparty''' - The MUSCLE will automatically load third-party libraries which are in this directory. == Installation example - Scientific Linux 5.6 == 1. Check if proper version of ruby is already installed in the system, otherwise install it: {{{ #!div style="font-size: 90%" {{{#!sh ruby --version -bash: ruby: command not found yum install ruby ... ruby --version ruby 1.8.5 (2006-08-25) [x86_64-linux] }}} }}} 2. Check if recent Java SE Runtime Environment (JRE) or Java SE Development Kit (JDK) are present in your system. As the precompiled MUSCLE package is already included at build/muscle.jar you may not need to compile the Java sources and JRE should be sufficient. Hovewer, if you want to recompile the Java part of the MUSCLE (recommended), a recent Java compiler is also required (javac). {{{ #!div style="font-size: 90%" {{{#!sh yum install jdk }}} }}} 3. Ensure if you have a c++ compiler available on your system. If you have not, install this: {{{ #!div style="font-size: 90%" {{{#!sh yum install gcc-c++ }}} }}} 4. Check if cmake is available, otherwise install cmake: '''Note:''' you may need to add an additional repositorium (epel.repo) to the /etc/yum.repos.d. The content of this file may looks as follows: {{{ #!div style="font-size: 90%" {{{#!sh [epel] name=Extra Packages for Enterprise Linux 5 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch failovermethod=priority enabled=1 gpgcheck=0 }}} }}} {{{ #!div style="font-size: 90%" {{{#!sh yum install cmake }}} }}} 5. Set required environment variables {{{ #!div style="font-size: 90%" {{{#!sh export JAVA_HOME=/usr/java/jdk1.6.0_26 export PATH=$JAVA_HOME/bin:$PATH }}} }}} 6. Download the muscle bundle from [[http://apps.man.poznan.pl/trac/muscle/downloads|Downloads section]], e.g. {{{ #!div style="font-size: 90%" {{{#!sh wget http://apps.man.poznan.pl/trac/muscle/downloads/muscle-1.0.1.zip }}} }}} 7. Extract the package: {{{ #!div style="font-size: 90%" {{{#!sh unzip muscle-1.0.1.zip }}} }}} 8. Recompile entire MUSCLE: {{{ #!div style="font-size: 90%" {{{#!sh cd muscle-1.0.1 ./build.rb all }}} }}} 9. See if the MUSCLE is working: {{{ #!div style="font-size: 90%" {{{#!sh cd muscle-1.0.1 ./src/ruby/muscle.rb --version }}} }}}