Hi Lin and Matt,
We tried months ago to compile FSL in Solaris 10. It was so difficult
that we eventually gave up and solved our task with Linux. Nevertheless,
see attached a step-by-step procedure that may help you to jump some
steps. Everything seemed to build nicely (except FSLview, but that's
expected because of the libraries). The binaries built, when called from
the command line, even give the usual usage information. However FEEDS
fails.
The central issue seems to be the fact that Solaris 10 doesn't allow
static linking of system libraries anymore. If compiling dynamically,
then there is another issue with versions of libraries. Maybe it would
be possible to compile everything statically, except the system
libraries (libc, libm, maybe others). I think ar isn't even included in
Sol10.
I know this doesn't solve the issue, but it may give some clue...
Anderson
On 10/25/2010 02:28 PM, Lin Nga wrote:
> Sorry, the path does exist. Here are the outputs when ar is called:
>
> bash-2.05b$ /usr/ccs/bin/ar
> usage: ar -d[-vV] archive file ...
> ar -m[-abivV] [posname] archive file ...
> ar -p[-vV][-s] archive [file ...]
> ar -q[-cuvV] [-abi] [posname] [file ...]
> ar -r[-cuvV] [-abi] [posname] [file ...]
> ar -t[-vV][-s] archive [file ...]
> ar -x[-vV][-sCT] archive [file ...]
>
1) Grab all what you'll need:
a) The list below contain precompiled packages:
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/libiconv-1.9.2-sol10-x86-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/db-4.7.25.NC-sol10-x86-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/gcc-3.4.6-sol10-x86-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/libintl-3.4.0-sol10-x86-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/gmp-4.2.1-sol10-x86-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/coreutils-8.2-sol10-x86-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/expat-2.0.1-sol10-x86-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/gettext-0.14.1-sol10-intel-local.gz
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/make-3.81-sol10-x86-local.gz
b) Tcl/Tk source code for version 8.4.14:
http://sourceforge.net/projects/tcl/files/Tcl/8.4.14/tcl8.4.14-src.tar.gz/download
http://sourceforge.net/projects/tcl/files/Tcl/8.4.14/tk8.4.14-src.tar.gz/download
c) From FMRIB FSL's website:
http://www.fmrib.ox.ac.uk/fsldownloads/fsl-4.1.5-sources.tar.gz
http://www.fmrib.ox.ac.uk/fsldownloads/fsl-4.1.5-feeds.tar.gz
2) Uncompress and install all the Solaris precompiled packages downloaded on step 1a:
gunzip *-sol10-x86-local.gz
pkgadd -d *-sol10-x86-local
3) Uncompress the fsl sources downloaded on step 1c, and put them in /usr/local
gzcat fsl-4.1.5_sources.tar.gz | tar -xpf -
mv fsl /usr/local
4) Set environment vars
PATH=/usr/local/bin:/usr/ccs/bin:${PATH}
LD_LIBRARY_PATH=/usr/local/lib:/usr/sfw/lib
FSLDIR=/usr/local/fsl
export PATH LD_LIBRARY_PATH FSLDIR
5) Compile Tcl and Tk
./configure --prefix=${FSLDIR}
make && make test && make install
Errors on http.test and socket.test, if occur, can safely be ignored if the network is misconfigured.
6) Source the FSL local environment setup script
. ${FSLDIR}/etc/fslconf/fsl.sh
7) Create a directory to the current machine architecture
mkdir ${FSLDIR}/config/${FSLMACHTYPE}
The variable ${FSLMACHTYPE} should have been defined on step 6 by the fsl.sh, and should be i386-solaris2.10-gcc3.4
8) Create two text files inside ${FSLDIR}/config/${FSLMACHTYPE}:
========[ begin of externallibs.mk ]========
# External Library and Include Paths
FSLEXTLIB=${FSLDIR}/extras/lib
FSLEXTINC=${FSLDIR}/extras/include
FSLEXTBIN=${FSLDIR}/extras/bin
# CEPHES library
LIB_CEPHES = ${FSLEXTLIB}
INC_CEPHES = ${FSLEXTINC}/cephes
# GD library
LIB_GD = ${FSLEXTLIB}
INC_GD = ${FSLEXTINC}
# GDC library
LIB_GDC = ${FSLEXTLIB}
INC_GDC = ${FSLEXTINC}/libgdc
# GSL library
LIB_GSL = ${FSLEXTLIB}
INC_GSL = ${FSLEXTINC}/gsl
# PNG library
LIB_PNG = ${FSLEXTLIB}
INC_PNG = ${FSLEXTINC}
# PROB library
LIB_PROB = ${FSLEXTLIB}
INC_PROB = ${FSLEXTINC}/libprob
# CPROB library
LIB_CPROB = ${FSLEXTLIB}
INC_CPROB = ${FSLEXTINC}/libcprob
# NEWMAT library
LIB_NEWMAT = ${FSLEXTLIB}
INC_NEWMAT = ${FSLEXTINC}/newmat
# NEWRAN library
LIB_NEWRAN = ${FSLEXTLIB}
INC_NEWRAN = ${FSLEXTINC}/newran
# ZLIB library
LIB_ZLIB = ${FSLEXTLIB}
INC_ZLIB = ${FSLEXTINC}
# BOOST library
BOOSTDIR = ${FSLEXTINC}/boost
LIB_BOOST = ${BOOSTDIR}
INC_BOOST = ${BOOSTDIR}
# QT library
QTDIR = /usr/lib/qt3
LIB_QT = ${QTDIR}/lib
INC_QT = ${QTDIR}/include
# QWT library
QWTDIR = /usr/local/qwt
LIB_QWT = ${QWTDIR}/lib
INC_QWT = ${QWTDIR}/include
# FFTW3 library
LIB_FFTW3 = ${FSLEXTLIB}
INC_FFTW3 = ${FSLEXTINC}/fftw3
========[ end of externallibs.mk ]========
========[ begin of systemvars.mk ]========
# Use only Bourne or BASH
SHELL = /bin/sh
# Compiler dependent variables
CC = gcc
CXX = c++
ARCHFLAGS = -mtune=i386 -ffast-math -fomit-frame-pointer
DEPENDFLAGS = -MM
OPTFLAGS = -O6 -fexpensive-optimizations ${ARCHFLAGS}
GNU_ANSI_FLAGS = -Wall -ansi -pedantic
SGI_ANSI_FLAGS = -ansi -fullwarn
ANSI_FLAGS = ${GNU_ANSI_FLAGS}
INSTALL = /usr/local/bin/install
RM = /usr/local/bin/rm
CP = /usr/local/bin/cp
MV = /usr/local/bin/mv
CHMOD = /usr/local/bin/chmod
MKDIR = /usr/local/bin/mkdir
RANLIB = /usr/local/bin/echo
TCLSH = ${FSLDIR}/bin/fsltclsh
========[ end of systemvars.mk ]========
9) Compile:
cd ${FSLDIR}
./build
10) Test with the FEEDS data downloaded on Step 1c.
|