# This is the Go4 Makefile configuration included by all package Makefiles ifeq ($(Go4_Makefile_Config),) Go4_Makefile_Config = included #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 = 3.0 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 ifeq ($(WITHQT),no) GO4_WITHOUT_QT = true endif ifdef GO4_WIN32 ifndef QTDIR GO4_WITHOUT_QT = true endif 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 ifeq ($(WITHQT),3) ifeq ($(shell pkg-config --exists qt-mt --print-errors),) GO4_QT3 = true else GO4_WITHOUT_QT = true endif else ifeq ($(WITHQT),4) ifeq ($(shell pkg-config --exists QtCore --print-errors),) GO4_QT4 = true else GO4_WITHOUT_QT = true endif else ifdef QTDIR QTPATH = $(QTDIR) ifneq ($(shell $(QTDIR)/bin/qmake --version 2>&1 | grep "Qt 3."),) GO4_QT3 = true QTCXXFLAGS = -DQT_THREAD_SUPPORT else GO4_QT4 = true QTCXXFLAGS = endif ifdef GO4_WIN32 QTCXXFLAGS += -I$(shell cygpath -w $(QTDIR)/include) else QTCXXFLAGS += -I$(QTDIR)/include endif else ifeq ($(shell pkg-config --exists QtCore --print-errors),) GO4_QT4 = true WITHQT = 4 else ifeq ($(shell pkg-config --exists qt-mt --print-errors),) GO4_QT3 = true WITHQT = 3 else GO4_WITHOUT_QT = true endif endif endif endif endif endif #QT relevant variables ifndef GO4_WITHOUT_QT ifeq ($(WITHQT), 3) QTPATH = $(shell pkg-config --variable=prefix qt-mt) QTCXXFLAGS = $(shell pkg-config --cflags qt-mt) endif ifeq ($(WITHQT), 4) QTPATH = $(shell pkg-config --variable=prefix QtCore) QTCXXFLAGS = $(shell pkg-config --cflags QtCore) endif QMAKE = $(QTPATH)/bin/qmake UIC = $(QTPATH)/bin/uic MOC = $(QTPATH)/bin/moc ifndef USEGEDEDITOR QTGO4DEFINITIONS += -D__NOGO4GED__ endif ifndef USEASIMAGE QTGO4DEFINITIONS += -D__NOGO4ASI__ endif ifdef USEDIM QTGO4DEFINITIONS += -D__GO4DIM__ endif QTCXXFLAGS += $(QTGO4DEFINITIONS) QMAKEOPTFLAG = "CONFIG+=release" QMAKEFLAGS = "VERSION=$(VERSSUF)" "QMAKE_CXXFLAGS=$(WARNINGS) $(QTGO4DEFINITIONS)" "QMAKE_CXXFLAGS_RELEASE = -O2" "QMAKE_CFLAGS_RELEASE = -O2" ifdef GO4_WIN32 QMAKEFLAGS += "INCLUDEPATH+=$(shell cygpath -w $(ROOTSYS)/include)" "DEPENDPATH+=$(shell cygpath -w $(ROOTSYS)/include)" MAKEFORQT = nmake else QMAKEFLAGS += "INCLUDEPATH+=$(ROOTSYS)/include" "DEPENDPATH+=$(ROOTSYS)/include" MAKEFORQT = $(MAKE) endif 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) MakeLibrary = $(GO4SYS)/build/makelib.sh $(GO4_OS) "$(LD)" "$(RM)" "$(MV)" "$(LN)" "$(RLIBMAP)" "$(LDFLAGS)" "$(SOFLAGS)" $(DllSuf) "---" CleanLib = $(GO4SYS)/build/cleanlib.sh $(GO4_OS) "$(RM)" $(DllSuf) #this is for compatibility with old makefile, #where version suffix is required for library file #all new makefiles should use MakeLibrary call MakeLib = $(GO4SYS)/build/makelib.sh $(GO4_OS) "$(LD)" "$(RM)" "$(MV)" "$(LN)" "$(RLIBMAP)" "$(LDFLAGS)" "$(SOFLAGS)" $(DllSuf) $(VERSSUF) #Also kept for compatibility with old makefiles, #now rootmap will be produced by makelib call 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 clean-bin map ifneq ($(findstring $(MAKECMDGOALS), package),) DOPACKAGE = true endif ifdef GO4_WIN32 LIBS_THRDMANSET = $(ROOTLIBS) \ $(if $(USEXMLIO),libXMLIO.lib,) \ '$(GO4SYS)\lib\libGo4Base.lib' \ '$(GO4SYS)\lib\libGo4ThreadManager.lib' \ LIBS_TASKHANDSET = $(LIBS_THRDMANSET) \ '$(GO4SYS)\lib\libGo4TaskHandler.lib' \ LIBS_FULLSET = $(ROOTLIBS) \ $(if $(USEXMLIO),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 = $(ROOTGLIBS) \ $(if $(USEXMLIO), libXMLIO.lib,) \ $(if $(USESPECTRUM), libSpectrum.lib,) \ $(if $(USEASIMAGE), libASImage.lib,) \ $(if $(USEGEDEDITOR), libGed.lib libTreePlayer.lib,) \ libGo4Fit.lib \ libGo4Base.lib \ libGo4ThreadManager.lib \ libGo4TaskHandler.lib \ libGo4AnalBase.lib \ libGo4Analysis.lib \ ..\..\Go4Analysis\TGo4Version.obj \ libGo4GUI.lib 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../../lib \ -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) endif