dnl framework and components
dnl
dnl ------------------------------------------------------------------
-AC_INIT([Alice High Level Trigger] , [0.9-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
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
ALIROOT_LIBS=
fi
+ dnl
+ dnl ESD copy function added May 9 2008 rev 25667
+ dnl
+ have_esd_copy=no
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliESDEvent.h>],
+ [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])
+
dnl
dnl required header files and libraries for modules
dnl
[have_alitpc=no
ALITPC_LIBS= ])
fi
- AC_MSG_RESULT($have_alitpc)
+ AC_MSG_RESULT([$have_alitpc])
+
+ have_tpc_load_clusters=no
+ AC_MSG_CHECKING(for on-line features of TPC offline tracker)
+ ALITPC_LIBS="-lGui -lTPCbase -lTPCrec"
+ LIBS="$save_LIBS $ROOTLIBS $ALIROOT_LIBS $ALITPC_LIBS"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliTPCtrackerMI.h>
+ #include <TObjArray.h>],
+ [AliTPCtrackerMI tracker;
+ TObjArray* array=NULL;
+ tracker.LoadClusters(array);])],
+ [have_tpc_load_clusters=yes],
+ [AC_DEFINE(HAVE_NOT_TPC_LOAD_CLUSTERS)])
+ AC_MSG_RESULT([$have_tpc_load_clusters])
+
fi
AC_CHECK_HEADERS([AliTPCCalibPulser.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPULSER)])
AC_CHECK_HEADERS([AliTPCCalibPedestal.h], [], [AC_DEFINE(HAVE_NOT_ALITPCCALIBPEDESTAL)])
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([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,
[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])
if test "x$enable_tpc" = "xyes" ; then
AC_DEFINE(HLT_TPC)
+else
+ enable_module=$enable_tpc
fi
AM_CONDITIONAL(EN_HLT_TPC, test x$enable_tpc = xyes)
-AC_MSG_CHECKING([whether to compile tpc library])
+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="no...missing.headers"
+elif test "x$have_alircu" = "xno" ; then
+ enable_module="no...requires.AliRoot.RAW.libraries"
+ enable_rcu="no...requires.AliRoot.RAW.libraries"
+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"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <AliAltroDecoder.h>],
+ [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 ------------------------------------------------------------------
AH_TEMPLATE([HLT_PHOS],[hlt phos library])
CHECK_HLTMODULE([phos],
[], [$ALIROOT_CPPFLAGS],
[RAWDatasim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS], [$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS],
- [PHOSbase PHOSrec PHOSsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
+ [PHOSbase PHOSrec PHOSsim PHOSshuttle], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
[$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
if test "x$enable_module" = "xmissheader"; then
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_CHECKING([whether to compile phos library])
+AC_MSG_CHECKING([whether to compile PHOS library])
AC_MSG_RESULT([$enable_module])
AC_SUBST([ALIPHOS_LIBS])
ALITRD_LIBS=
CHECK_HLTMODULE([trd],
[], [],
- [MLP], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
+ [MLP XMLParser], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
[TRDbase TRDrec TRDsim], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
[$ROOTLIBS $ADD_ROOTLIBS $ALIROOT_LIBS])
AC_LANG_PUSH(C++)
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$save_CPPFLAGS $ALIROOT_CPPFLAGS -I$ALICE_ROOT/TRD"
- AC_MSG_CHECKING([for required functions in AliTRDclusterizer])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AliTRDclusterizer.h>],
- [AliTRDclusterizer c;
- c.SetRawVersion(0)])],
+ # 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.SetSeedingOn()])],
[],
- [enable_trd="no...requires.AliRoot>v4-07-Release"])
+ [enable_trd="no...requires.AliRoot>v4-13-Release"])
AC_MSG_RESULT([$enable_trd])
AC_LANG_POP(C++)
CPPFLAGS="$save_CPPFLAGS"
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_CHECKING([whether to compile trd library])
+AC_MSG_CHECKING([whether to compile TRD library])
AC_MSG_RESULT([$enable_module])
AC_SUBST([ALITRD_LIBS])
CHECK_HLTMODULE([dimuon],
[AliMpExMap.h AliMUONTriggerIO.h],
[$ALIROOT_CPPFLAGS -I$ALICE_ROOT/MUON -I$ALICE_ROOT/MUON/mapping],
- [], [-L$ROOTLIBDIR], [$ROOTLIBS $ADD_ROOTLIBS],
- [], [-L$ROOTLIBDIR $ALIROOT_LDFLAGS],
+ [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
if test "x$enable_muon" = "xyes" ; then
AC_DEFINE(HLT_MUON)
ALIMUON_LIBS=$ALIHLTMODULE_LIBS
+else
+ enable_module=$enable_muon
fi
AM_CONDITIONAL(EN_HLT_MUON, test x$enable_muon = xyes)
-AC_MSG_CHECKING([whether to compile muon library])
+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="no...header.missing"
+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_ITS],[hlt its library])
+
+ALIITS_LIBS=
+CHECK_HLTMODULE([its],
+ [], [$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_its="no...header.missing"
+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.h>],
+ [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_COMP],[hlt comp library])
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])
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/HOMER/Makefile
BASE/util/Makefile
BASE/interface/Makefile
- sim/Makefile
- rec/Makefile
- SampleLib/Makefile
- TPCLib/Makefile
- TPCLib/mapping2array.cxx
- TPCLib/OnlineDisplay/Makefile
- PHOS/Makefile
- TRD/Makefile
- MUON/Makefile
- trigger/Makefile
- comp/Makefile
+ BASE/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
+ shuttle/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/OnlineDisplay/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 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 trigger library: $enable_trigger])
+if test "x$enable_trigger" = "xyes"; then
+ AC_CONFIG_FILES([trigger/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