Skip to content
Snippets Groups Projects
Commit 909169d7 authored by Harsha Rani's avatar Harsha Rani
Browse files

Merge branch 'master' of https://github.com/BhallaLab/moose

parents 10e3fee1 c5e7e5a3
No related branches found
No related tags found
No related merge requests found
......@@ -76,4 +76,4 @@ MOOSE can also read .swc files from NeuroMorpho.org.
# Documentation
Complete MOOSE Documentation can be found at - http://moose.ncbs.res.in/content/view/5/6/
Complete MOOSE Documentation can be found at - https://moose.ncbs.res.in/?q=documentation
......@@ -78,21 +78,9 @@ Next, you need to install required dependencies.
- cmake (version 2.8 or higher)
- gsl-1.16 or higher `download <ftp://ftp.gnu.org/gnu/gsl/>`_.
- libhdf5 development package.
- libsbml (5.9.0, optional). `download <https://sourceforge.net/projects/sbml/files/libsbml/5.9.0/stable/>`_
- python development package
- numpy
.. note::
`libsml` needs to be compiled with ``zlib`` and ``lxml`` (requires ``libxml2-dev`` or ``libxml2-devel```
package) support without which, you might face link time errors. Following instructions are known to
work::
$ wget http://sourceforge.net/projects/sbml/files/libsbml/5.9.0/stable/libSBML-5.9.0-core-src.tar.gz
$ tar -xzvf libSBML-5.9.0-core-src.tar.gz
$ cd libsbml-5.9.0
$ ./configure --with-zlib --with-libxml
$ make
$ sudo make install
Most of the dependencies can be installed using package manager.
On ``Debian/Ubuntu``
......@@ -175,7 +163,7 @@ Now you can fire up the GUI
.. note::
If you have installed ``moose`` using the package, then GUI is launched by
running following commnad::
$ moosegui
$ moose
Building moogli
---------------
......
......@@ -159,6 +159,8 @@ set_target_properties(libmoose PROPERTIES PREFIX "")
## Variable to collect all static libraries.
set(STATIC_LIBRARIES "" )
# Collect all shared libraries here.
set(SYSTEM_SHARED_LIBS ${LibXML2_LIBRARIES})
if(WITH_GSL)
find_package(GSL 1.16)
......@@ -218,12 +220,16 @@ endif(NOT HDF5_FOUND)
if(HDF5_FOUND)
add_definitions( -DUSE_HDF5 )
include_directories( ${HDF5_INCLUDE_DIRS} )
foreach(HDF5_LIB ${HDF5_LIBRARIES})
get_filename_component( HDF5_LIB_EXT ${HDF5_LIB} EXT )
if( ${HDF5_LIB_EXT} STREQUAL ".a" )
list(APPEND STATIC_LIBRARIES ${HDF5_LIB} )
else( )
list(APPEND SYSTEM_SHARED_LIBS ${HDF5_LIB} )
foreach(HDF5_LIB ${HDF5_LIBRARIES} )
if(HDF5_LIB)
get_filename_component( HDF5_LIB_EXT ${HDF5_LIB} EXT )
if(HDF5_LIB_EXT)
if(${HDF5_LIB_EXT} STREQUAL ".a")
list(APPEND STATIC_LIBRARIES ${HDF5_LIB} )
else( )
list(APPEND SYSTEM_SHARED_LIBS ${HDF5_LIB} )
endif( )
endif()
endif( )
endforeach( )
endif( HDF5_FOUND )
......@@ -258,27 +264,26 @@ if(WITH_MPI)
endif()
endif(WITH_MPI)
# These are always shared libraries.
set(SYSTEM_SHARED_LIBS ${LibXML2_LIBRARIES})
if(WITH_BOOST)
list(APPEND SYSTEM_SHARED_LIBS ${LAPACK_LIBRARIES})
list(APPEND SYSTEM_SHARED_LIBS ${Boost_LIBRARIES})
endif(WITH_BOOST)
# These libraries could be static of dynamic.
# When building packages on OBS or launchpad, we build static library of a
# dependencies if a correct version is not found.
# Here we make sure that the correct static version is linked; if a correct
# shared version is found then link the shared version in SYSTEM_SHARED_LIBS.
# These libraries could be static of dynamic. We need to discrimate between
# these two types because of --whole-archive option. See
# BhallaLab/moose-core#66,
if(WITH_GSL)
message(STATUS "Using STATIC gsl libraries: ${GSL_LIBRARIES}")
foreach(GSL_LIB ${GSL_LIBRARIES} )
get_filename_component( GSL_LIB_EXT ${GSL_LIB} EXT )
if( GSL_LIB_EXT STREQUAL ".a" )
list(APPEND STATIC_LIBRARIES ${GSL_LIB})
else()
list(APPEND SYSTEM_SHARED_LIBS ${GSL_LIB})
if(GSL_LIB)
get_filename_component( GSL_LIB_EXT ${GSL_LIB} EXT )
if(GSL_LIB_EXT)
if(GSL_LIB_EXT STREQUAL ".a" )
list(APPEND STATIC_LIBRARIES ${GSL_LIB})
else()
list(APPEND SYSTEM_SHARED_LIBS ${GSL_LIB})
endif( )
endif( )
endif( )
endforeach( )
endif()
......@@ -343,6 +348,11 @@ list(APPEND MOOSE_LIBRARIES
basecode
)
# Make sure to remove duplicates.
list(REMOVE_DUPLICATES STATIC_LIBRARIES)
if(SYSTEM_SHARED_LIBS)
list(REMOVE_DUPLICATES SYSTEM_SHARED_LIBS)
endif( )
# MAC linker does not understand many of gnu-ld options.
message( STATUS "Shared libs: ${SYSTEM_SHARED_LIBS}")
......
3.1.1-40-g8fe5068
\ No newline at end of file
3.1.1
\ No newline at end of file
##
## Try to find gnu scientific library GSL
## (see http://www.gnu.org/software/gsl/)
## Once run this will define:
##
## GSL_FOUND = system has GSL lib
##
## GSL_LIBRARIES = full path to the libraries
## on Unix/Linux with additional linker flags from "gsl-config --libs"
##
## CMAKE_GSL_CXX_FLAGS = Unix compiler flags for GSL, essentially "`gsl-config --cxxflags`"
##
## GSL_INCLUDE_DIRS = where to find headers
##
## GSL_LINK_DIRECTORIES = link directories, useful for rpath on Unix
## GSL_EXE_LINKER_FLAGS = rpath on Unix
##
## Felix Woelk 07/2004
## minor corrections Jan Woetzel
##
## www.mip.informatik.uni-kiel.de
## --------------------------------
##
message( STATUS "GSL_ROOT_DIR value $ENV{GSL_ROOT_DIR}")
# Try to find gnu scientific library GSL
# (see http://www.gnu.org/software/gsl/)
# Once run this will define:
#
# GSL_FOUND = system has GSL lib
#
# GSL_VERSION = gsl version
#
# GSL_LIBRARIES = name of the libraries.
#
# GSL_INCLUDE_DIRS = where to find headers
#
# GSL_USE_STATIC_LIBRARIES = Set it ON if you want to search for static
# libraries.
#
# Felix Woelk 07/2004
# minor corrections Jan Woetzel
#
# www.mip.informatik.uni-kiel.de
# --------------------------------
#
# Friday 18 November 2016 09:05:56 AM IST
# MODIFICATIONS: ## dilawars@ncbs.res.in, For the MOOSE project.
# This version does not use gsl-config file.
#
# Set this envrionment variable to search in this path first.
SET(GSL_ROOT_DIR $ENV{GSL_ROOT_DIR})
if(GSL_ROOT_DIR)
message( STATUS "Debug: GSL_ROOT_DIR value ${GSL_ROOT_DIR}")
endif(GSL_ROOT_DIR)
IF(WIN32)
SET(GSL_MINGW_PREFIX "c:/msys/local" )
SET(GSL_MSVC_PREFIX "$ENV{LIB_DIR}")
FIND_LIBRARY(GSL_LIB gsl PATHS
${GSL_MINGW_PREFIX}/lib
${GSL_MSVC_PREFIX}/lib
)
#MSVC version of the lib is just called 'cblas'
FIND_LIBRARY(GSLCBLAS_LIB gslcblas cblas PATHS
${GSL_MINGW_PREFIX}/lib
${GSL_MSVC_PREFIX}/lib
)
FIND_PATH(GSL_INCLUDE_DIRS gsl/gsl_blas.h
${GSL_MINGW_PREFIX}/include
${GSL_MSVC_PREFIX}/include
)
SET(GSL_MINGW_PREFIX "c:/msys/local" )
SET(GSL_MSVC_PREFIX "$ENV{LIB_DIR}")
FIND_LIBRARY(GSL_LIB gsl PATHS
${GSL_MINGW_PREFIX}/lib
${GSL_MSVC_PREFIX}/lib
)
#MSVC version of the lib is just called 'cblas'
FIND_LIBRARY(GSLCBLAS_LIB gslcblas cblas PATHS
${GSL_MINGW_PREFIX}/lib
${GSL_MSVC_PREFIX}/lib
)
FIND_PATH(GSL_INCLUDE_DIRS gsl/gsl_blas.h
${GSL_MINGW_PREFIX}/include
${GSL_MSVC_PREFIX}/include
)
IF (GSL_LIB AND GSLCBLAS_LIB)
SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB})
ENDIF (GSL_LIB AND GSLCBLAS_LIB)
IF (GSL_LIB AND GSLCBLAS_LIB)
SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB})
ENDIF (GSL_LIB AND GSLCBLAS_LIB)
ELSE(WIN32)
IF(UNIX)
SET(GSL_CONFIG_PREFER_PATH "$ENV{GSL_ROOT_DIR}/bin")
# GSL_CONFIG must be cleared. This script may be called again after installing
# the proper version of gsl
if(EXISTS "$ENV{GSL_ROOT_DIR}")
set(GSL_CONFIG "$ENV{GSL_ROOT_DIR}/bin/gsl-config")
MESSAGE(STATUS "gsl-config from environment variable: ${GSL_CONFIG}")
set(GSL_INCLUDE_DIRS)
set(GSL_LIBRARIES)
set(GSL_VERSION)
set(GSL_CONFIG_LIBS)
else()
FIND_PROGRAM(GSL_CONFIG gsl-config
${GSL_CONFIG_PREFER_PATH}
$ENV{LIB_DIR}/bin
/usr/local/bin/
/usr/bin/
)
endif()
IF (GSL_CONFIG)
# set CXXFLAGS to be fed into CXX_FLAGS by the user:
SET(GSL_CXX_FLAGS "`${GSL_CONFIG} --cflags`")
# set INCLUDE_DIRS to prefix+include
EXEC_PROGRAM(${GSL_CONFIG}
ARGS --prefix
OUTPUT_VARIABLE GSL_PREFIX)
SET(GSL_INCLUDE_DIRS ${GSL_PREFIX}/include CACHE STRING INTERNAL)
# set link libraries and link flags
EXEC_PROGRAM(${GSL_CONFIG}
ARGS --libs
OUTPUT_VARIABLE GSL_LIBRARIES)
## extract link dirs for rpath
EXEC_PROGRAM(${GSL_CONFIG}
ARGS --libs
OUTPUT_VARIABLE GSL_CONFIG_LIBS )
EXEC_PROGRAM(${GSL_CONFIG}
ARGS --version
OUTPUT_VARIABLE GSL_VERSION
)
## split off the link dirs (for rpath)
## use regular expression to match wildcard equivalent "-L*<endchar>"
## with <endchar> is a space or a semicolon
STRING(REGEX MATCHALL "[-][L]([^ ;])+"
GSL_LINK_DIRECTORIES_WITH_PREFIX
"${GSL_CONFIG_LIBS}" )
# MESSAGE("DBG GSL_LINK_DIRECTORIES_WITH_PREFIX=${GSL_LINK_DIRECTORIES_WITH_PREFIX}")
## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
IF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
STRING(REGEX REPLACE "[-][L]" "" GSL_LINK_DIRECTORIES ${GSL_LINK_DIRECTORIES_WITH_PREFIX} )
ENDIF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
SET(GSL_EXE_LINKER_FLAGS "-Wl,-rpath,${GSL_LINK_DIRECTORIES}" CACHE STRING INTERNAL)
# MESSAGE("DBG GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}")
# MESSAGE("DBG GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}")
IF(GSL_USE_STATIC_LIBRARIES)
SET(GSL_LIB_NAMES libgsl.a)
SET(GSL_CBLAS_LIB_NAMES libgslcblas.a)
ELSE(GSL_USE_STATIC_LIBRARIES)
SET(GSL_LIB_NAMES gsl)
SET(GSL_CBLAS_LIB_NAMES gslcblas)
ENDIF( )
FIND_LIBRARY(GSL_LIB
NAMES ${GSL_LIB_NAMES}
PATHS
${GSL_ROOT_DIR}/lib ${GSL_ROOT_DIR}/lib64
/opt/lib /opt/lib64
)
FIND_LIBRARY(GSLCBLAS_LIB
NAMES ${GSL_CBLAS_LIB_NAMES}
PATHS
${GSL_ROOT_DIR}/lib ${GSL_ROOT_DIR}/lib64
/opt/lib /opt/lib64
)
IF (GSL_LIB AND GSLCBLAS_LIB)
SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB})
ENDIF (GSL_LIB AND GSLCBLAS_LIB)
FIND_PATH(GSL_INCLUDE_DIRS NAMES gsl/gsl_blas.h
PATHS ${GSL_ROOT_DIR}/include /opt/include
)
# ADD_DEFINITIONS("-DHAVE_GSL")
# SET(GSL_DEFINITIONS "-DHAVE_GSL")
MARK_AS_ADVANCED(
GSL_CXX_FLAGS
GSL_INCLUDE_DIRS
GSL_LIBRARIES
GSL_LINK_DIRECTORIES
GSL_DEFINITIONS
)
ELSE(GSL_CONFIG)
IF (GSL_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find gsl-config. Please set it manually. GSL_CONFIG=${GSL_CONFIG}")
ELSE (GSL_FIND_REQUIRED)
MESSAGE(STATUS "Could not find GSL")
# TODO: Avoid cmake complaints if GSL is not found
ENDIF (GSL_FIND_REQUIRED)
ENDIF(GSL_CONFIG)
ENDIF(UNIX)
ENDIF(WIN32)
IF(GSL_LIBRARIES)
IF(GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS)
SET(GSL_FOUND 1)
MESSAGE(STATUS "Using GSL from ${GSL_PREFIX}")
ENDIF(GSL_INCLUDE_DIRS OR GSL_CXX_FLAGS)
ENDIF(GSL_LIBRARIES)
# FIND version
if(GSL_INCLUDE_DIRS)
file(READ "${GSL_INCLUDE_DIRS}/gsl/gsl_version.h" GSL_VERSION_TEXT)
string(REGEX REPLACE ".*define[ ]+GSL_MAJOR_VERSION[ ]*([0-9]+).*" "\\1"
GSL_MAJOR_VERSION "${GSL_VERSION_TEXT}")
string(REGEX REPLACE ".*define[ ]+GSL_MINOR_VERSION[ ]*([0-9]+).*" "\\1"
GSL_MINOR_VERSION "${GSL_VERSION_TEXT}")
set(GSL_VERSION "${GSL_MAJOR_VERSION}.${GSL_MINOR_VERSION}")
message(STATUS "GSL version : ${GSL_VERSION}")
endif(GSL_INCLUDE_DIRS)
IF(GSL_LIBRARIES AND GSL_VERSION)
IF(GSL_INCLUDE_DIRS)
MESSAGE(STATUS "Found GSL ${GSL_LIBRARIES}")
SET(GSL_FOUND 1)
ENDIF(GSL_INCLUDE_DIRS)
ENDIF()
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment