# FORTRAN Objectrs
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Sources
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Sources
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# Global Macros
# Target
-PROGRAM = $(ALICE_ROOT)/bin/aliroot
+PROGRAM = $(BINDIR)/aliroot
default: $(PROGRAM)
depend: $(ALLSRCS)
-$(ALICE_ROOT)/bin/aliroot: $(OBJS) $(COBJS) $(FOBJS)
+$(BINDIR)/aliroot: $(OBJS) $(COBJS) $(FOBJS)
LIBS = $(ALILIBS) $(G3LIBS) $(CLIBS) $(GLIBS) -lEG -lEGPythia -lpythia -lpdf
DICT = CASTORCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libCASTOR.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libCASTOR.a
+SLIBRARY = $(LIBDIR)/libCASTOR.$(SL)
+ALIBRARY = $(LIBDIR)/libCASTOR.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libCASTOR.$(SL): $(OBJS)
+$(LIBDIR)/libCASTOR.$(SL): $(OBJS)
$(DICT): $(HDRS)
#include "AliGenerator.h"
#include "AliGenCocktail.h"
-#include "TGeant3.h"
#include "AliRun.h"
#include <TDirectory.h>
#include <TFile.h>
#include "AliGenParam.h"
#include "AliGenMUONlib.h"
#include "AliRun.h"
-#include "TGeant3.h"
#include "AliPythia.h"
#include <TDirectory.h>
#include <TFile.h>
#include "AliGenerator.h"
#include "AliGenPythia.h"
-#include "TGeant3.h"
#include "AliRun.h"
#include "AliPythia.h"
#include <TDirectory.h>
DICT = EVGENCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libEVGEN.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libEVGEN.a
+SLIBRARY = $(LIBDIR)/libEVGEN.$(SL)
+ALIBRARY = $(LIBDIR)/libEVGEN.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libEVGEN.$(SL): $(OBJS)
+$(LIBDIR)/libEVGEN.$(SL): $(OBJS)
$(DICT): $(HDRS)
GCXXSRC = $(wildcard $(patsubst %,%/*.cxx,$(GDIRS)))
GSRC = $(GFSRC) $(GCSRC)
-GFOBJ = $(GFSRC:.F=.o)
-GCOBJ = $(GCSRC:.c=.o)
-GCXXOBJ = $(GCXXSRC:.cxx=.o)
+GFOBJ = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(GFSRC))
+GCOBJ = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(GCSRC))
+GCXXOBJ = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(GCXXSRC))
GOBJ = $(GFOBJ) $(GCOBJ) $(GCXXOBJ)
XFSRC = $(wildcard $(patsubst %,%/*.F,$(XDIRS)))
XCSRC = $(wildcard $(patsubst %,%/*.c,$(XDIRS)))
XSRC = $(XFSRC) $(XCSRC) $(XCXXSRC)
-XFOBJ = $(XFSRC:.F=.o)
-XCOBJ = $(XCSRC:.c=.o)
+XFOBJ = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(XFSRC))
+XCOBJ = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(XCSRC))
XOBJ = $(XFOBJ) $(XCOBJ) $(XCXXOBJ)
SRCS = $(GSRC) $(XSRC)
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libgeant321.$(SL) $(ALICE_ROOT)/lib/libgxint321.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libgeant321.a $(ALICE_ROOT)/lib/libgxint321.a
+SLIBRARY = $(LIBDIR)/libgeant321.$(SL) $(LIBDIR)/libgxint321.$(SL)
+ALIBRARY = $(LIBDIR)/libgeant321.a $(LIBDIR)/libgxint321.a
ifeq ($(PLATFORM),alpha)
default: $(ALIBRARY)
default: $(SLIBRARY)
endif
-$(ALICE_ROOT)/lib/libgeant321.$(SL) $(ALICE_ROOT)/lib/libgeant321.a: $(GOBJ)
-$(ALICE_ROOT)/lib/libgxint321.$(SL) $(ALICE_ROOT)/lib/libgxint321.$(SL): $(XOBJ)
+$(LIBDIR)/libgeant321.$(SL) $(LIBDIR)/libgeant321.a: $(GOBJ)
+$(LIBDIR)/libgxint321.$(SL) $(LIBDIR)/libgxint321.$(SL): $(XOBJ)
depend: $(SRCS)
DICT = ITSCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libITS.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libITS.a
+SLIBRARY = $(LIBDIR)/libITS.$(SL)
+ALIBRARY = $(LIBDIR)/libITS.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libITS.$(SL): $(OBJS) $(FOBJS)
+$(LIBDIR)/libITS.$(SL): $(OBJS)
$(DICT): $(HDRS)
mathlib/gen/d/gauss.F \
mathlib/gen/d/gauss128.F \
mathlib/gen/d/gauss64.F \
+ mathlib/gen/g/prob.F \
mathlib/gen/n/mtlprt.F \
mathlib/gen/n/mtlset.F \
mathlib/gen/v/ranlux.F \
CXXSRC =
-FOBJ = $(FSRC:.F=.o)
-COBJ = $(CSRC:.c=.o)
-CXXOBJ = $(CXXSRC:.cxx=.o)
+FOBJ = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRC))
+COBJ = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRC))
+CXXOBJ = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(CXXSRC))
SRCS = $(FSRC) $(CSRC) $(CXXSRC)
OBJS = $(FOBJ) $(COBJ) $(CXXOBJ)
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libminicern.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libminicern.a
+SLIBRARY = $(LIBDIR)/libminicern.$(SL)
+ALIBRARY = $(LIBDIR)/libminicern.a
ifeq ($(PLATFORM),alpha)
default: $(ALIBRARY)
default: $(SLIBRARY)
endif
-$(ALICE_ROOT)/lib/libminicern.$(SL): $(OBJS)
-$(ALICE_ROOT)/lib/libminicern.a: $(OBJS)
+$(LIBDIR)/libminicern.$(SL): $(OBJS)
+$(LIBDIR)/libminicern.a: $(OBJS)
depend: $(SRCS)
DICT = MUONCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# Fortran sources
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libMUON.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libMUON.a
+SLIBRARY = $(LIBDIR)/libMUON.$(SL)
+ALIBRARY = $(LIBDIR)/libMUON.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libMUON.$(SL): $(OBJS) $(FOBJS)
+$(LIBDIR)/libMUON.$(SL): $(OBJS) $(FOBJS)
$(DICT): $(HDRS)
FSRCS = $(wildcard spdf/*.F)
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
SRCS = $(FSRCS)
OBJS = $(FOBJS)
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libpdf.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libpdf.a
+SLIBRARY = $(LIBDIR)/libpdf.$(SL)
+ALIBRARY = $(LIBDIR)/libpdf.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libpdf.$(SL): $(OBJS)
+$(LIBDIR)/libpdf.$(SL): $(OBJS)
depend: $(SRCS)
DICT = PHOSCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN sources
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
##### Other Libraries #####
SHSRCS = $(wildcard shaker/*.f)
-SHOBJS = $(SHSRCS:.f=.o)
+SHOBJS = $(patsubst %.f,$(ALICE_TARGET)/%.o,$(SHSRCS))
-RCSRCS = $(wildcard reconstruction/*.f) $(wildcard utils/*.cxx) $(wildcard utils/*.f)
-RCOBJS = $(patsubst %.f,%.o,$(patsubst %.cxx,%.o,$(RCSRCS)))
+RCSRCS = $(wildcard reconstruction/*.f)
+RCOBJS = $(patsubst %.f,$(ALICE_TARGET)/%.o,$(RCSRCS))
DUSRCS = libPHOSdummy.cxx
-DUOBJS = $(DUSRCS:.cxx=.o)
+DUOBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DUSRCS))
ALSRCS = $(SRCS) $(SHSRCS) $(RCSRCS) $(DUSRCS) dummies.c
##### COMMANDS #####
-SLIBRARY = $(ALICE_ROOT)/lib/libPHOSdummy.$(SL) $(ALICE_ROOT)/lib/libPHOSshaker.$(SL) \
- $(ALICE_ROOT)/lib/libPHOSreconstruction.$(SL) $(ALICE_ROOT)/lib/libPHOS.$(SL)
+SLIBRARY = $(LIBDIR)/libPHOSdummy.$(SL) $(LIBDIR)/libPHOSshaker.$(SL) \
+ $(LIBDIR)/libPHOSreconstruction.$(SL) $(LIBDIR)/libPHOS.$(SL)
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libPHOSdummy.$(SL): $(DUOBJS)
+$(LIBDIR)/libPHOSdummy.$(SL): $(DUOBJS)
-$(ALICE_ROOT)/lib/libPHOSshaker.$(SL): $(SHOBJS)
+$(LIBDIR)/libPHOSshaker.$(SL): $(SHOBJS)
-$(ALICE_ROOT)/lib/libPHOSreconstruction.$(SL): $(RCOBJS)
+$(LIBDIR)/libPHOSreconstruction.$(SL): $(RCOBJS)
-$(ALICE_ROOT)/lib/libPHOS.$(SL): $(OBJS) $(FOBJS)
+$(LIBDIR)/libPHOS.$(SL): $(OBJS) $(FOBJS)
$(DICT): $(HDRS)
DICT = PMDCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.f=.o)
+FOBJS = $(patsubst %.f,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libPMD.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libPMD.a
+SLIBRARY = $(LIBDIR)/libPMD.$(SL)
+ALIBRARY = $(LIBDIR)/libPMD.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libPMD.$(SL): $(OBJS)
+$(LIBDIR)/libPMD.$(SL): $(OBJS)
$(DICT): $(HDRS)
FSRCS = $(filter-out %pdfset.F,$(filter-out %structm.F,$(wildcard pythia/*.F))) \
$(wildcard jetset/*.F)
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
SRCS = $(FSRCS)
OBJS = $(FOBJS)
DSRCS = dummypythia.F
-DOBJS = $(DSRCS:.F=.o)
+DOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(DSRCS))
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libpythia.$(SL) $(ALICE_ROOT)/lib/libdummypythia.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libpythia.a
+SLIBRARY = $(LIBDIR)/libpythia.$(SL) $(LIBDIR)/libdummypythia.$(SL)
+ALIBRARY = $(LIBDIR)/libpythia.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libpythia.$(SL): $(OBJS)
-$(ALICE_ROOT)/lib/libdummypythia.$(SL): $(DOBJS)
+$(LIBDIR)/libpythia.$(SL): $(OBJS)
+$(LIBDIR)/libdummypythia.$(SL): $(DOBJS)
depend: $(SRCS) $(DSRCS)
DICT = RICHCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.f=.o)
+FOBJS = $(patsubst %.f,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
CXXFLAGS = $(CXXOPTS) -I$(ROOTSYS)/include -I. -I$(ALICE_ROOT)/include/
+
+CXXFLAGS += -I$(ALICE_ROOT)/TGeant3
+DEPINC += -I$(ALICE_ROOT)/TGeant3
# FORTRAN compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libRICH.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libRICH.a
+SLIBRARY = $(LIBDIR)/libRICH.$(SL)
+ALIBRARY = $(LIBDIR)/libRICH.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libRICH.$(SL): $(OBJS)
+$(LIBDIR)/libRICH.$(SL): $(OBJS)
$(DICT): $(HDRS)
DICT = STEERCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.f=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libSTEER.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libSTEER.a
+SLIBRARY = $(LIBDIR)/libSTEER.$(SL)
+ALIBRARY = $(LIBDIR)/lib/libSTEER.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libSTEER.$(SL): $(OBJS)
+$(LIBDIR)/libSTEER.$(SL): $(OBJS)
$(DICT): $(HDRS)
DICT = STRUCTCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.f=.o)
+FOBJS = $(patsubst %.f,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libSTRUCT.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libSTRUCT.a
+SLIBRARY = $(LIBDIR)/libSTRUCT.$(SL)
+ALIBRARY = $(LIBDIR)/libSTRUCT.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libSTRUCT.$(SL): $(OBJS)
+$(LIBDIR)/libSTRUCT.$(SL): $(OBJS)
$(DICT): $(HDRS)
GDICT = TGeant3Cint.cxx
GDICTH = $(GDICT:.cxx=.h)
-GDICTO = $(GDICT:.cxx=.o)
+GDICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(GDICT))
# Geant Objects
-GOBJS = $(GSRCS:.cxx=.o) $(FOBJS) $(GDICTO)
+GOBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(GSRCS)) $(FOBJS) $(GDICTO)
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# Dummy Geant321 class
DDICT = TGeant3DummyCint.cxx
DDICTH = $(DDICT:.cxx=.h)
-DDICTO = $(DDICT:.cxx=.o)
+DDICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DDICT))
# Geant Objects
-DOBJS = $(DSRCS:.cxx=.o) $(DDICTO)
+DOBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DSRCS)) $(DDICTO)
# Dummy Routines in Geant321
JSRCS = G3Dummy.cxx
-JOBJS = G3Dummy.o
+JOBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(JSRCS))
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libTGeant3.$(SL) \
- $(ALICE_ROOT)/lib/libG3Dummy.$(SL) \
- $(ALICE_ROOT)/lib/libTGeant3Dummy.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libTGeant3.a
+SLIBRARY = $(LIBDIR)/libTGeant3.$(SL) \
+ $(LIBDIR)/libG3Dummy.$(SL) \
+ $(LIBDIR)/libTGeant3Dummy.$(SL)
+ALIBRARY = $(LIBDIR)/libTGeant3.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libTGeant3.$(SL): $(GOBJS)
+$(LIBDIR)/libTGeant3.$(SL): $(GOBJS)
-$(ALICE_ROOT)/lib/libG3Dummy.$(SL): $(JOBJS)
+$(LIBDIR)/libG3Dummy.$(SL): $(JOBJS)
-$(ALICE_ROOT)/lib/libTGeant3Dummy.$(SL): $(DOBJS)
+$(LIBDIR)/libTGeant3Dummy.$(SL): $(DOBJS)
$(GDICT): $(GHDRS)
DEPINC += -I$(ALICE_ROOT)/GEANT321
-HEADERS = $(filter-out %LinkDef.h,$(GHDRS))
-
depend: $(GSRCS) $(FSRCS)
TOCLEAN = $(GOBJS) $(JOBJS) $(DOBJS) *Cint.cxx *Cint.h
DICT = TOFCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.f=.o)
+FOBJS = $(patsubst %.f,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libTOF.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libTOF.a
+SLIBRARY = $(LIBDIR)/libTOF.$(SL)
+ALIBRARY = $(LIBDIR)/libTOF.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libTOF.$(SL): $(OBJS)
+$(LIBDIR)/libTOF.$(SL): $(OBJS)
$(DICT): $(HDRS)
DICT = TPCCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libTPC.$(SL)
+SLIBRARY = $(LIBDIR)/libTPC.$(SL)
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libTPC.$(SL): $(OBJS)
+$(LIBDIR)/libTPC.$(SL): $(OBJS)
$(DICT): $(HDRS)
DICT = TRDCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.f=.o)
+FOBJS = $(patsubst %.f,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS))
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# C++ compilation flags
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libTRD.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libTRD.a
+SLIBRARY = $(LIBDIR)/libTRD.$(SL)
+ALIBRARY = $(LIBDIR)/libTRD.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libTRD.$(SL): $(OBJS)
+$(LIBDIR)/libTRD.$(SL): $(OBJS)
TRDCint.cxx: $(HDRS)
DICT = ZDCCint.cxx
DICTH = $(DICT:.cxx=.h)
-DICTO = $(DICT:.cxx=.o)
+DICTO = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(DICT))
# FORTRAN Objectrs
-FOBJS = $(FSRCS:.F=.o)
+FOBJS = $(patsubst %.F,$(ALICE_TARGET)/%.o,$(FSRCS))
# C Objects
-COBJS = $(CSRCS:.c=.o)
+COBJS = $(patsubst %.c,$(ALICE_TARGET)/%.o,$(CSRCS)
# C++ Objects
-OBJS = $(SRCS:.cxx=.o) $(DICTO)
+OBJS = $(patsubst %.cxx,$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO)
# Global Macros
# Target
-SLIBRARY = $(ALICE_ROOT)/lib/libZDC.$(SL)
-ALIBRARY = $(ALICE_ROOT)/lib/libZDC.a
+SLIBRARY = $(LIBDIR)/libZDC.$(SL)
+ALIBRARY = $(LIBDIR)/libZDC.a
default: $(SLIBRARY)
-$(ALICE_ROOT)/lib/libZDC.$(SL): $(OBJS) $(FOBJS)
+$(LIBDIR)/libZDC.$(SL): $(OBJS) $(FOBJS)
$(DICT): $(HDRS)
##### RULES #####
-.SUFFIXES: .cxx
+.SUFFIXES: .cxx .h
+
+$(ALICE_ROOT)/include/%.h : %.h
+ @[ -d $(dir $@) ] || mkdir $(dir $@)
+ @cp -p $? $(ALICE_ROOT)/include
-.cxx.o:
- @$(CXX) $(CXXFLAGS) -c $*.cxx -o $*.o
-.c.o:
- @$(CC) $(CFLAGS) -c $*.c -o $*.o
-.f.o:
- @$(F77) $(FFLAGS) -c $*.f -o $*.o
-.F.o:
- @$(F77) $(FFLAGS) -c $*.F -o $*.o
+$(ALICE_TARGET)/%.o : %.cxx
+ @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+ @$(CXX) $(CXXFLAGS) -c $*.cxx -o $(ALICE_TARGET)/$*.o
+
+$(ALICE_TARGET)/%.o : %.c
+ @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+ @$(CC) $(CFLAGS) -c $*.c -o $(ALICE_TARGET)/$*.o
+
+$(ALICE_TARGET)/%.o : %.f
+ @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+ @$(F77) $(FFLAGS) -c $*.f -o $(ALICE_TARGET)/$*.o
+
+$(ALICE_TARGET)/%.o : %.F
+ @[ -d $(dir $@) ] || mkdir -p $(dir $@)
+ @$(F77) $(FFLAGS) -c $*.F -o $(ALICE_TARGET)/$*.o
+
+# Needed binary directories
+LIBDIR = $(ALICE_ROOT)/lib/$(ALICE_TARGET)
+BINDIR = $(ALICE_ROOT)/bin/$(ALICE_TARGET)
+
# Current Version
# Alice libraries
-ALILIBS = -L$(ALICE_ROOT)/lib -lMUON -lTPC -lPMD -lTRD -lFMD -lTOF \
+ALILIBS = -L$(LIBDIR) -lMUON -lTPC -lPMD -lTRD -lFMD -lTOF \
-lITS -lPHOSdummy -lPHOS -lCASTOR -lRICH -lZDC -lSTRUCT \
-lTGeant3 -lEVGEN -lSTEER
CLIBS = -lminicern
G3LIBS = -lgeant321
-
$(SLIBRARY):
@echo "Generating $@ for $(PACKAGE)..."
+ @[ -d $(dir $@) ] || mkdir $(dir $@)
@rm -f $@
ifeq ($(PLATFORM),aix)
- @$(SHLD) -o $@ $(LIBS) -p 0 $^
+ @$(SHLD) -o $@ $(LIBS) -p 0 $(filter-out dirs,$^)
else
- @$(SHLD) $(SOFLAGS) $(LDFLAGS) $^ $(SHLIB) -o $@
+ @$(SHLD) $(SOFLAGS) $(LDFLAGS) $(filter-out dirs,$^) $(SHLIB) -o $@
endif
@chmod 555 $@
@echo "$@ done"
-$(ALIBRARY):
+$(ALIBRARY):
@echo "Generating $@ for $(PACKAGE)..."
+ @[ -d $(dir $@) ] || mkdir $(dir $@)
@rm -f $@
@ar rv $@ $^
@echo "$@ done"
-$(PROGRAM):
+$(PROGRAM):
@echo "Generating $@ for $(PACKAGE)..."
+ @[ -d $(dir $@) ] || mkdir $(dir $@)
@rm -f $@
@$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
@echo "$@ done"
headers: $(patsubst %,$(ALICE_ROOT)/include/%,$(HEADERS))
-$(patsubst %,$(ALICE_ROOT)/include/%,$(HEADERS)) : $(ALICE_ROOT)/include/% : %
- @cp -p $^ $@
-
$(DICT):
@echo "Generating $@ for $(PACKAGE)..."
@rootcint -f $@ -c -I$(ALICE_ROOT)/include $^