# This is the Go4 Makefile configuration included by all package Makefiles #supported platforms: Linux, Solaris, Win32 ifndef GO4_OS GO4_OS = Linux endif include $(GO4SYS)/build/Makefile.$(GO4_OS) ifeq ($(GO4_OS),Win32) GO4_WIN32 = true endif #### File suffixes: ### SrcSuf = cxx CSuf = c HedSuf = h DepSuf = d #file prefixes DICT_PREFIX = G__ LIB_PREFIX = lib #### ROOT configuration flags: ### ROOTCFLAGS := $(shell root-config --cflags) ROOTLIBS := $(shell root-config --libs) ROOTGLIBS := $(shell root-config --glibs) # ROOTVERSION = $(shell root-config --version | awk '{ gsub("\\.","") ; print }' | awk '{ gsub("/","") ; print }'| awk ' { gsub("[a-zA-Z]",""); print}') #### Library version numbers: ### MAJOR = 4 MINOR = 2.00 VERSSUF = $(MAJOR).$(MINOR) #### Go4 general build flags: ### # switch to enable TASImage support (libAfterImage may be not existing in system!) ifneq ($(wildcard $(ROOTSYS)/lib/libASImage.*)$(wildcard $(ROOTSYS)/root/lib/libASImage.*),) USEASIMAGE = true endif # switch to enable Spectrum library support ifneq ($(wildcard $(ROOTSYS)/lib/libSpectrum.*)$(wildcard $(ROOTSYS)/root/lib/libSpectrum.*),) USESPECTRUM = true endif # switch to enable GedEditor support ifneq ($(wildcard $(ROOTSYS)/lib/libGed.*)$(wildcard $(ROOTSYS)/root/lib/libGed.*),) USEGEDEDITOR = true endif # switch to enable XMLIO usage ifneq ($(wildcard $(ROOTSYS)/lib/libXMLIO.*)$(wildcard $(ROOTSYS)/root/lib/libXMLIO.*),) USEXMLIO = true endif ifneq ($(wildcard $(DIMDIR)/linux/libdim.so),) USEDIM = true endif ifeq ($(MAKECMDGOALS), noqt) GO4_WITHOUT_QT = true endif ifdef GO4_WIN32 GO4_WITHOUT_QT = true endif GO4_WITH_RFIO = true ifeq ($(GO4_OS),Solaris) GO4_WITH_RFIO = false endif # switch on optimization for all object files DOOPTIMIZATION = true #this is for very old user code, when go4/include was not exists INCLUDES = -I$(GO4SYS) ifeq ($(GO4_WITH_RFIO),true) EXTRACOPTIONS += -DRFIO endif #### Combine compilers flags in one variable: ### CXXFLAGS = $(OPTIONS) $(EXTRACXXOPTIONS) $(DEFINITIONS) $(ROOTCFLAGS) \ -I$(GO4SYS)/include $(INCLUDES) CFLAGS = $(OPTIONS) $(EXTRACOPTIONS) $(DEFINITIONS) \ -I$(GO4SYS)/include $(INCLUDES) #try to detect which QT version is configured if any ifndef GO4_WITHOUT_QT ifdef QTDIR QMAKE = $(QTDIR)/bin/qmake else QMAKE = $(shell which qmake) endif ifneq ($(QMAKE),) ifneq ($(shell $(QMAKE) --version 2>&1 | grep "Qt 3."),) GO4_QT3 = true else GO4_QT4 = true endif else GO4_WITHOUT_QT = true endif endif #QT relevant variables ifndef GO4_WITHOUT_QT ifdef USEGEDEDITOR QTGO4DEFINITIONS += -D__GO4GED__ endif ifdef USEASIMAGE QTGO4DEFINITIONS += -D__GO4ASI__ endif ifdef USEDIM QTGO4DEFINITIONS += -D__GO4DIM__ endif ifdef QTDIR UIC = $(QTDIR)/bin/uic MOC = $(QTDIR)/bin/moc else UIC = $(shell which uic) MOC = $(shell which moc) endif ifdef GO4_QT3 QTDEFINITIONS = -DQT_THREAD_SUPPORT ifdef QTDIR QTINCLUDES += -I$(QTDIR)/include else ifneq ($(wildcard /usr/include/qt3),) QTINCLUDES += -I/usr/include/qt3 endif endif endif ifdef GO4_QT4 QTDEFINITIONS = -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED ifdef QTDIR QTINCLUDES = -I$(QTDIR)/include else ifneq ($(wildcard /usr/include/qt4),) QTINCLUDES = -I/usr/include/qt4 endif endif endif QTCXXFLAGS = $(DEFINITIONS) $(QTINCLUDES) $(QTDEFINITIONS) QTDEFINITIONS += $(QTGO4DEFINITIONS) QMAKEOPTFLAG = "CONFIG+=release" QMAKEFLAGS = "VERSION=$(VERSSUF)" "QMAKE_CXXFLAGS=$(WARNINGS) $(QTDEFINITIONS)" "QMAKE_CXXFLAGS_RELEASE = -O2" "QMAKE_CFLAGS_RELEASE = -O2" endif ### library load path: #root tools for file generations ifdef GO4_WIN32 GO4DLLPATH = lib ROOTCINTGO4 = echo "Generating dictionary $@ ..."; rootcint -f $@ -c -I'$(GO4SYS)/include' $(DEFINITIONS) RLIBMAP = rlibmap else GO4DLLPATH = $(GO4SYS)/lib ROOTCINTGO4 = echo "Generating dictionary $@ ..."; $(ROOTSYS)/bin/rootcint -f $@ -c -p -I$(GO4SYS) -I$(GO4SYS)/include $(DEFINITIONS) RLIBMAP = $(ROOTSYS)/bin/rlibmap endif ### library load path: ROOTMAPNAME = .rootmap GO4MAP = $(GO4SYS)/$(ROOTMAPNAME) DOMAP = true # Go4 build scripts MakeDepend = $(GO4SYS)/build/depend.sh $(ObjSuf) MakeLib = $(GO4SYS)/build/makelib.sh $(GO4_OS) $(LD) "$(RM)" "$(MV)" "$(LN)" "$(LDFLAGS)" "$(SOFLAGS)" $(DllSuf) $(VERSSUF) MakeQLib = $(GO4SYS)/build/makelib.sh $(GO4_OS) $(LD) "$(RM)" "$(MV)" "$(LN)" "$(LDFLAGS)" "$(SOFLAGS)" $(DllSuf) CleanLib = $(GO4SYS)/build/cleanlib.sh $(GO4_OS) $(DllSuf) $(VERSSUF) CleanQLib = $(GO4SYS)/build/cleanlib.sh $(GO4_OS) $(DllSuf) MakeMap = $(GO4SYS)/build/makemap.sh $(GO4_OS) $(RLIBMAP) # files sets GO4QTMAIN := GO4QTHEADS := LIBDEPENDENC := EXAMPDEPENDENCS := EXAMPLEEXECS := DISTRFILES := #rules wich does not require any dependency checks FASTRULES = package setup clean map ifneq ($(findstring $(MAKECMDGOALS), package),) DOPACKAGE = true endif ifdef GO4_WIN32 LIBS_THRDMANSET = $(ROOTLIBS) \ '$(if $(USEXMLIO),$(ROOTSYS)\lib\libXMLIO.lib,)' \ '$(GO4SYS)\lib\libGo4Base.lib' \ '$(GO4SYS)\lib\libGo4ThreadManager.lib' \ LIBS_TASKHANDSET = $(LIBS_THRDMANSET) \ '$(GO4SYS)\lib\libGo4TaskHandler.lib' \ LIBS_FULLSET = $(ROOTLIBS) \ '$(if $(USEXMLIO),$(ROOTSYS)\lib\libXMLIO.lib,)' \ '$(GO4SYS)\lib\libGo4Fit.lib' \ '$(GO4SYS)\lib\libGo4Base.lib' \ '$(GO4SYS)\lib\libGo4ThreadManager.lib' \ '$(GO4SYS)\lib\libGo4TaskHandler.lib' \ '$(GO4SYS)\lib\libGo4AnalBase.lib' \ '$(GO4SYS)\lib\libGo4Analysis.lib' \ '$(GO4SYS)\Go4Analysis\TGo4Version.obj' LIBS_GUISET = $(LIBS_FULLSET) else LIBS_THRDMANSET = $(ROOTLIBS) \ -lThread \ $(if $(USEXMLIO),-lXMLIO,) \ -lpthread \ -L$(GO4DLLPATH) \ -lGo4Base \ -lGo4ThreadManager LIBS_TASKHANDSET = $(LIBS_THRDMANSET) \ -lGo4TaskHandler LIBS_FULLSET = $(ROOTLIBS) \ -lMinuit \ -lThread \ -lpthread \ -lrt \ $(if $(USEXMLIO),-lXMLIO,) \ $(if $(USESPECTRUM),-lSpectrum,) \ -L$(GO4DLLPATH) \ -lGo4Fit \ -lGo4Base \ -lGo4ThreadManager \ -lGo4TaskHandler \ -lGo4AnalBase \ -lGo4Analysis \ $(GO4SYS)/Go4Analysis/TGo4Version.$(ObjSuf) LIBS_GUISET = $(ROOTGLIBS) \ -lMinuit \ -lThread \ -lpthread \ $(if $(USEXMLIO),-lXMLIO,) \ $(if $(USESPECTRUM),-lSpectrum,) \ $(if $(USEASIMAGE),-lASImage,) \ $(if $(USEGEDEDITOR),-lGed -lTreePlayer,) \ -L$(GO4DLLPATH) \ -lGo4Fit \ -lGo4Base \ -lGo4ThreadManager \ -lGo4TaskHandler \ -lGo4AnalBase \ -lGo4GUI \ $(if $(USEDIM),-L$(DIMDIR)/linux -ldim,) endif BASIC_LIB_DEP = $(if $(USEASIMAGE),$(ROOTSYS)/lib/libASImage.$(DllSuf),) \ $(if $(USESPECTRUM),$(ROOTSYS)/lib/libSpectrum.$(DllSuf),) \ $(if $(USEXMLIO),$(ROOTSYS)/lib/libXMLIO.$(DllSuf),) \ $(ROOTSYS)/lib/libGpad.$(DllSuf) \ $(ROOTSYS)/lib/libTree.$(DllSuf) \ $(ROOTSYS)/lib/libMinuit.$(DllSuf) \ $(ROOTSYS)/lib/libThread.$(DllSuf) ANAL_LIB_DEP = $(GO4SYS)/lib/libGo4Analysis.$(DllSuf) \ $(GO4SYS)/lib/libGo4AnalBase.$(DllSuf) \ $(GO4SYS)/lib/libGo4Version.$(DllSuf) \ $(GO4SYS)/lib/libGo4TaskHandler.$(DllSuf) \ $(GO4SYS)/lib/libGo4ThreadManager.$(DllSuf) \ $(GO4SYS)/lib/libGo4Base.$(DllSuf) \ $(GO4SYS)/lib/libGo4Fit.$(DllSuf) \ $(BASIC_LIB_DEP) # for old style make files MAKEDEP = rmkdepend GO4LIBS = $(LIBS_FULLSET) GO4PATH = -L$(GO4DLLPATH)