# ============================================================================ # # # # Makefile # # =========== # # GNU Makefile for installing and running example POOL writer and POOL # # reader executable. # # # # Requirements # # -------------- # # Execute ". setup.sh" first, to set PATH and LD_LIBRARY_PATH for gcc3.2 # # Currently works in the afs/cern.ch environment. # # # # Script Version # # ---------------- # # 1.00 (I. Papadopoulos, S. Goldfarb) 14-Apr-2003 # # # # ============================================================================ # # LCG Software versions POOLVER := POOL_0_5_0 SEALVER := SEAL_0_1_1 UUIDVER := uuid_1_19 ROOTVER := 3.05.02 XERCESVER := 2.1.0 # GCC specifications GCCARCH := rh73_gcc32 # The User Software (classes to be made persistent) USRDIR := MuonConditions USRINCDIR := $(USRDIR)/$(USRDIR) USRSRCDIR := $(USRDIR)/src USRDICTDIR := $(USRDIR)/dict USRLIBDIR := $(USRDIR)/$(GCCARCH)/lib USRINC := $(wildcard $(USRINCDIR)/*.h) USRSRC := $(wildcard $(USRSRCDIR)/*.cxx) USRDICT := $(patsubst $(USRINCDIR)%.h,$(USRDICTDIR)%_dict.cpp,$(USRINC)) USRLIB := $(USRLIBDIR)/lib$(USRDIR).so USRDICTLIB := $(USRLIBDIR)/lib$(USRDIR)Dict.so # The Application Software (applications writing and reading the objects) APPDIR := MuonConditionsApps APPINCDIR := $(APPDIR)/$(APPDIR) APPSRCDIR := $(APPDIR)/src APPLIBDIR := $(APPDIR)/$(GCCARCH)/lib SIMPLEWRITERSRC := $(APPSRCDIR)/SimpleWriter.cxx SIMPLEREADERSRC := $(APPSRCDIR)/SimpleReader.cxx SIMPLEWRITER := $(APPLIBDIR)/SimpleWriter.exe SIMPLEREADER := $(APPLIBDIR)/SimpleReader.exe CATALOG := MuonConditionsCatalog.xml DATABASE := MuonConditionsData.root # The LCG Software LCGDIR := /afs/cern.ch/sw/lcg POOLDIR := $(LCGDIR)/app/releases/POOL/$(POOLVER) SEALDIR := $(LCGDIR)/app/releases/SEAL/$(SEALVER) UUIDDIR := $(LCGDIR)/external/uuid/$(UUIDVER) ROOTDIR := $(LCGDIR)/external/root/$(ROOTVER) XERCESDIR := $(LCGDIR)/external/XercesC/$(XERCESVER) # Include files INCLUDES := -I$(POOLDIR)/$(GCCARCH)/include INCLUDES += -I$(SEALDIR)/src/Foundation/SealKernel INCLUDES += -I$(SEALDIR)/src/Dictionary/ReflectionBuilder INCLUDES += -I$(SEALDIR)/src/Dictionary/Reflection INCLUDES += -I$(UUIDDIR)/$(GCCARCH)/include INCLUDES += -I$(ROOTDIR)/$(GCCARCH)/include INCLUDES += -I$(XERCESDIR)/$(GCCARCH)/include INCLUDES += -I$(USRDIR) INCLUDES += -I./ -I./atlas # Compilation flags CFLAGS := -D_GNU_SOURCE -O2 -Wno-deprecated -g -fPIC # LD flags LDFLAGS := -L$(POOLDIR)/$(GCCARCH)/lib LDFLAGS += -L$(SEALDIR)/lib/$(GCCARCH) LDFLAGS += -L$(UUIDDIR)/$(GCCARCH)/lib LDFLAGS += -L$(ROOTDIR)/$(GCCARCH)/lib LDFLAGS += -L$(XERCESDIR)/$(GCCARCH)/lib LDFLAGS += -L$(USRDIR)/$(GCCARCH)/lib LDFLAGS += -L./ # LD_LIBRARY_PATH for executables LDPATH := $(POOLDIR)/$(GCCARCH)/lib:$(SEALDIR)/lib/$(GCCARCH):$(UUIDDIR)/$(GCCARCH)/lib:$(ROOTDIR)/$(GCCARCH)/lib:$(XERCESDIR)/$(GCCARCH)/lib:$(USRDIR)/$(GCCARCH)/lib # Libraries LDLIBS := -lDataSvc -lPersistencySvc -lStorageSvc -lReflectionBuilder -lReflection LDLIBS += -lXMLCatalog -lFileCatalog -lPOOLCore LDLIBS += -lSealKernel -luuid -lCint -lCore -lTree -lxerces-c -ldl LDLIBS += -lMuonConditions # Dictionary generator DICTIONARYGENERATOR := $(SEALDIR)/src/Dictionary/DictionaryGenerator/scripts/lcgdict # Intermediate objects to keep around .PRECIOUS : $(USRDICT) $(USRLIB) $(USRDICTLIB) # Targets all : runWriter runReader test : @echo "USRINC = $(USRINC)"; \ echo "USRSRC = $(USRSRC)"; \ echo "USRDICT = $(USRDICT)"; \ echo "USRLIB = $(USRLIB)"; \ echo "USRDICTLIB = $(USRDICTLIB)" dicts : $(USRDICT) $(USRDICT) : $(USRDICTDIR)/%_dict.cpp : $(USRINCDIR)/%.h $(DICTIONARYGENERATOR) $< --pool -o $(dir $@) --select $(USRDICTDIR)/classes.xml libs : $(USRLIB) $(USRDICTLIB) $(USRLIB) : $(USRINC) $(USRLIB) : $(USRSRC) g++ $(CFLAGS) -shared -I$(USRDIR) $< -o $@ $(USRDICTLIB) : $(USRDICT) g++ $(CFLAGS) -shared $(INCLUDES) $(LDFLAGS) $(LDLIBS) $< -o $@ writer : $(SIMPLEWRITER) $(SIMPLEWRITER) : $(SIMPLEWRITERSRC) libs g++ -o $@ $< $(CFLAGS) -I$(APPDIR) $(INCLUDES) $(LDFLAGS) $(LDLIBS) reader : $(SIMPLEREADER) $(SIMPLEREADER) : $(SIMPLEREADERSRC) libs g++ -o $@ $< $(CFLAGS) -I$(APPDIR) $(INCLUDES) $(LDFLAGS) $(LDLIBS) runWriter: writer gmake clean; \ export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(LDPATH); \ export ROOTSYS=$(ROOTDIR)/$(GCCARCH); \ $(SIMPLEWRITER) runReader: reader export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(LDPATH); \ export ROOTSYS=$(ROOTDIR)/$(GCCARCH); \ $(SIMPLEREADER) clean : rm -f $(CATALOG) $(DATABASE) cleanlibs : rm -f $(USRLIBDIR)/*.so; \ rm -f $(APPLIBDIR)/*.so cleanexecs : rm -f $(APPLIBDIR)/*.exe cleanclass : rm -f $(USRLIBDIR)/*.so cleanapps : rm -f $(APPLIBDIR)/*.so; \ rm -f $(APPLIBDIR)/*.exe cleanall : clean cleanlibs cleanexecs