Added autotool-support for building musrfit - some additional tests are needed, the old Makefiles are still around
This commit is contained in:
parent
93e6e7d059
commit
b5016637fd
3
ChangeLog
Normal file
3
ChangeLog
Normal file
@ -0,0 +1,3 @@
|
||||
musrfit 0.5.0
|
||||
|
||||
- Initial release supporting building by autotools
|
18
INSTALL
Normal file
18
INSTALL
Normal file
@ -0,0 +1,18 @@
|
||||
#---------------------------------------------------------------------
|
||||
# INSTALL
|
||||
# Andreas Suter, 2008/01/15
|
||||
# $Id: README 3854 2009-04-14 19:32:35Z nemu $
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
To get it all build:
|
||||
|
||||
./autogen.sh
|
||||
./configure --prefix=/apps/cern/root
|
||||
make
|
||||
make install
|
||||
|
||||
In the optimal case, everything is setup ;-)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# this is the end ...
|
||||
#---------------------------------------------------------------------
|
5
Makefile.am
Normal file
5
Makefile.am
Normal file
@ -0,0 +1,5 @@
|
||||
## Process this file with automake to create Makefile.in
|
||||
|
||||
SUBDIRS = src
|
||||
|
||||
EXTRA_DIST = autogen.sh acinclude.m4
|
@ -1,20 +1,13 @@
|
||||
#---------------------------------------------------------------------
|
||||
# README
|
||||
# Andreas Suter, 2008/01/15
|
||||
# $Id$
|
||||
# $Id: README 3854 2009-04-14 19:32:35Z nemu $
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
To get it all build:
|
||||
|
||||
1) go to the subdiretory 'classes' and execute
|
||||
|
||||
make -f Makefile.PMusr
|
||||
make -f Makefile.PMusr install (as root)
|
||||
|
||||
2) if the privous step worked execute in the current directory (in which
|
||||
you found this README)
|
||||
|
||||
make clean
|
||||
./autogen.sh
|
||||
./configure --prefix=/apps/cern/root
|
||||
make
|
||||
make install
|
||||
|
128
acinclude.m4
Normal file
128
acinclude.m4
Normal file
@ -0,0 +1,128 @@
|
||||
dnl -*- mode: autoconf -*-
|
||||
dnl
|
||||
dnl $Id: root.m4,v 1.3 2005/03/21 21:42:21 rdm Exp $
|
||||
dnl $Author: rdm $
|
||||
dnl $Date: 2005/03/21 21:42:21 $
|
||||
dnl
|
||||
dnl Autoconf macro to check for existence or ROOT on the system
|
||||
dnl Synopsis:
|
||||
dnl
|
||||
dnl ROOT_PATH([MINIMUM-VERSION, [ACTION-IF-FOUND, [ACTION-IF-NOT-FOUND]]])
|
||||
dnl
|
||||
dnl Some examples:
|
||||
dnl
|
||||
dnl ROOT_PATH(3.03/05, , AC_MSG_ERROR(Your ROOT version is too old))
|
||||
dnl ROOT_PATH(, AC_DEFINE([HAVE_ROOT]))
|
||||
dnl
|
||||
dnl The macro defines the following substitution variables
|
||||
dnl
|
||||
dnl ROOTCONF full path to root-config
|
||||
dnl ROOTEXEC full path to root
|
||||
dnl ROOTCINT full path to rootcint
|
||||
dnl ROOTLIBDIR Where the ROOT libraries are
|
||||
dnl ROOTINCDIR Where the ROOT headers are
|
||||
dnl ROOTETCDIR Where the ROOT configuration is
|
||||
dnl ROOTCFLAGS Extra compiler flags
|
||||
dnl ROOTLIBS ROOT basic libraries
|
||||
dnl ROOTGLIBS ROOT basic + GUI libraries
|
||||
dnl ROOTAUXLIBS Auxilary libraries and linker flags for ROOT
|
||||
dnl ROOTAUXCFLAGS Auxilary compiler flags
|
||||
dnl ROOTRPATH Same as ROOTLIBDIR
|
||||
dnl
|
||||
dnl The macro will fail if root-config and rootcint isn't found.
|
||||
dnl
|
||||
dnl Christian Holm Christensen <cholm@nbi.dk>
|
||||
dnl
|
||||
AC_DEFUN([ROOT_PATH],
|
||||
[
|
||||
AC_ARG_WITH([rootsys],
|
||||
[AC_HELP_STRING([--with-rootsys],
|
||||
[top of the ROOT installation directory])],
|
||||
[user_rootsys=$withval],
|
||||
[user_rootsys="none"])
|
||||
if test ! x"$user_rootsys" = xnone; then
|
||||
rootbin="$user_rootsys/bin"
|
||||
elif test ! x"$ROOTSYS" = x ; then
|
||||
rootbin="$ROOTSYS/bin"
|
||||
else
|
||||
rootbin=$PATH
|
||||
fi
|
||||
AC_PATH_PROG(ROOTCONF, root-config , no, $rootbin)
|
||||
AC_PATH_PROG(ROOTEXEC, root , no, $rootbin)
|
||||
AC_PATH_PROG(ROOTCINT, rootcint , no, $rootbin)
|
||||
|
||||
if test ! x"$ROOTCONF" = "xno" && \
|
||||
test ! x"$ROOTCINT" = "xno" ; then
|
||||
|
||||
# define some variables
|
||||
ROOTLIBDIR=`$ROOTCONF --libdir`
|
||||
ROOTINCDIR=`$ROOTCONF --incdir`
|
||||
ROOTINCDIR=`$ROOTCONF --etcdir`
|
||||
ROOTCFLAGS=`$ROOTCONF --noauxcflags --cflags`
|
||||
ROOTLIBS=`$ROOTCONF --noauxlibs --noldflags --libs`
|
||||
ROOTGLIBS=`$ROOTCONF --noauxlibs --noldflags --glibs`
|
||||
ROOTAUXCFLAGS=`$ROOTCONF --auxcflags`
|
||||
ROOTAUXLIBS=`$ROOTCONF --auxlibs`
|
||||
ROOTRPATH=$ROOTLIBDIR
|
||||
ROOTVERSION=`$ROOTCONF --version`
|
||||
ROOTSOVERSION=`dirname $ROOTVERSION`
|
||||
|
||||
if test $1 ; then
|
||||
AC_MSG_CHECKING(wether ROOT version >= [$1])
|
||||
vers=`$ROOTCONF --version | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
|
||||
requ=`echo $1 | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
|
||||
if test $vers -lt $requ ; then
|
||||
AC_MSG_RESULT(no)
|
||||
no_root="yes"
|
||||
else
|
||||
AC_MSG_RESULT(yes)
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# otherwise, we say no_root
|
||||
no_root="yes"
|
||||
fi
|
||||
|
||||
AC_SUBST(ROOTLIBDIR)
|
||||
AC_SUBST(ROOTINCDIR)
|
||||
AC_SUBST(ROOTETCDIR)
|
||||
AC_SUBST(ROOTCFLAGS)
|
||||
AC_SUBST(ROOTLIBS)
|
||||
AC_SUBST(ROOTGLIBS)
|
||||
AC_SUBST(ROOTAUXLIBS)
|
||||
AC_SUBST(ROOTAUXCFLAGS)
|
||||
AC_SUBST(ROOTRPATH)
|
||||
AC_SUBST(ROOTVERSION)
|
||||
AC_SUBST(ROOTSOVERSION)
|
||||
|
||||
if test "x$no_root" = "x" ; then
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
])
|
||||
|
||||
#
|
||||
# Macro to check if ROOT has a specific feature:
|
||||
#
|
||||
# ROOT_FEATURE(FEATURE,[ACTION_IF_HAVE,[ACTION_IF_NOT]])
|
||||
#
|
||||
# For example
|
||||
#
|
||||
# ROOT_FEATURE([ldap],[AC_DEFINE([HAVE_ROOT_LDAP])])
|
||||
#
|
||||
AC_DEFUN([ROOT_FEATURE],
|
||||
[
|
||||
AC_REQUIRE([ROOT_PATH])
|
||||
feat=$1
|
||||
res=`$ROOTCONF --has-$feat`
|
||||
if test "x$res" = "xyes" ; then
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
])
|
||||
|
||||
#
|
||||
# EOF
|
||||
#
|
48
autogen.sh
Executable file
48
autogen.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#! /bin/sh
|
||||
|
||||
# $Id: autogen.sh,v 1.4 2002/12/02 01:39:49 murrayc Exp $
|
||||
#
|
||||
# Copyright (c) 2009 BMW
|
||||
#
|
||||
# Based on a autogen.sh script written by Daniel Elstner <daniel.elstner@gmx.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License VERSION 2 as
|
||||
# published by the Free Software Foundation. You are not allowed to
|
||||
# use any other version of the license; unless you got the explicit
|
||||
# permission from the author to do so.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
dir=`echo "$0" | sed 's,[^/]*$,,'`
|
||||
test "x${dir}" = "x" && dir='.'
|
||||
|
||||
if test "x`cd "${dir}" 2>/dev/null && pwd`" != "x`pwd`"
|
||||
then
|
||||
echo "This script must be executed directly from the source directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f config.cache acconfig.h
|
||||
|
||||
echo "--> libtoolize" && \
|
||||
libtoolize --force && \
|
||||
echo "--> aclocal" && \
|
||||
aclocal && \
|
||||
echo "--> autoconf" && \
|
||||
autoconf && \
|
||||
echo "--> autoheader" && \
|
||||
autoheader && \
|
||||
echo "--> automake" && \
|
||||
automake --add-missing --gnu && exit 0
|
||||
|
||||
exit 1
|
||||
|
119
config.h.in
Normal file
119
config.h.in
Normal file
@ -0,0 +1,119 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the `floor' function. */
|
||||
#undef HAVE_FLOOR
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#undef HAVE_MALLOC
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#undef HAVE_MEMSET
|
||||
|
||||
/* Define to 1 if you have the `pow' function. */
|
||||
#undef HAVE_POW
|
||||
|
||||
/* Define to 1 if you have the `sqrt' function. */
|
||||
#undef HAVE_SQRT
|
||||
|
||||
/* Define to 1 if `stat' has the bug that it succeeds when given the
|
||||
zero-length file name argument. */
|
||||
#undef HAVE_STAT_EMPTY_STRING_BUG
|
||||
|
||||
/* Define to 1 if stdbool.h conforms to C99. */
|
||||
#undef HAVE_STDBOOL_H
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#undef HAVE_STDDEF_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#undef HAVE_STRSTR
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
#undef HAVE__BOOL
|
||||
|
||||
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
|
||||
slash. */
|
||||
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
||||
`char[]'. */
|
||||
#undef YYTEXT_POINTER
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
#undef malloc
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
266
configure.ac
Normal file
266
configure.ac
Normal file
@ -0,0 +1,266 @@
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(musrfit, 0.5.0, andreas.suter@psi.ch)
|
||||
AC_CONFIG_AUX_DIR(admin)
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Package names and version numbers
|
||||
dnl -----------------------------------------------
|
||||
|
||||
MUSR_PROGRAM_NAME=musrfit
|
||||
MUSR_LIBRARY_NAME=PMusr
|
||||
LEM_LIBRARY_NAME=TLemRunHeader
|
||||
|
||||
#release versioning
|
||||
MUSR_MAJOR_VERSION=0
|
||||
MUSR_MINOR_VERSION=5
|
||||
MUSR_MICRO_VERSION=0
|
||||
|
||||
#release versioning
|
||||
LEM_MAJOR_VERSION=1
|
||||
LEM_MINOR_VERSION=5
|
||||
LEM_MICRO_VERSION=0
|
||||
|
||||
#API version
|
||||
MUSR_API_VERSION=MUSR_MAJOR_VERSION.MUSR_MINOR_VERSION
|
||||
AC_SUBST(MUSR_API_VERSION)
|
||||
|
||||
LEM_API_VERSION=LEM_MAJOR_VERSION.LEM_MINOR_VERSION
|
||||
AC_SUBST(LEM_API_VERSION)
|
||||
|
||||
#shared library versioning
|
||||
LEM_LIBRARY_VERSION=1:5:0
|
||||
MUSR_LIBRARY_VERSION=0:5:0
|
||||
# | | |
|
||||
# +------+ | +---+
|
||||
# | | |
|
||||
# current:revision:age
|
||||
# | | |
|
||||
# | | +- increment if interfaces have been added
|
||||
# | | set to zero if interfaces have been removed
|
||||
# or changed
|
||||
# | +- increment if source code has changed
|
||||
# | set to zero if current is incremented
|
||||
# +- increment if interfaces have been added, removed or changed
|
||||
|
||||
AC_SUBST(MUSR_LIBRARY_VERSION)
|
||||
AC_SUBST(LEM_LIBRARY_VERSION)
|
||||
|
||||
PACKAGE=$MUSR_PROGRAM_NAME
|
||||
AC_SUBST(MUSR_LIBRARY_NAME)
|
||||
AC_SUBST(LEM_LIBRARY_NAME)
|
||||
|
||||
LEM_VERSION=$LEM_MAJOR_VERSION.$LEM_MINOR_VERSION.$LEM_MICRO_VERSION
|
||||
LEM_RELEASE=$LEM_MAJOR_VERSION.$LEM_MINOR_VERSION
|
||||
AC_SUBST(LEM_RELEASE)
|
||||
AC_SUBST(LEM_VERSION)
|
||||
|
||||
MUSR_VERSION=$MUSR_MAJOR_VERSION.$MUSR_MINOR_VERSION.$MUSR_MICRO_VERSION
|
||||
MUSR_RELEASE=$MUSR_MAJOR_VERSION.$MUSR_MINOR_VERSION
|
||||
AC_SUBST(MUSR_RELEASE)
|
||||
AC_SUBST(MUSR_VERSION)
|
||||
|
||||
VERSION=$MUSR_VERSION
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Automake initialization and program checks
|
||||
dnl -----------------------------------------------
|
||||
|
||||
AM_INIT_AUTOMAKE(@PACKAGE_NAME@, @PACKAGE_VERSION@)
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
AC_LANG(C++)
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_AWK
|
||||
AC_PROG_CXX
|
||||
AC_PROG_CC
|
||||
AC_PROG_LEX
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_YACC
|
||||
AC_PROG_INSTALL
|
||||
AM_PROG_LIBTOOL
|
||||
ROOT_PATH
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Ask user for path to fftw3 stuff
|
||||
dnl -----------------------------------------------
|
||||
|
||||
FFTW3_FOUND=0
|
||||
AC_ARG_WITH(fftw3,
|
||||
[ --with-fftw3=<path> prefix of FFTW3 installation. e.g. /usr/local or /usr],
|
||||
[FFTW3_PREFIX=$with_fftw3
|
||||
if !(test -r ${FFTW3_PREFIX}/include/fftw3.h); then
|
||||
AC_MSG_ERROR(FFTW3 cannot be found at the specified path!)
|
||||
fi
|
||||
AC_MSG_RESULT([using ${FFTW3_PREFIX} as prefix of the FFTW3 installation...])],
|
||||
[PKG_CHECK_MODULES(FFTW3, fftw3 >= 3.1.0, [FFTW3_FOUND=1],
|
||||
[if test -r /usr/local/include/fftw3.h; then
|
||||
FFTW3_PREFIX="/usr/local"
|
||||
AC_MSG_RESULT([using ${FFTW3_PREFIX} as prefix of the FFTW3 installation... (ignore the no just above)])
|
||||
else if test -r /usr/include/fftw3.h; then
|
||||
FFTW3_PREFIX="/usr"
|
||||
AC_MSG_RESULT([using ${FFTW3_PREFIX} as prefix of the FFTW3 installation... (ignore the no just above)])
|
||||
else
|
||||
AC_MSG_ERROR(
|
||||
[FFTW3 not found. Please call configure with the --with-fftw3 option.
|
||||
This tells configure where to find the FFTW3 C libraries and headers.
|
||||
e.g. --with-fftw3=/usr/local or --with-fftw3=/usr]
|
||||
)
|
||||
fi
|
||||
fi
|
||||
]
|
||||
)
|
||||
]
|
||||
)
|
||||
AC_SUBST(FFTW3_PREFIX)
|
||||
if test "${FFTW3_FOUND}" != "1"; then
|
||||
FFTW3_LIBS="-L${FFTW3_PREFIX}/lib -lfftw3 -lm"
|
||||
FFTW3_CFLAGS="-I${FFTW3_PREFIX}/include"
|
||||
fi
|
||||
AC_SUBST(FFTW3_LIBS)
|
||||
AC_SUBST(FFTW3_CFLAGS)
|
||||
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Ask user for path to gsl stuff
|
||||
dnl -----------------------------------------------
|
||||
|
||||
GSL_FOUND=0
|
||||
AC_ARG_WITH(gsl,
|
||||
[ --with-gsl=<path> prefix of GSL installation. e.g. /usr/local or /usr],
|
||||
[GSL_PREFIX=$with_gsl
|
||||
if !(test -r ${GSL_PREFIX}/include/gsl/gsl_sf_hyperg.h); then
|
||||
AC_MSG_ERROR(GSL cannot be found at the specified path!)
|
||||
fi
|
||||
AC_MSG_RESULT([using ${GSL_PREFIX} as prefix of the GSL installation...])],
|
||||
[PKG_CHECK_MODULES(GSL, gsl >= 1.9 gslcblas >= 1.9, [GSL_FOUND=1],
|
||||
[if test -r /usr/local/include/gsl/gsl_sf_hyperg.h; then
|
||||
GSL_PREFIX="/usr/local"
|
||||
AC_MSG_RESULT([using ${GSL_PREFIX} as prefix of the GSL installation... (ignore the no just above)])
|
||||
else if test -r /usr/include/gsl/gsl_sf_hyperg.h; then
|
||||
GSL_PREFIX="/usr"
|
||||
AC_MSG_RESULT([using ${GSL_PREFIX} as prefix of the GSL installation... (ignore the no just above)])
|
||||
else
|
||||
AC_MSG_ERROR(
|
||||
[GSL not found. Please call configure with the --with-gsl option.
|
||||
This tells configure where to find the GSL C libraries and headers.
|
||||
e.g. --with-gsl=/usr/local or --with-gsl=/usr]
|
||||
)
|
||||
fi
|
||||
fi
|
||||
]
|
||||
)
|
||||
]
|
||||
)
|
||||
AC_SUBST(GSL_PREFIX)
|
||||
if test "${GSL_FOUND}" != "1"; then
|
||||
GSL_LIBS="-L${GSL_PREFIX}/lib -lgsl -lgslcblas -lm"
|
||||
GSL_CFLAGS="-I${GSL_PREFIX}/include/gsl"
|
||||
fi
|
||||
AC_SUBST(GSL_LIBS)
|
||||
AC_SUBST(GSL_CFLAGS)
|
||||
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Ask user for path to boost stuff
|
||||
dnl -----------------------------------------------
|
||||
|
||||
BOOST_FOUND=0
|
||||
AC_ARG_WITH(boostinc,
|
||||
[ --with-boostinc=<path> path to the header files of the Boost installation. e.g. /usr/local/include or /usr/include],
|
||||
[BOOST_INCLUDE=$with_boostinc
|
||||
if !(test -r ${BOOST_INCLUDE}/boost/spirit.hpp); then
|
||||
AC_MSG_ERROR(Boost cannot be found at the specified path!)
|
||||
fi
|
||||
AC_MSG_RESULT([using ${BOOST_INCLUDE} as include path for the Boost headers...])],
|
||||
[PKG_CHECK_MODULES(BOOST, boost >= 1.30, [BOOST_FOUND=1],
|
||||
[if test -r /usr/local/include/boost/spirit.hpp; then
|
||||
BOOST_INCLUDE="/usr/local/include"
|
||||
AC_MSG_RESULT([using ${BOOST_INCLUDE} as include path for the Boost headers... (ignore the no just above)])
|
||||
else if test -r /usr/include/boost/spirit.hpp; then
|
||||
BOOST_INCLUDE="/usr/include"
|
||||
AC_MSG_RESULT([using ${BOOST_INCLUDE} as include path for the Boost headers... (ignore the no just above)])
|
||||
else
|
||||
AC_MSG_ERROR(
|
||||
[Boost not found. Please call configure with the --with-boostinc option.
|
||||
This tells configure where to find the Boost C++ headers.
|
||||
e.g. --with-boostinc=/usr/local/include or --with-boostinc=/usr/include or --with-boostinc=/usr/include/boost-1_33_0]
|
||||
)
|
||||
fi
|
||||
fi
|
||||
]
|
||||
)
|
||||
]
|
||||
)
|
||||
AC_SUBST(BOOST_INCLUDE)
|
||||
if test "${BOOST_FOUND}" != "1"; then
|
||||
BOOST_LIBS=""
|
||||
BOOST_CFLAGS="-I${BOOST_INCLUDE}"
|
||||
fi
|
||||
AC_SUBST(BOOST_LIBS)
|
||||
AC_SUBST(BOOST_CFLAGS)
|
||||
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Check for ROOT
|
||||
dnl -----------------------------------------------
|
||||
|
||||
ROOT_PATH([5.22/00], [], AC_MSG_ERROR([Either ROOT is not installed correctly or the version is too old... please check!]))
|
||||
|
||||
ROOT_LIBS="-L@ROOTLIBDIR@ @ROOTGLIBS@ -lMinuit2 -lMathMore -lXMLParser "
|
||||
ROOT_CFLAGS="-I@ROOTINCDIR@ @ROOTCFLAGS@"
|
||||
AC_SUBST(ROOT_LIBS)
|
||||
AC_SUBST(ROOT_CFLAGS)
|
||||
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Set some paths and flags for PMusr and TLemRunHeader
|
||||
dnl -----------------------------------------------
|
||||
|
||||
SRCDIR="$(pwd)"
|
||||
|
||||
LEM_SRCDIR="${SRCDIR}/src/external/TLemRunHeader"
|
||||
LEM_LIBS="-L${LEM_SRCDIR} -l${LEM_LIBRARY_NAME}"
|
||||
LEM_CFLAGS="-I${LEM_SRCDIR}"
|
||||
AC_SUBST(LEM_LIBS)
|
||||
AC_SUBST(LEM_CFLAGS)
|
||||
|
||||
PMUSR_LIBS="-L${SRCDIR}/src/classes -l${MUSR_LIBRARY_NAME}"
|
||||
PMUSR_CFLAGS="-I${SRCDIR}/src/include"
|
||||
AC_SUBST(PMUSR_LIBS)
|
||||
AC_SUBST(PMUSR_CFLAGS)
|
||||
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Some standard checks for header files and libraries
|
||||
dnl -----------------------------------------------
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([stddef.h stdlib.h string.h sys/time.h unistd.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_HEADER_STDBOOL
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_TYPE_SIZE_T
|
||||
AC_HEADER_TIME
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_STAT
|
||||
AC_CHECK_FUNCS([floor gettimeofday memset pow sqrt strstr])
|
||||
|
||||
|
||||
dnl -----------------------------------------------
|
||||
dnl Specify the files that are going to be created by configure
|
||||
dnl -----------------------------------------------
|
||||
|
||||
AC_CONFIG_FILES([Makefile \
|
||||
src/Makefile \
|
||||
src/classes/Makefile \
|
||||
src/classes/PMusr.pc \
|
||||
src/external/Makefile \
|
||||
src/external/TLemRunHeader/Makefile \
|
||||
src/external/TLemRunHeader/TLemRunHeader.pc \
|
||||
src/external/scripts/Makefile])
|
||||
AC_OUTPUT
|
340
copying
340
copying
@ -1,340 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
20
src/Makefile.am
Normal file
20
src/Makefile.am
Normal file
@ -0,0 +1,20 @@
|
||||
## Process this file with automake to create Makefile.in
|
||||
|
||||
SUBDIRS = classes external
|
||||
|
||||
bin_PROGRAMS = musrfit musrview musrt0 musrparam msr2msr
|
||||
musrfit_SOURCES = musrfit.cpp
|
||||
musrview_SOURCES = musrview.cpp
|
||||
musrt0_SOURCES = musrt0.cpp
|
||||
musrparam_SOURCES = musrparam.cpp
|
||||
msr2msr_SOURCES = msr2msr.cpp
|
||||
|
||||
xmldir = $(bindir)
|
||||
xml_DATA = musrfit_startup.xml
|
||||
|
||||
LIBADD = $(LEM_LIBS) $(PMUSR_LIBS)
|
||||
|
||||
AM_CFLAGS = -g -O3 -Wall -Wno-trigraphs
|
||||
INCLUDES = $(PMUSR_CFLAGS) $(FFTW3_CFLAGS) $(GSL_CFLAGS) $(BOOST_CFLAGS) $(ROOT_CFLAGS)
|
||||
LIBS = $(LEM_LIBS) $(PMUSR_LIBS) $(FFTW3_LIBS) $(GSL_LIBS) $(ROOT_LIBS)
|
||||
|
@ -44,7 +44,7 @@ endif
|
||||
|
||||
# -- Linux
|
||||
ifeq ($(OS),LINUX)
|
||||
CXX = g++
|
||||
CXX = g++-4.2.4
|
||||
CXXFLAGS = -O3 -Wall -Wno-trigraphs -fPIC
|
||||
PMUSRPATH = ../include
|
||||
MNPATH = $(ROOTSYS)/include
|
||||
@ -54,7 +54,7 @@ FFTW3PATH = /usr/include
|
||||
LEMPATH = ../external/TLemRunHeader
|
||||
PSIBINPATH = ../external/MuSR_software/Class_MuSR_PSI
|
||||
INCLUDES = -I$(PMUSRPATH) -I$(MNPATH) -I$(GSLPATH) -I$(BOOSTPATH) -I$(LEMPATH) -I$(PSIBINPATH) -I$(FFTW3PATH)
|
||||
LD = g++
|
||||
LD = g++-4.2.4
|
||||
LDFLAGS = -O
|
||||
SOFLAGS = -shared
|
||||
LEMLIB = libTLemRunHeader.so
|
||||
|
@ -34,10 +34,10 @@ endif
|
||||
|
||||
# -- Linux
|
||||
ifeq ($(OS),LINUX)
|
||||
CXX = g++
|
||||
CXX = g++-4.3.3
|
||||
CXXFLAGS = -Wall -Wno-trigraphs -fPIC
|
||||
INCLUDES = -I../include
|
||||
LD = g++
|
||||
LD = g++-4.3.3
|
||||
LDFLAGS = -g
|
||||
SOFLAGS = -O -shared
|
||||
endif
|
||||
|
90
src/classes/Makefile.am
Normal file
90
src/classes/Makefile.am
Normal file
@ -0,0 +1,90 @@
|
||||
## Process this file with automake to create Makefile.in
|
||||
|
||||
h_sources = \
|
||||
../include/PFitterFcn.h \
|
||||
../include/PFitter.h \
|
||||
../include/PFourier.h \
|
||||
../include/PFunctionGrammar.h \
|
||||
../include/PFunction.h \
|
||||
../include/PFunctionHandler.h \
|
||||
../include/PMsrHandler.h \
|
||||
../include/PMusrCanvas.h \
|
||||
../include/PMusr.h \
|
||||
../include/PMusrT0.h \
|
||||
../include/PRunAsymmetry.h \
|
||||
../include/PRunBase.h \
|
||||
../include/PRunDataHandler.h \
|
||||
../include/PRunListCollection.h \
|
||||
../include/PRunNonMusr.h \
|
||||
../include/PRunRRF.h \
|
||||
../include/PRunSingleHisto.h \
|
||||
../include/PStartupHandler.h \
|
||||
../include/PTheory.h \
|
||||
../include/PUserFcnBase.h
|
||||
|
||||
h_linkdef = \
|
||||
../include/PMusrCanvasLinkDef.h \
|
||||
../include/PMusrT0LinkDef.h \
|
||||
../include/PStartupHandlerLinkDef.h \
|
||||
../include/PUserFcnBaseLinkDef.h
|
||||
|
||||
dict_h_sources = \
|
||||
PMusrCanvasDict.h \
|
||||
PMusrT0Dict.h \
|
||||
PStartupHandlerDict.h \
|
||||
PUserFcnBaseDict.h
|
||||
|
||||
cpp_sources = \
|
||||
PFitter.cpp \
|
||||
PFitterFcn.cpp \
|
||||
PFourier.cpp \
|
||||
PFunction.cpp \
|
||||
PFunctionHandler.cpp \
|
||||
PMsrHandler.cpp \
|
||||
PMusrCanvas.cpp \
|
||||
PMusrT0.cpp \
|
||||
PRunAsymmetry.cpp \
|
||||
PRunBase.cpp \
|
||||
PRunDataHandler.cpp \
|
||||
PRunListCollection.cpp \
|
||||
PRunNonMusr.cpp \
|
||||
PRunRRF.cpp \
|
||||
PRunSingleHisto.cpp \
|
||||
PStartupHandler.cpp \
|
||||
PTheory.cpp \
|
||||
PUserFcnBase.cpp
|
||||
|
||||
dict_cpp_sources = \
|
||||
PMusrCanvasDict.cpp \
|
||||
PMusrT0Dict.cpp \
|
||||
PStartupHandlerDict.cpp \
|
||||
PUserFcnBaseDict.cpp
|
||||
|
||||
ext_source_dir = $(top_srcdir)/src/external/MuSR_software/Class_MuSR_PSI
|
||||
ext_h_sources = $(ext_source_dir)/MuSR_td_PSI_bin.h $(ext_source_dir)/tydefs.h
|
||||
ext_cpp_sources = $(ext_source_dir)/MuSR_td_PSI_bin.cpp
|
||||
|
||||
include_HEADERS = $(h_sources) $(ext_h_sources)
|
||||
noinst_HEADERS = $(h_linkdef) $(dict_h_sources)
|
||||
INCLUDES = -I$(top_srcdir)/src/include -I$(ext_source_dir) $(LEM_CFLAGS) $(FFTW3_CFLAGS) $(GSL_CFLAGS) $(BOOST_CFLAGS) $(ROOT_CFLAGS)
|
||||
AM_CXXFLAGS = -g -O3 -Wall -Wno-trigraphs
|
||||
|
||||
BUILT_SOURCES = $(dict_cpp_sources) $(dict_h_sources)
|
||||
AM_CPPFLAGS = -I@ROOTINCDIR@
|
||||
AM_LDFLAGS = -L@ROOTLIBDIR@
|
||||
CLEANFILES = *Dict.cpp *Dict.h *~ core
|
||||
|
||||
%Dict.cpp %Dict.h: ../include/%.h ../include/%LinkDef.h
|
||||
@ROOTCINT@ -v -f $*Dict.cpp -c -p $(INCLUDES) $(AM_CPPFLAGS) $^
|
||||
|
||||
lib_LTLIBRARIES = libPMusr.la
|
||||
|
||||
LIBADD = $(LEM_LIBS)
|
||||
|
||||
libPMusr_la_SOURCES = $(h_sources) $(cpp_sources) $(dict_h_sources) $(dict_cpp_sources) $(ext_h_sources) $(ext_cpp_sources)
|
||||
libPMusr_la_LIBADD = $(FFTW3_LIBS) $(GSL_LIBS) $(ROOT_LIBS)
|
||||
libPMusr_la_LDFLAGS = -version-info $(MUSR_LIBRARY_VERSION) -release $(MUSR_RELEASE)
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = PMusr.pc
|
||||
|
@ -31,6 +31,7 @@
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <limits>
|
||||
using namespace std;
|
||||
|
||||
#include <math.h>
|
||||
@ -408,8 +409,11 @@ bool PFitter::ExecuteHesse()
|
||||
// create the hesse object
|
||||
ROOT::Minuit2::MnHesse hesse;
|
||||
|
||||
// specify maximal number of function calls
|
||||
unsigned int maxfcn = numeric_limits<unsigned int>::max();
|
||||
|
||||
// call hesse
|
||||
ROOT::Minuit2::MnUserParameterState mnState = hesse((*fFitterFcn), fMnUserParams);
|
||||
ROOT::Minuit2::MnUserParameterState mnState = hesse((*fFitterFcn), fMnUserParams, maxfcn);
|
||||
|
||||
if (!mnState.IsValid()) {
|
||||
cout << endl << "**WARNING** PFitter::ExecuteHesse(): Hesse encountered some problems!";
|
||||
@ -453,7 +457,7 @@ bool PFitter::ExecuteMigrad()
|
||||
|
||||
// minimize
|
||||
// maxfcn is MINUIT2 Default maxfcn
|
||||
unsigned int maxfcn = (200 + 100*fParams.size() + 5*fParams.size()*fParams.size());
|
||||
unsigned int maxfcn = numeric_limits<unsigned int>::max();
|
||||
// tolerance = MINUIT2 Default tolerance
|
||||
double tolerance = 0.1;
|
||||
ROOT::Minuit2::FunctionMinimum min = migrad(maxfcn, tolerance);
|
||||
@ -521,7 +525,7 @@ bool PFitter::ExecuteMinimize()
|
||||
|
||||
// minimize
|
||||
// maxfcn is MINUIT2 Default maxfcn
|
||||
unsigned int maxfcn = (200 + 100*fParams.size() + 5*fParams.size()*fParams.size());
|
||||
unsigned int maxfcn = numeric_limits<unsigned int>::max();
|
||||
//cout << endl << "maxfcn=" << maxfcn << endl;
|
||||
// tolerance = MINUIT2 Default tolerance
|
||||
double tolerance = 0.1;
|
||||
@ -896,7 +900,7 @@ bool PFitter::ExecuteSimplex()
|
||||
|
||||
// minimize
|
||||
// maxfcn is 10*MINUIT2 Default maxfcn
|
||||
unsigned int maxfcn = 10*(200 + 100*fParams.size() + 5*fParams.size()*fParams.size());
|
||||
unsigned int maxfcn = numeric_limits<unsigned int>::max();
|
||||
// tolerance = MINUIT2 Default tolerance
|
||||
double tolerance = 0.1;
|
||||
ROOT::Minuit2::FunctionMinimum min = simplex(maxfcn, tolerance);
|
||||
|
10
src/classes/PMusr.pc.in
Normal file
10
src/classes/PMusr.pc.in
Normal file
@ -0,0 +1,10 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: PMusr
|
||||
Description: C++ shared library providing musr classes
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -l@GENERIC_LIBRARY_NAME@
|
||||
Cflags: -I${includedir}/@GENERIC_LIBRARY_NAME@ -I${libdir}/include
|
1
src/external/Makefile.am
vendored
Normal file
1
src/external/Makefile.am
vendored
Normal file
@ -0,0 +1 @@
|
||||
SUBDIRS = TLemRunHeader scripts
|
25
src/external/TFitPofB-lib/classes/TBofZCalc.cpp
vendored
25
src/external/TFitPofB-lib/classes/TBofZCalc.cpp
vendored
@ -152,11 +152,16 @@ TLondon1D_1L::TLondon1D_1L(const vector<double> ¶m, unsigned int steps)
|
||||
fMinB = -1.0;
|
||||
|
||||
// thicknesses have to be greater or equal to zero
|
||||
for(unsigned int i(1); i<3; i++)
|
||||
assert(param[i]>=0.);
|
||||
for(unsigned int i(1); i<3; i++){
|
||||
if(param[i] < 0.){
|
||||
fParam[i] = 0.;
|
||||
}
|
||||
}
|
||||
|
||||
// lambdas have to be greater than zero
|
||||
assert(param[3]!=0.);
|
||||
if(param[3] < 0.1){
|
||||
fParam[3] = 0.1;
|
||||
}
|
||||
|
||||
// Calculate the coefficients of the exponentials
|
||||
double N0(param[0]/(1.0+exp(param[2]/param[3])));
|
||||
@ -194,7 +199,10 @@ double TLondon1D_1L::GetBmin() const
|
||||
void TLondon1D_1L::SetBmin()
|
||||
{
|
||||
double b_a(fCoeff[1]/fCoeff[0]);
|
||||
assert (b_a>0.);
|
||||
// assert(b_a>0.);
|
||||
if(b_a<10E-7){
|
||||
b_a = 10E-7;
|
||||
}
|
||||
|
||||
double minZ;
|
||||
// check if the minimum is in the first layer
|
||||
@ -205,7 +213,14 @@ void TLondon1D_1L::SetBmin()
|
||||
return;
|
||||
}
|
||||
|
||||
assert(fMinZ > 0. && fMinB > 0.);
|
||||
// assert(fMinZ > 0. && fMinB > 0.);
|
||||
if(fMinZ <= 0.){
|
||||
fMinZ = 0.;
|
||||
}
|
||||
if(fMinB <= 0.){
|
||||
fMinB = 0.;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
37
src/external/TFitPofB-lib/classes/TLondon1D.cpp
vendored
37
src/external/TFitPofB-lib/classes/TLondon1D.cpp
vendored
@ -204,6 +204,8 @@ double TLondon1DHS::operator()(double t, const vector<double> &par) const {
|
||||
if(t<0.0)
|
||||
return cos(par[0]*0.017453293);
|
||||
|
||||
bool dead_layer_changed(false);
|
||||
|
||||
// check if the function is called the first time and if yes, read in parameters
|
||||
|
||||
if(fFirstCall){
|
||||
@ -217,7 +219,8 @@ double TLondon1DHS::operator()(double t, const vector<double> &par) const {
|
||||
fParForBofZ.push_back(fPar[i]);
|
||||
// cout << "fParForBofZ[" << i-2 << "] = " << fParForBofZ[i-2] << endl;
|
||||
}
|
||||
fFirstCall=false;
|
||||
fFirstCall = false;
|
||||
dead_layer_changed = true;
|
||||
// cout << this << endl;
|
||||
}
|
||||
|
||||
@ -232,11 +235,11 @@ double TLondon1DHS::operator()(double t, const vector<double> &par) const {
|
||||
par_changed = true;
|
||||
if (i == 0) {
|
||||
only_phase_changed = true;
|
||||
} else if (i == 3) {
|
||||
fDeadLayerChanged = true;
|
||||
only_phase_changed = false;
|
||||
} else {
|
||||
only_phase_changed = false;
|
||||
if (i == 3) {
|
||||
dead_layer_changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -261,12 +264,11 @@ double TLondon1DHS::operator()(double t, const vector<double> &par) const {
|
||||
fParForPofB[3] = par[2]; // Bkg-Field
|
||||
//fParForPofB[4] = 0.005; // Bkg-width (in principle zero)
|
||||
|
||||
if(fDeadLayerChanged){
|
||||
if(dead_layer_changed){
|
||||
vector<double> interfaces;
|
||||
interfaces.push_back(par[3]);// dead layer
|
||||
fParForPofB[5] = fImpProfile->LayerFraction(par[1], 1, interfaces); // Fraction of muons in the deadlayer
|
||||
interfaces.clear();
|
||||
fDeadLayerChanged = false;
|
||||
}
|
||||
|
||||
TLondon1D_HS BofZ(fParForBofZ);
|
||||
@ -615,7 +617,9 @@ TProximity1D1LHS::TProximity1D1LHS() : fCalcNeeded(true), fFirstCall(true) {
|
||||
fParForPofB.push_back(startupHandler->GetDeltat());
|
||||
fParForPofB.push_back(startupHandler->GetDeltaB());
|
||||
fParForPofB.push_back(0.0);
|
||||
// fParForPofB.push_back(0.0);
|
||||
fParForPofB.push_back(0.0); // Bkg-Field
|
||||
fParForPofB.push_back(0.005); // Bkg-width
|
||||
fParForPofB.push_back(0.0); // Bkg-weight
|
||||
|
||||
TTrimSPData *x = new TTrimSPData(rge_path, energy_vec);
|
||||
fImpProfile = x;
|
||||
@ -652,6 +656,7 @@ double TProximity1D1LHS::operator()(double t, const vector<double> &par) const {
|
||||
// check if the function is called the first time and if yes, read in parameters
|
||||
|
||||
bool width_changed(false);
|
||||
bool dead_layer_changed(false);
|
||||
|
||||
if(fFirstCall){
|
||||
fPar = par;
|
||||
@ -666,6 +671,7 @@ double TProximity1D1LHS::operator()(double t, const vector<double> &par) const {
|
||||
}
|
||||
fFirstCall=false;
|
||||
width_changed = true;
|
||||
dead_layer_changed = true;
|
||||
// cout << this << endl;
|
||||
}
|
||||
|
||||
@ -685,6 +691,9 @@ double TProximity1D1LHS::operator()(double t, const vector<double> &par) const {
|
||||
if (i == 7){
|
||||
width_changed = true;
|
||||
}
|
||||
if (i == 4){
|
||||
dead_layer_changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -705,11 +714,19 @@ double TProximity1D1LHS::operator()(double t, const vector<double> &par) const {
|
||||
for (unsigned int i(2); i<fPar.size(); i++)
|
||||
fParForBofZ[i-2] = par[i];
|
||||
|
||||
fParForPofB[2] = par[1]; // energy
|
||||
|
||||
if(width_changed) { // Convolution of the implantation profile with Gaussian
|
||||
fImpProfile->ConvolveGss(par[7], par[1]);
|
||||
width_changed = false;
|
||||
}
|
||||
|
||||
fParForPofB[2] = par[1]; // energy
|
||||
fParForPofB[3] = par[2]; // Bkg-Field
|
||||
//fParForPofB[4] = 0.005; // Bkg-width (in principle zero)
|
||||
|
||||
if(dead_layer_changed){
|
||||
vector<double> interfaces;
|
||||
interfaces.push_back(par[4]);// dead layer
|
||||
fParForPofB[5] = fImpProfile->LayerFraction(par[1], 1, interfaces); // Fraction of muons in the deadlayer
|
||||
interfaces.clear();
|
||||
}
|
||||
|
||||
TProximity1D_1LHS BofZ(fParForBofZ);
|
||||
|
@ -186,7 +186,8 @@ TPofBCalc::TPofBCalc( const TBofZCalcInverse &BofZ, const TTrimSPData &dataTrimS
|
||||
for (unsigned int i(firstZerosEnd); i<lastZerosStart; i++)
|
||||
fPB[i] /= pBsum;
|
||||
|
||||
AddBackground(para[3], para[4], para[5]);
|
||||
if(para.size() == 6)
|
||||
AddBackground(para[3], para[4], para[5]);
|
||||
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,6 @@ private:
|
||||
TPofTCalc *fPofT;
|
||||
mutable bool fCalcNeeded;
|
||||
mutable bool fFirstCall;
|
||||
mutable bool fDeadLayerChanged;
|
||||
mutable vector<double> fParForPofT;
|
||||
mutable vector<double> fParForBofZ;
|
||||
mutable vector<double> fParForPofB;
|
||||
|
43
src/external/TLemRunHeader/Makefile.am
vendored
Normal file
43
src/external/TLemRunHeader/Makefile.am
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
## Process this file with automake to create Makefile.in
|
||||
|
||||
h_sources = \
|
||||
TLemStats.h \
|
||||
TLemRunHeader.h
|
||||
|
||||
h_linkdef = \
|
||||
TLemStatsLinkDef.h \
|
||||
TLemRunHeaderLinkDef.h
|
||||
|
||||
dict_h_sources = \
|
||||
TLemStatsDict.h \
|
||||
TLemRunHeaderDict.h
|
||||
|
||||
cpp_sources = \
|
||||
TLemStats.cxx \
|
||||
TLemRunHeader.cxx
|
||||
|
||||
dict_cpp_sources = \
|
||||
TLemStatsDict.cxx \
|
||||
TLemRunHeaderDict.cxx
|
||||
|
||||
include_HEADERS = $(h_sources)
|
||||
noinst_HEADERS = $(h_linkdef) $(dict_h_sources)
|
||||
INCLUDES = -I. $(ROOT_CFLAGS)
|
||||
|
||||
BUILT_SOURCES = $(dict_cpp_sources) $(dist_h_sources)
|
||||
AM_CPPFLAGS = -I@ROOTINCDIR@
|
||||
AM_LDFLAGS = -L@ROOTLIBDIR@
|
||||
CLEANFILES = *Dict.cxx *Dict.h *~ core
|
||||
|
||||
%Dict.cxx %Dict.h: %.h %LinkDef.h
|
||||
@ROOTCINT@ -v -f $*Dict.cxx -c -p $(INCLUDES) $(AM_CPPFLAGS) $^
|
||||
|
||||
lib_LTLIBRARIES = libTLemRunHeader.la
|
||||
|
||||
libTLemRunHeader_la_SOURCES = $(h_sources) $(cpp_sources) $(dict_h_sources) $(dict_cpp_sources)
|
||||
libTLemRunHeader_la_LIBADD = $(ROOT_LIBS)
|
||||
libTLemRunHeader_la_LDFLAGS = -version-info $(LEM_LIBRARY_VERSION) -release $(LEM_RELEASE)
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = TLemRunHeader.pc
|
||||
|
10
src/external/TLemRunHeader/TLemRunHeader.pc.in
vendored
Normal file
10
src/external/TLemRunHeader/TLemRunHeader.pc.in
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: TLemRunHeader
|
||||
Description: C++ shared library providing the LEM Run Header class
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -l@GENERIC_LIBRARY_NAME@
|
||||
Cflags: -I${includedir}
|
1
src/external/scripts/Makefile.am
vendored
Normal file
1
src/external/scripts/Makefile.am
vendored
Normal file
@ -0,0 +1 @@
|
||||
bin_SCRIPTS = msr2data
|
@ -9,8 +9,8 @@ exists( /usr/bin/cygwin1.dll ) {
|
||||
}
|
||||
|
||||
INSTALLS += target
|
||||
QMAKE_CC = gcc
|
||||
QMAKE_CXX = g++
|
||||
QMAKE_CC = gcc-4.2.4
|
||||
QMAKE_CXX = g++-4.2.4
|
||||
|
||||
# install path for the XML configuration file
|
||||
unix:xml.path = $(ROOTSYS)/bin/
|
||||
|
Loading…
x
Reference in New Issue
Block a user