#!/usr/bin/env bash
# -*- 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

readlink=readlink
if [ `uname` = "AIX" ]; then
   readlink=echo
fi

# work around readlink versions not having -f option
fullpath1=`$readlink $0`
if [ "$?" -ne "0" ]; then
   fullpath1=$0
else
   if [ ${fullpath1##/} = $fullpath1 ] && [ ${fullpath1##~} = $fullpath1 ]; then
      # relative path, prepend directory where executable was found
      lpath=`dirname $0`
      fullpath1=$lpath/$fullpath1
   fi
fi
progdir=`dirname $fullpath1`
runningdir=`pwd`
if [ ${progdir##/} != $progdir ] || [ ${progdir##~} != $progdir ]; then
   # absolute path
   fullpath=$progdir
else
   # relative path
   if [ $progdir != "." ]; then
      fullpath=$runningdir/$progdir
   else
      fullpath=$runningdir
   fi
fi
# work around readlink versions not having -f option
fullpath1=`$readlink $fullpath`
if [ "$?" -ne "0" ]; then
   fullpath1=$fullpath
fi
ROOTSYS=`dirname $fullpath1`

arch=linuxx8664gcc
platform=linux
bindir=/usr/bin
libdir=/usr/lib/x86_64-linux-gnu
incdir=/usr/include/root
etcdir=/etc/root
features="asimage astiff bonjour cintex explicitlink fftw3 gdml genvector globus gsl_shared krb5 ldap mathmore memstat minuit2 mysql odbc opengl pgsql pythia8 python qt qtgsi reflex roofit ruby shadowpw shared soversion sqlite ssl table tmva unuran vdt x11 xft xml thread"
configargs="--prefix=/usr --mandir=/usr/share/man/man1 --docdir=/usr/share/doc/root --cintincdir=/usr/lib/x86_64-linux-gnu --etcdir=/etc/root --with-sys-iconpath=/usr/share/pixmaps --libdir=/usr/lib/x86_64-linux-gnu/root5.34 --enable-bonjour --enable-cintex --enable-editline --enable-explicitlink --enable-gdml --enable-globus --enable-gsl-shared --disable-gviz --enable-fftw3 --enable-krb5 --enable-ldap --enable-qt --enable-qtgsi --enable-mathcore --enable-mathmore --enable-memstat --enable-minuit2 --enable-mysql --enable-pgsql --enable-pythia8 --enable-odbc --enable-reflex --enable-roofit --enable-ruby --enable-shadowpw --enable-shared --enable-soversion --enable-sqlite --enable-table --disable-rpath --disable-afs --disable-srp --disable-builtin-afterimage --disable-builtin-ftgl --disable-builtin-freetype --disable-builtin-glew --disable-builtin-pcre --disable-builtin-zlib --disable-builtin-lzma --disable-alien --disable-chirp --disable-dcache --disable-gfal --disable-monalisa --disable-oracle --disable-pythia6 --disable-rfio --disable-sapdb --fail-on-missing --with-globus=/usr --with-globus-incdir=/usr/include/globus --with-globus-libdir=/usr/lib --with-odbc-incdir=/usr/include/iodbc --with-pythia8-incdir=/usr/include/pythia8 --enable-unuran --disable-xrootd"
altcc="gcc"
altcxx="g++"
altf77="gfortran"
altld="g++"
dicttype=cint

if test "$platform" = "win32"; then
   if [ "x$ROOTSYS" != "x" ]; then
      unixROOTSYS=`cygpath -u $ROOTSYS`
   else
      unixROOTSYS=.
   fi
   bindir=$unixROOTSYS/bin
   libdir=$unixROOTSYS/lib
   incdir=$unixROOTSYS/include
   etcdir=$unixROOTSYS/etc
fi

### ROOT libraries ###

if test "$platform" = "ios"; then
   newlib=
   rootglibs=
   rootevelibs=
   rootlibs="-lRoota"
else
   newlib="-lNew"
   rootglibs="-lGui"
   rootevelibs="-lEve -lEG -lTreePlayer -lGeom -lGed -lRGL"
   rootlibs="-lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad \
             -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread"
   if test "$dicttype" = "reflex" || test "$dicttype" = "gccxml"; then
       rootlibs="$rootlibs -lReflex"
   fi
fi

if test "$platform" = "win32"; then
   rootulibs="-include:_G__cpp_setupG__Net        \
              -include:_G__cpp_setupG__IO         \
              -include:_G__cpp_setupG__Hist       \
              -include:_G__cpp_setupG__Graf       \
              -include:_G__cpp_setupG__G3D        \
              -include:_G__cpp_setupG__GPad       \
              -include:_G__cpp_setupG__Tree       \
              -include:_G__cpp_setupG__Thread     \
              -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"
   rootuevelibs="-include:_G__cpp_setupG__EG         \
                 -include:_G__cpp_setupG__TreePlayer \
                 -include:_G__cpp_setupG__Geom1      \
                 -include:_G__cpp_setupG__Ged        \
                 -include:_G__cpp_setupG__GL         \
                 -include:_G__cpp_setupG__Eve1"
elif test "$platform" = "aix5"; then
   rootulibs="-Wl,-u,.G__cpp_setupG__Net        \
              -Wl,-u,.G__cpp_setupG__IO         \
              -Wl,-u,.G__cpp_setupG__Hist       \
              -Wl,-u,.G__cpp_setupG__Graf       \
              -Wl,-u,.G__cpp_setupG__G3D        \
              -Wl,-u,.G__cpp_setupG__GPad       \
              -Wl,-u,.G__cpp_setupG__Tree       \
              -Wl,-u,.G__cpp_setupG__Thread     \
              -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"
   rootuevelibs="-Wl,-u,.G__cpp_setupG__EG         \
                 -Wl,-u,.G__cpp_setupG__TreePlayer \
                 -Wl,-u,.G__cpp_setupG__Geom1      \
                 -Wl,-u,.G__cpp_setupG__Ged        \
                 -Wl,-u,.G__cpp_setupG__GL         \
                 -Wl,-u,.G__cpp_setupG__Eve1"
else
   rootulibs="-Wl,-u,_G__cpp_setupG__Net        \
              -Wl,-u,_G__cpp_setupG__IO         \
              -Wl,-u,_G__cpp_setupG__Hist       \
              -Wl,-u,_G__cpp_setupG__Graf       \
              -Wl,-u,_G__cpp_setupG__G3D        \
              -Wl,-u,_G__cpp_setupG__GPad       \
              -Wl,-u,_G__cpp_setupG__Tree       \
              -Wl,-u,_G__cpp_setupG__Thread     \
              -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"
   rootuevelibs="-Wl,-u,_G__cpp_setupG__EG         \
                 -Wl,-u,_G__cpp_setupG__TreePlayer \
                 -Wl,-u,_G__cpp_setupG__Geom1      \
                 -Wl,-u,_G__cpp_setupG__Ged        \
                 -Wl,-u,_G__cpp_setupG__GL         \
                 -Wl,-u,_G__cpp_setupG__Eve1"
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"
   ;;
hpuxgcc)
   # HP-UX 10.x with g++
   auxcflags=
   auxlibs="-lm -ldld"
   ;;
hurddeb)
   # Debian GNU/Hurd
   auxcflags=
   auxlibs="-lnsl -lm -ldl -rdynamic"
   ;;
aix5)
   # IBM AIX
   auxcflags="-qnoro -qnoroconst -qmaxmem=-1 -qrtti=all"
   auxlibs=
   #forcelibs=$rootulibs
   #forceglibs=$rootuglibs
   #forceevelibs=$rootuevelibs
   ;;
aixgcc)
   # IBM AIX with g++
   auxcflags="-fsigned-char"
   auxlibs=
   #forcelibs=$rootulibs
   #forceglibs=$rootuglibs
   #forceevelibs=$rootuevelibs
   ;;
solaris)
   # Solaris
   auxcflags=
   auxlibs="-L/usr/ccs/lib -lm -lsocket -lgen -ldl -lsunmath"
   ;;
solarisgcc)
   # Solaris g++ 2.8.x
   auxcflags=
   auxlibs="-L/usr/ccs/lib -lm -lsocket -lgen -ldl"
   ;;
solarisCC5)
   # Solaris CC 5.0
   if [ `uname -p` = "i386" ]; then
      auxcflags="-library=stlport4"
      auxldflags="-library=stlport4"
   else
      auxcflags=
      auxldflags=
   fi
   auxlibs="-lm -ldl -lnsl -lsocket"
   ;;
solaris64CC5)
   # Solaris CC 5.0 x86-64
   auxcflags="-m64 -library=stlport4"
   auxldflags="-m64 -library=stlport4"
   auxlibs="-lm -ldl -lnsl -lsocket"
   ;;
sgicc)
   # SGI
   auxcflags="-LANG:std"
   auxlibs="-lm -ldl"
   ;;
sgicc64)
   # SGI
   auxcflags="-64 -LANG:std"
   auxlibs="-lm"
   ;;
sgigcc)
   # SGI 6.x with gcc
   auxcflags="-fsigned-char"
   auxlibs="-lgen -lstdc++ -lm -ldl"
   ;;
sgin32gcc)
   # SGI 6.x with gcc with n32 ABI
   auxcflags="-fsigned-char"
   auxlibs="-lm -ldl"
   ;;
alphagcc)
   # Alpha/OSF with g++
   auxcflags=
   auxlibs="-lg++ -lm"
   ;;
alphagcc)
   # Alpha/OSF with gcc
   auxcflags="-mcpu=ev5 -D__osf__ -D__alpha"
   auxlibs="-ltermcap -lm"
   ;;
alphacxx6)
   # Alpha/OSF with cxx6
   auxcflags="-tlocal -D__osf__ -D__alpha -D_USE_STD_IOSTREAM"
   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 gcc >= 3.x
   auxcflags="-m32"
   auxldflags="-m32"
   auxlibs="-lm -ldl -rdynamic"
   ;;
linuxmips)
   # Linux on mips with gcc >= 3.x
   auxcflags="-mapi=32"
   auxldflags="-mapi=32"
   auxlibs="-lm -ldl -rdynamic"
   ;;
linuxhppa)
   # Linux on hppa with the GCC compiler
   auxcflags=
   auxldflags=
   auxlibs="-lm -ldl -rdynamic"
   ;;
linuxicc)
   # Linux with the Intel icc compiler
   auxcflags=
   auxlibs="-limf -lm -ldl"
   ;;
linuxppcgcc)
   # 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"
   ;;
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="-limf -lm -ldl"
   ;;
linuxx8664k1omicc)
   # Intel Many Integrated Cores Architecture (Knights Corner) Linux with Intel icc
   auxcflags="-mmic -I/usr/include"
   auxlibs="-limf -lm -ldl"
   ;;
linuxalphagcc)
   # Alpha Linux with gcc
   auxcflags=
   auxlibs="-lm -ldl -rdynamic"
   ;;
linuxarm)
   # ARM Linux with gcc
   auxcflags="-fsigned-char"
   auxlibs="-lm -ldl -rdynamic"
   ;;
linuxarm64)
   # ARMv8 64-bit (AArch64) Linux with gcc with glibc
   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 4 with glibc
   auxcflags=
   auxlibs="-lm -lstdc++"
   ;;
freebsd5|freebsd7)
   # FreeBSD 5/7 with glibc
   auxcflags=
   auxlibs="-lm -lstdc++"
   ;;
kfreebsd)
   # kFreeBSD with gcc
   auxcflags="-m32"
   auxldflags="-m32"
   auxlibs="-lm -ldl -rdynamic"
   ;;
kfreebsdx8664gcc)
   # AMD Opteron and Intel EM64T (64 bit mode) kFreeBSD with gcc
   auxcflags="-m64"
   auxldflags="-m64"
   auxlibs="-lm -ldl -rdynamic"
   ;;
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`
   # cannot find the one linked to libGraf if relocated after built
   if [ $macosx_minor -le 4 ]; then
      rootlibs="$rootlibs -lfreetype"
   fi
   if [ $macosx_minor -le 3 ]; then
      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"
      forcelibs=$rootulibs
      forceglibs=$rootuglibs
      forceevelibs=$rootuevelibs
   else
      auxcflags="-m32"
      auxldflags="-m32"
      auxlibs="-lm -ldl"
   fi
   ;;
macosxicc)
   # MacOS X with Intel icc compiler
   macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
   # cannot find the one linked to libGraf if relocated after built
   if [ $macosx_minor -le 4 ]; then
      rootlibs="$rootlibs -lfreetype"
   fi
   auxcflags=
   auxlibs="-lm -ldl"
   ;;
macosx64)
   # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
   macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
   # cannot find the one linked to libGraf if relocated after built
   if [ $macosx_minor -le 4 ]; then
      rootlibs="$rootlibs -lfreetype"
   fi
   auxcflags="-m64"
   auxldflags="-m64"
   auxlibs="-lm -ldl"
   ;;
ios*)
   auxcflags="-m32"
   auxldflags="-m32"
   auxlibs="-lm -ldl"
   ;;
hiux)
   # Hitachi HIUX
   auxcflags=
   auxlibs="-lm -ldld"
   ;;
win32)
   # Win32
   auxcflags="-MD"
   if test "xno" = "xyes"; then
      auxcflags="-MDd"
   fi
   VC_MAJOR=`unset VS_UNICODE_OUTPUT; cl.exe 2>&1 | awk '{ if (NR==1) print $(NF-2) }' | cut -d'.' -f1`
   if test "$VC_MAJOR" != "" && test $VC_MAJOR -gt 13; then
      auxcflags="$auxcflags -EHs -GR"
   else
      auxcflags="$auxcflags -GR -GX -G5"
   fi
   auxlibs=
   forcelibs=$rootulibs
   forceglibs=$rootuglibs
   forceevelibs=$rootuevelibs
   ;;
win32gcc | win64gcc)
   # Windows (32 or 64) with cygwin gcc
   auxcflags=
   auxlibs=
   forcelibs=$rootulibs
   forceglibs=$rootuglibs
   forceevelibs=$rootuevelibs
   ;;
*)
   echo "root-config: \"$arch\" invalid architecture"
   echo "Please report to rootdev@cern.ch"
   exit 1
   ;;
esac


### compiler dependent settings ###

case $arch in
freebsd* | openbsd* | linux*)
   for f in $features ; do
      if test "x$f" = "xthread" ; then
         auxcflags="-pthread $auxcflags"
         auxlibs="-pthread $auxlibs"
      fi
      if test "x$f" = "xrpath" ; then
         auxlibs="-Wl,-rpath,$libdir $auxlibs"
      fi
      if test "x$f" = "xcxx11" ; then
         auxcflags="-std=c++11 -Wno-deprecated-declarations $auxcflags"
      fi
      if test "x$f" = "xcxx14" ; then
         auxcflags="-std=c++1y -Wno-deprecated-declarations $auxcflags"
      fi
      if test "x$f" = "xlibcxx" ; then
         auxcflags="-stdlib=libc++ $auxcflags"
         auxlibs="-stdlib=libc++ $auxlibs"
      fi
   done
   ;;
macosx*)
   for f in $features ; do
      if test "x$f" = "xthread" ; then
         if [ $macosx_minor -ge 5 ]; then
            auxcflags="-pthread $auxcflags"
            auxlibs="-lpthread $auxlibs"
         else
            auxcflags="-D_REENTRANT $auxcflags"
            auxlibs="-lpthread $auxlibs"
         fi
      fi
      if test "x$f" = "xrpath" ; then
         if [ $macosx_minor -ge 5 ]; then
            auxlibs="-Wl,-rpath,$libdir $auxlibs"
         fi
      fi
      if test "x$f" = "xcxx11" ; then
         auxcflags="-std=c++11 $auxcflags"
      fi
      if test "x$f" = "xcxx14" ; then
         auxcflags="-std=c++1y $auxcflags"
      fi
      if test "x$f" = "xlibcxx" ; then
         auxcflags="-stdlib=libc++ $auxcflags"
         auxlibs="-stdlib=libc++ $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

# allocator must be last in auxlibs
for f in $features ; do
   if test "x$f" = "xalloc" ; then
      auxlibs="$auxlibs  "
   fi
done

auxcflags="$auxcflags "

### end of machine and compiler dependent settings ###

prefix=/usr
if test "$platform" = "win32" && test "$prefix" != ""; then
   prefix=`cygpath -u $prefix`
fi
exec_prefix=${prefix}
exec_prefix_set=no
new_set=no
libsout=no
glibsout=no
noauxlibs=no
noauxcflags=no
noldflags=no

usage="\
Usage: root-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version]\
 [--cflags] [--auxcflags] [--ldflags] [--new] [--nonew] [--libs]\
 [--glibs] [--evelibs] [--bindir] [--libdir] [--incdir] [--etcdir]\
 [--noauxcflags] [--noauxlibs] [--noldflags] [--has-<feature>] [--arch]\
 [--platform] [--dicttype] [--config] [--features] [--svn-revision]\
 [--python-version] [--ncpu] [--cc] [--cxx] [--f77] [--ld ] [--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
         ### We need to expand the path to backslash seperated path
         optarg=`cygpath -u $optarg`
      fi
      prefix=$optarg
      bindir=${prefix}/bin
      libdir=${prefix}/lib
      incdir=${prefix}/include
      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
      ### We need to expand the path to backslash seperated path
         optarg=`cygpath -u $optarg`
      fi
      exec_prefix=$optarg
      exec_prefix_set=yes
      bindir=${exec_prefix}/bin
      libdir=${exec_prefix}/lib
      ;;
    --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
      ;;
    --svn-revision)
      ### 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_SVN_REVISION *\([0-9]*\).*,\1,p' < ${incdir}/RVersion.h`"
      else
         echo "cannot read ${incdir}/RVersion.h"
         exit 1
      fi
      ;;
    --python-version)
      out="$out 2.7"
      ;;
    --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 --evelibs --glibs,
      ### we've already output the libraries, so we skip this section
      if test "x$glibsout" = "xyes" ; then
         shift
         continue
      fi
      ### Set the flag
      glibsout="yes"
      ### 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} ${rootglibs} ${rootlibs}"
         else
            glibs="${rootglibs} ${rootlibs}"
         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
      ;;
    --evelibs)
      ### Output eve, graphics and normal libraries.
      ### we've already output the libraries, so we skip this section
      if test "x$evelibsout" = "xyes" ; then
         shift
         continue
      fi
      ### Set the flag
      evelibsout="yes"
      ### If the user said --libs --glibs --evelibs, we don't need to add the
      ### regular and glib ROOT libraries.
      evelibsonly="no"
      eveandglibsonly="no"
      if test "x$libsout" = "xno" ; then
         ### Set the flag
         libsout="yes"
         if test "x$new_set" = "xyes" ; then
            evelibs="${newlib} ${rootevelibs} ${rootglibs} ${rootlibs}"
         else
            evelibs="${rootevelibs} ${rootglibs} ${rootlibs}"
         fi
      elif test "x$glibsout" = "xno" ; then
         ### Set the flag
         glibsout="yes"
         evelibs="${rootevelibs} ${rootglibs}"
         eveandglibsonly="yes"
      else
         evelibs="${rootevelibs}"
         evelibsonly="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 $evelibs | sed "s@-l\([a-zA-Z0-9]*\)@${libdir}/lib\1.lib@g"`
         evelibs=
         for i in $nlibs; do
            evelibs="$evelibs '`cygpath -w $i`'"
         done
      else
        if test "x$noldflags" = "xno" ; then
           out="$out -L${libdir}"
        fi
      fi
      if test "x$evelibsonly" = "xyes" ; then
         out="$out $forceevelibs $evelibs"
      elif test "x$eveandglibsonly" = "xyes" ; then
         out="$out $forceglibs $forceevelibs $evelibs"
      else
         if test "x$noauxlibs" = "xyes" ; then
            out="$out $forcelibs $forceglibs $forceevelibs $evelibs"
         else
            out="$out $forcelibs $forceglibs $forceevelibs $evelibs ${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"
      ;;
    --etcdir)
      ### output the etc directory
      out="$out $etcdir"
      ;;
    --config)
      ### output the configure arguments
      out="$out $configargs"
      ;;
    --features)
      ### output all supported features
      out="$out$features"  # no space, features starts with space
      ;;
    --ncpu)
      ### number of available cores
      ncpu=1
      case $arch in
      freebsd* | openbsd* | linux*)
         ncpu=$(awk '/^processor/ {++n} END {print n}' /proc/cpuinfo)
         ;;
      macosx*)
         ncpu=$(sysctl -n hw.ncpu)
         ;;
      aix*)
         ncpu=$(prtconf | grep 'Number Of Processors' | awk '{ print $4 }')
         ;;
      solaris*)
         ncpu=$(kstat cpu_info | grep core_id | awk '{ print $2}' | uniq | wc -l)
         ;;
      win32)
         ;;
      *)
         ;;
      esac
      out="$out $ncpu"
      ;;
    --dicttype)
      ### output the dictionary type
      out="$out $dicttype"
      ;;
    --cc)
      ### output used C compiler
      out="$out $altcc"
      ;;
    --cxx)
      ### output used C++ compiler
      out="$out $altcxx"
      ;;
    --f77)
      ### output used Fortran compiler
      out="$out $altf77"
      ;;
    --ld)
      ### output used Linker
      out="$out $altld"
      ;;
    --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 "  --evelibs             Print regular + GUI + Eve 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 "  --etcdir              Print the configuration 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 "  --config              Print arguments used for ./configure"
      echo "  --features            Print list of all supported features"
      echo "  --has-<feature>       Test if <feature> is compiled in"
      echo "  --dicttype            Print dictionary generator being used"
      echo "  --version             Print the ROOT version"
      echo "  --svn-revision        Print the ROOT SVN revision number"
      echo "  --python-version      Print the Python version used by ROOT"
      echo "  --npcu                Print number of available (hyperthreaded) cores"
      echo "  --cc                  Print alternative C compiler specified when ROOT was built"
      echo "  --cxx                 Print alternative C++ compiler specified when ROOT was built"
      echo "  --f77                 Print alternative Fortran compiler specified when ROOT was built"
      echo "  --ld                  Print alternative Linker specified when ROOT was built"
      echo "  --help                Print this message"
      exit 0
      ;;
    *)
      ### Give an error
      echo "Unknown argument \"$1\"!" 1>&2
      echo "${usage}" 1>&2
      exit 1
      ;;
  esac
  shift
done

### Output the stuff
echo $out
