https://github.com/root-project/root
Tip revision: 7da3c0a4c1683d3fc8d48a0574e4b16729e088eb authored by Unknown Author on 11 July 2005, 17:04:14 UTC
This commit was manufactured by cvs2svn to create tag 'v4-04-02e'.
This commit was manufactured by cvs2svn to create tag 'v4-04-02e'.
Tip revision: 7da3c0a
root-config.in
#!/bin/sh
# -*- sh-indentation: 3 -*-
# This script returns the machine dependent compile options needed
# to compile and link applications using the ROOT libraries.
#
# Author: Fons Rademakers, 06/06/99
arch=@architecture@
platform=@platform@
bindir=@bindir@
libdir=@libdir@
incdir=@incdir@
features="@features@"
if test "$platform" = "win32"; then
bindir=`cygpath -u $bindir`
libdir=`cygpath -u $libdir`
incdir=`cygpath -u $incdir`
fi
### ROOT libraries ###
newlib="-lNew"
rootlibs="-lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint \
-lPostscript -lMatrix -lPhysics"
rootglibs="-lGui"
rootulibs="-Wl,-u,_G__cpp_setupG__Hist \
-Wl,-u,_G__cpp_setupG__Graf1 \
-Wl,-u,_G__cpp_setupG__G3D \
-Wl,-u,_G__cpp_setupG__GPad \
-Wl,-u,_G__cpp_setupG__Tree \
-Wl,-u,_G__cpp_setupG__Rint \
-Wl,-u,_G__cpp_setupG__PostScript \
-Wl,-u,_G__cpp_setupG__Matrix \
-Wl,-u,_G__cpp_setupG__Physics"
rootuglibs="-Wl,-u,_G__cpp_setupG__Gui1"
if test "$platform" = "win32"; then
rootulibs="-include:_G__cpp_setupG__Hist \
-include:_G__cpp_setupG__Graf1 \
-include:_G__cpp_setupG__G3D \
-include:_G__cpp_setupG__GPad \
-include:_G__cpp_setupG__Tree \
-include:_G__cpp_setupG__Rint \
-include:_G__cpp_setupG__PostScript \
-include:_G__cpp_setupG__Matrix \
-include:_G__cpp_setupG__Physics"
rootuglibs="-include:_G__cpp_setupG__Gui1"
fi
### machine dependent settings ###
case $arch in
hpux)
#HP-UX with CC
auxcflags="+a1 +Z"
auxlibs="-lm -ldld"
;;
hpuxacc | hpuxia64acc)
# HP-UX 10.x with aCC
auxcflags=
auxlibs="-lm -ldld"
;;
hpuxegcs)
# HP-UX 10.x with g++
auxcflags=
auxlibs="-lm -ldld"
;;
hurddeb)
# Debian GNU/Hurd
auxcflags=
auxlibs="-lnsl -lm -ldl -rdynamic"
;;
aix | aix5)
# IBM AIX
auxcflags="-qnoro -qnoroconst -qmaxmem=-1"
auxlibs=
;;
aixegcs)
# IBM AIX with g++
auxcflags="-fsigned-char"
auxlibs=
;;
solaris)
# Solaris
auxcflags=
auxlibs="-L/usr/ccs/lib -lm -lsocket -lgen -ldl -lsunmath"
;;
solarisegcs)
# Solaris egcs
auxcflags=
auxlibs="-L/usr/ccs/lib -lm -lsocket -lgen -ldl"
;;
solarisgcc)
# Solaris g++ 2.8.x
auxcflags=
auxlibs="-L/usr/ccs/lib -lm -lsocket -lgen -ldl"
;;
solarisCC5)
# Solaris CC 5.0
auxcflags=
auxlibs="-lm -ldl -lnsl -lsocket"
;;
solariskcc)
# Solaris KCC
auxcflags=
auxlibs="-L/usr/ccs/lib -lgen -lm -ldl -lsocket -lnsl"
;;
solarisx86)
# Solaris CC on Intel
auxcflags=
auxlibs="-L/usr/ccs/lib -lm -lsocket -lgen -ldl"
;;
sgicc)
# SGI
auxcflags="-LANG:std"
auxlibs="-lm -ldl"
;;
sgicc64)
# SGI
auxcflags="-64 -LANG:std"
auxlibs="-lm"
;;
sgiegcs)
# SGI 6.x with EGCS
auxcflags="-fsigned-char"
auxlibs="-lgen -lstdc++ -lm -ldl"
;;
sgin32egcs)
# SGI 6.x with EGCS with n32 ABI
auxcflags="-fsigned-char"
auxlibs="-lm -ldl"
;;
sgikcc)
# SGI with KCC
auxcflags="--signed_chars --display_error_number \
--diag_suppress 68 --diag_suppress 191 --diag_suppress 837"
auxlibs="-lm -ldl"
;;
alphagcc)
# Alpha/OSF with g++
auxcflags=
auxlibs="-lg++ -lm"
;;
alphaegcs)
# Alpha/OSF with egcs
auxcflags="-mcpu=ev5 -D__osf__ -D__alpha"
auxlibs="-ltermcap -lm"
;;
alphakcc)
# Alpha/OSF with kai compiler (not yet valid)
auxcflags="-mcpu=ev5 -D__osf__ -D__alpha"
auxlibs="-ltermcap -lm"
;;
alphacxx6)
# Alpha/OSF with cxx6
auxcflags="-tlocal -D__osf__ -D__alpha"
auxlibs="-lm"
;;
alphacxx)
# Alpha/OSF with cxx5
auxcflags="-oldcxx -D__osf__ -D__alpha"
auxlibs="-lm"
;;
linuxrh42 | linuxrh51)
# Linux with gcc 2.7.2.x
auxcflags=
auxlibs="-lg++ -lm -ldl -rdynamic"
;;
linux)
# Linux with egcs, gcc 2.9x, gcc 3.x
auxcflags=
auxlibs="-lm -ldl -rdynamic"
;;
linuxdeb | linuxsuse6)
# Linux with egcs on Debian and SuSE
auxcflags=
auxlibs="-lm -ldl -rdynamic"
;;
linuxdeb2)
# Linux with egcs (Debian 2)
auxcflags=
auxlibs="-lnsl -lm -ldl -rdynamic"
;;
linuxdeb2ppc)
# Debian/Linux on PPC
auxcflags=-fsigned-char
auxlibs="-lnsl -lm -ldl -rdynamic"
;;
linuxkcc)
# Linux with the KAI compiler
auxcflags="--signed_chars -D_EXTERN_INLINE=inline --diag_suppress 191"
auxlibs="-lm -ldl -rdynamic"
;;
linuxicc)
# Linux with the Intel icc compiler
auxcflags=
auxlibs="-lm -ldl"
;;
linuxppcegcs)
# PPC Linux with gcc
auxcflags="-fsigned-char -I/usr/X11/include"
auxlibs="-lm -ldl -rdynamic"
;;
linuxppc64gcc)
# PPC64 (64 bit mode) Linux with gcc 3.x
auxcflags="-m64 -fsigned-char"
auxldflags="-m64"
auxlibs="-lm -ldl -rdynamic"
;;
linuxia64gcc)
# Itanium Linux with gcc 2.x/3.x
auxcflags=
auxlibs="-lm -ldl -rdynamic"
;;
linuxia64sgi)
# Itanium Linux with SGI compiler
auxcflags=
auxlibs="-lm -ldl"
;;
linuxia64ecc)
# Itanium Linux with Intel ecc compiler
auxcflags=
auxlibs="-lm -ldl"
;;
linuxx8664gcc)
# AMD Opteron and Intel EM64T (64 bit mode) Linux with gcc 3.x
auxcflags="-m64"
auxldflags="-m64"
auxlibs="-lm -ldl -rdynamic"
;;
linuxx8664icc)
# AMD Opteron and Intel EM64T (64 bit mode) Linux with Intel icc
auxcflags=
auxlibs="-lm -ldl"
;;
linuxalphaegcs)
# Alpha Linux with egcs
auxcflags=
auxlibs="-lm -ldl -rdynamic"
;;
linuxarm)
# ARM Linux with egcs
auxcflags="-fsigned-char"
auxlibs="-lm -ldl -rdynamic"
;;
mklinux)
# MkLinux with libc5
auxcflags="-fsigned-char -I/usr/X11/include -I/usr/include/g++"
auxlibs="-lg++ -lm -ldl -rdynamic"
;;
freebsd)
# FreeBSD with libc5
auxcflags=
auxlibs="-lm -lg++"
;;
freebsd4)
# FreeBSD with glibc
auxcflags=
auxlibs="-lm -lstdc++"
;;
openbsd)
# OpenBSD with libc
auxcflags=
auxlibs="-lm -lstdc++"
;;
macosx)
# MacOS X with gcc (GNU cc v3.1) and possible fink (fink.sf.net)
macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
finkdir=`which fink 2>&1 | sed -ne "s/\/bin\/fink//p"`
auxcflags=`[ -d ${finkdir}/include ] && echo -I${finkdir}/include`
auxcflags="-Wno-long-double $auxcflags"
auxlibs="-lm `[ -d ${finkdir}/lib ] && echo -L${finkdir}/lib` -ldl"
# cannot find the one linked to libGraf if relocated after built
rootlibs="$rootlibs -lfreetype"
if [ $macosx_minor -le 3 ]; then
forcelibs=$rootulibs
forceglibs=$rootuglibs
fi
;;
macosx64)
# MacOS X with gcc (GNU cc v3.1) and possible fink (fink.sf.net)
macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
finkdir=`which fink 2>&1 | sed -ne "s/\/bin\/fink//p"`
auxcflags=`[ -d ${finkdir}/include ] && echo -I${finkdir}/include`
auxcflags="-m64 -Wno-long-double $auxcflags"
auxldflags="-m64"
auxlibs="-lm `[ -d ${finkdir}/lib ] && echo -L${finkdir}/lib` -ldl"
# cannot find the one linked to libGraf if relocated after built
rootlibs="$rootlibs -lfreetype"
if [ $macosx_minor -le 3 ]; then
forcelibs=$rootulibs
forceglibs=$rootuglibs
fi
;;
macosxxlc)
# MacOS X with IBM xl compiler and possible fink (fink.sf.net)
macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
finkdir=`which fink 2>&1 | sed -ne "s/\/bin\/fink//p"`
auxcflags=`[ -d ${finkdir}/include ] && echo -I${finkdir}/include`
auxlibs="-lm `[ -d ${finkdir}/lib ] && echo -L${finkdir}/lib` -ldl"
# cannot find the one linked to libGraf if relocated after built
rootlibs="$rootlibs -lfreetype"
if [ $macosx_minor -le 3 ]; then
forcelibs=$rootulibs
forceglibs=$rootuglibs
fi
;;
hiux)
# Hitachi HIUX
auxcflags=
auxlibs="-lm -ldld"
;;
win32)
# Win32
auxcflags="-MD"
auxlibs=
forcelibs=$rootulibs
forceglibs=$rootuglibs
;;
win32gcc)
# Win32 with cygwin gcc
auxcflags="-MD"
auxlibs="-lm"
forcelibs=$rootulibs
forceglibs=$rootuglibs
;;
*)
echo "root-config: \"$arch\" invalid architecture"
echo "Please report to rootdev@root.cern.ch"
exit 1
;;
esac
### compiler dependent settings ###
case $arch in
*kcc)
ex=""
for f in $features ; do
if test "x$f" = "xthread" ; then
auxcflags="--thread_safe $auxcflags"
auxldflags="--thread_safe $auxldflags"
fi
if test "x$f" = "xexceptions" ; then
ex="yes"
fi
done
if test "x$ex" = "x" ; then
auxcflags="--no_exceptions $auxcflags"
auxldflags="--no_exceptions $auxldflags"
else
auxcflags="--exceptions $auxcflags"
auxldflags="--exceptions $auxldflags"
fi
;;
freebsd*|linux*)
for f in $features ; do
if test "x$f" = "xthread" ; then
auxcflags="-pthread $auxcflags"
auxlibs="-pthread $auxlibs"
fi
done
;;
hpuxacc | hpuxia64acc)
for f in $features ; do
if test "x$f" = "xthread" ; then
auxcflags="-mt $auxcflags"
auxlibs="-mt $auxlibs"
fi
done
;;
win32)
;;
*)
for f in $features ; do
if test "x$f" = "xthread" ; then
auxcflags="-D_REENTRANT $auxcflags"
auxlibs="-lpthread $auxlibs"
fi
done
;;
esac
### end of machine and compiler dependent settings ###
prefix=@prefix@
if test "$platform" = "win32"; then
prefix=`cygpath -u ${prefix}`
fi
exec_prefix=${prefix}
exec_prefix_set=no
new_set=no
libsout=no
noauxlibs=no
noauxcflags=no
noldflags=no
usage="\
Usage: root-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--auxcflags] [--ldflags] [--new] [--nonew] [--libs] [--glibs] [--bindir] [--libdir] [--incdir] [--noauxcflags] [--noauxlibs] [--noldflags] [--has-<feature>] [--arch] [--platform] [--help]"
if test $# -eq 0; then
echo "${usage}" 1>&2
exit 1
fi
out=""
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--arch)
### Output the arcitecture (compiler/OS combination)
out="$out $arch"
;;
--platform)
### Output the platform (OS)
out="$out $platform"
;;
--has-*)
### Check for feature
f=`echo $1 | sed 's/--has-//'`
for c in $features ; do
if test "x$c" = "x$f" ; then
out="$out yes"
break
fi
c=""
done
if test "x$c" = "x" ; then
out="$out no"
fi
;;
--prefix=*)
### Set the prefix
if test "$platform" = "win32"; then
optarg=`cygpath -u $optarg`
fi
prefix=$optarg
bindir=${prefix}/bin
libdir=${prefix}/lib
incdir=${prefix}/include
### We need to expand the path to backslash seperated path
if test "$platform" = "win32"; then
bindir=`cygpath -u $bindir`
libdir=`cygpath -u $libdir`
incdir=`cygpath -u $incdir`
fi
if test $exec_prefix_set = no ; then
exec_prefix=$optarg
fi
;;
--prefix)
### Output the prefix
out="$out $prefix"
;;
--exec-prefix=*)
### Set the exec-prefix
if test "$platform" = "win32"; then
optarg=`cygpath -u $optarg`
fi
exec_prefix=$optarg
exec_prefix_set=yes
bindir=${exec_prefix}/bin
libdir=${exec_prefix}/lib
### We need to expand the path to backslash seperated path
if test "$platform" = "win32"; then
bindir=`cygpath -u $bindir`
libdir=`cygpath -u $libdir`
fi
;;
--exec-prefix)
### Output the exec-prefix
out="$out $prefix"
;;
--nonew)
### Don't use the libNew library
new_set="no"
;;
--new)
### Use the libNew library
new_set="yes"
;;
--noauxlibs)
noauxlibs="yes"
;;
--noauxcflags)
noauxcflags="yes"
;;
--noldflags)
noldflags="yes"
;;
--version)
### Output the version number. If RVersion.h can not be found, give up.
if test -r ${incdir}/RVersion.h; then
out="$out `sed -n 's,.*ROOT_RELEASE *\"\(.*\)\".*,\1,p' < ${incdir}/RVersion.h`"
else
echo "cannot read ${incdir}/RVersion.h"
exit 1
fi
;;
--cflags)
### Output the compiler flags
if test ${incdir} != /usr/include; then
### In case we're on a Win32 system, we need to expand the
### path to a backslash seperated path
if test "$platform" = "win32"; then
includes=-I\'`cygpath -w ${incdir}`\'
else
includes=-I${incdir}
fi
fi
if test "x$noauxcflags" = "xyes" ; then
out="$out $includes"
else
out="$out ${auxcflags} $includes"
fi
;;
--auxcflags)
### Output auxiliary compiler flags
out="$out $auxcflags"
;;
--ldflags)
### Output linker flags
out="$out $auxldflags"
;;
--libs)
### Output regular ROOT libraries. If the user said --glibs --libs,
### We've already output the libraries, so we skip this section
if test "x$libsout" = "xyes" ; then
shift
continue
fi
### Set the flag
libsout="yes"
### See if we need the new library
if test "x$new_set" = "xyes"; then
libs="${newlib} ${rootlibs}"
else
libs=${rootlibs}
fi
### If we're on a win32 system, we need to change the -l prefix
### into a .lib suffix, and expand the paths to a backslash
### separated path.
if test "$platform" = "win32"; then
nlibs=`echo $libs | sed "s@-l\([a-zA-Z0-9]*\)@${libdir}/lib\1.lib@g"`
libs=
for i in $nlibs; do
libs="$libs '`cygpath -w $i`'"
done
else
if test "x$noldflags" = "xno" ; then
out="$out -L${libdir}"
fi
fi
if test "x$noauxlibs" = "xyes" ; then
out="$out $forcelibs $libs"
else
out="$out $forcelibs $libs ${auxlibs}"
fi
;;
--glibs)
### Output graphics and normal libraries
### If the user said --libs --glibs, we don't need to add the
### regular ROOT libraries.
glibsonly="no"
if test "x$libsout" = "xno" ; then
### Set the flag
libsout="yes"
if test "x$new_set" = "xyes" ; then
glibs="${newlib} ${rootlibs} ${rootglibs}"
else
glibs="${rootlibs} ${rootglibs}"
fi
else
glibs="${rootglibs}"
glibsonly="yes"
fi
### If we're on a win32 system, we need to change the -l prefix
### into a .lib suffix, and expand the paths to a backslash
### separated path.
if test "$platform" = "win32"; then
nlibs=`echo $glibs | sed "s@-l\([a-zA-Z0-9]*\)@${libdir}/lib\1.lib@g"`
glibs=
for i in $nlibs; do
glibs="$glibs '`cygpath -w $i`'"
done
else
if test "x$noldflags" = "xno" ; then
out="$out -L${libdir}"
fi
fi
if test "x$glibsonly" = "xyes" ; then
out="$out $forceglibs $glibs"
else
if test "x$noauxlibs" = "xyes" ; then
out="$out $forcelibs $forceglibs $glibs"
else
out="$out $forcelibs $forceglibs $glibs ${auxlibs}"
fi
fi
;;
--auxlibs)
### output the auxiliary libraries
out="$out $auxlibs"
;;
--bindir)
### output the executable directory
out="$out $bindir"
;;
--libdir)
### output the library directory
out="$out $libdir"
;;
--incdir)
### output the header directory
out="$out $incdir"
;;
--help)
### Print a help message
echo "Usage: `basename $0` [options]"
echo ""
echo " --arch Print the architecture (compiler/OS)"
echo " --platform Print the platform (OS)"
echo " --prefix[=dir] Print or set prefix"
echo " --exec-prefix[=dir] Print or set execution prefix"
echo " --libs Print regular ROOT libraries"
echo " --glibs Print regular + GUI ROOT libraries"
echo " --cflags Print compiler flags and header path"
echo " --ldflags Print linker flags"
echo " --bindir Print the executable directory"
echo " --libdir Print the library directory"
echo " --incdir Print the header directory"
echo " --auxlibs Print auxiliary libraries"
echo " --auxcflags Print auxiliary compiler flags"
echo " --[no]new Turn on[off] use of libNew.so"
echo " --noauxlibs Do not print auxiliary/system libraries"
echo " --noauxcflags Do not print auxiliary compiler flags"
echo " --noldflags Do not print linker flags"
echo " --has-<feature> Test if <feature> is compiled in"
echo " --version Print the ROOT version"
exit 0
;;
*)
### Give an error
echo "${usage}" 1>&2
exit 1
;;
esac
shift
done
### Output the stuff
echo $out