The following Makefile is extracted directly from the root.cmz file. It shows the options for all currently supported platforms. You can find an instance for your platform in the root/test directory.
+DECK,Makefile. ObjSuf = o SrcSuf = cxx ExeSuf = DllSuf = so EVENTLIB = $(EVENTO) OutPutOpt = -o ROOTLIBS = -L$(ROOTSYS)/lib -lNew -lBase -lCint -lClib -lCont -lFunc \ -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta -lMinuit -lNet \ -lPostscript -lProof -lTree -lUnix -lZip ROOTGLIBS = -lGpad -lGui -lGX11 -lX3d +SELF,IF=HPUX,IF=-ACC,IF=-GCC. # HP-UX with CC CXX = CC +SELF,IF=HPUX,IF=HPUX9,IF=-ACC,IF=-GCC. CXXFLAGS = -O +a1 +Z -I$(ROOTSYS)/include +SELF,IF=HPUX,IF=-HPUX9,IF=-ACC,IF=-GCC. CXXFLAGS = -O +a1 +Z -I$(ROOTSYS)/include +SELF,IF=HPUX,IF=-ACC,IF=-GCC. LD = CC LDFLAGS = -g +a1 -z SOFLAGS = -b LIBS = $(ROOTLIBS) -lm GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/lib/X11R5 \ -lXpm -lX11 -lm -ldld +SELF,IF=HPUX,IF=ACC. # HP-UX 10.x with aCC CXX = aCC CXXFLAGS = -g +Z -I$(ROOTSYS)/include LD = aCC LDFLAGS = -g -z SOFLAGS = -b LIBS = $(ROOTLIBS) -lm GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -lXpm -lX11 -lm -ldld +SELF,IF=HPUX,IF=GCC. # HP-UX 10.x with g++ CXXFLAGS = -g -I$(ROOTSYS)/include CXX = g++ LD = g++ LDFLAGS = -g SOFLAGS = -b ROOTLIBS = -L$(ROOTSYS)/lib -lRoot LIBS = $(ROOTLIBS) -lg++ -lm GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/lib/X11R5 \ -L/usr/lib -lXpm -lX11 -lg++ -lm -ldld +SELF,IF=IBMRT,IF=-GCC. # IBM AIX CXX = xlC CXXFLAGS = -O -qnoro -qnoroconst -qmaxmem=-1 -I$(ROOTSYS)/include LD = xlC LDFLAGS = -g SOFLAGS = ROOTLIBS = -L$(ROOTSYS)/lib -lRoot -lCint LIBS = $(ROOTLIBS) -lm -lcurses GLIBS = $(ROOTLIBS) -lXpm -lX11 -lm -lPW -lld -lcurses +SELF,IF=IBMRT,IF=GCC. # IBM AIX with GCC CXX = g++ CXXFLAGS = -g -fsigned-char -I$(ROOTSYS)/include LD = g++ LDFLAGS = -g SOFLAGS = -shared ROOTLIBS = -L$(ROOTSYS)/lib -lRoot -lCint LIBS = $(ROOTLIBS) -lg++ -lm -lcurses GLIBS = $(ROOTLIBS) -lXpm -lX11 -lg++ -lm -lPW -lld +SELF,IF=SOLARIS,IF=-GCC. # Solaris CXX = CC CXXFLAGS = -O -KPIC -I$(ROOTSYS)/include LD = CC LDFLAGS = -g SOFLAGS = -G LIBS = $(ROOTLIBS) -lm -lsocket -lgen -lsunmath GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/openwin/lib \ -L/usr/ccs/lib -lXpm -lX11 -lm -lgen -ldl -lsocket -lsunmath +SELF,IF=SOLARIS,IF=GCC. # Solaris gcc CXX = g++ CXXFLAGS = -O -fPIC -I$(ROOTSYS)/include LD = CC LDFLAGS = -g SOFLAGS = -Wl,-soname,libEvent.so -shared LIBS = $(ROOTLIBS) -lg++ -lm -lsocket -lgen GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/openwin/lib \ -L/usr/ccs/lib -lXpm -lX11 -lg++ -lm -lgen -ldl -lsocket +SELF,IF=SOLARISPC. # Solaris CXX = CC CXXFLAGS = -KPIC -I$(ROOTSYS)/include LD = CC LDFLAGS = -g SOFLAGS = -G LIBS = $(ROOTLIBS) -lm -lsocket -lgen GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/openwin/lib \ -L/usr/ccs/lib -lXpm -lX11 -lm -lgen -ldl -lsocket +SELF,IF=SGI,IF=-GCC,IF=-KCC. # SGI CXX = CC CXXFLAGS = -O -I$(ROOTSYS)/include LD = CC LDFLAGS = -g SOFLAGS = -Wl,-soname,libEvent.so -shared LIBS = $(ROOTLIBS) -lm -ldl GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -lXpm -lX11 -lm -lPW -ldl +SELF,IF=SGI,IF=GCC. # SGI with GCC CXX = g++ CXXFLAGS = -fsigned-char -fPIC -I$(ROOTSYS)/include LD = g++ LDFLAGS = -g -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv SOFLAGS = -Wl,-soname,libEvent.so -shared LIBS = $(ROOTLIBS) -lg++ -lm -ldl GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -lXpm -lX11 -lg++ -lm -lPW -ldl +SELF,IF=SGI,IF=KCC. # SGI with KCC CXX = KCC CXXFLAGS = -I$(ROOTSYS)/include --signed_chars --display_error_number --diag_suppress 68 --diag_suppress 191 LD = KCC LDFLAGS = -g -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv SOFLAGS = -Wl,-soname,libEvent.so ROOTLIBS = -L$(ROOTSYS)/lib -lBase -lCint -lClib -lCont -lFunc \ -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMeta -lMinuit -lNet \ -lPostscript -lProof -lTree -lUnix -lZip LIBS = $(ROOTLIBS) -lm -ldl GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -lXpm -lX11 -lm -lPW -ldl +SELF,IF=ALPHA,IF=GCC. # Alpha/OSF with g++ CXX = g++ CXXFLAGS = -O -I$(ROOTSYS)/include LD = g++ LDFLAGS = -g SOFLAGS = -Wl,-soname,libEvent.so -Wl,-expect_unresolved,* -shared LIBS = $(ROOTLIBS) -lg++ -lm GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -lXpm -lX11 -lg++ -lm -lPW +SELF,IF=ALPHA,IF=CXX. # Alpha/OSF with cxx CXX = cxx CXXFLAGS = -O -D__osf__ -D__alpha -I$(ROOTSYS)/include LD = cxx LDFLAGS = -g SOFLAGS = -Wl,-expect_unresolved,* -call_shared LIBS = $(ROOTLIBS) -lm GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -lXpm -lX11 -lm -lPW +SELF,IF=LINUX,IF=-EGCS. # Linux CXX = g++ CXXFLAGS = -O -Wall -fPIC -I$(ROOTSYS)/include LD = g++ LDFLAGS = -g SOFLAGS = -Wl,-soname,libEvent.so -shared LIBS = $(ROOTLIBS) -lg++ -lm -ldl -rdynamic GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/X11R6/lib \ -lXpm -lX11 -lg++ -lm -ldl -rdynamic +SELF,IF=LINUX,IF=EGCS. # Linux with egcs CXX = g++ CXXFLAGS = -O -Wall -fno-rtti -fno-exceptions -fPIC -I$(ROOTSYS)/include LD = g++ LDFLAGS = -g SOFLAGS = -Wl,-soname,libEvent.so -shared LIBS = $(ROOTLIBS) -lm -ldl -rdynamic GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/X11R6/lib \ -lXpm -lX11 -lm -ldl -rdynamic +SELF,IF=HIUX. # Hitachi HIUX DllSuf = sl CXX = g++ CXXFLAGS = -O2 -fno-rtti -fno-exceptions -fPIC -I$(ROOTSYS)/include LD = g++ LDFLAGS = -Wl,+s SOFLAGS = -Wl,-b,-E -nostdlib -nostartfiles LIBS = $(ROOTLIBS) -lm -ldld GLIBS = $(ROOTLIBS) $(ROOTGLIBS) -lXpm -lX11 -lm -ldld +SELF. #------------------------------------------------------------------------------ EVENTO = Event.$(ObjSuf) \ EventCint.$(ObjSuf) EVENTS = Event.$(SrcSuf) \ EventCint.$(SrcSuf) MAINEVENTO = MainEvent.$(ObjSuf) MAINEVENTS = MainEvent.$(SrcSuf) EVENT = Event$(ExeSuf) EVENTSO = libEvent.$(DllSuf) 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) OBJS = $(EVENTO) $(MAINEVENTO) $(HWORLDO) $(HSIMPLEO) $(MINEXAMO) \ $(TSTRINGO) $(TCOLLEXO) $(VVECTORO) $(VMATRIXO) $(VLAZYO) \ $(GUITESTO) PROGRAMS = $(EVENT) $(HWORLD) $(HSIMPLE) $(MINEXAM) $(TSTRING) \ $(TCOLLEX) $(VVECTOR) $(VMATRIX) $(VLAZY) $(GUITEST) all: $(PROGRAMS) $(EVENT): $(EVENTO) $(MAINEVENTO) +IF,IBMRT. /usr/lpp/xlC/bin/makeC++SharedLib $(OutPutOpt) $(EVENTSO) $(LIBS) -p 0 $(EVENTO) +ELSEIF,ALPHACXX. # due to a bug in cxx/ld under osf3.xx, one cannot use cxx to generate # a shared library. One must use ld instead. ld -L/usr/lib/cmplrs/cxx -rpath /usr/lib/cmplrs/cxx -expect_unresolved "*" \ -g0 -O1 -shared /usr/lib/cmplrs/cc/crt0.o /usr/lib/cmplrs/cxx/_main.o \ -o libEvent.so Event.o EventCint.o -lcxxstd -lcxx -lexc -lots -lc +ELSE $(LD) $(SOFLAGS) $(LDFLAGS) $(EVENTO) $(OutPutOpt) $(EVENTSO) +ENDIF. $(LD) $(LDFLAGS) $(MAINEVENTO) $(EVENTLIB) $(LIBS) $(OutPutOpt) $(EVENT) @echo "$(EVENT) done" $(HWORLD): $(HWORLDO) $(LD) $(LDFLAGS) $(HWORLDO) $(GLIBS) $(OutPutOpt) $(HWORLD) @echo "$(HWORLD) done" $(HSIMPLE): $(HSIMPLEO) $(LD) $(LDFLAGS) $(HSIMPLEO) $(LIBS) $(OutPutOpt) $(HSIMPLE) @echo "$(HSIMPLE) done" $(MINEXAM): $(MINEXAMO) $(LD) $(LDFLAGS) $(MINEXAMO) $(LIBS) $(OutPutOpt) $(MINEXAM) @echo "$(MINEXAM) done" $(TSTRING): $(TSTRINGO) $(LD) $(LDFLAGS) $(TSTRINGO) $(LIBS) $(OutPutOpt) $(TSTRING) @echo "$(TSTRING) done" $(TCOLLEX): $(TCOLLEXO) $(LD) $(LDFLAGS) $(TCOLLEXO) $(LIBS) $(OutPutOpt) $(TCOLLEX) @echo "$(TCOLLEX) done" $(TCOLLBM): $(TCOLLBMO) $(LD) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt) $@ @echo "$@ done" $(VVECTOR): $(VVECTORO) $(LD) $(LDFLAGS) $(VVECTORO) $(LIBS) $(OutPutOpt) $(VVECTOR) @echo "$(VVECTOR) done" $(VMATRIX): $(VMATRIXO) $(LD) $(LDFLAGS) $(VMATRIXO) $(LIBS) $(OutPutOpt) $(VMATRIX) @echo "$(VMATRIX) done" $(VLAZY): $(VLAZYO) $(LD) $(LDFLAGS) $(VLAZYO) $(LIBS) $(OutPutOpt) $(VLAZY) @echo "$(VLAZY) done" $(GUITEST): $(GUITESTO) $(LD) $(LDFLAGS) $(GUITESTO) $(GLIBS) $(OutPutOpt) $(GUITEST) @echo "$(GUITEST) done" clean: @rm -f $(OBJS) EventCint.$(SrcSuf) EventCint.h core .SUFFIXES: .$(SrcSuf) ### Event.o: Event.h MainEvent.o: Event.h EventCint.$(SrcSuf): Event.h LinkDef.h @echo "Generating dictionary ..." @$(ROOTSYS)/bin/rootcint -f EventCint.$(SrcSuf) -c Event.h LinkDef.h .$(SrcSuf).$(ObjSuf): $(CXX) $(CXXFLAGS) -c $<