X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HLT%2Fconfigure.ac;h=aa59811000511ffdc3c8d25bd35fb92838c4ce5b;hb=fb329096f365bfd0e8d7254354f3fadfb7b24be6;hp=3789c5a4bf07ae55b86402b46067b5472dea25c9;hpb=2e742d3017bfecd3de4185f33f33093fde5fae0d;p=u%2Fmrichter%2FAliRoot.git diff --git a/HLT/configure.ac b/HLT/configure.ac index 3789c5a4bf0..aa598110005 100644 --- a/HLT/configure.ac +++ b/HLT/configure.ac @@ -5,7 +5,20 @@ dnl template for the configuration script for the Alice HLT dnl framework and components dnl dnl ------------------------------------------------------------------ -AC_INIT([Alice High Level Trigger] , [0.8-dev], [Matthias.Richter@ift.uib.no], alice-hlt) + +dnl Take either the AliRoot tag as version id or the current revision +AC_INIT([Alice High Level Trigger] , + m4_esyscmd([url=`svn info 2> /dev/null | grep "URL:" | cut -d: -f3 | sed -e 's|[/]*HLT[/]*$||' | sed -e 's|^[/]*||g' | cut -d '/' -f 4`; \ + revision=`svn info 2> /dev/null | grep "Revision:" | cut -d ' ' -f 2 | cut -d '/' -f 4`; \ + if test "x$url" != "x"; then echo -n $url; \ + elif test "x$revision" != "x"; then echo -n $revision ; \ + elif test -e .revision && test x`cat .revision` != x; then \ + cat .revision; \ + else \ + echo -n invalid-version; \ + fi]), + [Matthias.Richter@ift.uib.no], + [alice-hlt]) dnl ------------------------------------------------------------------ dnl the package from CVS contains the old Makefiles as well. In order to @@ -19,7 +32,7 @@ dnl ------------------------------------------------------------------ AC_CANONICAL_SYSTEM AC_PREFIX_DEFAULT(${PWD}) AC_CONFIG_SRCDIR(BASE/AliHLTComponent.cxx) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([-Wno-portability]) AC_PROG_CC AC_PROG_CXX AC_PROG_LIBTOOL @@ -60,7 +73,9 @@ if test "x$have_root" = "x1"; then # - from Nov 1 2006 TTreeFormula is needed by AliTagAnalysis and requires # libTreePlayer.so # - from Jan 07 libESD also depends on libXMLIO - ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO' + # - libSTEER depends on libProofPlayer since Oct 2007 (after v4-07-Release) + # - libCDB.so depends on libXMLParser since Mar 11 2009 r 31411 + ROOT_CHECKLIBS='Geom Minuit EG VMC TreePlayer XMLIO Thread Proof ProofPlayer XMLParser' for CHECKLIB in $ROOT_CHECKLIBS ; do LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}" LIBS="$save_LIBS $ROOTLIBS $ADD_ROOTLIBS" @@ -69,11 +84,11 @@ if test "x$have_root" = "x1"; then # TBuffer.h has been made pure virtual in root v5-15-02 and one # has to derive from TBufferFile.h (needed for BASE/AliHLTMessage.h) - AC_CHECK_HEADERS([TBufferFile.h]) + AC_CHECK_HEADER([TBufferFile.h], [], [HAVE_NOT_TBUFFERFILE]) # TView.h has been made pure virtual right after root v5-15-02 and one # has to derive from TView3D.h (needed for TPCLib/OnlineDisplay/AliHLTTPCDisplay3D) - AC_CHECK_HEADERS([TView3D.h]) + AC_CHECK_HEADER([TView3D.h], [], [HAVE_NOT_TVIEW3D]) CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS @@ -91,6 +106,9 @@ ALIHLT_USEPACKAGE=ALIROOT AC_DEFINE(use_aliroot) AC_DEFINE(use_root) CPPFLAGS="$CPPFLAGS ${ROOTCFLAGS}" +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS dnl ------------------------------------------------------------------ dnl check for AliRoot features @@ -150,14 +168,20 @@ AC_MSG_RESULT([$have_aliroot]) if test ! "x$have_aliroot" = "xno" ; then ALIROOT_CPPFLAGS="-I${ALIROOTINCDIR} -I${ALICE_ROOT}/RAW" ALIROOT_LDFLAGS="-L${ALIROOTLIBDIR}" - ALIROOT_LIBS="-lESD $ADD_ROOTLIBS" + ALIROOT_LIBS="$ADD_ROOTLIBS" save_CPPFLAGS=$CPPFLAGS save_LDFLAGS=$LDFLAGS save_LIBS=$LIBS CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS" LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS" + # check for certain AliRoot libraries/files/features # libSTEERBase present since Aug 7 2007 + # ########################################### + # temporary workaround for circular dependency libSTEERbase libSTEER + # https://savannah.cern.ch/bugs/index.php?49914 + # disable the sequence of checks and load libraries in parallel + ALIROOT_LIBS="$ALIROOT_LIBS -lAOD -lCDB -lRAWDatabase -lRAWDatarec -lESD -lSTEER" LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS" CHECKLIB=STEERBase AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"]) @@ -171,18 +195,16 @@ if test ! "x$have_aliroot" = "xno" ; then CHECKLIB=CDB AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"]) - # check for certain AliRoot libraries/files/features # splitted RAW libraries since AliRoot version v4-04-Rev-07 (09.08.2006) have_alirawdata=no LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS" CHECKLIB=RAWDatabase AC_CHECK_LIB([$CHECKLIB],[_init], [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB" - LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS" + LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lESD -lSTEER" CHECKLIB=RAWDatarec AC_CHECK_LIB([$CHECKLIB],[_init], [ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB" - AC_DEFINE(HAVE_ALIRAWDATA) have_alirawdata=$CHECKLIB])], [# second pass with -RAWData CHECKLIB="-lRAWData" @@ -195,56 +217,16 @@ if test ! "x$have_aliroot" = "xno" ; then AliRawReaderFile freader; AliRawReaderDate dreader(NULL,0); AliRawReaderRoot rreader(NULL,0);])], - [AC_DEFINE(HAVE_ALIRAWDATA) - ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB" + [ALIROOT_LIBS="$ALIROOT_LIBS $CHECKLIB" have_alirawdata=$CHECKLIB], [have_alirawdata=no]) ]) dnl AC_CHECK_LIB RAWDatabase AC_MSG_CHECKING([for AliRawReader classes in RAWData libraries]) AC_MSG_RESULT([$have_alirawdata]) - dnl - dnl required header files and libraries for the AliHLTTPC library - dnl - if test ! "x$have_aliroot" = "xno" ; then - # the HLTTPCLib needs to link agains TPCbase and TPCrec - # TPC library for AliTPCParam and AliSimDigits used in - # AliHLTTPCFileHandler.h and AliHLTTPCDisplay.cxx - # fram May 07 TPCbase depends on libGui.so - saveALIROOT_CPPFLAGS="$ALIROOT_CPPFLAGS" - ALIROOT_CPPFLAGS="$saveALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC" - CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS" - have_alitpc=yes - AC_MSG_CHECKING(for required classes in TPC libraries) - if test ! "x$have_alitpc" = "xno" ; then - save_ALIROOT_LIBS=$ALIROOT_LIBS - ALIROOT_LIBS="$save_ALIROOT_LIBS -lTPCbase -lTPCrec -lGui -lSTEER" - LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include - #include - #include - #include - #include - #include - #include ], - [AliSimDigits dig; - AliTPCParam param; - AliTPCParamSR paramsr; - AliTPCDigitsArray digarray; - AliTPCClustersArray clustarray; - AliTPCcluster clust; - AliTPCClustersRow row])], - [AC_DEFINE(HAVE_ALITPC) - saveALIROOT_CPPFLAGS=$ALIROOT_CPPFLAGS - saveALIROOT_LIBS=$ALIROOT_LIBS], - [have_alitpc=no - ALIROOT_CPPFLAGS=$saveALIROOT_CPPFLAGS - ALIROOT_LIBS=$saveALIROOT_LIBS]) - fi - AC_MSG_RESULT($have_alitpc) - fi - AC_CHECK_HEADERS([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)]) - AC_CHECK_HEADERS([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)]) + LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS -lSTEER" + CHECKLIB=ESD + AC_CHECK_LIB([$CHECKLIB],[_init],[ALIROOT_LIBS="$ALIROOT_LIBS -l$CHECKLIB"]) LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS" CHECKLIB=STEER @@ -264,6 +246,107 @@ if test ! "x$have_aliroot" = "xno" ; then AC_MSG_RESULT([$have_alilog_notification]) fi + if test "x$have_aliroot" = "xno" ; then + # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation + # but library dependencies might not be resolved completely + #ALIROOT_CPPFLAGS= + AC_MSG_WARN([some of the AliRoot library dependencies are not resolved. + This can happen from time to time due to development in AliRoot. You can + force compilation of detector libs by --enable-, but be aware + of unresolved references at runtime.]) + AC_MSG_WARN([ ------------------------------------------ ]) + AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ]) + AC_MSG_WARN([ please include config.log ]) + AC_MSG_WARN([ ------------------------------------------ ]) + ALIROOT_LDFLAGS= + ALIROOT_LIBS= + fi + + dnl + dnl ESD supports non-std content + dnl + have_esd_nonstd=no + AC_RUN_IFELSE([AC_LANG_PROGRAM([#include + #include + #include + #include ], + [AliESDEvent esd; + esd.CreateStdContent(); + TTree* tree=new TTree("esdTree", "Tree with HLT ESD objects"); + TClonesArray* a=new TClonesArray("AliExternalTrackParam"); + a->SetName("SomeObject"); + esd.AddObject(a); + esd.WriteToTree(tree); + 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 esd1; + AliESDEvent esd2; + esd2=esd1;])], + [have_esd_copy=yes], + [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 + dnl revision 26829 Jun 2008 + dnl + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/RAW" + have_rawreadermemory_multbuffers=no + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [AliRawReaderMemory rr; + rr.AddBuffer(NULL, 0, 0);])], + [have_rawreadermemory_multbuffers=yes], + [AC_DEFINE(HAVE_NOT_ALIRAWREADERMEMORY_ADDBUFFER)]) + AC_MSG_CHECKING(AliRawReaderMemory support for multiple buffers) + AC_MSG_RESULT([$have_rawreadermemory_multbuffers]) + + dnl + dnl Changes in the magnetic field implementation + dnl revision 30848 Feb 1 2009 + dnl + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER" + have_alimagf30848=no + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int test=AliMagF::k5kG;])], + [have_alimagf30848=yes], + [AC_DEFINE(HAVE_NOT_ALIMAGF30848)]) + AC_MSG_CHECKING(AliMagF contains field definitions) + AC_MSG_RESULT([$have_alimagf30848]) + + dnl + dnl Cleanup of the RunLoader implementation + dnl revision 30859 Feb 2 2009 + dnl + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/STEER" + have_alirunloader30859=no + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [AliRunLoader* rl=AliRunLoader::Instance();])], + [have_alirunloader30859=yes], + [AC_DEFINE(HAVE_NOT_ALIRUNLOADER30859)]) + AC_MSG_CHECKING(AliRunLoader::Instance) + AC_MSG_RESULT([$have_alirunloader30859]) + + have_aliqav1=no + AC_CHECK_HEADER([AliQAv1.h], [have_aliqav1=yes], []) + AM_CONDITIONAL(EN_HLT_QA, test x$have_aliqav1 = xyes) + + dnl + dnl required header files and libraries for modules + dnl + dnl dnl Check for the interface of AliExternalTrackParam which has been changed dnl in revision 1.17 of AliExternalTrackParam.h (AliRoot version v4-05-04 @@ -278,71 +361,27 @@ if test ! "x$have_aliroot" = "xno" ; then AC_MSG_CHECKING(for version of AliExternalTrackParam) AC_MSG_RESULT($externaltrackparam_version) - dnl - dnl required header files and libraries for the AliHLTPHOS library - dnl - have_alicalorawstream=no - if test ! "x$have_aliroot" = "xno" ; then - # this can not be used as AliCaloRawStream.h indirectly depends on TString.h - #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes]) - AC_MSG_CHECKING([for AliCaloRawStream.h usability]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include - #include ], - [int i])], - [AC_DEFINE(HAVE_ALICALORAWSTREAM) - have_alicalorawstream=yes], - []) - AC_MSG_RESULT([$have_alicalorawstream]) - fi + dnl The AliShuttleInterface was changed in rev 29388. Some return types + dnl had been const, now changed according to gcc 4.3 warnings + AC_MSG_CHECKING(for version of AliShuttleInterface.h) + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/" + LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS" + LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [class dummy : public AliShuttleInterface { + public: + const UInt_t GetStartTimeDCSQuery() {;} + };])], + [AC_DEFINE(SHUTTLE_PRE_REV29388_INTERFACE) + alishuttleinterface_version=pre.rev.29388], + [alishuttleinterface_version=up.to.date]) + AC_MSG_RESULT([$alishuttleinterface_version]) - dnl - dnl required header files and libraries for the AliHLTTRD library - dnl - AC_CHECK_HEADERS([AliGeomManager.h], [], [AC_DEFINE([HAVNT_ALIGEOMMANAGER])]) - - if test ! "x$have_alirawdata" = "xno" ; then - # check for header files needed by the TPCLib/AliHLTTPCDigitReaderPacket - # the header file has been moved to the TPC module - CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS" - # AliRawReaderMemory.h AliRawReaderFile.h already checked - #AC_CHECK_HEADERS([AliRawReaderMemory.h AliRawReaderFile.h AliTPCRawStream.h]) - AC_CHECK_HEADERS([AliTPCRawStream.h]) - fi - - have_tpc_mapping=no - if test ! "x$have_aliroot" = "xno" ; then - # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC - # which is stored in the TPC/mapping/Patchx.data files from - # AliRoot version v4-04-Release (May 2006) - AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available]) - TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping - AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data], - [have_tpc_mapping=yes - AC_SUBST(TPC_PAD_MAPPING_PATH) - AC_DEFINE(HAVE_TPC_MAPPING)], - []) - - fi - AC_MSG_CHECKING([for TPC mapping layout]) - AC_MSG_RESULT([$have_tpc_mapping]) - - if test "x$have_aliroot" = "xno" ; then - # 2007-08-18 dont reset ALIROOT_CPPFLAGS in order to allow compilation - # but library dependencies might not be resolved completely - #ALIROOT_CPPFLAGS= - AC_MSG_WARN([some of the AliRoot library dependencies are not resolved. You - can force compilation of detector libs by --enable-, but be aware - of unresolved references at runtime.]) - AC_MSG_WARN([ ------------------------------------------ ]) - AC_MSG_WARN([ Report this to $PACKAGE_BUGREPORT ]) - AC_MSG_WARN([ ------------------------------------------ ]) - ALIROOT_LDFLAGS= - ALIROOT_LIBS= - fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS -fi +fi # if test ! "x$have_aliroot" = "xno" + AC_LANG_POP(C++) AC_SUBST([ALICE_ROOT]) AC_SUBST([ALIROOT_CPPFLAGS]) @@ -359,6 +398,11 @@ AC_SUBST([HLTBASE_LDFLAGS]) dnl ------------------------------------------------------------------ dnl check for the HLT PubSub Framework +dnl namely for the existence of the HOMER library +dnl from Sep 2007, the HOMER lib has been incorporated into the alice-hlt +dnl package. It os though possible to choose an external. library +dnl In order to make the origni of the HOMER lib clear, the one in AliRoot +dnl got the name libAliHLTHOMER AC_MSG_CHECKING([for HLT PubSub Framework]) AC_ARG_WITH(pubsub, [installation path of the HLT PubSub framework], [], @@ -367,7 +411,7 @@ if test -z $with_pubsub || ! test -d $with_pubsub ; then with_pubsub=no fi AC_MSG_RESULT([$with_pubsub]) -HOMER_VERSION=1 +HOMER_VERSION=2 HOMER_LIBS= AH_TEMPLATE([HAVE_HOMERREADER],[the HLT PubSub Homer Reader interface]) @@ -407,6 +451,7 @@ if test "x$with_pubsub" != "xno" ; then HOMER_TARGET="${HOMER_TARGET}-debug" fi AC_MSG_RESULT([${homer_type}]) + HOMERREADER_HEADER=HOMERReader.h HOMER_BINDIR="${with_pubsub}/bin/${HOMER_TARGET}" HOMER_LIBDIR="${with_pubsub}/lib/${HOMER_TARGET}" HOMER_LDFLAGS="-L${HOMER_LIBDIR}" @@ -415,7 +460,7 @@ if test "x$with_pubsub" != "xno" ; then LIBS="$save_LIBS " with_homer=no AC_LANG_PUSH(C++) - AC_CHECK_HEADER([HOMERReader.h], + AC_CHECK_HEADER([$HOMERREADER_HEADER], [ AC_CHECK_LIB([HOMER],[_init], [with_homer=yes HOMER_LIBS="-lHOMER"], @@ -432,11 +477,24 @@ if test "x$with_pubsub" != "xno" ; then AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [HOMERReader reader("dummy", 0); reader.GetBlockStatusFlags(0);])], - [if test $HOMER_VERSION -lt 2 ; then HOMER_VERSION=2; fi], - []) + [], + [HOMER_VERSION=1]) AC_MSG_RESULT([$HOMER_VERSION]) - ]) #AC_CHECK_HEADER([HOMERReader.h]) + ], + [HOMERREADER_HEADER=]) #AC_CHECK_HEADER([$HOMERREADER_HEADER]) AC_LANG_POP(C++) + HOMER_INBUILT_LIB= +else +dnl no pubsub version defined, check if the HOMER lib is available in AliRoot + topdir=`dirname $0` + HOMER_CPPFLAGS="-I`(cd $topdir; pwd)`/BASE/HOMER" + HOMERREADER_HEADER=AliHLTHOMERReader.h + HOMER_INBUILT_LIB=`pwd`/BASE/HOMER/libAliHLTHOMER.la + HOMER_BINDIR= + HOMER_LIBDIR= + HOMER_LDFLAGS= +fi + if test "x$with_homer" = "xno" ; then HOMER_CPPFLAGS= HOMER_LDFLAGS= @@ -448,24 +506,61 @@ if test "x$with_pubsub" != "xno" ; then CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" -fi + +AC_SUBST([HOMERREADER_HEADER]) +AC_SUBST([HOMER_INBUILT_LIB]) AC_SUBST([HOMER_CPPFLAGS]) AC_SUBST([HOMER_LDFLAGS]) AC_SUBST([HOMER_LIBDIR]) AC_SUBST([HOMER_BINDIR]) AC_SUBST([HOMER_LIBS]) +dnl ------------------------------------------------------------------ +AC_ARG_ENABLE(all, + [AC_HELP_STRING([--disable-all], + [disable all detector modules, individual modules can be switched on by --enable-det])], + [disable_all=yes],[]) + dnl ------------------------------------------------------------------ AC_MSG_CHECKING([whether to impose strict coding conventions]) AC_ARG_ENABLE(strict, - [AC_HELP_STRING([--enable-strict], - [enable coding convention checks ])], - [],[enable_strict=no]) + [AC_HELP_STRING([--disable-strict], + [disable coding convention checks ])], + [],[enable_strict=yes]) if test "x$enable_strict" = "xyes" ; then - CPPFLAGS="$CPPFLAGS -Weffc++" + CPPFLAGS="$CPPFLAGS -W -Weffc++ -Wall -Wshadow" fi AC_MSG_RESULT([$enable_strict]) +dnl ------------------------------------------------------------------ +AC_MSG_CHECKING([whether to enable component statistics]) +AC_ARG_ENABLE(component-stat, + [AC_HELP_STRING([--enable-component-stat], + [enable component statistics ])], + [],[enable_component_stat=no]) +if test "x$enable_component_stat" = "xyes" ; then + AC_DEFINE(HLT_COMPONENT_STATISTICS) +fi +AC_MSG_RESULT([$enable_component_stat]) + +dnl ------------------------------------------------------------------ +dnl ---- module checks +dnl ------------------------------------------------------------------ +save_CPPFLAGS=$CPPFLAGS +save_LDFLAGS=$LDFLAGS +save_LIBS=$LIBS + +dnl ------------------------------------------------------------------ +AC_MSG_NOTICE([-------------------------------------------------]) +AC_MSG_NOTICE([checking dependencies for HLTbase library]) +HLTBASE_CHECKLIBS='XMLParser' +for CHECKLIB in $HLTBASE_CHECKLIBS ; do + LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR}" + LIBS="$save_LIBS $ROOTLIBS $ALIHLTBASE_LIBS" + AC_CHECK_LIB([$CHECKLIB],[_init], [ALIHLTBASE_LIBS="$ALIHLTBASE_LIBS -l$CHECKLIB"]) +done +AC_SUBST([ALIHLTBASE_LIBS]) + dnl ------------------------------------------------------------------ AC_MSG_CHECKING([whether to compile sample library]) AH_TEMPLATE([HLT_SAMPLE],[hlt sample library]) @@ -487,108 +582,596 @@ AM_CONDITIONAL(EN_HLT_SAMPLE, test x$enable_sample = xyes) AC_MSG_RESULT([$enable_sample]) dnl ------------------------------------------------------------------ -AC_MSG_CHECKING([whether to compile util library]) AH_TEMPLATE([HLT_UTIL],[HLT utility library]) -AC_ARG_ENABLE(util, - [AC_HELP_STRING([--disable-util], - [compile the util library ])], - [], - [if test "x$have_aliroot" = "xno" ; then - enable_util="no...requires.AliRoot" - else - enable_util=yes - fi - ]) +ALIUTIL_LIBS= +CHECK_HLTMODULE([util], + [], + [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/RAW -I$ALICE_ROOT/PYTHIA6], + [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS], + [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) +if test "x$enable_module" = "xmissheader"; then + enable_module="no...missing.headers" + enable_util=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_util="yes" +else + enable_util=$enable_module +fi if test "x$enable_util" = "xyes" ; then AC_DEFINE(HLT_UTIL) + ALIUTIL_LIBS=$ALIHLTMODULE_LIBS fi AM_CONDITIONAL(EN_HLT_UTIL, test x$enable_util = xyes) -AC_MSG_RESULT([$enable_util]) +AC_MSG_CHECKING([whether to compile Util library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIUTIL_LIBS]) dnl ------------------------------------------------------------------ -AC_MSG_CHECKING([whether to compile tpc library]) AH_TEMPLATE([HLT_TPC],[hlt tpc library]) -AC_ARG_ENABLE(tpc, - [AC_HELP_STRING([--disable-tpc], - [compile the tpc library ])], - [], - [if test "x$have_aliroot" = "xno" ; then - enable_tpc="no...requires.AliRoot" - elif test "x$have_alitpc" = "xno" ; then - enable_tpc="no...requires.AliRoot.TPC.libraries" - else - enable_tpc=yes - fi - ]) + +ALITPC_LIBS= +CHECK_HLTMODULE([tpc], + [AliTPCRawStream.h], + [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/TPC], + [Gui ANALYSIS STAT], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS], + [TPCbase TPCrec TPCcalib], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...missing.headers" + enable_tpc=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_tpc="yes" +else + enable_tpc=$enable_module +fi if test "x$enable_tpc" = "xyes" ; then + AC_LANG_PUSH(C++) AC_DEFINE(HLT_TPC) + ALITPC_LIBS=$ALIHLTMODULE_LIBS + dnl + dnl Check for functionality in the TPC reconstruction required for online + dnl processing + dnl + have_tpc_hltoffline_rec=no + AC_MSG_CHECKING(for on-line features of TPC offline reconstruction) + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/TPC" + LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS" + LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include + #include + #include ], + [AliTPCtrackerMI tracker; + TObjArray* array=NULL; + tracker.LoadClusters(array); + AliTPCclustererMI cl(NULL, NULL); + 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)]) + AC_CHECK_HEADER([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)]) + AC_CHECK_HEADER([AliAltroRawStreamV3.h], [], [AC_DEFINE(HAVE_NOT_ALTRORAWSTREAMV3)]) + + have_tpc_mapping=no + if test ! "x$have_aliroot" = "xno" ; then + # the TPCLib/AliHLTTPCRawReader needs the actual Pad layout of the TPC + # which is stored in the TPC/mapping/Patchx.data files from + # AliRoot version v4-04-Release (May 2006) + AH_TEMPLATE([HAVE_TPC_MAPPING],[TPC pad mapping available]) + TPC_PAD_MAPPING_PATH=$have_aliroot/TPC/mapping + AC_CHECK_FILE( [$TPC_PAD_MAPPING_PATH/Patch0.data], + [have_tpc_mapping=yes + AC_SUBST(TPC_PAD_MAPPING_PATH) + AC_DEFINE(HAVE_TPC_MAPPING)], + []) + + fi + AC_MSG_CHECKING([for TPC mapping layout]) + AC_MSG_RESULT([$have_tpc_mapping]) + AC_LANG_POP(C++) + +else + enable_module=$enable_tpc fi AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes) -AC_MSG_RESULT([$enable_tpc]) +AC_MSG_CHECKING([whether to compile TPC library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALITPC_LIBS]) + +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_RCU],[hlt rcu library]) + +CHECK_HLTMODULE([rcu], + [AliAltroDecoder.h], + [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/RAW], + [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...missing.headers" + enable_rcu=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_rcu="yes" +else + AC_LANG_PUSH(C++) + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS" + LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS" + LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [AliAltroDecoder decoder; + decoder.CopyBackward(NULL, 0);])], + [enable_rcu=$enable_module], + [enable_module="no...requires.AliRoot>v4-10-Release" + enable_rcu="no...requires.AliRoot>v4-10-Release"]) + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + AC_LANG_POP(C++) +fi + +if test "x$enable_rcu" = "xyes" ; then + AC_DEFINE(HLT_RCU) +else + enable_module=$enable_rcu +fi +AM_CONDITIONAL(EN_HLT_RCU, test x$enable_rcu = xyes) +AC_MSG_CHECKING([whether to compile RCU library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIRCU_LIBS]) dnl ------------------------------------------------------------------ -AC_MSG_CHECKING([whether to compile phos library]) AH_TEMPLATE([HLT_PHOS],[hlt phos library]) -AC_ARG_ENABLE(phos, - [AC_HELP_STRING([--disable-phos], - [compile the phos library ])], - [], - [if test "x$have_aliroot" = "xno" ; then - enable_phos="no...requires.AliRoot" - elif ! test "x$have_alicalorawstream" = "xyes"; then - enable_phos="no...requires.AliRoot>v4-05-07" - else - enable_phos=yes - fi - ]) + +ALIPHOS_LIBS= +CHECK_HLTMODULE([phos], + [], [$ALIROOT_CPPFLAGS], + [RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS], + [PHOSUtils PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...requires.AliRoot>v4-05-07" + enable_phos=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_phos="yes" +else + have_alicalorawstream=no + if test ! "x$have_aliroot" = "xno" ; then + AC_LANG_PUSH(C++) + save_CPPFLAGS="$CPPFLAGS" + # this can not be used as AliCaloRawStream.h indirectly depends on TString.h + #AC_CHECK_HEADERS([AliCaloRawStream.h], [have_alicalorawstream=yes]) + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/PHOS" + AC_MSG_CHECKING([for AliCaloRawStream.h usability]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include + #include ], + [int i])], + [AC_DEFINE(HAVE_ALICALORAWSTREAM) + have_alicalorawstream=yes], + []) + AC_MSG_RESULT([$have_aliphosrecoparam]) + AC_MSG_CHECKING([for required EMC functionality in AliPHOSRecoParam.h ]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], + [AliPHOSRecoParam param; + param.GetEMCClusteringThreshold()])], + [have_aliphosrecoparam=yes], + [AC_DEFINE(HAVE_NOT_PHOSRECOPARAMEMC)]) + AC_MSG_RESULT([$have_alicalorawstream]) + AC_LANG_POP(C++) + CPPFLAGS="$save_CPPFLAGS" + fi + if test "x$have_alicalorawstream" != "xyes"; then + enable_phos="no...requires.AliRoot>v4-05-07" + else + enable_phos=$enable_module + fi +fi if test "x$enable_phos" = "xyes" ; then AC_DEFINE(HLT_PHOS) + ALIPHOS_LIBS=$ALIHLTMODULE_LIBS +else + enable_module=$enable_phos fi AM_CONDITIONAL(EN_HLT_PHOS, test x$enable_phos = xyes) -AC_MSG_RESULT([$enable_phos]) +AC_MSG_CHECKING([whether to compile PHOS library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIPHOS_LIBS]) dnl ------------------------------------------------------------------ -AC_MSG_CHECKING([whether to compile trd library]) AH_TEMPLATE([HLT_TRD],[hlt trd library]) -AC_ARG_ENABLE(trd, - [AC_HELP_STRING([--disable-trd], - [compile the trd library ])], - [], - [if test "x$have_aliroot" = "xno" ; then - enable_trd="no...requires.AliRoot" - else - enable_trd=yes - fi - ]) + +ALITRD_LIBS= +CHECK_HLTMODULE([trd], + [], [], + [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...requires.AliRoot>v4-07-Release" + enable_trd=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_trd="yes" +else + enable_trd=$enable_module + if test "x$enable_trd" = "xyes" ; then + AC_LANG_PUSH(C++) + save_CPPFLAGS="$CPPFLAGS" + 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 + # changed to AliTRDReconstructor::SetStreamLevel() due to revision 27797, Tue Aug 5 2008 + # changed to AliTRDReconstructor::SetClusters() according to revision 28069, Mon Aug 18 2008 + # changed to AliTRDCluster according to revision 30461, Thu Dec 18 2008 + # changed to AliTRDclusterizer::GetAddedClusters according to revision 31299, Wed Mar 4 2009 + AC_MSG_CHECKING([for required functions in AliTRDclusterizer]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], + [AliTRDclusterizer c; + c.GetAddedClusters()])], + [], + [enable_trd="no...requires.AliRoot>v4-16-Release"]) + AC_MSG_RESULT([$enable_trd]) + AC_LANG_POP(C++) + CPPFLAGS="$save_CPPFLAGS" + fi +fi if test "x$enable_trd" = "xyes" ; then AC_DEFINE(HLT_TRD) + ALITRD_LIBS=$ALIHLTMODULE_LIBS +else + enable_module=$enable_trd fi AM_CONDITIONAL(EN_HLT_TRD, test x$enable_trd = xyes) -AC_MSG_RESULT([$enable_trd]) +AC_MSG_CHECKING([whether to compile TRD library]) +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], + [FMDbase FMDrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...missing.headers" + enable_fmd=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_fmd="yes" +else + enable_fmd=$enable_module +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 ------------------------------------------------------------------ -AC_MSG_CHECKING([whether to compile dimuon library]) AH_TEMPLATE([HLT_MUON],[hlt dimuon library]) -AC_ARG_ENABLE(dimuon, - [AC_HELP_STRING([--disable-dimuon], - [compile the dimuon library ])], - [], - [if test "x$have_aliroot" = "xno" ; then - enable_dimuon="no...requires.AliRoot" - else - enable_dimuon=yes - fi - ]) -if test "x$enable_dimuon" = "xyes" ; then +ALIMUON_LIBS= +CHECK_HLTMODULE([dimuon], + [AliMpExMap.h AliMUONTriggerIO.h], + [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping], + [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [MUONcore MUONraw MUONbase MUONgeometry MUONmapping MUONcalib MUONsim MUONtrigger MUONevaluation MUONrec], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...requires.AliRoot>=v4-08-Release" + enable_muon=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_muon="yes" +else + enable_muon=$enable_module +fi + +if test "x$enable_muon" = "xyes" ; then AC_DEFINE(HLT_MUON) + ALIMUON_LIBS=$ALIHLTMODULE_LIBS + AC_LANG_PUSH(C++) + save_CPPFLAGS="$CPPFLAGS" + + 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 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]) + + dnl + dnl Check for AliMpPad::GetPositionX/Y + dnl change of implementation in MUON code + dnl revision 31769, Wed Apr 1 2009 + dnl + have_muon_alimppad_getposition=no + AC_MSG_CHECKING(for GetPosition methods of AliMpPad) + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I${ALICE_ROOT}/MUON/mapping" + LDFLAGS="$save_LDFLAGS -L${ROOTLIBDIR} $ALIROOT_LDFLAGS" + LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALIMUON_LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [AliMpPad pad; + pad.GetPositionX();])], + [have_muon_alimppad_getposition=yes], + [AC_DEFINE(HAVE_NOT_MUON_ALIMPPAD_GETPOSITION)]) + LIBS=$save_LIBS + AC_MSG_RESULT([$have_muon_alimppad_getposition]) + + CPPFLAGS="$save_CPPFLAGS" + + AC_LANG_POP(C++) +else + enable_module=$enable_muon fi -AM_CONDITIONAL(EN_HLT_MUON, test x$enable_dimuon = xyes) -AC_MSG_RESULT([$enable_dimuon]) +AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes) +AC_MSG_CHECKING([whether to compile MUON library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIMUON_LIBS]) + +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_TRIGGER],[hlt trigger library]) + +ALITRIGGER_LIBS= +CHECK_HLTMODULE([trigger], + [], [$ALIROOT_CPPFLAGS], + [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...header.missing" + enable_trigger=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_trigger="yes" +else + enable_trigger=$enable_module +fi + +if test "x$enable_trigger" = "xyes" ; then + AC_DEFINE(HLT_TRIGGER) + ALITRIGGER_LIBS=$ALIHLTMODULE_LIBS +else + enable_module=$enable_trigger +fi +AM_CONDITIONAL(EN_HLT_TRIGGER, test x$enable_trigger = xyes) +AC_MSG_CHECKING([whether to compile Trigger library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALITRIGGER_LIBS]) + +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_GLOBAL],[hlt global library]) + +ALIGLOBAL_LIBS= +CHECK_HLTMODULE([global], + [], [$ALIROOT_CPPFLAGS], + [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...header.missing" + enable_global=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_global="yes" +else + enable_global=$enable_module + if test "x$enable_global" = "xyes" ; then + AC_LANG_PUSH(C++) + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS" + AC_MSG_CHECKING([for required functions in AliESDtrack]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], + [AliESDtrack t; + t.SetGlobalChi2(0)])], + [], + [enable_global="no...requires.AliRoot>v4-17-Release"]) + AC_MSG_RESULT([$enable_global]) + AC_LANG_POP(C++) + CPPFLAGS="$save_CPPFLAGS" + fi +fi + +if test "x$enable_global" = "xyes" ; then + AC_DEFINE(HLT_GLOBAL) + ALIGLOBAL_LIBS=$ALIHLTMODULE_LIBS +else + enable_module=$enable_global +fi +AM_CONDITIONAL(EN_HLT_GLOBAL, test x$enable_global = xyes) +AC_MSG_CHECKING([whether to compile Global library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIGLOBAL_LIBS]) + +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_JET],[hlt jet library]) + +ALIFASTJET_HEADER= +ALIFASTJET_INCFLAGS= +ALIFASTJET_LIBS= +ALIFASTJET_LDFLAGS= +AC_ARG_WITH(fastjet, [installation path of the FASTJET package], + [ test "x$with_fastjet" != "xno" && export FASTJET=$with_fastjet], + [ test -n $FASTJET && with_fastjet=$FASTJET ]) + +if test "x$with_fastjet" != "x" && test "x$with_fastjet" != "xno" ; then + ALIFASTJET_INCFLAGS="-I${with_fastjet}/include" + ALIFASTJET_HEADER="PseudoJet.hh" + ALIFASTJET_LDFLAGS="-L${with_fastjet}/lib" + ALIFASTJET_LIBS="CGAL fastjet" +else + with_fastjet=no +fi + +CHECK_HLTMODULE([jet], + [$ALIFASTJET_HEADER], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/JETAN $ALIFASTJET_INCFLAGS], + [$ALIFASTJET_LIBS], [-L$ROOTLIBDIR $ALIFASTJET_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS], + [AOD ESD ANALYSIS ANALYSISalice JETAN JETANMC], + [-L$ROOTLIBDIR $ALIROOT_LDFLAGS -L$ALICE_ROOT/lib/tgt_$ALICE_TARGET], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...header.missing" + enable_jet=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_jet="yes" +else + enable_jet=$enable_module +fi + +if test "x$enable_jet" = "xyes" ; then + AC_DEFINE(HLT_JET) + ALIJET_LIBS="$ALIHLTMODULE_LIBS" + + if test "x$with_fastjet" != "xno"; then + AC_DEFINE(HAVE_FASTJET) + AC_DEFINE(WITHFASTJET) + ALIJET_LIBS="$ALIJET_LIBS -L$FASTJET_LDFLAGS" + fi + AC_MSG_CHECKING([compilation with FASTJET package]) + AC_MSG_RESULT($with_fastjet) + +else + enable_module=$enable_jet +fi + +AM_CONDITIONAL(EN_HLT_JET, test x$enable_jet = xyes) +AC_MSG_CHECKING([whether to compile Jet library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIJET_LIBS]) + +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_ITS],[hlt its library]) + +ALIITS_LIBS= +CHECK_HLTMODULE([its], + [AliITSCompressRawDataSDD.h], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS], + [Gui RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [ITSbase ITSrec ITSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...header.missing" + enable_its=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_its="yes" +else + enable_its=$enable_module + if test "x$enable_its" = "xyes" ; then + AC_LANG_PUSH(C++) + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/ITS" + # changes in the AliVertexer base class revision 26414, Thu Jun 5 15:36:18 2008 + # require AliVertexer::GetNominalPos() + AC_MSG_CHECKING([for required functions in AliITSVertexer]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], + [AliITSVertexerZ v; + v.GetNominalPos()])], + [], + [enable_its="no...requires.AliRoot>v4-13-Release"]) + AC_MSG_RESULT([$enable_its]) + AC_LANG_POP(C++) + CPPFLAGS="$save_CPPFLAGS" + fi +fi + +if test "x$enable_its" = "xyes" ; then + AC_DEFINE(HLT_ITS) + ALIITS_LIBS=$ALIHLTMODULE_LIBS +else + enable_module=$enable_its +fi +AM_CONDITIONAL(EN_HLT_ITS, test x$enable_its = xyes) +AC_MSG_CHECKING([whether to compile ITS library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIITS_LIBS]) + +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_EMCAL],[hlt emcal library]) + +ALIEMCAL_LIBS= +CHECK_HLTMODULE([emcal], + [], [$ALIROOT_CPPFLAGS -I$ALICE_ROOT/EMCAL], + [RAWDatasim], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [EMCALrec EMCALsim EMCALbase], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...header.missing" + enable_emcal=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_emcal="yes" +else + enable_emcal=$enable_module +fi + +if test "x$enable_emcal" = "xyes" ; then + AC_DEFINE(HLT_EMCAL) + ALIEMCAL_LIBS=$ALIHLTMODULE_LIBS +else + enable_module=$enable_emcal +fi +AM_CONDITIONAL(EN_HLT_EMCAL, test x$enable_emcal = xyes) +AC_MSG_CHECKING([whether to compile EMCAL library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALIEMCAL_LIBS]) + +dnl ------------------------------------------------------------------ +AH_TEMPLATE([HLT_COMP],[hlt comp library]) + +ALICOMP_LIBS= +CHECK_HLTMODULE([comp], + [], [$ALIROOT_CPPFLAGS], + [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS], + [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], + [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS]) + +if test "x$enable_module" = "xmissheader"; then + enable_module="no...header.missing" + enable_comp=$enable_module +elif test "x$enable_module" = "xforce"; then + enable_comp="yes" +else + enable_comp=$enable_module +fi + +if test "x$enable_comp" = "xyes" ; then + AC_DEFINE(HLT_COMP) + ALICOMP_LIBS=$ALIHLTMODULE_LIBS +else + enable_module=$enable_comp +fi +AM_CONDITIONAL(EN_HLT_COMP, test x$enable_comp = xyes) +AC_MSG_CHECKING([whether to compile comp library]) +AC_MSG_RESULT([$enable_module]) +AC_SUBST([ALICOMP_LIBS]) dnl ------------------------------------------------------------------ AC_MSG_CHECKING([whether to disable AliRoot logging]) @@ -650,7 +1233,6 @@ dnl AC_ARG_VAR(DOXYGEN, The Documentation Generator) AC_PATH_PROG(PERL, perl) AC_PATH_PROG(DOXYGEN, doxygen) -AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x") AC_ARG_ENABLE(dot, [AC_HELP_STRING([--enable-dot], [enable dot documentation generator])], @@ -662,6 +1244,31 @@ if test "x$DOT" != "x" && test "x$enable_dot" = "xyes" ; then HAVE_DOT=YES DOT_PATH=`dirname $DOT` fi + +AC_MSG_CHECKING([for documentation mode]) +AC_ARG_ENABLE(doc, + [AC_HELP_STRING([--disable-doc], + [disable documentation build; monolithic build --enable-doc=mono ])], + [],[enable_doc=modules]) + +if test "x$DOXYGEN" = "x" ; then + enable_doc=no.doxygen +elif test "x$enable_doc" = "xyes" ; then + enable_doc=yes +elif test ! "x$enable_doc" = "xmono" && \ + test ! "x$enable_doc" = "xmodules" && \ + test ! "x$enable_doc" = "xno"; then + enable_doc=no + AC_MSG_WARN([unknown option]) +fi +if test "x$enable_doc" = "xno" ; then + enable_doc=off + DOXYGEN= +fi + +AC_MSG_RESULT([$enable_doc]) +AM_CONDITIONAL(MONOLITHIC_DOC, test "x$enable_doc" = "xmono") +AM_CONDITIONAL(HAVE_DOXYGEN, test ! "x$DOXYGEN" = "x") AC_SUBST([HAVE_DOT]) AC_SUBST([DOT_PATH]) @@ -673,29 +1280,116 @@ dnl fi dnl AC_SUBST([HAVE_SRC_SUBDIR]) dnl ------------------------------------------------------------------ -dnl inatallation directory for libraries -dnl -if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then -libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET -AC_MSG_NOTICE([libdir set to $libdir]) -fi -dnl ------------------------------------------------------------------ +AC_MSG_NOTICE([---------------------------------------------- ]) +AC_MSG_NOTICE([ build summary ]) +AC_MSG_NOTICE([---------------------------------------------- ]) + AC_CONFIG_FILES([Makefile BASE/Makefile BASE/setenv.sh BASE/setenv.csh + BASE/HOMER/Makefile BASE/util/Makefile + BASE/util/test/Makefile BASE/interface/Makefile - SampleLib/Makefile - TPCLib/Makefile - TPCLib/mapping2array.cxx - TPCLib/OnlineDisplay/Makefile - PHOS/Makefile - TRD/Makefile - MUON/Makefile + BASE/test/Makefile + BASE/interface/test/Makefile doc/Makefile - doc/doxygen.conf]) + doc/doxygen.conf + doc/doxymodule.conf]) + +dnl AliRoot and installation directory for libraries +dnl +AC_MSG_NOTICE([AliRoot: $have_aliroot]) +AM_CONDITIONAL(HAVE_ALIROOT, test "x$have_aliroot" != "xno" ) +if test "x$have_aliroot" != "xno"; then + AC_CONFIG_FILES([sim/Makefile + rec/Makefile + rec/test/Makefile + rec/startAliEVE-barrel-tracks.sh + shuttle/Makefile + pendolino/Makefile + benchmark/Makefile + QA/Makefile + ]) +fi +if test "x$prefix" != "xNONE" && test $ALICE_ROOT = $prefix ; then +libdir=\${exec_prefix}/lib/tgt_$ALICE_TARGET +AC_MSG_NOTICE([libdir set to $libdir]) +fi + +AC_MSG_NOTICE([compile sample library: $enable_sample]) +if test "x$enable_sample" = "xyes"; then + AC_CONFIG_FILES([SampleLib/Makefile]) +fi + +AC_MSG_NOTICE([compile RCU library: $enable_rcu]) +if test "x$enable_rcu" = "xyes"; then + AC_CONFIG_FILES([RCU/Makefile + RCU/test/Makefile + ]) +fi + +AC_MSG_NOTICE([compile TPC library: $enable_tpc]) +if test "x$enable_tpc" = "xyes"; then + AC_CONFIG_FILES([TPCLib/Makefile + TPCLib/test/Makefile + TPCLib/mapping2array.cxx + TPCLib/EVE/Makefile + TPCLib/calibration/Makefile + ]) +fi + +AC_MSG_NOTICE([compile PHOS library: $enable_phos]) +if test "x$enable_phos" = "xyes"; then + AC_CONFIG_FILES([PHOS/Makefile]) +fi + +AC_MSG_NOTICE([compile TRD library: $enable_trd]) +if test "x$enable_trd" = "xyes"; then + AC_CONFIG_FILES([TRD/Makefile]) +fi + +AC_MSG_NOTICE([compile FMD library: $enable_fmd]) +if test "x$enable_fmd" = "xyes"; then + AC_CONFIG_FILES([FMD/Makefile]) +fi + +AC_MSG_NOTICE([compile MUON library: $enable_muon]) +if test "x$enable_muon" = "xyes"; then + AC_CONFIG_FILES([MUON/Makefile]) +fi + +AC_MSG_NOTICE([compile ITS library: $enable_its]) +if test "x$enable_its" = "xyes"; then + AC_CONFIG_FILES([ITS/Makefile]) +fi + +AC_MSG_NOTICE([compile EMCAL library: $enable_emcal]) +if test "x$enable_emcal" = "xyes"; then + AC_CONFIG_FILES([EMCAL/Makefile]) +fi + +AC_MSG_NOTICE([compile trigger library: $enable_trigger]) +if test "x$enable_trigger" = "xyes"; then + AC_CONFIG_FILES([trigger/Makefile + trigger/test/Makefile]) +fi +AC_MSG_NOTICE([compile global library: $enable_global]) +if test "x$enable_global" = "xyes"; then + AC_CONFIG_FILES([global/Makefile]) +fi + +AC_MSG_NOTICE([compile jet library: $enable_jet]) +if test "x$enable_jet" = "xyes"; then + AC_CONFIG_FILES([JET/Makefile]) +fi + +AC_MSG_NOTICE([compile comp library: $enable_comp]) +if test "x$enable_comp" = "xyes"; then + AC_CONFIG_FILES([comp/Makefile]) +fi AC_OUTPUT dnl