]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/Makefile
More forfard declarations
[u/mrichter/AliRoot.git] / ANALYSIS / Makefile
index b4479f1b2e4639922d8b44b6ff57ae48d0ac2d7e..fd1baa0891f2589c6e62949b48da0774dad1291d 100644 (file)
-PACKAGE = ANALYSIS_NEW
 
 include Makefile.arch
-include lib$(PACKAGE).pkg
 
-SRCS         += G__$(PACKAGE).cxx
-OBJS          = $(SRCS:.cxx=.o)
+PACKAGE = ANALYSISalice
 
-lib$(PACKAGE).so: $(OBJS)
+default-target: lib$(PACKAGE).so
+
+ALICEINC      = -I.
+
+# add include paths from other par files
+ifneq ($(ESD_INCLUDE),)
+   ALICEINC += -I../$(ESD_INCLUDE)
+endif
+
+ifneq ($(AOD_INCLUDE),)
+   ALICEINC += -I../$(AOD_INCLUDE)
+endif
+
+ifneq ($(STEERBase_INCLUDE),)
+   ALICEINC += -I../$(STEERBase_INCLUDE)
+endif
+
+ifneq ($(ANALYSIS_INCLUDE),)
+   ALICEINC += -I../$(ANALYSIS_INCLUDE)
+endif
+
+ifneq ($(OADB_INCLUDE),)
+   ALICEINC += -I../$(OADB_INCLUDE)
+endif
+
+ifneq ($(ANALYSISalice_INCLUDE),)
+   ALICEINC += -I../$(ANALYSISalice_INCLUDE)
+endif
+
+# only if no par file was loaded before
+#ifeq ($(ALICEINC),-I.)
+  ifneq ($(ALICE_ROOT),)
+    ALICEINC += -I$(ALICE_ROOT)/include -I$(ALICE_ROOT)/ANALYSIS/Tender -I$(ALICE_ROOT)/TOF -I$(ALICE_ROOT)/TRD/Cal -I$(ALICE_ROOT)/VZERO -I$(ALICE_ROOT)/TPC -I$(ALICE_ROOT)/T0 -I$(ALICE_ROOT)/EMCAL
+  endif
+#endif
+
+ifeq ($(PLATFORM),macosx)
+ROOTLIBDIR     := $(shell $(RC) --libdir)
+ifeq ($(PACKAGE),ANALYSIS)
+   PACKLDFLAGS = $(STEERBase_LIBS) $(ESD_LIBS) $(AOD_LIBS) -L$(ROOTLIBDIR) -lXMLParser
+endif
+ifeq ($(PACKAGE),ANALYSISalice) 
+   PACKLDFLAGS = $(STEERBase_LIBS) $(ESD_LIBS) $(AOD_LIBS) $(ANALYSIS_LIBS) $(OADB_LIBS) -L$(ROOTLIBDIR) -lXMLIO -lEG -lTreePlayer
+endif
+endif
+
+CHECKXML      := $(shell root-config --has-xml)
+
+ifeq ($(CHECKXML),yes)
+  CXXFLAGS += -DWITHXML
+  CINTFLAGS += -DWITHXML
+endif
+
+CXXFLAGS += $(ALICEINC) -g
+
+SRCS     = $(wildcard *.cxx)
+HDRS     = $(SRCS:.cxx=.h)
+DHDR     = $(PACKAGE)LinkDef.h
+
+DHDR_ANALYSIS := $(DHDR)
+HDRS_ANALYSIS := $(HDRS)
+SRCS_ANALYSIS := $(SRCS) G__$(PACKAGE).cxx
+OBJS_ANALYSIS := $(SRCS_ANALYSIS:.cxx=.o)
+
+PARFILE       = $(PACKAGE).par
+
+
+lib$(PACKAGE).so: $(OBJS_ANALYSIS)
        @echo "Linking" $@ ...
        @/bin/rm -f $@
 ifeq ($(PLATFORM),macosx)
-       @$(LD) -bundle -undefined $(UNDEFOPT) $(LDFLAGS) $^ -o $@
+       $(LD) $(SOFLAGS)$@ $(LDFLAGS) $^ $(OutPutOpt) $@ $(PACKLDFLAGS) $(EXPLLINKLIBS)
 else
-       @$(LD) $(SOFLAGS) $(LDFLAGS) $^ -o $@
+       $(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(PACKLDFLAGS) $(EXPLLINKLIBS)
 endif
        @chmod a+x $@
        @echo "done"
 
 %.o:    %.cxx %.h
-       $(CXX) $(CXXFLAGS) -c $< -o $@
+       $(CXX) $(CXXFLAGS) $(PACKCXXFLAGS) -c $< -o $@
 
 clean:
-       @rm -f $(OBJS) *.so G__$(PACKAGE).*
+       @rm -f $(OBJS_ANALYSIS) *.so G__$(PACKAGE).* $(PARFILE)
 
 G__$(PACKAGE).cxx G__$(PACKAGE).h: $(HDRS) $(DHDR)
        @echo "Generating dictionary ..."
-       rootcint -f $@ -c $(ALICEINC) $^
+       rootcint -f $@ -c $(CINTFLAGS) $(ALICEINC) $^
+
+### CREATE PAR FILE
+
+$(PARFILE): $(patsubst %,$(PACKAGE)/%,$(filter-out G__%, $(HDRS_ANALYSIS) $(SRCS_ANALYSIS) $(DHDR_ANALYSIS) Makefile Makefile.arch PROOF-INF))
+       @echo "Creating archive" $@ ...
+       @tar cfzh $@ $(PACKAGE)
+       @rm -rf $(PACKAGE)
+       @echo "done"
+
+$(PACKAGE)/Makefile: Makefile #.$(PACKAGE)
+       @echo Copying $< to $@ with transformations
+       @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+       @sed 's/include \$$(ROOTSYS)\/test\/Makefile.arch/include Makefile.arch/' < $^ > $@
+
+$(PACKAGE)/Makefile.arch: $(ROOTSYS)/test/Makefile.arch
+       @echo Copying $< to $@
+       @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+       @cp -a $^ $@
+
+$(PACKAGE)/PROOF-INF: PROOF-INF.$(PACKAGE)
+       @echo Copying $< to $@
+       @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+       @cp -a -r $^ $@
+
+$(PACKAGE)/%: %
+       @echo Copying $< to $@
+       @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+       @cp -a $< $@
 
+test-%.par: %.par
+       @echo "INFO: The file $< is now tested, in case of an error check in par-tmp."
+       @mkdir -p par-tmp
+       @cd par-tmp; tar xfz ../$<;     cd $(subst .par,,$<); PROOF-INF/BUILD.sh
+       @rm -rf par-tmp
+       @echo "INFO: Testing succeeded (already cleaned up)"