#!/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=$ROOTSYS/bin libdir=$ROOTSYS/lib incdir=$ROOTSYS/include etcdir=$ROOTSYS/etc features="asimage astiff builtin_afterimage builtin_ftgl builtin_glew cintex dcache explicitlink fftw3 fitsio gviz genvector krb5 ldap mathmore memstat minuit2 mysql odbc opengl pgsql python reflex roofit shadowpw shared sqlite ssl tmva vdt x11 xft xml thread" configargs="--disable-cxx11 --enable-python --enable-roofit --enable-minuit2" 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++" ;; 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=$ROOTSYS 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-] [--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.6" ;; --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- Test if 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