]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/make.dict
bugfix: crash when receiving a DDL List block
[u/mrichter/AliRoot.git] / HLT / make.dict
index d1430e7a69d8b28f6a5f9f6a82c46f7419995a98..ce7b47c53c7dcdee6f72f5ce4b389e496e8149ca 100644 (file)
@@ -1,5 +1,15 @@
 # Makefile template for ROOT dictionary generation
 #
+# This is a common include file which handles generation of the ROOT dictionary
+# files. It creates:
+# - the dict.cxx              (variable DICTCPP)
+# - the dict.h                (variable DICTCPP:.cxx=.h)
+# - optional: the linkdef.h   (variable MODULE postfixed by -LinkDef.h)
+#
+# If the MODULE_DHDR variable is set in the package definition lib<module>.pkg
+# to a custom LinkDef file, the automatic generation of the LinkDef header is
+# disabled. Instead, the specified one is used.
+#
 # usage:
 #  1. set variable CLASS_HDRS to the class header files
 #  2. set DICTCPP variable to dictionary c++ file name
 #
 # Author: Matthias.Richter@ift.uib.no
 #
-DICTDEF                                =  $(MODULE)-LinkDef.h
-DICTFILES                      =  $(DICTCPP) $(DICTCPP:.cxx=.h) $(DICTDEF)
+DICTAUTODEF                    =  $(MODULE)-LinkDef.h
+DICTDEF                                =  $(shell if test "x$(MODULE_DHDR)" = "x"; then echo $(DICTAUTODEF); else echo $(MODULE_DHDR); fi)
+DICTFILES                      =  $(DICTCPP) $(DICTCPP:.cxx=.h) $(DICTAUTODEF)
 DICTHEADERS                    =  $(CLASS_HDRS)
 
 CLEANFILES                     += $(DICTFILES)
 
+EXTRA_DIST                     += $(MODULE_DHDR)
+
 
 $(DICTCPP:.cxx=.h): $(DICTCPP)
        if test $@ ; then : ; else rm -f $< ; $(MAKE) $(MAKEFLAGS) $< ; fi 
 
 $(DICTCPP): $(DICTHEADERS:%=$(srcdir)/%) $(DICTDEF)
        if [ -x $(ROOTCINT) ]; then $(ROOTCINT) -f $@ -c $(CPPFLAGS) $(AM_CPPFLAGS) $(DEFS) $(foreach i, $(DICTINCLUDE), $(i)) $^ ; fi
-$(DICTDEF): Makefile.am $(PKGDEF)
+
+$(DICTAUTODEF): Makefile.am $(PKGDEF)
        @echo '//automatically generated ROOT DICT definition' > $@
        @echo '//!!! DO NOT EDIT THIS FILE !!!' >> $@
        @echo '//add further class definitions to the CLASS_HDRS variable in Makefile.am' >> $@
@@ -35,5 +49,5 @@ $(DICTDEF): Makefile.am $(PKGDEF)
        @echo '#pragma link off all classes;' >> $@
        @echo '#pragma link off all functions;' >> $@
        @$(foreach i, $(DICTHEADERS:.h=), \
-          echo "#pragma link C++ class "`echo $(i)| sed -e 's|.*/||'`";" >> $@ ;)
+          echo "#pragma link C++ class "`echo $(i)| sed -e 's|.*/||'`"+;" >> $@ ;)
        @echo '#endif' >> $@