enhanced HLT build system: EINCLUDE from pkg definition determines include paths
[u/mrichter/AliRoot.git] / HLT / SampleLib / Makefile.am
CommitLineData
b521659f 1# $Id$
2# Makefile template for the Alice HLT sample library
3
6c1a9d9e 4# This files defines the autotools-based build system of the
5# libAliHLTSample library. All lines starting with a '#' are comments.
6# Note: Source files definitions must be made in libAliHLTSample.pkg
7# For further information refer to the README.
b22e91eb 8
b521659f 9MODULE = AliHLTSample
10
014e1e83 11EXTRA_DIST = tutorial.c
b521659f 12
6c1a9d9e 13# include the pkg definition which actually contains the source
14# file definitions
242bb794 15MODDIR = $(top_srcdir)
16PKGDEF = $(MODDIR)/libAliHLTSample.pkg
2d7ff710 17include $(top_srcdir)/libAliHLTSample.pkg
b521659f 18
34e89120 19
b521659f 20# library definition
6c1a9d9e 21# The lib_LTLIBRARIES variable is a fixed variable of the autotools build
22# system. All libraries defined by the Makefile template have to be added
23# here. Since we aim for separated directories for different libraries
24# there will be only one library.
b521659f 25lib_LTLIBRARIES = libAliHLTSample.la
26
6c1a9d9e 27# version info for the library
28# The libtool program is used to created the library, a version number can
29# be specified by using the -version-info flag. This flag accepts an argument
30# of the form current[:revision[:age]].
31# If either revision or age are omitted, they default to 0. Also note that
32# age must be less than or equal to the current interface number. Here are a
33# set of rules to help you update your library version information:
34#
35# 1. Start with version information of 0:0:0 for each libtool library.
36# 2. Update the version information only immediately before a public release
37# of your software. More frequent updates are unnecessary, and only
38# guarantee that the current interface number gets larger faster.
39# 3. If the library source code has changed at all since the last update,
40# then increment revision (c:r:a becomes c:r+1:a).
41# 4. If any interfaces have been added, removed, or changed since the last
42# update, increment current, and set revision to 0.
43# 5. If any interfaces have been added since the last public release, then
44# increment age.
45# 6. If any interfaces have been removed since the last public release, then
46# set age to 0.
47LIBRARY_VERSION = '1:0:0'
48
b521659f 49# library sources
6c1a9d9e 50# The source files are specified in libAliHLTSample.pkg
2d7ff710 51libAliHLTSample_la_SOURCES = $(MODULE_SRCS)
b521659f 52
6c1a9d9e 53# library headers
54# The header files are specified in libAliHLTSample.pkg
2d7ff710 55noinst_HEADERS = $(MODULE_HDRS)
b521659f 56
6c1a9d9e 57# compilation flags of the library
58# This is the place to add further include directories if you are
34e89120 59# using external modules. The AliRoot/STEER and ROOT directories
6c1a9d9e 60# are the default include directories.
34e89120 61# Include paths within the HLT modules are automatically taken from the
62# EINCLUDE variable of the pkg definition
63# other AliRoot dependencies might need to added
64AM_CPPFLAGS = -DMODULE=$(MODULE) \
65 @HLTBASE_CPPFLAGS@ \
6c1a9d9e 66 @ALIROOT_CPPFLAGS@ \
34e89120 67 @ROOTCFLAGS@ \
68 $(foreach i, $(EINCLUDE), \
69 $(shell echo $(i) | sed -e "/HLT\//!d" -e "s|HLT/|-I$(top_srcdir)/|")) \
70 $(foreach i, $(EINCLUDE), \
71 $(shell echo $(i) | sed -e "/HLT\//d" -e "s|^|-I$(ALICE_ROOT)/|"))
6c1a9d9e 72
73# linking flags of the library
74# This is the place to add further libraries if you are
75# using external modules. The AliRoot, ROOT and HLT base libraries
76# are added by default.
77# Also the version of the library
78libAliHLTSample_la_LDFLAGS = -L@ROOTLIBDIR@ \
79 @ROOTLIBS@ \
80 @HLTBASE_LDFLAGS@ \
81 @ALIROOT_LDFLAGS@ \
82 @ALIROOT_LIBS@ \
83 -version-info $(LIBRARY_VERSION)
b521659f 84
842fd76a 85# automatic generation of data and time of library build
86COMPILE_INFO = AliHLTSampleCompileInfo.cxx
87
b521659f 88# set the file name for the generated root dictionary
89DICTCPP = AliHLTSample-DICT.cxx
842fd76a 90nodist_libAliHLTSample_la_SOURCES= $(COMPILE_INFO) \
91 $(DICTCPP)
b521659f 92
842fd76a 93CLEANFILES = $(COMPILE_INFO)
b521659f 94
6c1a9d9e 95###############################################################################
96#
97# do not change anything below this line
98#
99DICTDEF = $(MODULE)-LinkDef.h
100DICTFILES = $(DICTCPP) $(DICTCPP:.cxx=.h) $(DICTDEF)
101DICTHEADERS = $(CLASS_HDRS)
102
103CLEANFILES += $(DICTFILES)
104
105
106$(DICTCPP:.cxx=.h): $(DICTCPP)
107 if test $@ ; then : ; else rm -f $< ; $(MAKE) $(MAKEFLAGS) $< ; fi
108
109$(DICTCPP): $(DICTHEADERS:%=$(srcdir)/%) $(DICTDEF)
110 if [ -x $(ROOTCINT) ]; then $(ROOTCINT) -f $@ -c $(CPPFLAGS) $(AM_CPPFLAGS) $(DEFS) $(foreach i, $(DICTINCLUDE), $(i)) $^ ; fi
90ebac25 111$(DICTDEF): Makefile.am $(PKGDEF)
6c1a9d9e 112 @echo '//automatically generated ROOT DICT definition' > $@
113 @echo '//!!! DO NOT EDIT THIS FILE !!!' >> $@
114 @echo '//add further class definitions to the CLASS_HDRS variable in Makefile.am' >> $@
115 @echo '#ifdef __CINT__' >> $@
116 @echo '#pragma link off all globals;' >> $@
117 @echo '#pragma link off all classes;' >> $@
118 @echo '#pragma link off all functions;' >> $@
119 @$(foreach i, $(DICTHEADERS), \
120 echo "#pragma link C++ class `echo $(i) | sed -e "s|.*/||g" -e "s|\.h.*||"`;" >> $@ ;)
121 @echo '#endif' >> $@
842fd76a 122
123$(COMPILE_INFO): $(libAliHLTSample_la_SOURCES) $(pkginclude_HEADERS) $(noinst_HEADERS) Makefile.am
124 @echo '//automatically generated compilation info' > $@
125 @echo '//!!! DO NOT EDIT THIS FILE !!!' >> $@
126 @echo '//add changes in Makefile.am' >> $@
127 @echo 'extern "C" void CompileInfo( char*& date, char*& time)' >> $@
128 @echo '{date=__DATE__; time=__TIME__; return;}' >> $@