| 1 | dnl -*- mode: autoconf -*- | 
|---|
| 2 | dnl | 
|---|
| 3 | dnl $Id: root.m4,v 1.3 2005/03/21 21:42:21 rdm Exp $ | 
|---|
| 4 | dnl $Author: rdm $ | 
|---|
| 5 | dnl $Date: 2005/03/21 21:42:21 $ | 
|---|
| 6 | dnl | 
|---|
| 7 | dnl Autoconf macro to check for existence or ROOT on the system | 
|---|
| 8 | dnl Synopsis: | 
|---|
| 9 | dnl | 
|---|
| 10 | dnl  ROOT_PATH([MINIMUM-VERSION, [ACTION-IF-FOUND, [ACTION-IF-NOT-FOUND]]]) | 
|---|
| 11 | dnl | 
|---|
| 12 | dnl Some examples: | 
|---|
| 13 | dnl | 
|---|
| 14 | dnl    ROOT_PATH(3.03/05, , AC_MSG_ERROR(Your ROOT version is too old)) | 
|---|
| 15 | dnl    ROOT_PATH(, AC_DEFINE([HAVE_ROOT])) | 
|---|
| 16 | dnl | 
|---|
| 17 | dnl The macro defines the following substitution variables | 
|---|
| 18 | dnl | 
|---|
| 19 | dnl    ROOTCONF           full path to root-config | 
|---|
| 20 | dnl    ROOTEXEC           full path to root | 
|---|
| 21 | dnl    ROOTCINT           full path to rootcint | 
|---|
| 22 | dnl    ROOTLIBDIR         Where the ROOT libraries are | 
|---|
| 23 | dnl    ROOTINCDIR         Where the ROOT headers are | 
|---|
| 24 | dnl    ROOTETCDIR         Where the ROOT configuration is | 
|---|
| 25 | dnl    ROOTCFLAGS         Extra compiler flags | 
|---|
| 26 | dnl    ROOTLIBS           ROOT basic libraries | 
|---|
| 27 | dnl    ROOTGLIBS          ROOT basic + GUI libraries | 
|---|
| 28 | dnl    ROOTAUXLIBS        Auxilary libraries and linker flags for ROOT | 
|---|
| 29 | dnl    ROOTAUXCFLAGS      Auxilary compiler flags | 
|---|
| 30 | dnl    ROOTRPATH          Same as ROOTLIBDIR | 
|---|
| 31 | dnl | 
|---|
| 32 | dnl The macro will fail if root-config and rootcint isn't found. | 
|---|
| 33 | dnl | 
|---|
| 34 | dnl Christian Holm Christensen <cholm@nbi.dk> | 
|---|
| 35 | dnl | 
|---|
| 36 | AC_DEFUN([ROOT_PATH], | 
|---|
| 37 | [ | 
|---|
| 38 | AC_ARG_WITH([rootsys], | 
|---|
| 39 | [AC_HELP_STRING([--with-rootsys], | 
|---|
| 40 | [path to the ROOT executables or top ROOT installation directory])], | 
|---|
| 41 | [user_rootsys=$withval], | 
|---|
| 42 | [user_rootsys="none"]) | 
|---|
| 43 | if test ! x"$user_rootsys" = xnone; then | 
|---|
| 44 | rootbin="$user_rootsys:$user_rootsys/bin" | 
|---|
| 45 | elif test ! x"$ROOTSYS" = x ; then | 
|---|
| 46 | rootbin="$ROOTSYS/bin" | 
|---|
| 47 | else | 
|---|
| 48 | rootbin=$PATH | 
|---|
| 49 | fi | 
|---|
| 50 |  | 
|---|
| 51 | AC_MSG_CHECKING(for root in) | 
|---|
| 52 | AC_MSG_RESULT($rootbin) | 
|---|
| 53 |  | 
|---|
| 54 | AC_PATH_PROG(ROOTCONF, root-config , no, $rootbin) | 
|---|
| 55 | AC_PATH_PROG(ROOTEXEC, root , no, $rootbin) | 
|---|
| 56 | AC_PATH_PROG(ROOTCINT, rootcint , no, $rootbin) | 
|---|
| 57 |  | 
|---|
| 58 | if test ! x"$ROOTCONF" = "xno" && \ | 
|---|
| 59 | test ! x"$ROOTCINT" = "xno" ; then | 
|---|
| 60 |  | 
|---|
| 61 | # define some variables | 
|---|
| 62 | ROOTLIBDIR=`$ROOTCONF --libdir` | 
|---|
| 63 | ROOTINCDIR=`$ROOTCONF --incdir` | 
|---|
| 64 | #    ROOTETCDIR=`$ROOTCONF --etcdir` | 
|---|
| 65 | ROOTCFLAGS=`$ROOTCONF --noauxcflags --cflags` | 
|---|
| 66 | ROOTLIBS=`$ROOTCONF --noauxlibs --noldflags --libs` | 
|---|
| 67 | ROOTGLIBS=`$ROOTCONF --noauxlibs --noldflags --glibs` | 
|---|
| 68 | ROOTAUXCFLAGS=`$ROOTCONF --auxcflags` | 
|---|
| 69 | ROOTAUXLIBS=`$ROOTCONF --auxlibs` | 
|---|
| 70 | ROOTRPATH=$ROOTLIBDIR | 
|---|
| 71 | ROOTVERSION=`$ROOTCONF --version` | 
|---|
| 72 | ROOTSOVERSION=`dirname $ROOTVERSION` | 
|---|
| 73 |  | 
|---|
| 74 | if test $1 ; then | 
|---|
| 75 | AC_MSG_CHECKING(wether ROOT version >= [$1]) | 
|---|
| 76 | vers=`$ROOTCONF --version | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'` | 
|---|
| 77 | requ=`echo $1 | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'` | 
|---|
| 78 | if test $vers -lt $requ ; then | 
|---|
| 79 | AC_MSG_RESULT(no) | 
|---|
| 80 | no_root="yes" | 
|---|
| 81 | else | 
|---|
| 82 | AC_MSG_RESULT(yes) | 
|---|
| 83 | fi | 
|---|
| 84 | fi | 
|---|
| 85 | else | 
|---|
| 86 | # otherwise, we say no_root | 
|---|
| 87 | no_root="yes" | 
|---|
| 88 | fi | 
|---|
| 89 |  | 
|---|
| 90 | AC_SUBST(ROOTLIBDIR) | 
|---|
| 91 | AC_SUBST(ROOTINCDIR) | 
|---|
| 92 | #  AC_SUBST(ROOTETCDIR) | 
|---|
| 93 | AC_SUBST(ROOTCFLAGS) | 
|---|
| 94 | AC_SUBST(ROOTLIBS) | 
|---|
| 95 | AC_SUBST(ROOTGLIBS) | 
|---|
| 96 | AC_SUBST(ROOTAUXLIBS) | 
|---|
| 97 | AC_SUBST(ROOTAUXCFLAGS) | 
|---|
| 98 | AC_SUBST(ROOTRPATH) | 
|---|
| 99 | AC_SUBST(ROOTVERSION) | 
|---|
| 100 | AC_SUBST(ROOTSOVERSION) | 
|---|
| 101 |  | 
|---|
| 102 | if test "x$no_root" = "x" ; then | 
|---|
| 103 | ifelse([$2], , :, [$2]) | 
|---|
| 104 | else | 
|---|
| 105 | ifelse([$3], , :, [$3]) | 
|---|
| 106 | fi | 
|---|
| 107 | ]) | 
|---|
| 108 |  | 
|---|
| 109 | # | 
|---|
| 110 | # Macro to check if ROOT has a specific feature: | 
|---|
| 111 | # | 
|---|
| 112 | #   ROOT_FEATURE(FEATURE,[ACTION_IF_HAVE,[ACTION_IF_NOT]]) | 
|---|
| 113 | # | 
|---|
| 114 | # For example | 
|---|
| 115 | # | 
|---|
| 116 | #   ROOT_FEATURE([ldap],[AC_DEFINE([HAVE_ROOT_LDAP])]) | 
|---|
| 117 | # | 
|---|
| 118 | AC_DEFUN([ROOT_FEATURE], | 
|---|
| 119 | [ | 
|---|
| 120 | AC_REQUIRE([ROOT_PATH]) | 
|---|
| 121 | feat=$1 | 
|---|
| 122 | res=`$ROOTCONF --has-$feat` | 
|---|
| 123 | if test "x$res" = "xyes" ; then | 
|---|
| 124 | ifelse([$2], , :, [$2]) | 
|---|
| 125 | else | 
|---|
| 126 | ifelse([$3], , :, [$3]) | 
|---|
| 127 | fi | 
|---|
| 128 |  | 
|---|
| 129 | AC_MSG_CHECKING(whether root was built with --with-qt) | 
|---|
| 130 | AC_MSG_RESULT($res) | 
|---|
| 131 | ]) | 
|---|
| 132 |  | 
|---|
| 133 | # | 
|---|
| 134 | # EOF | 
|---|
| 135 | # | 
|---|