https://github.com/root-project/root
Tip revision: ad33180aab1bf0378b1fd5107177a0cbef8da70f authored by Unknown Author on 06 August 2003, 14:17:19 UTC
This commit was manufactured by cvs2svn to create tag 'v3-05-07a'.
This commit was manufactured by cvs2svn to create tag 'v3-05-07a'.
Tip revision: ad33180
Makefile
# Makefile for the ROOT test programs.
# This Makefile shows nicely how to compile and link applications
# using the ROOT libraries on all supported platforms.
#
# Copyright (c) 2000 Rene Brun and Fons Rademakers
#
# Author: Fons Rademakers, 29/2/2000
ARCH := $(shell root-config --arch)
CXX =
ObjSuf = o
SrcSuf = cxx
ExeSuf =
DllSuf = so
OutPutOpt = -o # keep whitespace after "-o"
ROOTCFLAGS := $(shell root-config --cflags)
ROOTLIBS := $(shell root-config --libs)
ROOTGLIBS := $(shell root-config --glibs)
ifeq ($(ARCH),hpux)
# HP-UX with CC
CXX = CC
CXXFLAGS = -O +Z
LD = CC
LDFLAGS = -O +a1 -z
SOFLAGS = -b
DllSuf = sl
endif
ifeq ($(ARCH),hpuxacc)
# HP-UX 10.x with aCC
CXX = aCC
CXXFLAGS = -O +Z
LD = aCC
LDFLAGS = -O -z
SOFLAGS = -b
endif
ifeq ($(ARCH),hpuxia64acc)
# HP-UX 11i 1.5 (IA-64) with aCC
CXX = aCC
CXXFLAGS = +DD64 -O +Z
LD = aCC
LDFLAGS = +DD64 -O -z
SOFLAGS = -b
endif
ifeq ($(ARCH),hpuxegcs)
# HP-UX 10.x with g++
CXXFLAGS = -O -fPIC
CXX = g++
LD = g++
LDFLAGS = -O
SOFLAGS = -fPIC -shared
endif
ifeq ($(ARCH),hurddeb)
# GNU/Hurd
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),aix)
# IBM AIX xlC 4.x
CXX = xlC
CXXFLAGS = -O
LD = xlC
LDFLAGS = -O
SOFLAGS =
ROOTLIBS := $(shell root-config --nonew --libs)
ROOTGLIBS := $(shell root-config --nonew --glibs)
endif
ifeq ($(ARCH),aix5)
# IBM AIX xlC 5.x
CXX = xlC
CXXFLAGS = -O
LD = xlC
LDFLAGS = -O
SOFLAGS =
ROOTLIBS := $(shell root-config --nonew --libs)
ROOTGLIBS := $(shell root-config --nonew --glibs)
endif
ifeq ($(ARCH),aixegcs)
# IBM AIX with GCC
CXX = g++
CXXFLAGS = -O
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),solaris)
# Solaris CC
CXX = /opt/SUNWspro/bin/CC
CXXFLAGS = -O -KPIC
LD = /opt/SUNWspro/bin/CC
LDFLAGS = -O
SOFLAGS = -G
endif
ifeq ($(ARCH),solarisCC5)
# Solaris CC 5.0
CXX = CC
CXXFLAGS = -O -KPIC
LD = CC
LDFLAGS = -O
SOFLAGS = -G
endif
ifeq ($(ARCH),solarisegcs)
# Solaris egcs
CXX = g++
CXXFLAGS = -O -fPIC
LD = CC
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),solarisgcc)
# Solaris gcc
CXX = g++
CXXFLAGS = -O -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),solariskcc)
# Solaris kcc
CXX = KCC --one_instantiation_per_object
CXXFLAGS = -O4 -KPIC
LD = KCC
LDFLAGS = -O4
SOFLAGS =
endif
ifeq ($(ARCH),solarisx86)
# Solaris CC on Intel
CXX = CC
CXXFLAGS = -O -KPIC
LD = CC
LDFLAGS = -O
SOFLAGS = -G
endif
ifeq ($(ARCH),sgicc)
# SGI
CXX = CC -n32 -I/usr/include/CC.sgi
CXXFLAGS = -O
LD = CC -n32 -I/usr/include/CC.sgi
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),sgiegcs)
# SGI 6.x with EGCS
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv
SOFLAGS = -shared
endif
ifeq ($(ARCH),sgin32egcs)
# SGI 6.x with EGCS for n32 ABI
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O -L/usr/lib32 -Wl,-woff,134
SOFLAGS = -shared
endif
ifeq ($(ARCH),sgigcc)
# SGI with GCC
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv
SOFLAGS = -shared
endif
ifeq ($(ARCH),sgikcc)
# SGI with KCC
CXX = KCC -n32 --one_instantiation_per_object
CXXFLAGS = -O
LD = KCC -n32
LDFLAGS = -O
SOFLAGS =
endif
ifeq ($(ARCH),alphagcc)
# Alpha/OSF with g++
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -Wl,-expect_unresolved,* -shared
endif
ifeq ($(ARCH),alphaegcs)
# Alpha/OSF with egcs
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -Wl,-expect_unresolved,* -shared
endif
ifeq ($(ARCH),alphakcc)
# Alpha/OSF with kai compiler (not yet valid)
CXX = KCC --one_instantiation_per_object
CXXFLAGS = -O -fPIC
LD = KCC
LDFLAGS = -O
SOFLAGS = -Wl,-expect_unresolved,* -shared
endif
ifeq ($(ARCH),alphacxx6)
# Alpha/OSF with cxx6
CXX = cxx
CXXFLAGS = -O
LD = cxx
LDFLAGS = -O
SOFLAGS = -shared -nocxxstd -Wl,-expect_unresolved,*,-msym
endif
ifeq ($(ARCH),alphacxx)
# Alpha/OSF with cxx5
CXX = cxx
CXXFLAGS = -O
LD = cxx
LDFLAGS = -O
SOFLAGS = -Wl,-expect_unresolved,* -call_shared
endif
ifeq ($(ARCH),linuxrh51)
# Linux with gcc 2.7.2.x
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxrh42)
# Linux with gcc 2.7.2.x (RedHat 4.2)
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxdeb)
# Linux with gcc 2.7.2.x
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxdeb2)
# Linux with gcc 2.7.2.x
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxdeb2ppc)
# Debian/Linux on the PowerPC
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxsuse6)
# Linux with gcc 2.7.2.x
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linux)
# Linux with egcs, gcc 2.9x, gcc 3.x (>= RedHat 5.2)
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxkcc)
# Linux with the KAI compiler
CXX = KCC --one_instantiation_per_object
CXXFLAGS = -fPIC +K0
LD = KCC
LDFLAGS = -O $(shell root-config --cflags)
SOFLAGS =
endif
ifeq ($(ARCH),linuxicc)
# Linux with Intel icc compiler
CXX = icc
CXXFLAGS = -O
LD = icc
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxppcegcs)
# MkLinux with egcs/glibc
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxia64gcc)
# Itanium Linux with gcc 2.9x
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxia64sgi)
# Itanium Linux with sgiCC
CXX = sgiCC
CXXFLAGS = -O -Wall -fPIC
LD = gsgiCC
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxia64ecc)
# Itanium Linux with Intel ecc
CXX = ecc
CXXFLAGS = -O
LD = ecc
LDFLAGS = -O -i_dynamic
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxx8664gcc)
# AMD Opteron (64 bit mode) Linux with gcc 3.x
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxalphaegcs)
# Alpha Linux with egcs
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),linuxarm)
# ARM Linux with egcs
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),mklinux)
# MkLinux with libc5
CXX = g++
CXXFLAGS = -O -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared
endif
ifeq ($(ARCH),freebsd)
# FreeBSD with libc5
CXX = g++
CXXFLAGS = -O -pipe -W -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared -Wl,-x
endif
ifeq ($(ARCH),freebsd4)
# FreeBSD with glibc
CXX = g++
CXXFLAGS = -O -pipe -W -Wall -fPIC
LD = g++
LDFLAGS = -O
SOFLAGS = -shared -Wl,-x
endif
ifeq ($(ARCH),macosx)
# MacOS X with cc (GNU cc 2.95.2)
CXX = c++
CXXFLAGS = -O -pipe -Wall
LD = c++
LDFLAGS = -O -Xlinker -bind_at_load -flat_namespace
# The SOFLAGS will be used to create the .dylib; the .so will
# be created separately
DllSuf = dylib
SOFLAGS = -dynamiclib -flat_namespace -undefined suppress
endif
ifeq ($(ARCH),hiux)
# Hitachi HIUX
CXX = g++
CXXFLAGS = -O2 -fPIC
LD = g++
LDFLAGS = -Wl,+s
SOFLAGS = -Wl,-b,-E -nostdlib -nostartfiles
DllSuf = sl
endif
ifeq ($(ARCH),win32)
# Windows with the VC++ compiler
ObjSuf = obj
SrcSuf = cxx
ExeSuf = .exe
DllSuf = dll
OutPutOpt = -out:
CXX = cl
CXXOPT = -O2
#CXXOPT = -Z7
CXXFLAGS = $(CXXOPT) -G5 -GR -GX -MD -DWIN32 -D_WINDOWS -nologo \
-DVISUAL_CPLUSPLUS -D_X86_=1 -D_DLL
LD = link
LDOPT = -opt:ref
#LDOPT = -debug
LDFLAGS = $(LDOPT) -pdb:none -nologo
SOFLAGS = -DLL
ROOTLIBS := $(shell root-config --nonew --libs)
ROOTGLIBS := $(shell root-config --nonew --glibs)
EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
endif
ifeq ($(ARCH),win32gcc)
# Windows with gcc
DllSuf = dll
ExeSuf = .exe
CXX = g++
CXXFLAGS = -O -Wall -Woverloaded-virtual -I/usr/X11R6/include
LD = g++
LDFLAGS = -O -Wl,--enable-auto-import
SOFLAGS = -shared -D_DLL -Wl,--export-all-symbols
EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
endif
ifeq ($(CXX),)
$(error $(ARCH) invalid architecture)
endif
CXXFLAGS += $(ROOTCFLAGS)
LIBS = $(ROOTLIBS) $(SYSLIBS)
GLIBS = $(ROOTGLIBS) $(SYSLIBS)
#------------------------------------------------------------------------------
EVENTO = Event.$(ObjSuf) EventDict.$(ObjSuf)
EVENTS = Event.$(SrcSuf) EventDict.$(SrcSuf)
EVENTSO = libEvent.$(DllSuf)
EVENT = Event$(ExeSuf)
ifeq ($(ARCH),win32)
EVENTLIB = libEvent.lib
else
EVENTLIB = $(EVENTSO)
endif
MAINEVENTO = MainEvent.$(ObjSuf)
MAINEVENTS = MainEvent.$(SrcSuf)
HWORLDO = hworld.$(ObjSuf)
HWORLDS = hworld.$(SrcSuf)
HWORLD = hworld$(ExeSuf)
HSIMPLEO = hsimple.$(ObjSuf)
HSIMPLES = hsimple.$(SrcSuf)
HSIMPLE = hsimple$(ExeSuf)
MINEXAMO = minexam.$(ObjSuf)
MINEXAMS = minexam.$(SrcSuf)
MINEXAM = minexam$(ExeSuf)
TSTRINGO = tstring.$(ObjSuf)
TSTRINGS = tstring.$(SrcSuf)
TSTRING = tstring$(ExeSuf)
TCOLLEXO = tcollex.$(ObjSuf)
TCOLLEXS = tcollex.$(SrcSuf)
TCOLLEX = tcollex$(ExeSuf)
TCOLLBMO = tcollbm.$(ObjSuf)
TCOLLBMS = tcollbm.$(SrcSuf)
TCOLLBM = tcollbm$(ExeSuf)
VVECTORO = vvector.$(ObjSuf)
VVECTORS = vvector.$(SrcSuf)
VVECTOR = vvector$(ExeSuf)
VMATRIXO = vmatrix.$(ObjSuf)
VMATRIXS = vmatrix.$(SrcSuf)
VMATRIX = vmatrix$(ExeSuf)
VLAZYO = vlazy.$(ObjSuf)
VLAZYS = vlazy.$(SrcSuf)
VLAZY = vlazy$(ExeSuf)
GUITESTO = guitest.$(ObjSuf)
GUITESTS = guitest.$(SrcSuf)
GUITEST = guitest$(ExeSuf)
GUIVIEWERO = guiviewer.$(ObjSuf) guiviewerDict.$(ObjSuf)
GUIVIEWERS = guiviewer.$(SrcSuf) guiviewerDict.$(SrcSuf)
GUIVIEWER = guiviewer$(ExeSuf)
HELLOO = Hello.$(ObjSuf) HelloDict.$(ObjSuf)
HELLOS = Hello.$(SrcSuf) HelloDict.$(SrcSuf)
HELLOSO = Hello.$(DllSuf)
ACLOCKO = Aclock.$(ObjSuf) AclockDict.$(ObjSuf)
ACLOCKS = Aclock.$(SrcSuf) AclockDict.$(SrcSuf)
ACLOCKSO = Aclock.$(DllSuf)
TETRISO = Tetris.$(ObjSuf) TetrisDict.$(ObjSuf)
TETRISS = Tetris.$(SrcSuf) TetrisDict.$(SrcSuf)
TETRISSO = Tetris.$(DllSuf)
STRESSO = stress.$(ObjSuf)
STRESSS = stress.$(SrcSuf)
STRESS = stress$(ExeSuf)
STRESSGEOMO = stressgeom.$(ObjSuf)
STRESSGEOMS = stressgeom.$(SrcSuf)
STRESSGEOM = stressgeom$(ExeSuf)
TBENCHO = TBench.$(ObjSuf) TBenchDict.$(ObjSuf)
TBENCHS = TBench.$(SrcSuf) TBenchDict.$(SrcSuf)
TBENCHSO = TBench.$(DllSuf)
BENCHO = bench.$(ObjSuf)
BENCHS = bench.$(SrcSuf)
BENCH = bench$(ExeSuf)
OBJS = $(EVENTO) $(MAINEVENTO) $(HWORLDO) $(HSIMPLEO) $(MINEXAMO) \
$(TSTRINGO) $(TCOLLEXO) $(VVECTORO) $(VMATRIXO) $(VLAZYO) \
$(HELLOO) $(ACLOCKO) $(STRESSO) $(TBENCHO) $(BENCHO) \
$(TCOLLBMO) $(STRESSGEOMO)
PROGRAMS = $(EVENT) $(HWORLD) $(HSIMPLE) $(MINEXAM) $(TSTRING) \
$(TCOLLEX) $(TCOLLBM) $(VVECTOR) $(VMATRIX) $(VLAZY) \
$(HELLOSO) $(ACLOCKSO) $(STRESS) $(TBENCHSO) $(BENCH) $(STRESSGEOM)
ifneq ($(ARCH),win32)
OBJS += $(GUITESTO) $(GUIVIEWERO) $(TETRISO)
PROGRAMS += $(GUITEST) $(GUIVIEWER) $(TETRISSO)
endif
#------------------------------------------------------------------------------
.SUFFIXES: .$(SrcSuf) .$(ObjSuf) .$(DllSuf)
.PHONY: Aclock Hello Tetris
all: $(PROGRAMS)
$(EVENTSO): $(EVENTO)
ifeq ($(ARCH),aix)
/usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),aix5)
/usr/vacpp/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),macosx)
# We need to make both the .dylib and the .so
$(LD) $(SOFLAGS) $(EVENTO) $(OutPutOpt) $(EVENTSO)
$(LD) -bundle -undefined suppress -Wl,-x $(LDFLAGS) $^ \
$(OutPutOpt) $(subst .$(DllSuf),.so,$@)
else
ifeq ($(ARCH),win32)
bindexplib $* $^ > $*.def
lib -nologo -MACHINE:IX86 $^ -def:$*.def \
$(OutPutOpt)$(EVENTLIB)
$(LD) $(SOFLAGS) $(LDFLAGS) $^ $*.exp $(LIBS) \
$(OutPutOpt)$@
else
$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(EXPLLINKLIBS)
endif
endif
endif
endif
@echo "$@ done"
$(EVENT): $(EVENTSO) $(MAINEVENTO)
$(LD) $(LDFLAGS) $(MAINEVENTO) $(EVENTLIB) $(LIBS) \
$(OutPutOpt)$(EVENT)
@echo "$@ done"
$(HWORLD): $(HWORLDO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(HSIMPLE): $(HSIMPLEO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(MINEXAM): $(MINEXAMO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(TSTRING): $(TSTRINGO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(TCOLLEX): $(TCOLLEXO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(TCOLLBM): $(TCOLLBMO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(VVECTOR): $(VVECTORO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(VMATRIX): $(VMATRIXO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(VLAZY): $(VLAZYO)
$(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(GUITEST): $(GUITESTO)
$(LD) $(LDFLAGS) $^ $(GLIBS) $(OutPutOpt)$@
@echo "$@ done"
$(GUIVIEWER): $(GUIVIEWERO)
$(LD) $(LDFLAGS) $^ $(GLIBS) $(OutPutOpt)$@
@echo "$@ done"
$(STRESS): $(STRESSO) $(EVENT)
$(LD) $(LDFLAGS) $(STRESSO) $(EVENTLIB) $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
$(STRESSGEOM): $(STRESSGEOMO)
ifeq ($(ARCH),win32)
$(LD) $(LDFLAGS) $(STRESSGEOMO) $(LIBS) ../lib/libGeom.lib $(OutPutOpt)$@
else
$(LD) $(LDFLAGS) $(STRESSGEOMO) $(LIBS) -lGeom $(OutPutOpt)$@
endif
@echo "$@ done"
$(BENCH): $(BENCHO) $(TBENCHSO)
$(LD) $(LDFLAGS) $(BENCHO) $(TBENCHO) $(LIBS) $(OutPutOpt)$@
@echo "$@ done"
Hello: $(HELLOSO)
$(HELLOSO): $(HELLOO)
ifeq ($(ARCH),aix)
/usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),aix5)
/usr/vacpp/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),macosx)
# We need to make both the .dylib and the .so
$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
$(LD) -bundle -undefined suppress -Wl,-x $(LDFLAGS) $^ \
$(OutPutOpt) $(subst .$(DllSuf),.so,$@)
else
$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(EXPLLINKLIBS) $(OutPutOpt)$@
endif
endif
endif
Aclock: $(ACLOCKSO)
$(ACLOCKSO): $(ACLOCKO)
ifeq ($(ARCH),aix)
/usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),aix5)
/usr/vacpp/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),macosx)
# We need to make both the .dylib and the .so
$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
$(LD) -bundle -undefined suppress -Wl,-x $(LDFLAGS) $^ \
$(OutPutOpt) $(subst .$(DllSuf),.so,$@)
else
$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(EXPLLINKLIBS) $(OutPutOpt)$@
endif
endif
endif
Tetris: $(TETRISSO)
$(TETRISSO): $(TETRISO)
ifeq ($(ARCH),aix)
/usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt) $@ $(GLIBS) -p 0 $^
else
ifeq ($(ARCH),aix5)
/usr/vacpp/bin/makeC++SharedLib $(OutPutOpt) $@ $(GLIBS) -p 0 $^
else
ifeq ($(ARCH),macosx)
# We need to make both the .dylib and the .so
$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
$(LD) -bundle -undefined suppress -Wl,-x $(LDFLAGS) $^ \
$(OutPutOpt) $(subst .$(DllSuf),.so,$@)
else
$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(EXPLLINKLIBS) $(OutPutOpt)$@
endif
endif
endif
$(TBENCHSO): $(TBENCHO)
ifeq ($(ARCH),aix)
/usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),aix5)
/usr/vacpp/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
else
ifeq ($(ARCH),macosx)
# We need to make both the .dylib and the .so
$(LD) $(SOFLAGS) $^ -lstdc++ $(OutPutOpt) $@
$(LD) -bundle -undefined suppress -Wl,-x $(LDFLAGS) $^ \
$(OutPutOpt) $(subst .$(DllSuf),.so,$@)
else
$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(EXPLLINKLIBS) $(OutPutOpt)$@
endif
endif
endif
clean:
@rm -f $(OBJS) core
distclean: clean
@rm -f $(PROGRAMS) $(EVENTSO) $(EVENTLIB) *Dict.* *.def *.exp \
*.root *.ps *.so .def so_locations
@rm -rf cxx_repository
.SUFFIXES: .$(SrcSuf)
###
Event.$(ObjSuf): Event.h
MainEvent.$(ObjSuf): Event.h
EventDict.$(SrcSuf): Event.h EventLinkDef.h
@echo "Generating dictionary $@..."
@rootcint -f $@ -c $^
Hello.$(ObjSuf): Hello.h
HelloDict.$(SrcSuf): Hello.h
@echo "Generating dictionary $@..."
@rootcint -f $@ -c $^
Aclock.$(ObjSuf): Aclock.h
AclockDict.$(SrcSuf): Aclock.h
@echo "Generating dictionary $@..."
@rootcint -f $@ -c $^
Tetris.$(ObjSuf): Tetris.h
TetrisDict.$(SrcSuf): Tetris.h
@echo "Generating dictionary $@..."
@rootcint -f $@ -c $^
TBench.$(ObjSuf): TBench.h
TBenchDict.$(SrcSuf): TBench.h benchLinkDef.h
@echo "Generating dictionary $@..."
@rootcint -f $@ -c $^
guiviewer.$(ObjSuf): guiviewer.h
guiviewerDict.$(SrcSuf): guiviewer.h guiviewerLinkDef.h
@echo "Generating dictionary $@..."
@rootcint -f $@ -c $^
.$(SrcSuf).$(ObjSuf):
$(CXX) $(CXXFLAGS) -c $<