Protection against division by zero.
[u/mrichter/AliRoot.git] / HLT / configure.ac
index 49b7bb6..6873e11 100644 (file)
@@ -253,8 +253,31 @@ if test ! "x$have_aliroot" = "xno" ; then
   fi
 
   dnl
+  dnl ESD supports non-std content
+  dnl
+  have_esd_nonstd=no
+  AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>
+                                  #include <AliExternalTrackParam.h>
+                                  #include <TTree.h>
+                                  #include <TClonesArray.h>],
+                                 [AliESDEvent esd;
+                                  esd.CreateStdContent();
+                                  TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects");
+                                  esd.WriteToTree(tree);
+                                  TClonesArray* a=new TClonesArray("AliExternalTrackParam");
+                                  a->SetName("SomeObject");
+                                  esd.AddObject(a);
+                                  if (!tree->FindBranch("SomeObject")) return 1;
+                                  return 0;])],
+                 [have_esd_nonstd=yes], 
+                [AC_DEFINE(HAVE_NOT_ESD_NONSTD)])
+  AC_MSG_CHECKING(whether ESD supports non standard content)
+  AC_MSG_RESULT([$have_esd_nonstd])
+
+  dnl
   dnl ESD copy function added May 9 2008 rev 25667
   dnl
+  if test "x$have_esd_nonstd" != "xyes"; then
   have_esd_copy=no
   AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
                                  [AliESDEvent esd1;
@@ -264,6 +287,7 @@ if test ! "x$have_aliroot" = "xno" ; then
                 [AC_DEFINE(HAVE_NOT_ESD_COPY)])
   AC_MSG_CHECKING(for ESD assignment operator)
   AC_MSG_RESULT([$have_esd_copy])
+  fi
 
   dnl
   dnl AliRawReaderMemory support for multiple buffers added
@@ -464,6 +488,13 @@ fi
 AC_MSG_RESULT([$enable_component_stat])
 
 dnl ------------------------------------------------------------------
+dnl ----  module checks
+dnl ------------------------------------------------------------------
+save_CPPFLAGS=$CPPFLAGS
+save_LDFLAGS=$LDFLAGS
+save_LIBS=$LIBS
+
+dnl ------------------------------------------------------------------
 AC_MSG_CHECKING([whether to compile sample library])
 AH_TEMPLATE([HLT_SAMPLE],[hlt sample library])
 AC_ARG_ENABLE(sample,
@@ -510,7 +541,7 @@ ALITPC_LIBS=
 CHECK_HLTMODULE([tpc],
                [AliTPCRawStream.h], 
                [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC],
-               [Gui ANALYSIS], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
+               [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
                [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
                [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
 
@@ -526,7 +557,6 @@ fi
 if test "x$enable_tpc" = "xyes" ; then 
   AC_LANG_PUSH(C++)
   AC_DEFINE(HLT_TPC)
-  echo $ALIHLTMODULE_LIBS
   ALITPC_LIBS=$ALIHLTMODULE_LIBS
   dnl
   dnl Check for functionality in the TPC reconstruction required for online
@@ -547,6 +577,7 @@ if test "x$enable_tpc" = "xyes" ; then
                                       cl.GetOutputClonesArray();])],
                                     [have_tpc_hltoffline_rec=yes], 
                                      [AC_DEFINE(HAVE_NOT_TPCOFFLINE_REC)])
+    LIBS=$save_LIBS
   AC_MSG_RESULT([$have_tpc_hltoffline_rec])
 
   AC_CHECK_HEADER([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
@@ -595,9 +626,6 @@ elif test "x$enable_module" = "xforce"; then
   enable_rcu="yes"
 else
   AC_LANG_PUSH(C++)
-  save_CPPFLAGS=$CPPFLAGS
-  save_LDFLAGS=$LDFLAGS
-  save_LIBS=$LIBS
   CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS"
   LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
   LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS"
@@ -705,12 +733,14 @@ else
     CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
     # AliTRDclusterizer::SetRawVersion() requires >v4-07-Release
     # changed to AliTRDrecoParam::SetSeedingOn() due to revision 26327, Mon Jun 2 2008
-    AC_MSG_CHECKING([for required functions in AliTRDrecoParam])
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDrecoParam.h>], 
-                                       [AliTRDrecoParam p;
-                                      p.SetSeeding(0)])],
+    # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008
+    # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008
+    AC_MSG_CHECKING([for required functions in AliTRDReconstructor])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDReconstructor.h>], 
+                                       [AliTRDReconstructor r;
+                                      r.SetClusters(0)])],
                                        [], 
-                                      [enable_trd="no...requires.AliRoot>v4-13-Release"])
+                                      [enable_trd="no...requires.AliRoot>v4-14-Release"])
     AC_MSG_RESULT([$enable_trd])       
     AC_LANG_POP(C++)
     CPPFLAGS="$save_CPPFLAGS"
@@ -729,6 +759,45 @@ AC_MSG_RESULT([$enable_module])
 AC_SUBST([ALITRD_LIBS])
 
 dnl ------------------------------------------------------------------
+AH_TEMPLATE([HLT_FMD],[hlt fmd library])
+
+ALIFMD_LIBS=$ALIHLTMODULE_LIBS
+CHECK_HLTMODULE([fmd],
+               [], [],
+               [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
+               [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
+               [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
+
+if test "x$enable_module" = "xmissheader"; then
+  enable_module="no...requires.AliRoot>v4-15-Release"
+  enable_fmd="no...requires.AliRoot>v4-15-Release"
+elif test "x$enable_module" = "xforce"; then
+  enable_fmd="yes"
+else
+  enable_fmd=$enable_module
+  if test "x$enable_fmd" = "xyes" ; then
+    AC_LANG_PUSH(C++)
+    save_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/FMD"
+    AC_MSG_RESULT([$enable_fmd])
+    AC_LANG_POP(C++)
+    CPPFLAGS="$save_CPPFLAGS"
+  fi
+fi
+
+if test "x$enable_fmd" = "xyes" ; then
+  AC_DEFINE(HLT_FMD)
+  ALIFMD_LIBS=$ALIHLTMODULE_LIBS
+else
+  enable_module=$enable_fmd
+fi
+AM_CONDITIONAL(EN_HLT_FMD, test x$enable_fmd = xyes)
+AC_MSG_CHECKING([whether to compile FMD library])
+AC_MSG_RESULT([$enable_module])
+AC_SUBST([ALIFMD_LIBS])
+
+
+dnl ------------------------------------------------------------------
 AH_TEMPLATE([HLT_MUON],[hlt dimuon library])
 
 ALIMUON_LIBS=
@@ -751,6 +820,24 @@ fi
 if test "x$enable_muon" = "xyes" ; then 
   AC_DEFINE(HLT_MUON)
   ALIMUON_LIBS=$ALIHLTMODULE_LIBS
+  AC_LANG_PUSH(C++)
+  dnl
+  dnl Check for functionality GetRawStream AliMUONDigitMaker.h
+  dnl 
+  have_muon_digitmaker_getrawstream=no
+  AC_MSG_CHECKING(for GetRawStream methods of AliMUONDigitMaker)
+    CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON"
+    LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS"
+    LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS"
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliMUONDigitMaker.h>], 
+                                    [AliMUONDigitMaker dm;
+                                      dm.GetRawStreamTracker();])],
+                                    [have_muon_digitmaker_getrawstream=yes], 
+                                     [AC_DEFINE(HAVE_NOT_MUON_DIGITMAKER_GETRAWSTREAM)])
+    LIBS=$save_LIBS
+  AC_MSG_RESULT([$have_muon_digitmaker_getrawstream])
+
+  AC_LANG_POP(C++)
 else
   enable_module=$enable_muon
 fi
@@ -794,9 +881,9 @@ AH_TEMPLATE([HLT_ITS],[hlt its library])
 
 ALIITS_LIBS=
 CHECK_HLTMODULE([its],
-               [], [$ALIROOT_CPPFLAGS],
-               [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
-               [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
+               [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS],
+               [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
+               [ITSbase ITSrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], 
                [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
 
 if test "x$enable_module" = "xmissheader"; then
@@ -981,6 +1068,7 @@ AC_CONFIG_FILES([Makefile
                 BASE/util/Makefile
                 BASE/interface/Makefile
                 BASE/test/Makefile
+                BASE/interface/test/Makefile
                 doc/Makefile
                 doc/doxygen.conf
                 doc/doxymodule.conf])
@@ -994,6 +1082,7 @@ if test "x$have_aliroot" != "xno"; then
                   rec/Makefile  
                   rec/test/Makefile     
                   shuttle/Makefile
+                  pendolino/Makefile
                   ])
 fi
 if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then