From 4dfc83ff92ed2cb8b57fc6a28c96d367810d30d8 Mon Sep 17 00:00:00 2001 From: Fons Rademakers <Fons.Rademakers@cern.ch> Date: Mon, 21 Mar 2005 21:42:23 +0000 Subject: [PATCH] From Christian Holm Christensen: * New Debian and RedHat rpm packaging scripts. * Added a description to `build/package/debian/README.Debian' on how to add a new package. It's not that complicated so it should be a simple thing to add a new package, even for some with little or no experience with RPMs or DEBs. * When searching for the Oracle client libraries, I added the directories `/usr/lib/oracle/*/client/lib' and `/usr/include/oracle/*/client' - as these are the paths that the RPMs install into. * I added the packages `root-plugin-krb5' and `root-plugin-oracle'. * The library `libXMLIO' is in `libroot'. * The package `root-plugin-xml' contains the XML parser. * I fixed an cosmetic error in `build/misc/root.m4'. The definition of `ROOT_PATH' should be quoted, otherwise aclocal will complain. * In the top-level `Makefile' I pass an additional argument to `makecintdlls' - namely `$(ROOTCINTTMP)'. In `makecintdlls' I use that argument to make the various dictionaries for `lib...Dict.so'. Originally, the script used plain `rootcint'. However, as `rootcint' may not be in the path yet, or the one in the path may be old, this failed. Hence, I use what we know is there - namely the newly build `rootcint_tmp'. BTW, what are these shared libraries, and where do they belong? I guess they are specific to ROOT, and not used by plain `CINT'. For now, I put them in `libroot'. * Made the two `virtual' packages `root-db-client' - provided the DB plugins, and `root-fitter' provided by `root-plugin-minuit' and `root-plugin-fumili'. Note, the virtual package `root-file-server' provided by `root-rootd' and `root-xrootd' already existed in the previous patch. * Note, I added the directory `build/package/debian/po' which is for translations of DebConf templates. DebConf is Debians very advanced package configuration interface. It presents the user with a set of questions in some sort of `GUI' based on how much the user would like to change. These `dialogs' can be translated quite easily. As an example, I translated the questions used by the `ttf-root-installer' package into Danish. I'm sure someone can translate them into German, French, Italien, Spanish, and so on. git-svn-id: http://root.cern.ch/svn/root/trunk@11398 27541ba8-7e3a-0410-8455-c3a389f83636 --- Makefile | 100 +++----- alien/Module.mk | 4 +- asimage/Module.mk | 34 ++- build/misc/root.m4 | 7 +- build/unix/makecintdlls.sh | 87 ++++--- chirp/Module.mk | 4 +- config/Makefile.in | 82 ++++-- configure | 504 ++++++++++++++++++++++++------------- dcache/Module.mk | 4 +- etc/rootd | 77 ++++++ freetype/Module.mk | 11 + gl/Module.mk | 12 +- globusauth/Module.mk | 4 +- graf/Module.mk | 13 +- krb5auth/Module.mk | 4 +- ldap/Module.mk | 2 +- man/man1/cint.1 | 78 +++--- man/man1/g2rootold.1 | 166 ++++++++++++ man/man1/makecint.1 | 166 ++++++------ man/man1/memprobe.1 | 16 +- man/man1/olbd.1 | 69 +++++ man/man1/proofd.1 | 14 +- man/man1/rlibmap.1 | 83 ++++++ man/man1/root-config.1 | 66 ++--- man/man1/rootcint.1 | 14 +- man/man1/rootd.1 | 61 ++++- man/man1/ssh2rpd.1 | 64 +++++ man/man1/xrootd.1 | 425 +++++++++++++++++++++++++++++++ mysql/Module.mk | 4 +- net/Module.mk | 2 +- netx/Module.mk | 2 +- pgsql/Module.mk | 4 +- pyroot/Module.mk | 2 +- qt/Module.mk | 5 +- rfio/Module.mk | 4 +- rpdutils/Module.mk | 6 +- ruby/Module.mk | 2 +- sapdb/Module.mk | 4 +- srputils/Module.mk | 6 +- win32gdk/Module.mk | 10 +- x11ttf/Module.mk | 6 +- xmlparser/Module.mk | 2 +- xrootd/Module.mk | 2 +- 43 files changed, 1687 insertions(+), 545 deletions(-) create mode 100644 etc/rootd create mode 100644 man/man1/g2rootold.1 create mode 100644 man/man1/olbd.1 create mode 100644 man/man1/rlibmap.1 create mode 100644 man/man1/ssh2rpd.1 create mode 100644 man/man1/xrootd.1 diff --git a/Makefile b/Makefile index 0d709d4a565..fed8d3a2819 100644 --- a/Makefile +++ b/Makefile @@ -73,116 +73,84 @@ SYSTEMDO = $(UNIXDO) endif endif endif -ifneq ($(OPENGLINCDIR),) -ifneq ($(OPENGLULIB),) -ifneq ($(OPENGLLIB),) +ifeq ($(BUILDGL),yes) MODULES += gl endif -endif -endif -ifneq ($(MYSQLINCDIR),) -ifneq ($(MYSQLCLILIB),) +ifeq ($(BUILDMYSQL),yes) MODULES += mysql endif -endif -ifneq ($(ORACLEINCDIR),) -ifneq ($(ORACLECLILIB),) +ifeq ($(BUILDORACLE),yes) MODULES += oracle endif -endif -ifneq ($(PGSQLINCDIR),) -ifneq ($(PGSQLCLILIB),) +ifeq ($(BUILDPGSQL),yes) MODULES += pgsql endif -endif -ifneq ($(SAPDBINCDIR),) -ifneq ($(SAPDBCLILIB),) +ifeq ($(BUILDSAPDB),yes) MODULES += sapdb endif -endif -ifneq ($(SHIFTINCDIR),) -ifneq ($(SHIFTLIB),) +ifeq ($(BUILDSHIFT),yes) MODULES += rfio endif -endif -ifneq ($(DCAPINCDIR),) -ifneq ($(DCAPLIB),) +ifeq ($(BUILDDCAP),yes) MODULES += dcache endif -endif -ifneq ($(CHIRPINCDIR),) -ifneq ($(CHIRPCLILIB),) +ifeq ($(BUILDCHIRP),yes) MODULES += chirp endif -endif -ifneq ($(ALIENINCDIR),) -ifneq ($(ALIENCLILIB),) +ifeq ($(BUILDALIEN),yes) MODULES += alien endif -endif ifeq ($(BUILDASIMAGE),yes) MODULES += asimage endif ifeq ($(ENABLETHREAD),yes) MODULES += thread endif -ifneq ($(FPYTHIALIB),) +ifeq ($(BUILDFPYTHIA),yes) MODULES += pythia endif -ifneq ($(FPYTHIA6LIB),) +ifeq ($(BUILDFPYTHIA6),yes) MODULES += pythia6 endif -ifneq ($(FVENUSLIB),) +ifeq ($(BUILDFVENUS),yes) MODULES += venus endif -ifneq ($(PYTHONINCDIR),) -ifneq ($(PYTHONLIB),) +ifeq ($(BUILDPYTHON),yes) MODULES += pyroot endif -endif -ifneq ($(RUBYINCDIR),) -ifneq ($(RUBYLIB),) +ifeq ($(BUILDRUBY),yes) MODULES += ruby endif -endif -ifneq ($(XMLINCDIR),) -ifneq ($(XMLCLILIB),) +ifeq ($(BUILDXML),yes) MODULES += xmlparser endif -endif -ifneq ($(QTINCDIR),) -ifneq ($(QTLIB),) +ifeq ($(BUILDQT),yes) MODULES += qt qtroot endif -endif -ifneq ($(TABLE),) +ifeq ($(BUILDTABLE),yes) MODULES += table endif -ifneq ($(SRPUTILLIB),) +ifeq ($(BUILDSRPUTIL),yes) MODULES += srputils endif -ifneq ($(KRB5LIB),) +ifeq ($(BUILDKRB5),yes) MODULES += krb5auth endif -ifneq ($(LDAPINCDIR),) -ifneq ($(LDAPCLILIB),) +ifeq ($(BUILDLDAP),yes) MODULES += ldap endif -endif -ifneq ($(GLOBUSLIB),) +ifeq ($(BUILDGLOBUS),yes) MODULES += globusauth endif -ifneq ($(CERNLIBS),) +ifeq ($(BUILDHBOOK),yes) MODULES += hbook endif ifeq ($(BUILDXRD),yes) MODULES += xrootd netx endif -ifneq ($(CLARENSINC),) -ifneq ($(CLARENSLIBS),) +ifeq ($(BUILDCLARENS),yes) MODULES += clarens endif -endif ifeq ($(BUILDPEAC),yes) MODULES += peac endif @@ -405,7 +373,7 @@ config config/Makefile.: config/Makefile.config include/config.h etc/system.rootauthrc \ etc/system.rootdaemonrc etc/root.mimes $(ROOTRC) bin/root-config: Makefile -ifeq ($(findstring $(MAKECMDGOALS),distclean maintainer-clean),) +ifeq ($(findstring $(MAKECMDGOALS),distclean maintainer-clean debian redhat),) Makefile: configure config/rootrc.in config/config.in config/Makefile.in \ config/root-config.in config/rootauthrc.in config/rootdaemonrc.in \ config/mimes.unix.in config/mimes.win32.in @@ -468,9 +436,9 @@ rebase: $(ALLLIBS) $(ALLEXECS) @echo done. debian: - @if [ ! -x `which debuild` ] || [ ! -x `which dh_testdir` ]; then \ - echo "You must have debuild and debhelper installed to"; \ - echo "make the Debian GNU/Linux package"; exit 1; fi + @if [ ! -x `which dpkg-buildpackage` ] || [ ! -x `which dh_testdir` ]; then \ + echo "You must have debhelper installed to make the "; \ + echo "Debian GNU/Linux packages"; exit 1; fi @echo "OK, you're on a Debian GNU/Linux system - cool" @vers=`sed 's|\(.*\)/\(.*\)|\1.\2|' < build/version_number` ; \ dirvers=`basename $$PWD | sed 's|root-\(.*\)|\1|'` ; \ @@ -478,9 +446,10 @@ debian: echo "Must have ROOT source tree in root-$$vers" ; \ echo "Please rename this directory to `basename $$PWD` to"; \ echo "root-$$vers and try again"; exit 1 ; fi - build/package/lib/makedebclean.sh + rm -rf debian build/package/lib/makedebdir.sh - debuild -rfakeroot -us -uc -i"G__|^debian|\.d$$" + fakeroot debian/rules debian/control + dpkg-buildpackage -rfakeroot -us -uc -i"G__|^debian|\.d$$" @echo "Debian GNU/Linux packages done. They are put in '../'" redhat: @@ -488,7 +457,6 @@ redhat: echo "You must have rpm installed to make the Redhat package"; \ exit 1; fi @echo "OK, you have RPM on your system - good" - build/package/lib/makerpmclean.sh build/package/lib/makerpmspec.sh @echo "To build the packages, make a gzipped tar ball of the sources" @vers=`sed 's|\(.*\)/\(.*\)|\1.\2|' < build/version_number` ; \ @@ -612,8 +580,8 @@ endif -@mv -f rootd/misc/rootd.rc.dd rootd/misc/rootd.rc.d -@cd test && $(MAKE) distclean + maintainer-clean:: distclean - -build/package/lib/makedebclean.sh -build/package/lib/makerpmclean.sh @rm -rf bin lib include htmldoc system.rootrc config/Makefile.config \ $(ROOTRC) etc/system.rootauthrc etc/system.rootdaemonrc \ @@ -624,9 +592,9 @@ version: $(CINTTMP) @$(MAKEVERSION) cintdlls: $(CINTTMP) - @$(MAKECINTDLLS) $(PLATFORM) "$(CINTTMP)" "$(MAKELIB)" "$(CXX)" \ - "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" "$(CINTCFLAGS)" \ - "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)" + @$(MAKECINTDLLS) $(PLATFORM) "$(CINTTMP)" "$(ROOTCINTTMP)" \ + "$(MAKELIB)" "$(CXX)" "$(CC)" "$(LD)" "$(OPT)" "$(CINTCXXFLAGS)" \ + "$(CINTCFLAGS)" "$(LDFLAGS)" "$(SOFLAGS)" "$(SOEXT)" "$(COMPILER)" static: rootlibs @$(MAKESTATIC) $(PLATFORM) "$(CXX)" "$(CC)" "$(LD)" "$(LDFLAGS)" \ diff --git a/alien/Module.mk b/alien/Module.mk index e9469a54666..03791892639 100644 --- a/alien/Module.mk +++ b/alien/Module.mk @@ -46,7 +46,7 @@ $(ALIENDS): $(ALIENH) $(ALIENL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(ALIENH) $(ALIENL) $(ALIENDO): $(ALIENDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I$(ALIENINCDIR) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) $(ALIENINCDIR:%=-I%) -I. -o $@ -c $< all-alien: $(ALIENLIB) @@ -68,4 +68,4 @@ distclean:: distclean-alien ##### extra rules ###### $(ALIENO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(ALIENINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(ALIENINCDIR:%=-I%) -o $@ -c $< diff --git a/asimage/Module.mk b/asimage/Module.mk index 9da1e597467..4c5766f600f 100644 --- a/asimage/Module.mk +++ b/asimage/Module.mk @@ -11,11 +11,18 @@ ASIMAGEDIR := $(MODDIR) ASIMAGEDIRS := $(ASIMAGEDIR)/src ASIMAGEDIRI := $(ASIMAGEDIR)/inc +ifeq ($(BUILTINASIMAGE), yes) ASTEPVERS := libAfterImage ASTEPDIRS := $(MODDIRS)/$(ASTEPVERS) -ASTEPDIRI := $(MODDIRS)/$(ASTEPVERS) +ASTEPDIRI := -I$(MODDIRS)/$(ASTEPVERS) +else +ASTEPDIRI := $(ASINCDIR:%=-I%) +ASTEPDIRS := +ASTEPVERS := +endif ##### libAfterImage ##### +ifeq ($(BUILTINASIMAGE), yes) ifeq ($(PLATFORM),win32) ASTEPLIBA := $(ASTEPDIRS)/libAfterImage.lib ASTEPLIB := $(LPATH)/libAfterImage.lib @@ -23,6 +30,12 @@ else ASTEPLIBA := $(ASTEPDIRS)/libAfterImage.a ASTEPLIB := $(LPATH)/libAfterImage.a endif +ASTEPDEP := $(ASTEPLIB) +else +ASTEPLIBA := $(ASLIBDIR) $(ASLIB) +ASTEPLIB := $(ASLIBDIR) $(ASLIB) +ASTEPDEP := +endif ##### libASImage ##### ASIMAGEL := $(MODDIRI)/LinkDef.h @@ -49,6 +62,7 @@ INCLUDEFILES += $(ASIMAGEDEP) include/%.h: $(ASIMAGEDIRI)/%.h cp $< $@ +ifeq ($(BUILTINASIMAGE), yes) $(ASTEPLIB): $(ASTEPLIBA) cp $< $@ @(if [ $(PLATFORM) = "macosx" ]; then \ @@ -126,19 +140,20 @@ else $$GIFINCDIR; \ $(MAKE)) endif +endif -$(ASIMAGELIB): $(ASIMAGEO) $(ASIMAGEDO) $(ASTEPLIB) $(FREETYPELIB) \ +$(ASIMAGELIB): $(ASIMAGEO) $(ASIMAGEDO) $(ASTEPDEP) $(FREETYPELIB) \ $(MAINLIBS) $(ASIMAGELIBDEP) ifeq ($(PLATFORM),win32) @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libASImage.$(SOEXT) $@ \ "$(ASIMAGEO) $(ASIMAGEDO)" \ - "$(ASIMAGELIBEXTRA) $(ASTEPLIB) $(ASEXTRALIBDIR) $(ASEXTRALIB) $(FREETYPELIB)" + "$(ASIMAGELIBEXTRA) $(ASTEPLIB) $(ASEXTRALIBDIR) $(ASEXTRALIB) $(FREETYPELDFLAGS) $(FREETYPELIB)" else @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libASImage.$(SOEXT) $@ \ "$(ASIMAGEO) $(ASIMAGEDO)" \ - "$(ASIMAGELIBEXTRA) $(ASTEPLIB) $(ASEXTRALIBDIR) $(ASEXTRALIB) $(XLIBS) $(FREETYPELIB)" + "$(ASIMAGELIBEXTRA) $(ASTEPLIB) $(ASEXTRALIBDIR) $(ASEXTRALIB) $(XLIBS) $(FREETYPELDFLAGS) $(FREETYPELIB)" endif $(ASIMAGEDS): $(ASIMAGEH) $(ASIMAGEL) $(ROOTCINTTMP) @@ -146,7 +161,7 @@ $(ASIMAGEDS): $(ASIMAGEH) $(ASIMAGEL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(ASIMAGEH) $(ASIMAGEL) $(ASIMAGEDO): $(ASIMAGEDS) $(ASTEPLIB) - $(CXX) $(NOOPT) $(CXXFLAGS) -I$(ASTEPDIRI) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) $(ASTEPDIRI) -I. -o $@ -c $< all-asimage: $(ASIMAGELIB) @@ -158,6 +173,7 @@ map:: map-asimage clean-asimage: @rm -f $(ASIMAGEO) $(ASIMAGEDO) +ifeq ($(BUILTINASIMAGE), yes) ifeq ($(PLATFORM),win32) -@(if [ -d $(ASTEPDIRS) ]; then \ cd $(ASTEPDIRS); \ @@ -171,15 +187,19 @@ else $(MAKE) clean; \ fi) endif +endif clean:: clean-asimage distclean-asimage: clean-asimage @rm -f $(ASIMAGEDEP) $(ASIMAGEDS) $(ASIMAGEDH) $(ASIMAGELIB) - @rm -rf $(ASTEPLIB) $(ASTEPDIRS) +ifeq ($(BUILTINASIMAGE), yes) + @rm -rf $(ASTEPLIB) +endif + @rm -rf $(ASTEPDIRS) distclean:: distclean-asimage ##### extra rules ###### $(ASIMAGEO): %.o: %.cxx $(ASTEPLIB) - $(CXX) $(OPT) $(CXXFLAGS) -I$(ASTEPDIRI) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(ASTEPDIRI) -o $@ -c $< diff --git a/build/misc/root.m4 b/build/misc/root.m4 index 458131df00d..452b3a44c0b 100644 --- a/build/misc/root.m4 +++ b/build/misc/root.m4 @@ -1,7 +1,8 @@ +dnl -*- mode: autoconf -*- dnl -dnl $Id: root.m4,v 1.1 2002/01/20 14:23:51 rdm Exp $ +dnl $Id: root.m4,v 1.2 2002/07/31 20:45:09 rdm Exp $ dnl $Author: rdm $ -dnl $Date: 2002/01/20 14:23:51 $ +dnl $Date: 2002/07/31 20:45:09 $ dnl dnl Autoconf macro to check for existence or ROOT on the system dnl Synopsis: @@ -31,7 +32,7 @@ dnl The macro will fail if root-config and rootcint isn't found. dnl dnl Christian Holm Christensen <cholm@nbi.dk> dnl -AC_DEFUN(ROOT_PATH, +AC_DEFUN([ROOT_PATH], [ AC_ARG_WITH(rootsys, [ --with-rootsys top of the ROOT installation directory], diff --git a/build/unix/makecintdlls.sh b/build/unix/makecintdlls.sh index 5c76b8150fd..6e3211829fe 100755 --- a/build/unix/makecintdlls.sh +++ b/build/unix/makecintdlls.sh @@ -5,24 +5,21 @@ # # Author: Fons Rademakers, 27/7/2000 -PLATFORM=$1 +PLATFORM=$1 ; shift if [ $PLATFORM != "clean" ]; then - CINT=$2 - MAKELIB=$3 - CXX=$4 - CC=$5 - LD=$6 - OPT=$7 - CINTCXXFLAGS=$8 - CINTCFLAGS=$9 - shift - LDFLAGS=$9 - shift - SOFLAGS=$9 - shift - SOEXT=$9 - shift - COMPILER=$9 + CINT=$1 ; shift + ROOTCINT=$1 ; shift + MAKELIB=$1 ; shift + CXX=$1 ; shift + CC=$1 ; shift + LD=$1 ; shift + OPT=$1 ; shift + CINTCXXFLAGS=$1 ; shift + CINTCFLAGS=$1 ; shift + LDFLAGS=$1 ; shift + SOFLAGS=$1 ; shift + SOEXT=$1 ; shift + COMPILER=$1 ; shift fi if [ $PLATFORM = "macosx" ]; then SOEXT=so @@ -47,27 +44,27 @@ CINTDIRI=cint/include CINTDIRS=cint/stl clean() { - rm -f $CINTDIRI/stdfunc.dll - rm -f $CINTDIRI/stdcxxfunc.dll - rm -f $CINTDIRI/posix.dll + rm -f $CINTDIRI/stdfunc.dll $CINTDIRI/stdfunc.so.* + rm -f $CINTDIRI/stdcxxfunc.dll $CINTDIRI/stdcxxfunc.so.* + rm -f $CINTDIRI/posix.dll $CINTDIRI/posix.so.* rm -f $CINTDIRI/systypes.h rm -f $CINTDIRI/sys/types.h - rm -f $CINTDIRI/sys/ipc.dll - rm -f $CINTDIRS/string.dll - rm -f $CINTDIRS/vector.dll - rm -f $CINTDIRS/list.dll - rm -f $CINTDIRS/deque.dll - rm -f $CINTDIRS/map.dll - rm -f $CINTDIRS/map2.dll - rm -f $CINTDIRS/set.dll - rm -f $CINTDIRS/multimap.dll - rm -f $CINTDIRS/multimap2.dll - rm -f $CINTDIRS/multiset.dll - rm -f $CINTDIRS/stack.dll - rm -f $CINTDIRS/queue.dll - rm -f $CINTDIRS/valarray.dll - rm -f $CINTDIRS/exception.dll - rm -f $CINTDIRS/complex.dll + rm -f $CINTDIRI/sys/ipc.dll $CINTDIRI/sys/ipc.so.* + rm -f $CINTDIRS/string.dll $CINTDIRS/string.so.* + rm -f $CINTDIRS/vector.dll $CINTDIRS/vector.so.* + rm -f $CINTDIRS/list.dll $CINTDIRS/list.so.* + rm -f $CINTDIRS/deque.dll $CINTDIRS/deque.so.* + rm -f $CINTDIRS/map.dll $CINTDIRS/map.so.* + rm -f $CINTDIRS/map2.dll $CINTDIRS/map2.so.* + rm -f $CINTDIRS/set.dll $CINTDIRS/set.so.* + rm -f $CINTDIRS/multimap.dll $CINTDIRS/multimap.so.* + rm -f $CINTDIRS/multimap2.dll $CINTDIRS/multimap2.so.* + rm -f $CINTDIRS/multiset.dll $CINTDIRS/multiset.so.* + rm -f $CINTDIRS/stack.dll $CINTDIRS/stack.so.* + rm -f $CINTDIRS/queue.dll $CINTDIRS/queue.so.* + rm -f $CINTDIRS/valarray.dll $CINTDIRS/valarray.so.* + rm -f $CINTDIRS/exception.dll $CINTDIRS/exception.so.* + rm -f $CINTDIRS/complex.dll $CINTDIRS/complex.so.* } execute() { @@ -199,7 +196,7 @@ execute "$CINT -w1 -zvector -n$STLDIR/G__cpp_vector.cxx -D__MAKECINT__ \ -DG__MAKECINT -I$STLDIR -c-1 -A -Z0 $STLDIR/vec.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_vector.o -c $STLDIR/G__cpp_vector.cxx" -execute "rootcint -f $STLDIR/rootcint_vector.cxx -c vector \ +execute "$ROOTCINT -f $STLDIR/rootcint_vector.cxx -c vector \ $LINKDEFDIR/vectorLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_vector.o \ -c $STLDIR/rootcint_vector.cxx" @@ -215,7 +212,7 @@ execute "$CINT -w1 -zlist -n$STLDIR/G__cpp_list.cxx -D__MAKECINT__ \ -DG__MAKECINT -I$STLDIR -c-1 -A -Z0 $STLDIR/lst.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_list.o \ -c $STLDIR/G__cpp_list.cxx" -execute "rootcint -f $STLDIR/rootcint_list.cxx -c list \ +execute "$ROOTCINT -f $STLDIR/rootcint_list.cxx -c list \ $LINKDEFDIR/listLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_list.o \ -c $STLDIR/rootcint_list.cxx" @@ -231,7 +228,7 @@ execute "$CINT -w1 -zdeque -n$STLDIR/G__cpp_deque.cxx -D__MAKECINT__ \ -DG__MAKECINT -I$STLDIR -c-1 -A -Z0 $STLDIR/dqu.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_deque.o \ -c $STLDIR/G__cpp_deque.cxx" -execute "rootcint -f $STLDIR/rootcint_deque.cxx -c deque \ +execute "$ROOTCINT -f $STLDIR/rootcint_deque.cxx -c deque \ $LINKDEFDIR/dequeLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_deque.o \ -c $STLDIR/rootcint_deque.cxx" @@ -247,7 +244,7 @@ execute "$CINT -w1 -zmap -n$STLDIR/G__cpp_map.cxx -D__MAKECINT__ \ -DG__MAKECINT -I$STLDIR -c-1 -A -Z0 $STLDIR/mp.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_map.o \ -c $STLDIR/G__cpp_map.cxx" -execute "rootcint -f $STLDIR/rootcint_map.cxx -c map $LINKDEFDIR/mapLinkdef.h" +execute "$ROOTCINT -f $STLDIR/rootcint_map.cxx -c map $LINKDEFDIR/mapLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_map.o \ -c $STLDIR/rootcint_map.cxx" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -DWHAT=\"map\" \ @@ -262,7 +259,7 @@ execute "$CINT -w1 -zmap2 -n$STLDIR/G__cpp_map2.cxx -D__MAKECINT__ \ -DG__MAKECINT -DG__MAP2 -I$STLDIR -c-1 -A -Z0 $STLDIR/mp.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_map2.o \ -c $STLDIR/G__cpp_map2.cxx" -execute "rootcint -f $STLDIR/rootcint_map2.cxx -c -DG__MAP2 map \ +execute "$ROOTCINT -f $STLDIR/rootcint_map2.cxx -c -DG__MAP2 map \ $LINKDEFDIR/mapLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_map2.o \ -c $STLDIR/rootcint_map2.cxx" @@ -278,7 +275,7 @@ execute "$CINT -w1 -zset -n$STLDIR/G__cpp_set.cxx -D__MAKECINT__ \ -DG__MAKECINT -I$STLDIR -c-1 -A -Z0 $STLDIR/st.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_set.o \ -c $STLDIR/G__cpp_set.cxx" -execute "rootcint -f $STLDIR/rootcint_set.cxx -c set $LINKDEFDIR/setLinkdef.h" +execute "$ROOTCINT -f $STLDIR/rootcint_set.cxx -c set $LINKDEFDIR/setLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_set.o \ -c $STLDIR/rootcint_set.cxx" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -DWHAT=\"set\" \ @@ -293,7 +290,7 @@ execute "$CINT -w1 -zmultimap -n$STLDIR/G__cpp_multimap.cxx -D__MAKECINT__ \ -DG__MAKECINT -I$STLDIR -c-1 -A -Z0 $STLDIR/multmp.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_multimap.o \ -c $STLDIR/G__cpp_multimap.cxx" -execute "rootcint -f $STLDIR/rootcint_multimap.cxx -c map \ +execute "$ROOTCINT -f $STLDIR/rootcint_multimap.cxx -c map \ $LINKDEFDIR/multimapLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_multimap.o \ -c $STLDIR/rootcint_multimap.cxx" @@ -310,7 +307,7 @@ execute "$CINT -w1 -zmultimap2 -n$STLDIR/G__cpp_multimap2.cxx -D__MAKECINT__ \ -DG__MAKECINT -DG__MAP2 -I$STLDIR -c-1 -A -Z0 $STLDIR/multmp.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_multimap2.o \ -c $STLDIR/G__cpp_multimap2.cxx" -execute "rootcint -f $STLDIR/rootcint_multimap2.cxx -c -DG__MAP2 map \ +execute "$ROOTCINT -f $STLDIR/rootcint_multimap2.cxx -c -DG__MAP2 map \ $LINKDEFDIR/multimapLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_multimap2.o \ -c $STLDIR/rootcint_multimap2.cxx" @@ -327,7 +324,7 @@ execute "$CINT -w1 -zmultiset -n$STLDIR/G__cpp_multiset.cxx -D__MAKECINT__ \ -DG__MAKECINT -I$STLDIR -c-1 -A -Z0 $STLDIR/multst.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/G__cpp_multiset.o \ -c $STLDIR/G__cpp_multiset.cxx" -execute "rootcint -f $STLDIR/rootcint_multiset.cxx -c set \ +execute "$ROOTCINT -f $STLDIR/rootcint_multiset.cxx -c set \ $LINKDEFDIR/multisetLinkdef.h" execute "$CXX $OPT $CINTCXXFLAGS $INCDIRS -o $STLDIR/rootcint_multiset.o \ -c $STLDIR/rootcint_multiset.cxx" diff --git a/chirp/Module.mk b/chirp/Module.mk index 2c902f65090..c9267a04146 100644 --- a/chirp/Module.mk +++ b/chirp/Module.mk @@ -45,7 +45,7 @@ $(CHIRPDS): $(CHIRPH) $(CHIRPL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(CHIRPH) $(CHIRPL) $(CHIRPDO): $(CHIRPDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I$(CHIRPINCDIR) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) $(CHIRPINCDIR:%=-I%) -I. -o $@ -c $< all-chirp: $(CHIRPLIB) @@ -67,4 +67,4 @@ distclean:: distclean-chirp ##### extra rules ###### $(CHIRPO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(CHIRPINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(CHIRPINCDIR:%=-I%) -o $@ -c $< diff --git a/config/Makefile.in b/config/Makefile.in index 0190bea37bb..e3adfdc5faa 100644 --- a/config/Makefile.in +++ b/config/Makefile.in @@ -43,99 +43,127 @@ ENABLETHREAD := @enable_thread@ OSTHREADLIBDIR := @threadlibdir@ OSTHREADLIB := @threadlib@ +BUILTINFREETYPE:= @builtinfreetype@ + +BUILDGL := @buildgl@ OPENGLLIBDIR := @opengllibdir@ OPENGLULIB := @openglulib@ OPENGLLIB := @opengllib@ -OPENGLINCDIR := @openglincdir@ +OPENGLINCDIR := $(filter-out /usr/include, @openglincdir@) +BUILDHBOOK := @buildhbook@ CERNLIBDIR := @cernlibdir@ CERNLIBS := @cernlibs@ +BUILDLDAP := @buildldap@ LDAPLIBDIR := @ldaplibdir@ LDAPCLILIB := @ldaplib@ -LDAPINCDIR := @ldapincdir@ +LDAPINCDIR := $(filter-out /usr/include, @ldapincdir@) +BUILDMYSQL := @buildmysql@ MYSQLLIBDIR := @mysqllibdir@ MYSQLCLILIB := @mysqllib@ -MYSQLINCDIR := @mysqlincdir@ +MYSQLINCDIR := $(filter-out /usr/include, @mysqlincdir@) +BUILDORACLE := @buildoracle@ ORACLELIBDIR := @oraclelibdir@ ORACLECLILIB := @oraclelib@ -ORACLEINCDIR := @oracleincdir@ +ORACLEINCDIR := $(filter-out /usr/include, @oracleincdir@) +BUILDPGSQL := @buildpgsql@ PGSQLLIBDIR := @pgsqllibdir@ PGSQLCLILIB := @pgsqllib@ -PGSQLINCDIR := @pgsqlincdir@ +PGSQLINCDIR := $(filter-out /usr/include, @pgsqlincdir@) +BUILDSAPDB := @buildsapdb@ SAPDBLIBDIR := @sapdblibdir@ SAPDBCLILIB := @sapdblib@ -SAPDBINCDIR := @sapdbincdir@ +SAPDBINCDIR := $(filter-out /usr/include, @sapdbincdir@) +BUILDQT := @buildqt@ QTLIBDIR := @qtlibdir@ QTLIB := @qtlib@ -QTINCDIR := @qtincdir@ +QTINCDIR := $(filter-out /usr/include, @qtincdir@) +QTMOCEXE := @qtmocexe@ -SHIFTINCDIR := @shiftincdir@ +BUILDSHIFT := @buildshift@ +SHIFTINCDIR := $(filter-out /usr/include, @shiftincdir@) SHIFTLIBDIR := @shiftlibdir@ SHIFTLIB := @shiftlib@ +BUILDDCAP := @builddcap@ DCAPLIBDIR := @dcaplibdir@ DCAPLIB := @dcaplib@ -DCAPINCDIR := @dcapincdir@ +DCAPINCDIR := $(filter-out /usr/include, @dcapincdir@) +BUILDCHIRP := @buildchirp@ CHIRPLIBDIR := @chirplibdir@ CHIRPCLILIB := @chirplib@ -CHIRPINCDIR := @chirpincdir@ +CHIRPINCDIR := $(filter-out /usr/include, @chirpincdir@) +BUILDALIEN := @buildalien@ ALIENLIBDIR := @alienlibdir@ ALIENCLILIB := @alienlib@ -ALIENINCDIR := @alienincdir@ +ALIENINCDIR := $(filter-out /usr/include, @alienincdir@) BUILDASIMAGE := @buildasimage@ +BUILTINASIMAGE := @builtinafterimage@ ASEXTRALIB := @asextralib@ ASEXTRALIBDIR := @asextralibdir@ -ASJPEGINCDIR := @asjpegincdir@ -ASPNGINCDIR := @aspngincdir@ -ASTIFFINCDIR := @astiffincdir@ -ASGIFINCDIR := @asgifincdir@ - +ASJPEGINCDIR := $(filter-out /usr/include, @asjpegincdir@) +ASPNGINCDIR := $(filter-out /usr/include, @aspngincdir@) +ASTIFFINCDIR := $(filter-out /usr/include, @astiffincdir@) +ASGIFINCDIR := $(filter-out /usr/include, @asgifincdir@) +ASINCDIR := $(filter-out /usr/include, @asimageincdir@) +ASLIB := @asimagelib@ +ASLIBDIR := @asimagelibdir@ + +BUILDFPYTHIA := @buildpythia@ FPYTHIALIBDIR := @pythialibdir@ FPYTHIALIB := @pythialib@ +BUILDFPYTHIA6 := @buildpythia6@ FPYTHIA6LIBDIR := @pythia6libdir@ FPYTHIA6LIB := @pythia6lib@ +BUILDFVENUS := @buildvenus@ FVENUSLIBDIR := @venuslibdir@ FVENUSLIB := @venuslib@ +BUILDPYTHON := @buildpython@ PYTHONLIBDIR := @pythonlibdir@ PYTHONLIB := @pythonlib@ -PYTHONINCDIR := @pythonincdir@ +PYTHONINCDIR := $(filter-out /usr/include, @pythonincdir@) PYTHONLIBFLAGS := @pythonlibflags@ +BUILDRUBY := @buildruby@ RUBYLIBDIR := @rubylibdir@ RUBYLIB := @rubylib@ -RUBYINCDIR := @rubyincdir@ +RUBYINCDIR := $(filter-out /usr/include, @rubyincdir@) +BUILDXML := @buildxml@ XMLLIBDIR := @xmllibdir@ XMLCLILIB := @xmllib@ -XMLINCDIR := @xmlincdir@ +XMLINCDIR := $(filter-out /usr/include, @xmlincdir@) BUILDXRD := @buildxrd@ SRPLIBDIR := @srplibdir@ SRPLIB := @srplib@ -SRPINCDIR := @srpincdir@ +SRPINCDIR := $(filter-out /usr/include, @srpincdir@) + +BUILDSRPUTIL := @buildsrputil@ SRPUTILLIBDIR := @srputillibdir@ SRPUTILLIB := @srputillib@ -SRPUTILINCDIR := @srputilincdir@ +SRPUTILINCDIR := $(filter-out /usr/include, @srputilincdir@) AFSLIB := @afslib@ AFSLIBDIR := @afslibdir@ +BUILDKRB5 := @buildkrb5@ KRB5LIB := @krb5lib@ KRB5LIBDIR := @krb5libdir@ -KRB5INCDIR := @krb5incdir@ +KRB5INCDIR := $(filter-out /usr/include, @krb5incdir@) COMERRLIB := @comerrlib@ COMERRLIBDIR := @comerrlibdir@ @@ -145,21 +173,23 @@ RESOLVLIB := @resolvlib@ CRYPTOLIB := @cryptolib@ CRYPTOLIBDIR := @cryptolibdir@ +BUILDGLOBUS := @buildglobus@ GLOBUSLIB := @globuslib@ GLOBUSLIBDIR := @globuslibdir@ -GLOBUSINCDIR := @globusincdir@ +GLOBUSINCDIR := $(filter-out /usr/include, @globusincdir@) SSLLIB := @ssllib@ SSLLIBDIR := @ssllibdir@ -SSLINCDIR := @sslincdir@ +SSLINCDIR := $(filter-out /usr/include, @sslincdir@) SHADOWFLAGS := @shadowpw@ SHADOWLIB := SHADOWLIBDIR := -TABLE := @enable_table@ +BUILDTABLE := @buildtable@ -CLARENSINC := @clarensinc@ +BUILDCLARENS := @buildclarens@ +CLARENSINC := $(filter-out -I/usr/include, @clarensincdir@) CLARENSLIBS := @clarenslibs@ BUILDPEAC := @buildpeac@ diff --git a/configure b/configure index 7c6fb212b1a..2d7625b7224 100755 --- a/configure +++ b/configure @@ -21,42 +21,44 @@ show_pkglist=no noact="no" nohowto="no" -options=" \ - enable_afs \ - enable_alien \ - enable_asimage \ - enable_cern \ - enable_chirp \ - enable_clarens \ - enable_dcache \ - enable_exceptions \ - enable_explicitlink \ - enable_globus \ - enable_krb5 \ - enable_ldap \ - enable_mysql \ - enable_opengl \ - enable_oracle \ - enable_peac \ - enable_pgsql \ - enable_pythia \ - enable_pythia6 \ - enable_python \ - enable_qt \ - enable_ruby \ - enable_rfio \ - enable_rpath \ - enable_sapdb \ - enable_shadowpw \ - enable_shared \ - enable_soversion \ - enable_srp \ - enable_ssl \ - enable_table \ - enable_thread \ - enable_venus \ - enable_xml \ - enable_xrootd \ +options=" \ + enable_afs \ + enable_alien \ + enable_asimage \ + enable_builtin_afterimage \ + enable_builtin_freetype \ + enable_cern \ + enable_chirp \ + enable_clarens \ + enable_dcache \ + enable_exceptions \ + enable_explicitlink \ + enable_globus \ + enable_krb5 \ + enable_ldap \ + enable_mysql \ + enable_opengl \ + enable_oracle \ + enable_peac \ + enable_pgsql \ + enable_pythia \ + enable_pythia6 \ + enable_python \ + enable_qt \ + enable_ruby \ + enable_rfio \ + enable_rpath \ + enable_sapdb \ + enable_shadowpw \ + enable_shared \ + enable_soversion \ + enable_srp \ + enable_ssl \ + enable_table \ + enable_thread \ + enable_venus \ + enable_xml \ + enable_xrootd \ " # @@ -368,9 +370,9 @@ check_header() { fi # Avoid inclusion of /usr/include, which is always included anyway - if test "x$found_dir" = "x/usr/include" ; then - found_dir="include" - fi + #if test "x$found_dir" = "x/usr/include" ; then + # found_dir="include" + #fi # Correct path for win32 if test "x$platform" = "xwin32"; then @@ -438,7 +440,7 @@ check_symbol() { return 1 fi - symbol_in_lib=`nm $symbolfile | grep $symbol > /dev/null 2>&1` + symbol_in_lib=`nm $symbolfile 2> /dev/stdout | grep $symbol > /dev/null 2>&1` if test $? -eq 0 ; then found_symbol=1 else @@ -576,90 +578,92 @@ ROOT will be compiled with static directory names, and you should not set the ROOTSYS environment variable. enable/disable options, prefix with either --enable- or --disable- - afs AFS support, requires AFS libs and objects - alien AliEn support, requires libAliEnAPI++ from ALICE - asimage Image processing support, requires libAfterImage - cern CERNLIB usage, build h2root and g2root - chirp Chirp support (Condor remote I/O), requires libchirp_client - clarens Clarens RPC support, optionally used by PROOF - dcache dCache support, requires libdcap from DESY - exceptions Turn on compiler exception handling capability - explicitlink Explicitly link with all dependent libraries - globus Globus authentication support, requires Globus toolkit - krb5 Kerberos5 support, requires Kerberos libs - ldap LDAP support, requires (Open)LDAP libs - mysql MySQL support, requires libmysqlclient - opengl OpenGL support, requires libGL and libGLU - oracle Oracle support, requires libclntsh - peac PEAC, PROOF Enabled Analysis Center, requires Clarens - pgsql PostgreSQL support, requires libpq - pythia Pythia5 EG support, requires libPythia - pythia6 Pythia6 EG support, requires libPythia6 - python Python ROOT bindings, requires python >= 2.1 - qt Qt graphics backend, requires libqt >= 3 - rfio CASTOR support, requires libshift from CASTOR - rpath Set run-time library load path on executables - ruby Ruby ROOT bindings, requires ruby >= 1.8 - sapdb SapDB support, requires libsqlod and libsqlrte - shadowpw Shadow password support - shared Use shared 3rd party libraries if possible - soversion Set version number in sonames (recommended) - srp SRP support, requires SRP source tree - ssl SSL encryption support, requires openssl - table Build libTable contrib library - thread Thread support - venus Venus EG support, requires libVenus - xml XML parser interface - xrootd Build xrootd file server and its client (if supported) + afs AFS support, requires AFS libs and objects + alien AliEn support, requires libAliEnAPI++ from ALICE + asimage Image processing support, requires libAfterImage + builtin-afterimage Built included libAfterImage, or use system libAfterImage + builtin-freetype Built included libfreetype, or use system libfreetype + cern CERNLIB usage, build h2root and g2root + chirp Chirp support (Condor remote I/O), requires libchirp_client + clarens Clarens RPC support, optionally used by PROOF + dcache dCache support, requires libdcap from DESY + exceptions Turn on compiler exception handling capability + explicitlink Explicitly link with all dependent libraries + globus Globus authentication support, requires Globus toolkit + krb5 Kerberos5 support, requires Kerberos libs + ldap LDAP support, requires (Open)LDAP libs + mysql MySQL support, requires libmysqlclient + opengl OpenGL support, requires libGL and libGLU + oracle Oracle support, requires libclntsh + peac PEAC, PROOF Enabled Analysis Center, requires Clarens + pgsql PostgreSQL support, requires libpq + pythia Pythia5 EG support, requires libPythia + pythia6 Pythia6 EG support, requires libPythia6 + python Python ROOT bindings, requires python >= 2.1 + qt Qt graphics backend, requires libqt >= 3 + rfio CASTOR support, requires libshift from CASTOR + rpath Set run-time library load path on executables + ruby Ruby ROOT bindings, requires ruby >= 1.8 + sapdb SapDB support, requires libsqlod and libsqlrte + shadowpw Shadow password support + shared Use shared 3rd party libraries if possible + soversion Set version number in sonames (recommended) + srp SRP support, requires SRP source tree + ssl SSL encryption support, requires openssl + table Build libTable contrib library + thread Thread support + venus Venus EG support, requires libVenus + xml XML parser interface + xrootd Build xrootd file server and its client (if supported) with options, prefix with --with-, enables corresponding support - afs AFS support, location of AFS distribution - alien-incdir AliEn support, location of AliEnAPI++.h - alien-libdir AliEn support, location of libAliEnAPI++ - cern-libdir HBOOK converter, location of CERNLIB libraries - chirp-incdir Chirp support, location of chirp_client.h - chirp-libdir Chirp support, location of libchirp_client - dcap-incdir dCache support, location of dcap.h - dcap-libdir dCache support, location of libdcap - globus Globus support, path to what should be GLOBUS_LOCATION - krb5 Kerberos5 support, location of Kerberos distribution - krb5-incdir Kerberos5 support, location of krb5.h - krb5-libdir Kerberos5 support, location of libkrb5 - ldap-incdir LDAP support, location of ldap.h - ldap-libdir LDAP support, location of libldap - mysql-incdir MySQL support, location of mysql.h - mysql-libdir MySQL support, location of libmysqlclient - opengl-incdir OpenGL support, location of GL/gl.h - opengl-libdir OpenGL support, location of libGL - oracle-incdir Oracle support, location of occi.h - oracle-libdir Oracle support, location of libclntsh - pgsql-incdir PostgreSQL support, location of libpq-fe.h - pgsql-libdir PostgreSQL support, location of libpq - pythia-libdir PYHTIA support, location of libPythia - pythia6-libdir PYHTIA6 support, location of libPythia6 - python-incdir Python support, location of Python.h - python-libdir Python support, location of libpython - qt-incdir Qt support, location of qt.h - qt-libdir Qt support, location of libqt-mt or libqt - ruby-incdir Ruby support, location of ruby.h - ruby-libdir Ruby support, location of libruby - sapdb-incdir SapDB support, location of sql.h - sapdb-libdir SapDB support, location of libsqlod - shift-incdir CASTOR support, location of rfio_api.h - shift-libdir CASTOR support, location of libshift - srp Secure Remote Passwd support, location of SRP distribution - srp-incdir SRP support, location header of t_server.h - srp-libdir SRP support, location header of libsrp.a - ssl-incdir OpenSSL support, location of openssl headers - ssl-libdir OpenSSL support, location of libssl - sys-iconpath Extra icon path - thread-libdir Thread support, path to libpthread - venus-libdir VENUS support, location of libVenus - xml-incdir XML support, location of libxml/tree.h - xml-libdir XML support, location of libxml2 - x11-libdir X11 support, path to libX11 - xpm-libdir XPM support, path to libXpm + afs AFS support, location of AFS distribution + alien-incdir AliEn support, location of AliEnAPI++.h + alien-libdir AliEn support, location of libAliEnAPI++ + cern-libdir HBOOK converter, location of CERNLIB libraries + chirp-incdir Chirp support, location of chirp_client.h + chirp-libdir Chirp support, location of libchirp_client + dcap-incdir dCache support, location of dcap.h + dcap-libdir dCache support, location of libdcap + globus Globus support, path to what should be GLOBUS_LOCATION + krb5 Kerberos5 support, location of Kerberos distribution + krb5-incdir Kerberos5 support, location of krb5.h + krb5-libdir Kerberos5 support, location of libkrb5 + ldap-incdir LDAP support, location of ldap.h + ldap-libdir LDAP support, location of libldap + mysql-incdir MySQL support, location of mysql.h + mysql-libdir MySQL support, location of libmysqlclient + opengl-incdir OpenGL support, location of GL/gl.h + opengl-libdir OpenGL support, location of libGL + oracle-incdir Oracle support, location of occi.h + oracle-libdir Oracle support, location of libclntsh + pgsql-incdir PostgreSQL support, location of libpq-fe.h + pgsql-libdir PostgreSQL support, location of libpq + pythia-libdir PYHTIA support, location of libPythia + pythia6-libdir PYHTIA6 support, location of libPythia6 + python-incdir Python support, location of Python.h + python-libdir Python support, location of libpython + qt-incdir Qt support, location of qt.h + qt-libdir Qt support, location of libqt-mt or libqt + ruby-incdir Ruby support, location of ruby.h + ruby-libdir Ruby support, location of libruby + sapdb-incdir SapDB support, location of sql.h + sapdb-libdir SapDB support, location of libsqlod + shift-incdir CASTOR support, location of rfio_api.h + shift-libdir CASTOR support, location of libshift + srp Secure Remote Passwd support, location of SRP distribution + srp-incdir SRP support, location header of t_server.h + srp-libdir SRP support, location header of libsrp.a + ssl-incdir OpenSSL support, location of openssl headers + ssl-libdir OpenSSL support, location of libssl + sys-iconpath Extra icon path + thread-libdir Thread support, path to libpthread + venus-libdir VENUS support, location of libVenus + xml-incdir XML support, location of libxml/tree.h + xml-libdir XML support, location of libxml2 + x11-libdir X11 support, path to libX11 + xpm-libdir XPM support, path to libXpm Supported Architectures: @@ -730,7 +734,8 @@ fi ### echo %%% Some clean up # trap "rm -f Makefile.tmp config.tmp root-config.tmp rootrc.tmp \ - rootauthrc.tmp rootdaemonrc.tmp memprobe.tmp rootd.tmp; exit 1" 1 2 3 15 + rootauthrc.tmp rootdaemonrc.tmp memprobe.tmp rootd.tmp \ + conftest.c conftest; exit 1" 1 2 3 15 ###################################################################### # @@ -754,6 +759,8 @@ if test $# -gt 0 ; then --with-afs=*) afsdir=$optarg ; enable_afs="yes" ;; --with-alien-incdir=*) alienincdir=$optarg ; enable_alien="yes" ;; --with-alien-libdir=*) alienlibdir=$optarg ; enable_alien="yes" ;; + --with-afterimage-incdir=*) afterimageincdir=$optarg; enable_builtin_afterimage=no ;; + --with-afterimage-libdir=*) afterimagelibdir=$optarg; enable_builtin_afterimage=no ;; --with-cern-libdir=*) cernlibdir=$optarg ; enable_cern="yes" ;; --with-chirp-incdir=*) chirpincdir=$optarg ; enable_chirp="yes" ;; --with-chirp-libdir=*) chirplibdir=$optarg ; enable_chirp="yes" ;; @@ -803,7 +810,7 @@ if test $# -gt 0 ; then # features # --enable-*) - f=`echo $1 | sed -e 's/--//' -e 's/-/_/'` + f=`echo $1 | sed -e 's/--//' -e 's/-/_/g'` eval $f=yes for c in $options ; do if test "x$c" = "x$f" ; then @@ -815,7 +822,8 @@ if test $# -gt 0 ; then fi ;; --disable-*) - f=`echo $1 | sed -e 's/--disable/enable/' -e 's/-/_/'` + f=`echo $1 | sed -e 's/--disable/enable/' -e 's/-/_/g'` + echo "Disabling $f" eval $f=no for c in $options ; do if test "x$c" = "x$f" ; then @@ -995,6 +1003,41 @@ if test "x$enable_thread" = "xyes" && \ fi fi +###################################################################### +# +### echo %%% libfreetype (builtin or system) - Mandatory lib on Unix +# +# Mandatory test, must succeed +# +if test "x$enable_builtin_freetype" = "x" || \ + test "x$enable_builtin_freetype" = "xno" ; then + + message "Checking for freetype-config" + if which freetype-config > /dev/null 2>&1 ; then + echo "`which freetype-config`" + + message "Checking for libfreetype version >= 9.3.0" + ttf2_version=`freetype-config --version | \ + tr '.' ' ' | \ + awk 'BEGIN { FS = " "; } \ + { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'` + # First good version is 9.3.0 + if test $ttf2_version -lt 9003000 ; then + echo "no (`freetype-config --version`)" + enable_builtin_freetype="yes" + else + echo "ok" + enable_builtin_freetype="no" + fi + else + enable_builtin_freetype="no" + echo "not found" + fi +fi +message "Checking whether to build included libfreetype6" +echo "$enable_builtin_freetype" + + ###################################################################### # ### echo %%% OpenGL Support - Third party libraries @@ -1105,13 +1148,14 @@ if test ! "x$enable_oracle" = "xno"; then # Check for oracle include and library check_header "occi.h" "$oracleincdir" \ $ORACLE $ORACLE/include $ORACLEINCDIR /usr/local/include \ - /usr/include + /usr/include /usr/include/oracle/*/client oracleinc=$found_hdr oracleincdir=$found_dir keeplibdir=$oraclelibdir check_library "libclntsh" "$enable_shared" "$oraclelibdir" \ - $ORACLE $ORACLE/lib $ORACLELIBDIR /usr/local/lib /usr/lib + $ORACLE $ORACLE/lib $ORACLELIBDIR /usr/local/lib /usr/lib \ + /usr/lib/oracle/*/client/lib oraclelib=$found_lib oraclelibdir=$found_dir @@ -1202,7 +1246,7 @@ if test ! "x$enable_qt" = "xno"; then # Check for Qt include and library check_header "qt.h" "$qtincdir" $QTDIR $QTDIR/include \ /usr/local/include /usr/local/qt/include /usr/include \ - /usr/include/qt + /usr/include/qt /usr/include/qt3 qtinc=$found_hdr qtincdir=$found_dir @@ -1212,7 +1256,24 @@ if test ! "x$enable_qt" = "xno"; then qtlib=$found_lib qtlibdir=$found_dir - if test "x$qtincdir" = "x" || test "x$qtlib" = "x"; then + message "Checking for moc or moc.exe" + qtmocexe=`which moc` + if test $? -ne 0 ; then + for i in $QTDIR $QTDIR/bin /usr/local/bin /usr/local/qt/bin /usr/bin \ + /usr/qt3/bin ; do + if test -x $i/moc ; then + qtmocexe=$i/moc + break + elif test -x $i/moc.exe ; then + qtmocexe=$i/moc.exe + break + fi + done + fi + echo "$qtmocexe" + + if test "x$qtincdir" = "x" || test "x$qtlib" = "x" || \ + test "x$qtmocexe" = "x"; then enable_qt="no" fi fi @@ -1258,9 +1319,16 @@ if test ! "x$enable_rfio" = "xno" ; then enable_rfio="no" else case $platform in - linux) shiftlib="$shiftlib -lnsl" ;; + linux) shiftlib="$shiftlib -lnsl" + for i in "" -ladns ; do + echo "extern rfio_fchmod(); int main() { rfio_fchmod(); return 0; }" > conftest.c + gcc conftest.c $shiftlibdir $shiftlib $i -o conftest > /dev/null 2>&1 + if test $? -eq 0 ; then shiftlib="$shiftlib $i" ; break ; fi + done + rm -f conftest.c conftest + ;; solaris) shiftlib="$shiftlib -lposix4" ;; - win32) shiftincdir="$shiftincdir -I$shiftincdir/../win32" + win32) shiftincdir="$shiftincdir $shiftincdir/../win32" shiftlib="$shiftlib WSock32.lib Ws2_32.lib" ;; esac fi @@ -1454,7 +1522,7 @@ if test ! "x$enable_alien" = "xno" ; then alienincdir=$found_dir if test ! "x$alienincdir" = "x" ; then - alienincdir="$alienincdir -I$alienincdir/soap" + alienincdir="$alienincdir $alienincdir/soap" fi check_library "libAliEnAPI++" "$enable_shared" "$alienlibdir" \ @@ -1477,6 +1545,57 @@ fi # Check for graphics libraries used by libAfterImage, like libjpeg, etc. # if test ! "x$enable_asimage" = "xno" ; then + if test "x$enable_builtin_afterimage" = "xno" || + test "x$enable_builtin_afterimage" = "" ; then + # Figure out if libAfterImage is on the system, and if so, if it usable + asimage_libdirs="$ASIMAGE $ASIMAGE/include \ + /usr/lib /usr/local/lib \ + /usr/lib/libAfterImage /usr/local/lib/libAfterImage \ + /usr/lib/libAfterBase /usr/local/lib/libAfterBase \ + /usr/lib/afterstep /usr/local/lib/afterstep \ + /usr/lib/libAfter /usr/local/lib/libAfter \ + /opt/libAfter" + asimage_incdirs="$ASIMAGE $ASIMAGE/include \ + /usr/include /usr/local/include \ + /usr/include/libAfterImage /usr/local/include/libAfterImage \ + /usr/include/libAfterBase /usr/local/include/libAfterBase \ + /usr/include/afterstep /usr/local/include/afterstep \ + /usr/include/libAfter /usr/local/include/libAfter \ + /opt/libAfter" + + asimageincdirtmp=$asimageincdir + check_header "astypes.h" "$asimageincdirtmp" $asimage_incdirs + asimageincdir=$found_dir + asimagetypes=$found_hdr + check_header "afterimage.h" "$asimageincdirtmp" $asimage_incdirs + asimageincdir="$asimageincdir $found_dir" + asimageimage=$found_hdr + + asimagelibdirtmp=$asimagelibdir + check_library "libAfterBase" "$enable_shared" "$asimagelibdirtmp" \ + $asimage_libdirs + asimagelib=$found_lib + asimagelibdir=$found_dir + + check_library "libAfterImage" "$enable_shared" "$asimagelibdirtmp" \ + $asimage_libdirs + asimagelib="$asimagelib $found_lib" + asimagelibdir="$asimagelibdir $found_dir" + + if test "x$asimageincdir" = "x" \ + || test "x$asimagelib" = "x" \ + || test "x$asimagetypes" = "x" \ + || test "x$asimageimage" = "x" ; then + asimagelib= + asimagelibdir= + asimageincdir= + enable_builtin_afterimage="yes" + fi + unset asimagelibdirtmp + fi + # If we didn't ind the system libAfterImage, or the user didn't ask + # for a system library, then see if we have various headers needed. + if test "x$enable_builtin_afterimage" = "xyes" ; then check_header "jpeglib.h" "" $ASIMAGE $ASIMAGE/include \ /usr/local/include /usr/include /opt/include $finkdir/include asjpegincdir=$found_dir @@ -1525,6 +1644,9 @@ if test ! "x$enable_asimage" = "xno" ; then asextralibdir="$asextralibdir $found_dirz" fi fi + message "Checking whether to build libAfterImage" + echo "$enable_builtin_afterimage" +fi ###################################################################### # @@ -1633,12 +1755,13 @@ if test ! "x$enable_ruby" = "xno" ; then rubyinc=$found_hdr rubyincdir=$found_dir - if test "x$arch" != "xwin32gcc"; then - check_library_options="libruby-static" + if test "x$arch" = "xwin32" || \ + test "x$enable_shared" = "xno" ; then + check_library_options="libruby-static libruby1.8-static" else - check_library_options="libruby" + check_library_options="libruby libruby1.8" fi - check_library $check_library_options \ + check_library "$check_library_options" \ "$enable_shared" "$rubylibdir" $RUBYDIR $RUBYDIR/lib \ $rubysyslibdir rubylib=$found_lib @@ -1701,7 +1824,7 @@ if test ! "x$enable_xml" = "xno" ; then case $platform in linux) xmllib="$xmllib -lpthread" ;; solaris) xmllib="$xmllib -liconv" ;; - win32) xmlincdir="$xmlincdir -I$iconvincdir" + win32) xmlincdir="$xmlincdir $iconvincdir" xmllib="$xmllib $iconvlib Ws2_32.lib" ;; esac fi @@ -1819,9 +1942,7 @@ if test "x$enable_globus" = "xyes"; then else for k in $globusincdir ; do if test "x$k" != "x$found_dir" ; then - if test "x$k" != "x-I$found_dir" ; then - globusincdir="$found_dir -I$globusincdir" - fi + globusincdir="$found_dir $globusincdir" fi done fi @@ -1841,9 +1962,7 @@ if test "x$enable_globus" = "xyes"; then else for k in $globusincdir ; do if test "x$k" != "x$found_dir" ; then - if test "x$k" != "x-I$found_dir" ; then - globusincdir="$found_dir -I$globusincdir" - fi + globusincdir="$found_dir $globusincdir" fi done fi @@ -1859,9 +1978,7 @@ if test "x$enable_globus" = "xyes"; then else for k in $globusincdir ; do if test "x$k" != "x$found_dir" ; then - if test "x$k" != "x-I$found_dir" ; then - globusincdir="$found_dir -I$globusincdir" - fi + globusincdir="$found_dir $globusincdir" fi done fi @@ -2060,12 +2177,12 @@ if test "x$enable_globus" = "xyes"; then echo "Checking for $i ... $dirtmp" add="yes" for k in $glbpatchcflags ; do - if test "x$k" = "x-I$dirtmp" ; then + if test "x$k" = "x$dirtmp" ; then add="no" fi done if test "x$add" = "xyes" ; then - glbpatchcflags="$glbpatchcflags -I$dirtmp" + glbpatchcflags="$glbpatchcflags $dirtmp" fi else echo "Checking for $i ... no (globus patch not applied)" @@ -2084,7 +2201,7 @@ if test "x$enable_globus" = "xyes"; then # copy patched file in the globusauth/src directory cp -rp $globuspatchdir/$tobepatched.c globusauth/src/$tobepatched.c - glbpatchcflags="$glbpatchcflags -I$globuspatchdir/include" + glbpatchcflags="$glbpatchcflags $globuspatchdir/include" if test ! "x$glbpatchcflags" = "x" ; then echo "Applying experimental patch to $tobepatched.c" @@ -2153,9 +2270,7 @@ if test "x$enable_ssl" = "xyes" ; then else for i in $ssl_incdir ; do if test "x$i" != "x$found_dir" ; then - if test "x$i" != "x-I$found_dir" ; then - ssl_incdir="$found_dir -I$ssl_incdir" - fi + ssl_incdir="$found_dir $ssl_incdir" fi done fi @@ -2500,7 +2615,7 @@ echo $enable_shadowpw # message "Checking whether to build libTable" if test "x$enable_table" = "xyes" || test ! "x$TABLE" = "x"; then - enable_table="1" + enable_table="yes" echo "yes" else enable_table="" @@ -2511,7 +2626,7 @@ fi # ### echo %%% Clarens Support - Third party libraries # -# (See http://www.clarens.org) +# (See http://clarens.sourceforge.net/) # checking_msg "Clarens support" @@ -2520,13 +2635,17 @@ if test ! "x$enable_clarens" = "xno" ; then myxmlrpc=`which xmlrpc-c-config 2> /dev/null` if test ! "x$myxmlrpc" = "x" && test -x $myxmlrpc ; then - clarensinc=`xmlrpc-c-config curl-client --cflags 2> /dev/null` + clarensincdir=`xmlrpc-c-config curl-client --cflags 2> /dev/null` clarenslibs=`xmlrpc-c-config curl-client --ldadd 2> /dev/null` + if test "x$clarensincdir" = "x" ; then + clarensincdir=`xmlrpc-c-config --cflags 2> /dev/null` + clarenslibdir=`xmlrpc-c-config --ldadd 2> /dev/null` + fi else - clarensinc="" + clarensincdir="" clarenslibs="" fi - if test "x$clarensinc" = "x" || test "x$clarenslibs" = "x"; then + if test "x$clarensincdir" = "x" || test "x$clarenslibs" = "x"; then enable_clarens="no" fi fi @@ -2570,17 +2689,33 @@ echo "$buildpeac" # system. # if test "x$show_pkglist" = "xyes" ; then - pkglist="root-daemon" - test "x$enable_cern" = "xyes" && pkglist="$pkglist root-zebra" - test "x$enable_opengl" = "xyes" && pkglist="$pkglist root-gl" - test "x$enable_mysql" = "xyes" && pkglist="$pkglist root-mysql" - test "x$enable_pgsql" = "xyes" && pkglist="$pkglist root-pgsql" - test "x$enable_sapdb" = "xyes" && pkglist="$pkglist root-sapdb" - test "x$enable_pythia" = "xyes" && test "x$enable_pythia6" = "xyes" && pkglist="$pkglist root-pythia" - test "x$enable_rfio" = "xyes" && pkglist="$pkglist root-shift" - test "x$enable_srputil" = "xyes" && pkglist="$pkglist root-srp" - - pkglist="$pkglist root-cint root-doc libroot-dev root-bin libroot" + test "x$enable_alien" = "xyes" && pkglist="$pkglist root-plugin-alien" + test "x$enable_asimage" = "xyes" && pkglist="$pkglist root-plugin-asimage" + test "x$enable_cern" = "xyes" && pkglist="$pkglist root-plugin-hbook" + test "x$enable_chirp" = "xyes" && pkglist="$pkglist root-plugin-chirp" + test "x$enable_clarens" = "xyes" && pkglist="$pkglist root-plugin-clarens" + test "x$enable_dcache" = "xyes" && pkglist="$pkglist root-plugin-dcache" + test "x$enable_globus" = "xyes" && pkglist="$pkglist root-plugin-globus" + test "x$enable_krb5" = "xyes" && pkglist="$pkglist root-plugin-krb5" + test "x$enable_ldap" = "xyes" && pkglist="$pkglist root-plugin-ldap" + test "x$enable_mysql" = "xyes" && pkglist="$pkglist root-plugin-mysql" + test "x$enable_opengl" = "xyes" && pkglist="$pkglist root-plugin-gl" + test "x$enable_oracle" = "xyes" && pkglist="$pkglist root-plugin-oracle" + test "x$enable_peac" = "xyes" && pkglist="$pkglist root-plugin-peac" + test "x$enable_pgsql" = "xyes" && pkglist="$pkglist root-plugin-pgsql" + test "x$enable_pythia" = "xyes" && pkglist="$pkglist root-plugin-pythia5" + test "x$enable_pythia6" = "xyes" && pkglist="$pkglist root-plugin-pythia6" + test "x$enable_python" = "xyes" && pkglist="$pkglist root-plugin-python" + test "x$enable_qt" = "xyes" && pkglist="$pkglist root-plugin-qt" + test "x$enable_ruby" = "xyes" && pkglist="$pkglist root-plugin-ruby" + test "x$enable_rfio" = "xyes" && pkglist="$pkglist root-plugin-castor" + test "x$enable_sapdb" = "xyes" && pkglist="$pkglist root-plugin-sapdb" + test "x$enable_srp" = "xyes" && pkglist="$pkglist root-plugin-srp" + test "x$enable_venus" = "xyes" && pkglist="$pkglist root-plugin-venus" + test "x$enable_xml" = "xyes" && pkglist="$pkglist root-plugin-xml" + test "x$enable_xrootd" = "xyes" && pkglist="$pkglist root-xrootd" + + pkglist="$pkglist root-plugin-fumili root-plugin-minuit root-plugin-mlp root-plugin-netx root-plugin-proof root-proofd root-plugin-quadp root-rootd root-cint root-doc libroot-dev root-bin libroot ttf-root ttf-root-installer" # If we're called from the package preparation script, then # print out the package list and exit echo "packages: $pkglist" @@ -2785,8 +2920,13 @@ sed -e "s|@aclocaldir@|$aclocaldir|" \ -e "s|@aspngincdir@|$aspngincdir|" \ -e "s|@astiffincdir@|$astiffincdir|" \ -e "s|@asgifincdir@|$asgifincdir|" \ + -e "s|@asimageincdir@|$asimageincdir|" \ + -e "s|@asimagelib@|$asimagelib|" \ + -e "s|@asimagelibdir@|$asimagelibdir|" \ -e "s|@bindir@|$bindir|" \ -e "s|@buildasimage@|$enable_asimage|" \ + -e "s|@builtinafterimage@|$enable_builtin_afterimage|" \ + -e "s|@builtinfreetype@|$enable_builtin_freetype|" \ -e "s|@buildpeac@|$buildpeac|" \ -e "s|@buildxrd@|$buildxrd|" \ -e "s|@cernlibdir@|$cernlibdir|" \ @@ -2794,7 +2934,7 @@ sed -e "s|@aclocaldir@|$aclocaldir|" \ -e "s|@chirpincdir@|$chirpincdir|" \ -e "s|@chirplib@|$chirplib|" \ -e "s|@chirplibdir@|$chirplibdir|" \ - -e "s|@clarensinc@|$clarensinc|" \ + -e "s|@clarensincdir@|$clarensincdir|" \ -e "s|@clarenslibs@|$clarenslibs|" \ -e "s|@cintincdir@|$cintincdir|" \ -e "s|@datadir@|$datadir|" \ @@ -2807,7 +2947,7 @@ sed -e "s|@aclocaldir@|$aclocaldir|" \ -e "s|@dcaplibdir@|$dcaplibdir|" \ -e "s|@docdir@|$docdir|" \ -e "s|@elispdir@|$elispdir|" \ - -e "s|@enable_table@|$enable_table|" \ + -e "s|@buildtable@|$enable_table|" \ -e "s|@enable_thread@|$enable_thread|" \ -e "s|@etcdir@|$etcdir|" \ -e "s|@exceptions@|$enable_exceptions|" \ @@ -2862,6 +3002,7 @@ sed -e "s|@ldflags@||" \ -e "s|@qtincdir@|$qtincdir|" \ -e "s|@qtlib@|$qtlib|" \ -e "s|@qtlibdir@|$qtlibdir|" \ + -e "s|@qtmocexe@|$qtmocexe|" \ -e "s|@resolvlib@|$resolvlib|" \ -e "s|@rootbuild@|$rootbuild|" \ -e "s|@sapdbincdir@|$sapdbincdir|" \ @@ -2896,6 +3037,31 @@ sed -e "s|@ldflags@||" \ -e "s|@x11libdir@|$x11libdir|" \ -e "s|@xpmlib@|$xpmlib|" \ -e "s|@xpmlibdir@|$xpmlibdir|" \ + -e "s|@buildgl@|$enable_opengl|" \ + -e "s|@buildhbook@|$enable_cern|" \ + -e "s|@buildldap@|$enable_ldap|" \ + -e "s|@buildmysql@|$enable_mysql|" \ + -e "s|@buildpgsql@|$enable_pgsql|" \ + -e "s|@buildoracle@|$enable_oracle|" \ + -e "s|@buildsapdb@|$enable_sapdb|" \ + -e "s|@buildqt@|$enable_qt|" \ + -e "s|@buildshift@|$enable_rfio|" \ + -e "s|@builddcap@|$enable_dcache|" \ + -e "s|@buildchirp@|$enable_chirp|" \ + -e "s|@buildalien@|$enable_alien|" \ + -e "s|@buildasimage@|$enable_asimage|" \ + -e "s|@buildpythia@|$enable_pythia|" \ + -e "s|@buildpythia6@|$enable_pythia6|" \ + -e "s|@buildvenus@|$enable_venus|" \ + -e "s|@buildpython@|$enable_python|" \ + -e "s|@buildruby@|$enable_ruby|" \ + -e "s|@buildxml@|$enable_xml|" \ + -e "s|@buildxrd@|$enable_xrd|" \ + -e "s|@buildsrputil@|$enable_srputil|" \ + -e "s|@buildkrb5@|$enable_krb5|" \ + -e "s|@buildglobus@|$enable_globus|" \ + -e "s|@buildclarens@|$enable_clarens|" \ + -e "s|@buildpeac@|$enable_peac|" \ < Makefile.tmp > $MAKEOUT rm -f Makefile.tmp diff --git a/dcache/Module.mk b/dcache/Module.mk index 12cd0fbd502..af9323376ed 100644 --- a/dcache/Module.mk +++ b/dcache/Module.mk @@ -45,7 +45,7 @@ $(DCACHEDS): $(DCACHEH) $(DCACHEL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(DCACHEH) $(DCACHEL) $(DCACHEDO): $(DCACHEDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I$(DCAPINCDIR) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) $(DCAPINCDIR:%=-I%) -I. -o $@ -c $< all-dcache: $(DCACHELIB) @@ -67,4 +67,4 @@ distclean:: distclean-dcache ##### extra rules ###### $(DCACHEO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(DCAPINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(DCAPINCDIR:%=-I%) -o $@ -c $< diff --git a/etc/rootd b/etc/rootd new file mode 100644 index 00000000000..3b515f131f9 --- /dev/null +++ b/etc/rootd @@ -0,0 +1,77 @@ +#! /bin/sh +# +# rootd Start/Stop the ROOT file serving daemon +# +# chkconfig: 345 20 80 +# description: The rootd server provides remote access to ROOT files. +# +# processname: rootd +# pidfile: /var/run/rootd.pid +# config: + +# Source function library. +. /etc/init.d/functions + +# Get config. +. /etc/sysconfig/network + +# Get rootd config + +[ -f /etc/sysconfig/rootd ] && . /etc/sysconfig/rootd + +# Check that networking is up. +if [ ${NETWORKING} = "no" ] +then + exit 0 +fi + +[ -x /usr/bin/rootd ] || exit 0 + +RETVAL=0 +prog="rootd" + +start() { + echo -n $"Starting $prog: " + daemon /usr/bin/rootd $ROOTDOPTS + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rootd + return $RETVAL +} + +stop() { + echo -n $"Stopping $prog: " + killproc rootd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/rootd + return $RETVAL +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status rootd + ;; + restart|reload) + stop + start + ;; + condrestart) + if [ -f /var/lock/subsys/rootd ]; then + stop + start + fi + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" + exit 1 +esac + +exit $RETVAL diff --git a/freetype/Module.mk b/freetype/Module.mk index 310a6793e2d..e72cbcace7e 100644 --- a/freetype/Module.mk +++ b/freetype/Module.mk @@ -3,6 +3,13 @@ # # Author: Fons Rademakers, 7/1/2003 +ifneq ($(BUILTINFREETYPE), yes) +FREETYPELIBF := $(shell freetype-config --libs) +FREETYPEINC := $(shell freetype-config --cflags) +FREETYPELIB := $(filter -l%,$(FREETYPELIBF)) +FREETYPELDFLAGS := $(filter-out -l%,$(FREETYPELIBF)) +else + MODDIR := freetype MODDIRS := $(MODDIR)/src @@ -24,6 +31,8 @@ else FREETYPELIB := $(LPATH)/libfreetype.a endif endif +FREETYPEINC := $(FREETYPEDIRI:%=-I%) +FREETYPELDFLAGS := ##### local rules ##### $(FREETYPELIB): $(FREETYPELIBA) @@ -108,3 +117,5 @@ distclean-freetype: clean-freetype @rm -rf $(FREETYPELIB) $(FREETYPEDIRS)/$(FREETYPEVERS) distclean:: distclean-freetype + +endif diff --git a/gl/Module.mk b/gl/Module.mk index fe8816ddbbf..6a48a0ef289 100644 --- a/gl/Module.mk +++ b/gl/Module.mk @@ -69,10 +69,10 @@ $(GLDS): $(GLH1) $(GLL) $(ROOTCINTTMP) ifeq ($(ARCH),win32) $(GLDO): $(GLDS) $(CXX) $(NOOPT) $(CXXFLAGS) -I. -I$(WIN32GDKDIR)/gdk/src \ - -I$(GDKDIRI) -I$(GLIBDIRI) -o $@ -c $< + $(GDKDIRI:%=-I%) $(GLIBDIRI:%=-I%) -o $@ -c $< else $(GLDO): $(GLDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I. -I$(OPENGLINCDIR) -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) -I. $(OPENGLINCDIR:%=-I%) -o $@ -c $< endif all-gl: $(GLLIB) @@ -95,12 +95,12 @@ distclean:: distclean-gl ##### extra rules ###### ifeq ($(ARCH),win32) $(GLO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(OPENGLINCDIR) -I$(WIN32GDKDIR)/gdk/src \ - -I$(GDKDIRI) -I$(GLIBDIRI) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(OPENGLINCDIR:%=-I%) -I$(WIN32GDKDIR)/gdk/src \ + $(GDKDIRI:%=-I%) $(GLIBDIRI:%=-I%) -o $@ -c $< else $(GLO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(OPENGLINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(OPENGLINCDIR:%=-I%) -o $@ -c $< endif $(GLDIRS)/gl2ps.o: $(GLDIRS)/gl2ps.c - $(CC) $(OPT) $(CFLAGS) -I$(OPENGLINCDIR) -o $@ -c $< + $(CC) $(OPT) $(CFLAGS) $(OPENGLINCDIR:%=-I%) -o $@ -c $< diff --git a/globusauth/Module.mk b/globusauth/Module.mk index 1af31b912db..df9d23f13af 100644 --- a/globusauth/Module.mk +++ b/globusauth/Module.mk @@ -62,7 +62,7 @@ distclean:: distclean-globusauth ##### extra rules ###### $(GLBSAUTHO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(GLOBUSINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(GLOBUSINCDIR:%=-I%) -o $@ -c $< $(GLBPATCHO): %.o: %.c - $(CC) $(OPT) $(CFLAGS) $(GLBPATCHFLAGS) -I$(GLOBUSINCDIR) -o $@ -c $< + $(CC) $(OPT) $(CFLAGS) $(GLBPATCHFLAGS) $(GLOBUSINCDIR:%=-I%) -o $@ -c $< diff --git a/graf/Module.mk b/graf/Module.mk index 1b758fbc7e3..41fc8a5b0fa 100644 --- a/graf/Module.mk +++ b/graf/Module.mk @@ -47,7 +47,8 @@ include/%.h: $(GRAFDIRI)/%.h $(GRAFLIB): $(GRAFO) $(GRAFDO) $(FREETYPELIB) $(MAINLIBS) $(GRAFLIBDEP) @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ - "$(GRAFO) $(GRAFDO)" "$(FREETYPELIB) $(GRAFLIBEXTRA)" + "$(GRAFO) $(GRAFDO)" \ + "$(FREETYPELDFLAGS) $(FREETYPELIB) $(GRAFLIBEXTRA)" $(GRAFDS1): $(GRAFHD) $(GRAFL1) $(ROOTCINTTMP) @echo "Generating dictionary $@..." @@ -59,7 +60,7 @@ $(GRAFDS2): $(GRAFH) $(GRAFL2) $(ROOTCINTTMP) $(GRAFDO1): $(GRAFDS1) $(CXX) $(NOOPT) $(CXXFLAGS) -I. -o $@ -c $< $(GRAFDO2): $(GRAFDS2) $(FREETYPELIB) - $(CXX) $(NOOPT) -I$(FREETYPEDIRI) $(CXXFLAGS) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(FREETYPEINC) $(CXXFLAGS) -I. -o $@ -c $< all-graf: $(GRAFLIB) @@ -81,14 +82,14 @@ distclean:: distclean-graf ##### extra rules ###### graf/src/TTF.o: graf/src/TTF.cxx $(FREETYPELIB) - $(CXX) $(OPT) -I$(FREETYPEDIRI) $(CXXFLAGS) -o $@ -c $< + $(CXX) $(OPT) $(FREETYPEINC) $(CXXFLAGS) -o $@ -c $< graf/src/TText.o: graf/src/TText.cxx $(FREETYPELIB) - $(CXX) $(OPT) -I$(FREETYPEDIRI) $(CXXFLAGS) -o $@ -c $< + $(CXX) $(OPT) $(FREETYPEINC) $(CXXFLAGS) -o $@ -c $< graf/src/TLatex.o: graf/src/TLatex.cxx $(FREETYPELIB) ifneq ($(PLATFORM),win32) - $(CXX) $(OPT) -I$(FREETYPEDIRI) $(CXXFLAGS) -o $@ -c $< + $(CXX) $(OPT) $(FREETYPEINC) $(CXXFLAGS) -o $@ -c $< else - $(CXX) $(DEBUGFLAGS) -I$(FREETYPEDIRI) $(CXXFLAGS) -o $@ -c $< + $(CXX) $(DEBUGFLAGS) $(FREETYPEINC) $(CXXFLAGS) -o $@ -c $< endif diff --git a/krb5auth/Module.mk b/krb5auth/Module.mk index 050aea3e802..e1d24f23b1b 100644 --- a/krb5auth/Module.mk +++ b/krb5auth/Module.mk @@ -51,7 +51,7 @@ $(KRB5AUTHDS): $(KRB5AUTHH1) $(KRB5AUTHL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(KRB5AUTHH1) $(KRB5AUTHL) $(KRB5AUTHDO): $(KRB5AUTHDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I. -I$(KRB5INCDIR) -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) -I. $(KRB5INCDIR:%=-I%) -o $@ -c $< all-krb5auth: $(KRB5AUTHLIB) @@ -73,4 +73,4 @@ distclean:: distclean-krb5auth ##### extra rules ###### $(KRB5AUTHO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(KRB5INCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(KRB5INCDIR:%=-I%) -o $@ -c $< diff --git a/ldap/Module.mk b/ldap/Module.mk index 525afc15211..26eccf68c6f 100644 --- a/ldap/Module.mk +++ b/ldap/Module.mk @@ -68,4 +68,4 @@ distclean:: distclean-ldap ##### extra rules ###### $(LDAPO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(LDAPINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(LDAPINCDIR:%=-I%) -o $@ -c $< diff --git a/man/man1/cint.1 b/man/man1/cint.1 index cf92a2cb66a..0b724ed85ac 100644 --- a/man/man1/cint.1 +++ b/man/man1/cint.1 @@ -23,12 +23,12 @@ scripting environment. Precompiled libraries can be dynamically loaded/unloaded if they are configured as Dynamic Link Library (DLL). See also makecint(1). .SH OPTIONS -(*) : used only with makecint or -c option +(*) : used only with makecint or \-c option .TP .B \-A ANSI C++ mode(default) .br -Handles given file as C++, regardless of file extension. Otherwise, +Handles given file as C++, regardless of file extension. Otherwise, .c files are handled as C and .cxx, .C and .cpp files are handled as C++. .TP @@ -36,38 +36,38 @@ as C++. Set break point .br Set break point in source file. Break point can be specified by either -line number or function name. Use -f option to specify a source file +line number or function name. Use \-f option to specify a source file that you want to set break point. .nf - -b [line] - -b [funcname] - -b [classname]::[funcname] + \-b [line] + \-b [funcname] + \-b [classname]::[funcname] .fi .TP .B \-c \-1 (*) Make C++ precompiled interface method files .br -Cint creates interface method source file. Cint reads C++ header file and +Cint creates interface method source file. Cint reads C++ header file and analyzes interface that is exported to the interpreter. The information is then compiled into an interface method source file which can be compiled and lined with user code. -Default name for the interface method source/header file is G__cpplink.C +Default name for the interface method source/header file is G__cpplink.C and G__cpplink.h. --c option must be given after -n, -N, -w and -z option if used simultaneously. -Normally, -c-1 option is used within the 'makecint' tool. In that case, a +\-c option must be given after \-n, \-N, \-w and \-z option if used simultaneously. +Normally, \-c\-1 option is used within the 'makecint' tool. In that case, a user does not need to know the detail. .TP .B \-c \-2 (*) Make C precompiled interface method files .br -Cint creates interface method source file. Cint reads C header file and +Cint creates interface method source file. Cint reads C header file and analyzes interface that is exported to the interpreter. The information is then compiled into an interface method source file which can be compiled and lined with user code. -Default name for the interface method source/header file is G__clink.c +Default name for the interface method source/header file is G__clink.c and G__clink.h. --c option must be given after -n, -N, -w and -z option if used simultaneously. -Normally, -c-1 option is used within the 'makecint' tool. In that case, a +\-c option must be given after \-n, \-N, \-w and \-z option if used simultaneously. +Normally, \-c\-1 option is used within the 'makecint' tool. In that case, a user does not need to know the detail. .TP .B \-C @@ -91,7 +91,7 @@ Dump core at error .B \-f FILE Set break file .br -This option is used with -b option when setting break point to a specified +This option is used with \-b option when setting break point to a specified file. .TP .B \-F EXPRESSION @@ -113,7 +113,7 @@ files. .B \-K C mode .br -Handles given file as C, regardless of file extension. Otherwise, +Handles given file as C, regardless of file extension. Otherwise, .c files are handled as C and .cxx, .C and .cpp files are handled as C++. .TP @@ -123,7 +123,7 @@ Link dynamic link library (or shared library) .B \-n LINKNAME (*) Specify interface method filename .br -This option must be used with -c, and must be given before the -c option. +This option must be used with \-c, and must be given before the \-c option. Cint creates an interface method source file as LINKNAME. If omitted, G__cpplink.C, G__cpplink.h are created for C++, and G__clink.c, G__clink.h are created for C. @@ -131,8 +131,8 @@ are created for C. .B \-N DLL_NAME (*) Specify DLL interface method name .br -This option must be used with -c, and must be given before the -c option. -This option changes function name in the interface method source file, +This option must be used with \-c, and must be given before the \-c option. +This option changes function name in the interface method source file, in order to avoid name conflict. All function names in the interface method source file are suffixed by DLL_NAME. .TP @@ -186,7 +186,7 @@ Bytecode compiler debug mode .B \-w [0|1] (*) Switch between archive library and DLL when creating interface method source file. This option is needed only for Windows-NT/9x/200x when cint creates -.DEF file for precompiled library. This option must be given before -c option. +.DEF file for precompiled library. This option must be given before \-c option. .TP .B \-X READLINEDUMPFILE Execute readline dumpfile @@ -202,13 +202,13 @@ This option switches 'std' namespace to be used(0) or ignored(1). .B \-z PROJECTNAME (*) Specify project name as PROJECTNAME when making interface method source file. This option is needed only for Windows-NT/9x/200x when cint creates .DEF file -for precompiled library. This option must be given before -c option. +for precompiled library. This option must be given before \-c option. .TP .B \-Z [0|1] Auto loading of standard header files with DLL .br This option controls automatic loading of standard header files with DLL. -If -Z1 is given, standard header files included when making interface method +If \-Z1 is given, standard header files included when making interface method source file are automatically loaded when loading DLL. .br .PP @@ -223,7 +223,7 @@ files during cint run. .PP .SH SUBOPTIONS .br -(*) : used only with makecint or -c option +(*) : used only with makecint or \-c option Suboptions are options which appears in between source files. .TP .B \-A @@ -244,7 +244,7 @@ turn off preprocessor for following source files .B \+STUB (*) stub function header begin .TP -.B -STUB (*) +.B \-STUB (*) stub function header end ARGUMENTS @@ -253,25 +253,25 @@ Arguments to main(int argc,char *argv[]) function. .nf $ cint $ cint lib1.c lib2.c source.c -$ cint -S -I../include -DDEBUG source.c -$ cint -x 'main(int argc,char *argv[]){printf("%s\n",argv[1]);}' -$ cint -qlevel1 myprog.C +$ cint \-S \-I../include \-DDEBUG source.c +$ cint \-x 'main(int argc,char *argv[]){printf("%s\n",argv[1]);}' +$ cint \-qlevel1 myprog.C .fi .SH DEBUG MODE Cint starts debug mode at following situations: -.br -- main() function is not included in the given source file. -.br -- Step execution mode (-S,-s option) -.br -- Program reaches to a break point -.br -- Keyboard interrupt (CTL-C or Break) -.br -- Explicit call of interactive interface function G__pause(). -.br -- Bus error or segmentation violation occurred. +.br +\- main() function is not included in the given source file. +.br +\- Step execution mode (-S,-s option) +.br +\- Program reaches to a break point +.br +\- Keyboard interrupt (CTL-C or Break) +.br +\- Explicit call of interactive interface function G__pause(). +.br +\- Bus error or segmentation violation occurred. You can perform step and trace execution, locate as many break points as you want, look into function/variable/class information tables, diff --git a/man/man1/g2rootold.1 b/man/man1/g2rootold.1 new file mode 100644 index 00000000000..32cf5e1bd2a --- /dev/null +++ b/man/man1/g2rootold.1 @@ -0,0 +1,166 @@ +.\" +.\" $Id: g2rootold.1,v 1.1 2001/08/15 13:30:48 rdm Exp $ +.\" +.TH G2ROOTOLD 1 "Version 3" "ROOT" +.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection +.\" other parms are allowed: see man(7), man(1) +.SH NAME +g2rootold \- convert GEANT geomtry files to ROOT files +.SH SYNOPSIS +.B g2rootoldd +.I [-f map_name] geant_name macro_name +.SH "DESCRIPTION" +You can convert a +.B GEANT +(see +.I http://wwwinfo.cern.ch/asd/geant/index.html +fore more on +.BR GEANT ) +geometry to +.B ROOT +geometry with the following steps +.TP +1 +Run the interactive version of +.B GEANT +and produce a Zebra RZ file +.IR detector.geom , +by typing the command: +.sp 1 +.RS +Geant > rz/file 21 \fIdetector.geom\fR on +.RE +.sp 1 +.TP +2 +Run the +.B g2rootold +program to convert the Zebra RZ file into a +.B ROOT +macro +.I detector.C: +.sp 1 +.RS +g2rootold \fIdetector.geom\fR \fIdetector.C\fR +.RE +.sp 1 +.TP +3 +Run the following +.B ROOT +session; +.sp 1 +.RS +.nf +root [1] .x detector.C +root [2] detector.Draw() +root [3] c1.x3d() // (this invokes the 3-d Root viewver) +root [4] TFile f("detector.root","NEW") //open a new root file +root [5] detector.Write() //Write the geometry structure +root [6] f.Write() +.fi +.RE +.sp 1 +Note that the +.I TNode +structure currently in +.B ROOT +was not designed as a replacement for a true geometry package. The +idea was mainly to draw simple geometries in event display +programs. We are currently investigating several alternatives for a +true & efficient geometry package supporting; +.TP +- +a disk data base with storage of multiple geometry versions +.TP +- +an interactive editor and viewer +.TP +- +with 3-d views +.TP +- +but also 2-d cut views +.TP +- +with interfaces to existing or future MC such as +.B GEANT3 +or +.B GEANT4 +.PP +A second program called +.B gh2root +(see +.IR http://root.cern.ch/root/gh2root.html ) +generates automatically C++ code corresponding to the +.B GEANT3 Zebra +structures +.IR JSET , +.IR JVERTX , +.IR JKINE , +.I JHITS +and +.I JDIGI. +.SH "SEE ALSO" +.RS +.IR root (1), +.IR g2root (1), +.IR h2root(1), +.RE +and +.RS +.I The ROOT Users Guide +.RE +avaliable from the main +.B ROOT +website: +.RS +.I http://root.cern.ch +.RE +.SH "ORIGINAL AUTHORS" +The ROOT team (see web page above): +.RS +\fBRene Brun\fR and \fBFons Rademakers\fR +.RE +.SH "COPYRIGHT" +ROOT Software Terms and Conditions +.PP +The authors hereby grant permission to use, copy, and distribute this +software and its documentation for any purpose, provided that existing +copyright notices are retained in all copies and that this notice is +included verbatim in any distributions. Additionally, the authors grant +permission to modify this software and its documentation for any purpose, +provided that such modifications are not distributed without the explicit +consent of the authors and that existing copyright notices are retained in +all copies. Users of the software are asked to feed back problems, benefits, +and/or suggestions about the software to the ROOT Development Team +(rootdev@root.cern.ch). Support for this software - fixing of bugs, +incorporation of new features - is done on a best effort basis. All bug +fixes and enhancements will be made available under the same terms and +conditions as the original software, +.PP +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, +EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.PP +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS +PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +.SH AUTHOR +This manual page was written by Christian Holm Christensen +<cholm@nbi.dk>, for the Debian GNU/Linux system (but may be used by +others). +.\" +.\" $Log: g2rootold.1,v $ +.\" Revision 1.1 2001/08/15 13:30:48 rdm +.\" move man files to new subdir man1. This makes it possible to add +.\" $ROOTSYS/man to MANPATH and have "man root" work. +.\" +.\" Revision 1.1 2000/12/08 17:41:00 rdm +.\" man pages of all ROOT executables provided by Christian Holm. +.\" +.\" diff --git a/man/man1/makecint.1 b/man/man1/makecint.1 index f7186514a5b..8dde1210b03 100644 --- a/man/man1/makecint.1 +++ b/man/man1/makecint.1 @@ -19,9 +19,9 @@ makecint \- C/C++ interpreter-compiler .SH SYNOPSIS .B makecint -[ -mk MAKEFILE ] [ -o OBJECT ] [ -H C++HEADER ] [ -C++ C++SOURCE] -[ -m ] [ -p ] [ -dl DLL ] [ -h CHEADER ] [ -C CSOURCE] -[ -l LIB ] [ -i STUBC] [ -i++ STUBC++ ] +[ \-mk MAKEFILE ] [ \-o OBJECT ] [ \-H C++HEADER ] [ \-C++ C++SOURCE] +[ \-m ] [ \-p ] [ \-dl DLL ] [ \-h CHEADER ] [ \-C CSOURCE] +[ \-l LIB ] [ \-i STUBC] [ \-i++ STUBC++ ] .SH DESCRIPTION .B makecint is an utility to link compiled C/C++ objects with the Cint C/C++ @@ -58,7 +58,9 @@ Makefile. In following example, makecint will create a Makefile which compiles "mycint" executable. The "mycint" embeds xxx.C and yyy.o as precompiled library. .nf - $ makecint -mk Makefile -o mycint -H xxx.h yyy.h -C++ xxx.C yyy.o + + $ makecint \-mk Makefile\-o mycint \-H xxx.h yyy.h \-C++ xxx.C yyy.o + .fi Command line options will be explained later in this document. @@ -140,19 +142,19 @@ the interpreter. .SH OPTIONS Space between option specifier and option argument is significant. -You must put space between them. For example, '-o object' is valid -but '-oobject' is not. Exceptions are -D and -I options which accepts -arguments like '-DMACRO1' and '-I/home/mydir/include'. +You must put space between them. For example, '\-o object' is valid +but '\-oobject' is not. Exceptions are \-D and \-I options which accepts +arguments like '\-DMACRO1' and '\-I/home/mydir/include'. .TP .B \-o OBJ specify object name (customized C/C++ interpreter). .br --o option specifies object name which becomes a customized C/C++ -interpreter. -o option can not be omitted, otherwise -dl option -must be given. -o and -dl options are exclusive. Only one of them +\-o option specifies object name which becomes a customized C/C++ +interpreter. \-o option can not be omitted, otherwise \-dl option +must be given. \-o and \-dl options are exclusive. Only one of them must be given. For example, .nf - $ makecint -mk Makefile -o mycint -H prog.h -C++ prog.C + $ makecint \-mk Makefile \-o mycint \-H prog.h \-C++ prog.C $ make .fi Will make customized cint "mycint" including prog.C user specific @@ -164,11 +166,11 @@ Generate dynamic link library object. This option generates dynamic link library(DLL) which can be dynamically linked with cint at run time. For example, .nf - $ makecint -mk Makefile -dl func.dl -H func1.h func2.h -C++ func1.C func2.C + $ makecint \-mk Makefile \-dl func.dl \-H func1.h func2.h \-C++ func1.C func2.C $ make .fi This will generate a DLL 'func.dl' which includes Position Independent -Code of func1.C, func2.C. -dl option compiles user specific Suffix of +Code of func1.C, func2.C. \-dl option compiles user specific Suffix of the dynamic link library can be either '.dl', '.sl', or '.DLL'. You can link func.dl by passing it to cint. Multiple DLL can be linked at a time if there is no cyclic symbol dependency. @@ -201,8 +203,8 @@ Create interface routine and makefile, no compilation. The '-mk MKFILE' option will specify name of created makefile. For example .nf - $ makecint -mk make.prog1 -o prog1 -H prog1.h -C++ prog1.C - $ make -f make.prog1 + $ makecint \-mk make.prog1 \-o prog1 \-H prog1.h \-C++ prog1.C + $ make \-f make.prog1 $ prog1 .fi .TP @@ -211,12 +213,12 @@ Use preprocessor before parsing parameter information files (OLD) .br If '-p' option is added, parameter information files are preprocessed by real preprocessor. Cint does not parse define macro perfectly. It -is recommended to use -p option when you link non-trivial library with +is recommended to use \-p option when you link non-trivial library with heavy define macro usage. Name of C/C++ preprocessor must be set in the $CINTSYSDIR/MAKEINFO file. .nf - $ makecint -mk Makeit -p -o mycint -H prog.h -C++ prog.C - $ make -f Makeit + $ makecint \-mk Makeit \-p \-o mycint \-H prog.h \-C++ prog.C + $ make \-f Makeit .fi This option is being obsoleted. Use +P,-P instead. .TP @@ -230,7 +232,7 @@ from your host program. (See example below) Header file $CINTSYSDIR/G__ci.h has to be included. .nf /* Example host program host.c -* $ makecint -mk Makefile -o host -m -I$CINTSYSDIR -h host.h -C host.c +* $ makecint \-mk Makefile \-o host \-m \-I$CINTSYSDIR \-h host.h \-C host.c * $ make */ #include <G__ci.h> @@ -261,13 +263,13 @@ int G__init_cint(char* command) .fi This function will initialize Cint. main() is automatically executed if it exists and returns 1. If main() is not found it returns 0. It -returns -1 if initialization fails. +returns \-1 if initialization fails. .nf int state; state=G__init_cint("cint source.c"); // 0==state : initialized but no main() // 1==state : initialized and main() called - // -1==state: initialization failed + // \-1==state: initialization failed .fi After the initialization you can use following functions. .nf @@ -303,8 +305,8 @@ int G__loadfile(char* filename) This function loads C/C++ source code or Dynamic Link Library(DLL). If suffix of the filename is .dl, .sl, .so, .dll or .DLL, the file is linked as DLL. Otherwise, C/C++ source file. It returns 0 if the file -is successfully loaded, 1 if the file is already loaded and -1 if the -file can not be loaded. In case of fatal error, it returns -2. +is successfully loaded, 1 if the file is already loaded and \-1 if the +file can not be loaded. In case of fatal error, it returns \-2. .nf G__init_cint("cint"); G__loadfile("src1.C"); @@ -319,7 +321,7 @@ int G__unloadfile(char* filename) This function unloads C/C++ source code or Dynamic Link Library(DLL). In order to keep consistency, all the files loaded after the specified file will be unloaded. It returns 0 if files are -successfully unloaded, -1 if not. It first checks if any of the +successfully unloaded, \-1 if not. It first checks if any of the function defined in the unloading files are busy. .nf G__init_cint("cint src0.c"); @@ -377,22 +379,22 @@ This option defines macro for global variable parameter information file. Global variable parameter informa- tion file will be conditionally parsed with '#ifdef MACRO' statement. You can not put multiple macro names after '-D'. '-D' must be given before every -individual macro name. Space between -D and macro name is not +individual macro name. Space between \-D and macro name is not significant. You can either go '-DMACRO' or '-D MACRO'. .nf - $ makecint -mk Makeit -DONLINE -o mycint -H source.h -C++ source.C - $ make -f Makeit + $ makecint \-mk Makeit \-DONLINE \-o mycint \-H source.h \-C++ source.C + $ make \-f Makeit .fi .TP .B \-I INCLDPATH Include file search path .br You can not put multiple path after '-I'. '-I' must be given before -every individual include path. Space between -I and pathname is not +every individual include path. Space between \-I and pathname is not significant. You can either go '-Ipath' or '-I path'. .nf - $ makecint -mk Makeit -I/users/include -I/include -H src.h -C++ src.C - $ make -f Makeit + $ makecint \-mk Makeit \-I/users/include \-I/include \-H src.h \-C++ src.C + $ make \-f Makeit .fi .TP .B \-H SUTPI.h @@ -406,8 +408,8 @@ enum, public member functions and data members, non-static global function and variables, typedefs and macros in precompiled library can be used from interpreter. .nf - $ makecint -mk Mkit -o mycint -H src1.h src2.h -C++ src1.C src2.C - $ make -f Mkit + $ makecint \-mk Mkit \-o mycint \-H src1.h src2.h \-C++ src1.C src2.C + $ make \-f Mkit .fi SUTPI.h file must be compliant to cint syntax limi tations described in /usr/share/doc/cint/limitati.txt. If SUTPI.h uses C++ language @@ -435,8 +437,8 @@ style header is not accepted. struct,union,enum, non-static global function and variables, typedefs and macros in precompiled library can be used from interpreter. .nf - $ makecint -mk Makeit -A -o mycint -h csrc1.h csrc2.h -C csrc1.c csrc2.c - $ make -f Makeit + $ makecint \-mk Makeit \-A \-o mycint \-h csrc1.h csrc2.h \-C csrc1.c csrc2.c + $ make \-f Makeit .fi SUTPI.h file must be compliant to cint syntax limitations described /usr/share/doc/cint/limitati.txt. If SUTPI.h uses C++ language @@ -448,29 +450,29 @@ for makecint. .B \+P, \-P Turn preprocessor mode for following header files on/off .br -The +P and -P are suboptions of -h , -H option which turns on/off +The +P and \-P are suboptions of \-h , \-H option which turns on/off preprocessor option on file by file basis. Files after +P will be -preprocessed and files after -P won't be preprocessed. You can +preprocessed and files after \-P won't be preprocessed. You can selectively use preprocessor in following manner. In this example, only C.h and D.h , which are enclosed by +P/-P , will be preprocessed -by real C/C++ preprocessor. You must not use -p option when you use -+P/-P option. +P option must always come before -P , however, -P can +by real C/C++ preprocessor. You must not use \-p option when you use ++P/-P option. +P option must always come before \-P , however, \-P can be omitted if all files after +P are preprocessed. The name of the C/C++ preprocessor must be set in the $CINTSYSDIR/MAKEINFO file. .nf - $ makecint -mk Makeit -o mycint -H A.h B.h +P C.h D.h -P E.h F.h -C++ all.C - $ make -f Makeit + $ makecint \-mk Makeit \-o mycint \-H A.h B.h +P C.h D.h \-P E.h F.h \-C++ all.C + $ make \-f Makeit .fi .TP .B \+V, \-V Turn class title loading for following header files on/off .br -The +V and -V are suboptions for -h , -H option which turns on/off +The +V and \-V are suboptions for \-h , \-H option which turns on/off loading class title by file basis. Class title will be loaded for the -files after +V. Class title won't be loaded for the files after -V. +files after +V. Class title won't be loaded for the files after \-V. .nf - $ makecint -mk Makeit -o mycint -H A.h B.h +V C.h D.h -V E.h F.h -C++ all.C - $ make -f Makeit + $ makecint \-mk Makeit \-o mycint \-H A.h B.h +V C.h D.h \-V E.h F.h \-C++ all.C + $ make \-f Makeit .fi Class title has to be described in class/struct defi- nition in header file as follows. Basically, '//' style comment right after each @@ -485,38 +487,38 @@ member declaration will be loaded as class member comment. .fi .TP .B \-C++ SUT.C -Link C++ source code or object. Not accessed unless -H SUT.h is given. +Link C++ source code or object. Not accessed unless \-H SUT.h is given. .br With the '-C++' option, [sut].C file is used as body of C++ compiled object. .br If appropriate header file is given by '-H' option, those compiled object can be accessed from the interpreter. At least one header file -must be given by -H option when using -C++ option. Otherwise, +must be given by \-H option when using \-C++ option. Otherwise, makecint fails. Multiple source files can be given after one '-C++'. Suffix of the C++ source files must be properly set in the $CINTSYSDIR/MAKEINFO file. .TP .B \-C SUT.c -Link C source code or object. Not accessed unless -h SUT.h is given. +Link C source code or object. Not accessed unless \-h SUT.h is given. .br With the '-C' option, SUT.c file is used as body of C compiled object. If the appropriate header file is given by '-h' option, those compiled objects can be accessed from the interpreter. At least one header file -must be given by -h option when using -C option. Multiple source +must be given by \-h option when using \-C option. Multiple source files can be given after one '-C'. Suffix of the C source files must be properly set in the $CINTSYSDIR/MAKEINFO file. .TP .B \-i++ STUB.h C++ STUB function parameter information file. .br --i++ option does opposite of -H option. While -H option enables -access of precompiled object from interpreter, -i++ option enables +-i++ option does opposite of \-H option. While \-H option enables +access of precompiled object from interpreter, \-i++ option enables access of interpreted functions from compiled code. .nf #### Example is in /usr/share/doc/cint/demo/makecint/Stub directory -$ makecint -mk Makefile -o mycint -H Src.h -i++ Stub.h -C++ Src.C -$ make -f Makefile +$ makecint \-mk Makefile \-o mycint \-H Src.h \-i++ Stub.h \-C++ Src.C +$ make \-f Makefile $ mycint Stub.C .fi STUB.h file must be compliant to cint syntax limitations described in @@ -527,12 +529,12 @@ and non-static global variable defined in STUB.h is undefined. .B \-i STUB.h C STUB function parameter information file. .br -The -i option does the opposite of the -h option. While -h enables -access of precompiled object from interpreter, -i enables access of +The \-i option does the opposite of the \-h option. While \-h enables +access of precompiled object from interpreter, \-i enables access of interpreted functions from compiled code. .nf -$ makecint -mk Makefile -o mycint -h Src.h -i Stub.h -C Src.c -$ make -f Makefile +$ makecint \-mk Makefile \-o mycint \-h Src.h \-i Stub.h \-C Src.c +$ make \-f Makefile $ mycint Stub.c .fi STUB.h file must be compliant to cint syntax limitations described in @@ -541,7 +543,7 @@ functions can be specified in STUB.h file. Behavior of struct, union, enum and non-static global variable defined in STUB.h is undefined. .TP .B \-c SUT.c -Same as '-h [sut].c -C [sut].c' +Same as '-h [sut].c \-C [sut].c' .TP .B \-l \-lLIB Compiled object, Library or linker options @@ -550,14 +552,14 @@ Compiled object, Library or linker options Handle undefined typename as class name. .br Fighting againt undefined typename is a tidious work, especially when -you do not need public access to those. -u option ignores such +you do not need public access to those. \-u option ignores such symbols and generates dummy code to eliminate this kind of problem. It -handles unknown typename as a class name which is not exposed. -u +handles unknown typename as a class name which is not exposed. \-u option takes output file name as an argument. All of the undefined typenames will be written out. .nf - $ makecint -mk Makeit -u undef.h -H src.h -C++ src.C - $ make -mk Makeit + $ makecint \-mk Makeit \-u undef.h \-H src.h \-C++ src.C + $ make \-mk Makeit .fi This option is not perfect. If you find problem, you need to fix it manually. @@ -569,8 +571,8 @@ If you give this option, cint/makecint will disable dictionary generation for header files exist under given directory. For example, .nf - $ makecint -mk makefile -dl src.dll -I/x/inc -U/x/inc -H src.h - $ make -f makefile + $ makecint \-mk makefile \-dl src.dll \-I/x/inc \-U/x/inc \-H src.h + $ make \-f makefile $ cint src.dll .fi Suppose you have /x/inc/mylib.h and it is included from src.h, things @@ -583,16 +585,16 @@ Ignore std namespace (default=1:ignore) Automatic loading of standard header files .br If you give this option, cint/makecint will automatically load -standard header files used in header file given by -h/-H -option. Default is off(0). -Z1 must be given to makecint when making +standard header files used in header file given by \-h/-H +option. Default is off(0). \-Z1 must be given to makecint when making dictinoary. For example, .nf // src.h #include <string> // this will trigger implicit loading class myclass { .. }; - $ makecint -mk makefile -dl src.dll -Z1 -H src.h - $ make -f makefile + $ makecint \-mk makefile \-dl src.dll \-Z1 \-H src.h + $ make \-f makefile $ cint src.dll cint> .file 0: myheader.dll // explicitly loaded @@ -608,16 +610,16 @@ Compiler option Cint option .br This option specifies command line option directly gieven to -cint. Multiple cint options can be given after -cint. There are a few +cint. Multiple cint options can be given after \-cint. There are a few important cint options which I will describe below. .TP -.B \-cint -M NEWDELMASK +.B \-cint \-M NEWDELMASK Mask operator new/delete generation .br Caution: When making cint dictionary or interface method source code, it usually overloads global new and delete operators. If you have yourown new/delete operator, you may want to elimitate new and delete -from the dictionary source code. -M option turns off automatic +from the dictionary source code. \-M option turns off automatic creation of operator new/delete in the dictionary source code. Mask flag is given as hex number described below. .nf @@ -638,13 +640,13 @@ dictionary. #define G__MASK_OPERATOR_NEW 0x04 .fi Cint does not generate operator new function in the dictionary because -it is explicitly masked by -M0x4 command line option. +it is explicitly masked by \-M0x4 command line option. .nf #define G__MASK_OPERATOR_DELETE 0x08 .fi Cint does not generate operator new function in the dictionary because -it is explicitly masked by -M0x8 command line option. +it is explicitly masked by \-M0x8 command line option. .nf #define G__NOT_USING_2ARG_NEW 0x10 @@ -656,7 +658,7 @@ From cint5.14.60, a new scheme is introduced. This scmeme is still experimmental. In the new method, following flags dominates others. This scheme is intended to fix problems associated with global operator new/delete. -Before 5.14.59, -M0x1c or -M0x10 was needed for HP-UX aCC, Solaris +Before 5.14.59, \-M0x1c or \-M0x10 was needed for HP-UX aCC, Solaris CC5 and few other compilers. From 5.14.60, this option is not needed for those platforms any more. .nf @@ -681,10 +683,10 @@ following functions will be generated. static void operator delete(void *p,[DLLID]_tag* x); static void G__operator_delete(void *p); .fi -Default value is -M0x100 for pure CINT and -M0x1c for ROOTCINT. +Default value is \-M0x100 for pure CINT and \-M0x1c for ROOTCINT. .nf - $ makecint -mk Makeit -H src.h -C++ src.C -cint -M0x1c - $ make -mk Makeit + $ makecint \-mk Makeit \-H src.h \-C++ src.C \-cint \-M0x1c + $ make \-mk Makeit .fi If you have one argument operator new in your source code, your operator new should look like below. @@ -717,20 +719,20 @@ delete should look like below. } .fi .TP -.B -cint -Z [0|1] +.B \-cint \-Z [0|1] Automatic loading of standard header files .br If you give this option, cint/makecint will automatically load -standard header files used in header file given by -h/-H -option. Default is off(0). -Z1 must be given to makecint when making +standard header files used in header file given by \-h/-H +option. Default is off(0). \-Z1 must be given to makecint when making dictinoary. For example, .nf // src.h #include <string> // this will trigger implicit loading class myclass { .. }; - $ makecint -mk makefile -dl src.dll -H src.h -cint -Z1 - $ make -f makefile + $ makecint \-mk makefile \-dl src.dll \-H src.h \-cint \-Z1 + $ make \-f makefile $ cint src.dll cint> .file 0: myheader.dll // explicitly loaded @@ -739,7 +741,7 @@ dictinoary. For example, 3: bool.h // " .fi .TP -.B -B FUNCNAME +.B \-B FUNCNAME Initialization function name .PP diff --git a/man/man1/memprobe.1 b/man/man1/memprobe.1 index b3c9efe64c2..6c37cdf5ba7 100644 --- a/man/man1/memprobe.1 +++ b/man/man1/memprobe.1 @@ -1,5 +1,5 @@ .\" -.\" $Id: root-config.1,v 1.1 2001/08/15 13:30:48 rdm Exp $ +.\" $Id: memprobe.1,v 1.1 2002/01/20 14:23:52 rdm Exp $ .\" .TH MEMPROBE 1 "Version 3" "ROOT" .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection @@ -13,7 +13,7 @@ memprobe \- ROOT utility to examine memory usage To activate the memory checker you have to set in the \fB.rootrc\fR file the resource \fBRoot.MemCheck\fR to 1 (e.g.: \fBRoot.MemCheck: 1\fR) and you have to link with \fBlibNew.so\fR (e.g. use -\fBroot-config --new --libs\fR) or use \fBrootn.exe\fR. +\fBroot-config \-\-new \-\-libs\fR) or use \fBrootn.exe\fR. .PP When all this is the case you will find at the end of the program execution a file \fBmemcheck.out\fR in the directory where you started @@ -67,7 +67,17 @@ This manual page was written by Christian Holm Christensen <cholm@nbi.dk>, for the Debian GNU/Linux system (but may be used by others). .\" -.\" $Log: root-config.1,v $ +.\" $Log: memprobe.1,v $ +.\" Revision 1.1 2002/01/20 14:23:52 rdm +.\" Mega patch by Christian Holm concerning the configure, build and +.\" Debian and RedHat packaging scripts. The configure script has been +.\" rationalized (introduction of two shell functions to find package +.\" headers and libraries). Extensive update of the INSTALL writeup, +.\" including description of all new packages (SapDB, PgSql, etc.). +.\" More options to the root-config script. Man page for memprobe. +.\" Big overhaul of the Debian and RedHat packaging scripts, supporting +.\" the new libraries. +.\" .\" Revision 1.1 2001/08/15 13:30:48 rdm .\" move man files to new subdir man1. This makes it possible to add .\" $ROOTSYS/man to MANPATH and have "man root" work. diff --git a/man/man1/olbd.1 b/man/man1/olbd.1 new file mode 100644 index 00000000000..6c19f3c4c1e --- /dev/null +++ b/man/man1/olbd.1 @@ -0,0 +1,69 @@ +.\" +.\" $Id: rootd.1,v 1.2 2004/12/15 12:37:43 rdm Exp $ +.\" +.TH XROOTD 1 "Version 4" "ROOT" +.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection +.\" other parms are allowed: see man(7), man(1) +.SH NAME +olbd \- Open Load Balancer Daeom used by xrootd +.SH SYNOPSIS +.B oldb +.I [options] [exported directories] +.SH "DESCRIPTION" +This manual page documents briefly the +.BR olbd +program. +.PP +.B olbd +is the Open Load Balancer Daemon for the +.B ROOT +extended remote file server daemon. +.SH "SEE ALSO" +\fIxrootd\fR(1), \fIrootd\fR(1) +.PP +See also +.I http://xrootd.slac.stanford.edu +for more on the extended \fBROOT\fR server. +.PP +For more information on the \fBROOT\fR system, please refer to +.US http://root.cern.ch/ +.I http://root.cern.ch +.UE +.SH "ORIGINAL AUTHORS" +The ROOT team (see web page above): +.RS +.B Rene Brun +and +.B Fons Rademakers +.RE +.SH "COPYRIGHT" +ROOT Software Terms and Conditions +.PP +The authors hereby grant permission to use, copy, and distribute this +software and its documentation for any purpose, provided that existing +copyright notices are retained in all copies and that this notice is +included verbatim in any distributions. Additionally, the authors grant +permission to modify this software and its documentation for any purpose, +provided that such modifications are not distributed without the explicit +consent of the authors and that existing copyright notices are retained in +all copies. Users of the software are asked to feed back problems, benefits, +and/or suggestions about the software to the ROOT Development Team +(rootdev@root.cern.ch). Support for this software - fixing of bugs, +incorporation of new features - is done on a best effort basis. All bug +fixes and enhancements will be made available under the same terms and +conditions as the original software, +.PP +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, +EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.PP +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS +PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +.SH AUTHOR +This manual page was originally written by Christian Holm Christensen +<cholm@nbi.dk>, for the Debian GNU/Linux system and ROOT version 3. diff --git a/man/man1/proofd.1 b/man/man1/proofd.1 index 03f59537bbe..e8258cb596b 100644 --- a/man/man1/proofd.1 +++ b/man/man1/proofd.1 @@ -1,5 +1,5 @@ .\" -.\" $Id: proofd.1,v 1.1 2000/12/08 17:41:00 rdm Exp $ +.\" $Id: proofd.1,v 1.1 2001/08/15 13:30:48 rdm Exp $ .\" .TH PROOFD 1 "Version 3" "ROOT" .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection @@ -64,7 +64,7 @@ On each node, add to \fI/etc/inetd.conf\fR the lines: .nf proofd stream tcp nowait root <\fIbindir\fR>/proofd proofd <\fIproofdir\fR>/proof - rootd stream tcp nowait root <\fIbindir\fR>/rootd rootd -i + rootd stream tcp nowait root <\fIbindir\fR>/rootd rootd \-i .fi You can substitute the <\fIproofdir\fR> with any directory that holds @@ -77,7 +77,7 @@ the cluster. Restart \fBinetd\fR or force it to re-read the config file: .nf - kill -1 <\fIinetd pid\fR> + kill \-1 <\fIinetd pid\fR> .fi If you use \fBSYSV\fR \fIinit\fR(8) scripts, you can probaly just do @@ -135,7 +135,7 @@ Create an empty <\fIproofdir\fR>/log/proof.log: Restart syslogd or force it to re-read the config file: .nf - kill -1 <\fIsyslogd pid\fR>. + kill \-1 <\fIsyslogd pid\fR>. .fi If you use \fBSYSV\fR \fIinit\fR(8) scripts, you can probaly just do @@ -160,7 +160,7 @@ If you're running \fBLinux\fR, Steps 5 to 7 can be somewhat automated using the script \fIproof-facility\fR in <\fIproofdir\fR> of your distribution. This script uses \fIsyslog-facility\fR(1), from the \fBLinux\fR \fIsyslog\fR(1) distribution, and may run on other -platforms as well - but no warrenties mind you! +platforms as well \- but no warrenties mind you! .PP Step 9 is completly up to the user. .SH "EXAMPLE" @@ -261,6 +261,10 @@ This manual page was written by Christian Holm Christensen others). .\" .\" $Log: proofd.1,v $ +.\" Revision 1.1 2001/08/15 13:30:48 rdm +.\" move man files to new subdir man1. This makes it possible to add +.\" $ROOTSYS/man to MANPATH and have "man root" work. +.\" .\" Revision 1.1 2000/12/08 17:41:00 rdm .\" man pages of all ROOT executables provided by Christian Holm. .\" diff --git a/man/man1/rlibmap.1 b/man/man1/rlibmap.1 new file mode 100644 index 00000000000..9cb6ee9ecfe --- /dev/null +++ b/man/man1/rlibmap.1 @@ -0,0 +1,83 @@ +.\" +.\" $Id: rlibmap.1,v 1.3 2002/07/31 20:45:10 rdm Exp $ +.\" +.TH RLIBMAP 1 "Version 3" "ROOT" +.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection +.\" other parms are allowed: see man(7), man(1) +.SH NAME +rlibmap \- ROOT utility to create class to library maps +.SH SYNOPSIS +.B rlibmap +[-f] [[-r|-o] \fImapfile\fR] -l \fIlibrary\fR -d \fIdependecy\fR -c \fILinkdef\fR +.SH "DESCRIPTION" +Creates a map from classes to shared libraries that contain these +classes. +.SH OPTIONS +.TP +.B --help +Gives a short list of options avaliable, and exit +.TP +.BI -f +What!? +.TP +.BI -r mapfile +Read map file \fImapfile\fR +.TP +.BI -o mapfile +Output on \fImapfile\fR +.TP +.BI -l sofile +Library to inspect +.TP +.BI -d depsofile +Dependency library. +.TP +.BI -c linkdef +Specify \fBCINT\fR linkdef to use +.SH "SEE ALSO" +\fIroot\fR(1), \fIrootcint\fR(1) +.PP +See also the \fBROOT\fR webpages: +.US http://root.cern.ch +\fIhttp://root.cern.ch\fR +.UE +.SH "ORIGINAL AUTHORS" +The ROOT team (see web page above): +.RS +\fBRene Brun\fR and \fBFons Rademakers\fR +.RE +.SH "COPYRIGHT" +\fBROOT\fR Software Terms and Conditions +.PP +The authors hereby grant permission to use, copy, and distribute this +software and its documentation for any purpose, provided that existing +copyright notices are retained in all copies and that this notice is +included verbatim in any distributions. Additionally, the authors grant +permission to modify this software and its documentation for any purpose, +provided that such modifications are not distributed without the explicit +consent of the authors and that existing copyright notices are retained in +all copies. Users of the software are asked to feed back problems, benefits, +and/or suggestions about the software to the ROOT Development Team +(rootdev@root.cern.ch). Support for this software - fixing of bugs, +incorporation of new features - is done on a best effort basis. All bug +fixes and enhancements will be made available under the same terms and +conditions as the original software, +.PP +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, +EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.PP +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS +PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +.SH AUTHOR +This manual page was written by Christian Holm Christensen +<cholm@nbi.dk>, for the Debian GNU/Linux system (but may be used by +others). +.\" +.\" EOF +.\" diff --git a/man/man1/root-config.1 b/man/man1/root-config.1 index c56cfe342f7..c07b72be1f0 100644 --- a/man/man1/root-config.1 +++ b/man/man1/root-config.1 @@ -1,5 +1,5 @@ .\" -.\" $Id: root-config.1,v 1.2 2002/01/20 14:23:52 rdm Exp $ +.\" $Id: root-config.1,v 1.3 2002/07/31 20:45:10 rdm Exp $ .\" .TH ROOT-CONFIG 1 "Version 3" "ROOT" .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection @@ -14,12 +14,12 @@ Put lines like .RS .nf -CFLAGS = $(shell root-config --cflags) -LIBS = $(shell root-config --libs) -GLIBS = $(shell root-config --glibs) +CFLAGS = $(shell root-config \-\-cflags) +LIBS = $(shell root-config \-\-libs) +GLIBS = $(shell root-config \-\-glibs) %Cint.cxx:Include.h LinkDef.h - rootcint -f $@ -c $^ + rootcint \-f $@ \-c $^ .fi .RE @@ -38,17 +38,17 @@ lib_LTLIBRARIES = libFoo.la pkginclude_HEADERS = Foo.h noinst_HEADERS = FooCint.h libFoo_la_SOURCES = Foo.cxx FooCint.cxx -libFoo_la_LDFLAGS = -version-info 1:0 -R @ROOTLIBDIR@ -libFoo_la_LDADD = -lCore -lCint @ROOTAUXLIBS@ +libFoo_la_LDFLAGS = \-version-info 1:0 \-R @ROOTLIBDIR@ +libFoo_la_LDADD = \-lCore \-lCint @ROOTAUXLIBS@ BUILT_SOURCES = FooCint.cxx FooCint.h -AM_CPPFLAGS = -I@ROOTINCDIR@ -AM_LDFLAGS = -L@ROOTLIBDIR@ +AM_CPPFLAGS = \-I@ROOTINCDIR@ +AM_LDFLAGS = \-L@ROOTLIBDIR@ CLEANFILES = *Cint.cxx *Cint.h *~ core %Cint.cxx %Cint.h:Include.h LinkDef.h - @ROOTCINT@ -f $*Cint.cxx -c $(INCLUDES) $(AM_CPPFLAGS) $^ + @ROOTCINT@ \-f $*Cint.cxx -c $(INCLUDES) $(AM_CPPFLAGS) $^ .fi .RE @@ -145,64 +145,64 @@ Auxilary compiler flags Same as \fBROOTLIBDIR\fR .SH OPTIONS .TP -.B --help +.B \-\-help Gives a short list of options avaliable, and exit .TP -.B --version +.B \-\-version Report the version number of installed \fBROOT\fR, and exit. .TP -.BI --prefix =<prefix> +.BI \-\-prefix =<prefix> If no arguments is given, reports where \fBROOT\fR is installed. With an argument of =\fI<prefix>\fR, set the base of the subsequent options -to \fI<prefix>\fR. If \fB--exec-prefix\fR is passedwith an argument, -that argument overrides the argument given to \fB--prefix\fR for the +to \fI<prefix>\fR. If \fB\\-\-exec-prefix\fR is passedwith an argument, +that argument overrides the argument given to \fB\\-\-prefix\fR for the library path. .TP -.BI --exec-prefix =<prefix> +.BI \-\-exec-prefix =<prefix> If no argument is given, report where the libraries are installed. If an argument is given, use that as the installation base directory for the libraries. This option does not affect the include path. .TP -.B --libdir +.B \-\-libdir Print the directory where the ROOT libraries are installed. .TP -.B --incdir +.B \-\-incdir Print the directory where the ROOT headers are installed. .TP -.B --libs +.B \-\-libs Output a line suitable for linking a program agains the \fBROOT\fR libraries. No graphics libraries are output. .TP -.B --glibs +.B \-\-glibs As above, but also output for the graphics libraries. .TP -.B --cflags +.B \-\-cflags Output a line suitable for compiling a source file againd the \fBROOT\fR header (class declararion) files. .TP -.B --new +.B \-\-new Put the \fBlibNew.so\fR library in the library lists. This option -\fImust\fR be given before options \fB--libs\fR and \fB--glibs\fR. +\fImust\fR be given before options \fB\-\-libs\fR and \fB\-\-glibs\fR. .TP -.B --nonew +.B \-\-nonew Compatiblity option. Does nothing. .TP -.B --auxlibs +.B \-\-auxlibs Print auxiliary libraries and/or system linker flags. .TP -.B --noauxlibs +.B \-\-noauxlibs Do not print auxiliary libraries and/or system linker flags in the -output of \fB--libs\fR and \fB--glibs\fR. -.B --auxcflags +output of \fB\-\-libs\fR and \fB\-\-glibs\fR. +.B \-\-auxcflags Print auxiliary compiler flags. .TP -.B --noauxcflags +.B \-\-noauxcflags Do not print auxiliary compiler flags in the output of -\fB--cflags\fR. +\fB\-\-cflags\fR. .TP -.B --noldflags -Do not print library path link option in output of \fB--libs\fR and -\fB--glibs\fR. +.B \-\-noldflags +Do not print library path link option in output of \fB\-\-libs\fR and +\fB\-\-glibs\fR. .SH "SEE ALSO" \fIroot\fR(1), \fIroot-cint\fR(1) .PP diff --git a/man/man1/rootcint.1 b/man/man1/rootcint.1 index 642e3947038..5dbe4353c82 100644 --- a/man/man1/rootcint.1 +++ b/man/man1/rootcint.1 @@ -1,5 +1,5 @@ .\" -.\" $Id: rootcint.1,v 1.1 2000/12/08 17:41:01 rdm Exp $ +.\" $Id: rootcint.1,v 1.1 2001/08/15 13:30:48 rdm Exp $ .\" .TH ROOTCINT 1 "Version 3" "ROOT" .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection @@ -8,8 +8,8 @@ rootcint \- ROOT Dictionary generator .SH SYNOPSIS .nf -\fBrootcint \fIheader_file\fR[+][-][!] ... [LinkDef.h] > \fIdict_file\fR -\fBrootcint \fR[-f] \fIdict_file \fR[-c] \fIheader_file\fR[+][-][!] ... [LinkDef.h] +\fBrootcint \fIheader_file\fR[+][\-][!] ... [LinkDef.h] > \fIdict_file\fR +\fBrootcint \fR[\-f] \fIdict_file \fR[\-c] \fIheader_file\fR[+][\-][!] ... [LinkDef.h] .fi .SH "DESCRIPTION" The @@ -78,7 +78,7 @@ directories to be searched and preprocessor defines, like: .sp 1 .RS .nf -.B -I$../include -DDebug +.B \-I$../include -DDebug .fi .RE .sp 1 @@ -113,7 +113,7 @@ looks like: This file tells .B rootcint for which classes the method interface stubs should be generated. A -trailing `-' in the class name tells +trailing `\-' in the class name tells .B rootcint to not generate the .B Streamer() @@ -199,6 +199,10 @@ This manual page was written by Christian Holm Christensen others). .\" .\" $Log: rootcint.1,v $ +.\" Revision 1.1 2001/08/15 13:30:48 rdm +.\" move man files to new subdir man1. This makes it possible to add +.\" $ROOTSYS/man to MANPATH and have "man root" work. +.\" .\" Revision 1.1 2000/12/08 17:41:01 rdm .\" man pages of all ROOT executables provided by Christian Holm. .\" diff --git a/man/man1/rootd.1 b/man/man1/rootd.1 index 998274400eb..00ac51d2eea 100644 --- a/man/man1/rootd.1 +++ b/man/man1/rootd.1 @@ -1,5 +1,5 @@ .\" -.\" $Id: rootd.1,v 1.1 2001/08/15 13:30:48 rdm Exp $ +.\" $Id: rootd.1,v 1.2 2004/12/15 12:37:43 rdm Exp $ .\" .TH ROOTD 1 "Version 4" "ROOT" .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection @@ -36,7 +36,7 @@ If the system uses inetd, add the following line to \fI/etc/inetd.conf\fR: .sp 1 .RS .nf -rootd stream tcp nowait root <\fIbindir\fR>/rootd rootd -i +rootd stream tcp nowait root <\fIbindir\fR>/rootd rootd \-i .fi .RE .sp 1 @@ -47,7 +47,7 @@ The \fIinetd\fR(8) daemon must re-read its configuration file to become aware of .sp 1 .RS .nf -kill -HUP <pid inetd> +kill \-HUP <pid inetd> .fi .RE .sp 1 @@ -76,7 +76,7 @@ service rootd wait = no user = root server = <\fIbindir\fR>/rootd - server_args = -i + server_args = \-i } .fi .RE @@ -104,7 +104,7 @@ listening on port 5151 just type: .sp 1 .RS .nf -rootd -p 5151 +rootd \-p 5151 .fi .RE .sp 1 @@ -115,7 +115,7 @@ itself. ftp). To setup \fIrootd\fR to accept anonymous logins do the following (while being logged in as root): .TP -.Bl -enum +.Bl \-enum .It Add the following line to /etc/passwd: .sp 1 @@ -201,7 +201,7 @@ In system using shadow passwords, full access to the password field of the user .sp 1 .RS .nf -perl -e '$pw = crypt("<secretpasswd>","salt"); print "$pw\n"' +perl \-e '$pw = crypt("<secretpasswd>","salt"); print "$pw\n"' .fi .RE .sp 1 @@ -295,6 +295,53 @@ It has been modified by G. Ganis <g.ganis@cern.ch> to document new features included in ROOT version 4. .\" .\" $Log: rootd.1,v $ +.\" Revision 1.2 2004/12/15 12:37:43 rdm +.\" From Gerri: +.\" 1) New files: +.\" .1 build/package/rpm/root-rootd.spec.in +.\" +.\" skeleton for the rootd RPM specs file +.\" +.\" .2 build/package/common/root-rootd.dscr +.\" +.\" short and long descriptions used in the previous file +.\" +.\" .3 config/rootd.in +.\" +.\" Skeleton for the startup script to be created under etc; the +.\" variable which depends on the configuration directives is +.\" the location of the executable to run (i.e the installation +.\" prefix). This file is to be moved to /etc/rc.d/init.d/ on RH +.\" (or equivalent position on other versions of Linux). +.\" +.\" .4 man/man1/system.rootdaemonrc.1 +.\" +.\" man page for system.rootdaemonrc and related files +.\" +.\" +.\" 2) Patched files: +.\" +.\" .1 Makefile +.\" +.\" add new target 'rootdrpm' with the rules to create the specs file +.\" +.\" .2 configure +.\" +.\" add creation of etc/rootd from the skeleton in config/rootd.in +.\" +.\" .3 config/Makefile.in +.\" +.\" add variable ROOTDRPMREL with the RPM release version (default 1); +.\" this can be changed on command line whn creating the spec file +.\" +.\" .4 config/rootdaemonrc.in +.\" +.\" update fir 'sockd' and correct a few typos +.\" +.\" .5 man/man1/rootd.1 +.\" +.\" significant updates; typo corrections +.\" .\" Revision 1.1 2001/08/15 13:30:48 rdm .\" move man files to new subdir man1. This makes it possible to add .\" $ROOTSYS/man to MANPATH and have "man root" work. diff --git a/man/man1/ssh2rpd.1 b/man/man1/ssh2rpd.1 new file mode 100644 index 00000000000..a4897be2733 --- /dev/null +++ b/man/man1/ssh2rpd.1 @@ -0,0 +1,64 @@ +.\" +.\" $Id: ssh2rpd.1,v 1.3 2002/07/31 20:45:10 rdm Exp $ +.\" +.TH SSH2RPD 1 "Version 3" "ROOT" +.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection +.\" other parms are allowed: see man(7), man(1) +.SH NAME +ssh2rpd \- ROOT utility to help in authentication +.SH SYNOPSIS +.B ssh2rpd +.I arg1 arg2 +.SH "DESCRIPTION" +Do know what to write here. +.SH OPTIONS +.TP +.B --help +Gives a short list of options avaliable, and exit +.SH "SEE ALSO" +\fIroot\fR(1), \fIrootd\fR(1) +.PP +See also the \fBROOT\fR webpages: +.US http://root.cern.ch +\fIhttp://root.cern.ch\fR +.UE +.SH "ORIGINAL AUTHORS" +The ROOT team (see web page above): +.RS +\fBRene Brun\fR and \fBFons Rademakers\fR +.RE +.SH "COPYRIGHT" +\fBROOT\fR Software Terms and Conditions +.PP +The authors hereby grant permission to use, copy, and distribute this +software and its documentation for any purpose, provided that existing +copyright notices are retained in all copies and that this notice is +included verbatim in any distributions. Additionally, the authors grant +permission to modify this software and its documentation for any purpose, +provided that such modifications are not distributed without the explicit +consent of the authors and that existing copyright notices are retained in +all copies. Users of the software are asked to feed back problems, benefits, +and/or suggestions about the software to the ROOT Development Team +(rootdev@root.cern.ch). Support for this software - fixing of bugs, +incorporation of new features - is done on a best effort basis. All bug +fixes and enhancements will be made available under the same terms and +conditions as the original software, +.PP +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, +EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.PP +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS +PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +.SH AUTHOR +This manual page was written by Christian Holm Christensen +<cholm@nbi.dk>, for the Debian GNU/Linux system (but may be used by +others). +.\" +.\" EOF +.\" diff --git a/man/man1/xrootd.1 b/man/man1/xrootd.1 new file mode 100644 index 00000000000..41cea11e738 --- /dev/null +++ b/man/man1/xrootd.1 @@ -0,0 +1,425 @@ +.\" +.\" $Id: rootd.1,v 1.2 2004/12/15 12:37:43 rdm Exp $ +.\" +.TH XROOTD 1 "Version 4" "ROOT" +.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection +.\" other parms are allowed: see man(7), man(1) +.SH NAME +xrootd \- The eXtended ROOT file server daemon +.SH SYNOPSIS +.B xrootd +.I [options] [exported directories] +.SH "DESCRIPTION" +This manual page documents briefly the +.BR xrootd +program. +.PP +.B xrootd +is a +.B ROOT +remote file server daemon. +.SH STARTING XROOTD +The simplest possible setup is one server and one or more clients: +.sp 1 +.RS +.nf + +-- kan001 -----------+ ++-----------+ +--------+ +---------+ | +| Client |------->| Server | | Storage | | +| TXNetFile | | xrootd |--| /data |-+ ++-----------+ +--------+ +---------+ + +.fi +.RE +.sp 1 +As with the original +.BR rootd (1) +server, this is relatively easy to setup. You can start it as: +.sp 1 +.RS +.nf +kan001> xrootd +.fi +.RE +.sp 1 +Unlike the +.BR rootd server (1), +this doesn't immediately go into background, but in fact produces some +amount of logging information. +.PP +Using some +.B xrootd +client application, you should be able to access a file on the server +using the same syntax as with +.BR TNetFile / rootd , +for example: +.sp 1 +.RS +.nf +root://kan001//tmp/mydatafile.root +.fi +.RE +.sp 1 +From a client-side application such as a ROOT interactive session, you +should be able to open the file and perform operations on it: +.sp 1 +.RS +.nf +root [1] myfile = TFile::Open("root://kan001//tmp/mydatafile.root"); +root [2] myfile->ls(); +XTNetFile** root://kan001//tmp/mydatafile.root + XTNetFile* root://kan001//tmp/mydatafile.root + KEY: TF1 fooHist;1 gaus + KEY: TF1 barHist;1 gaus +root [3] myfile->Close(); +root [4] .q +.fi +.RE +.sp 1 +.SH ACCESSING AREAS OTHER THAN /tmp +One important difference from +.BR rootd (1) +is that +.B xrootd +by default only allows one to access files in +.IR /tmp . +This is for security reasons so that a running +.B xrootd +does not give remote clients access to read (or write to!) everything +visible as +.BR xrootd . +.PP +A client accessing an area which is not explicitly exported by +.B xrootd e.g., +.I root://kan001//data/mydatafile.root +will get an error. +.PP +You must specify explicitly any directories you wish to export via +.BR xrootd . +This can be done on the command line when starting +.BR xrootd , +for example: +.sp 1 +.RS +.nf +kan001> xrootd /data +.fi +.RE +.sp 1 +will export the +.I /data +directory. + + +.SH MULTIPLE SERVERS +Often it is the case that the data that an application wants to access +is spread over multiple data servers. +.PP +The client application thus needs to know (or determine from some +external source) on which server any given data file is located. It +can then access those files directly with URL's like: +.sp 1 +.RS +.nf +root://kan001//data/aaaFile.root +root://kan002//data/bbbFile.root +.fi +.RE +.sp 1 +While this may work for small systems with few users, it has some +disadvantages: +.IP +If users know statically where files are located it doesn't easily +permit load balancing by moving files between servers or by +replicating them to spread the load. +.IP +If an external catalog is read by the client in order to determine +which server has the file, any changes to that catalog must be +synchronized with what actually happens to the files on disk. +.IP +If the file isn't actually on disk, but is retrieved from somewhere +else when the client asks for it (e.g. mass storage, discussed in +later examples), there is no easy way to manage the disk space to +insure that it is used efficiently and uniformly. +.PP +The \fBxrootd\fR system provides a method for solving these problems +via its \fIopen load balancer\fR component. This provides a method for +providing transparent access data servers. +.sp 1 +.RS +.nf + +-- kan001 ----------------+ + | +--------+ +---------+ | + +--->| Server | | Storage | | + + kanrdr + | | | olbd | | /data | | ++-----------+ +--------+ | | +--| xrootd |--| |-+ +| Client |--->| Server |------+ +--------+ +---------+ +| TXNetFile | | xrootd | | | ++-----------+ | olbd |---+ | +-- kan002 ----------------+ + +--------+ | | +--------+ +---------+ | + +--->| Server | | Storage | | + | | | olbd | | /data | | + | +--| xrootd |--| |-+ + | +--------+ +---------+ + | + ... +.fi +.RE +.sp 1 +In addition to the dataservers an additional machine (the +\fIredirector\fR - \fBkanrdr\fR above) is added. It does not need to +have any disk space itself as its sole role is to redirect the client +dynamically to an actual data server machine which can serve the +requested file. Thus client applications open all files via the +redirector \fBkanrdr\fR: +.sp 1 +.RS +.nf +root://kanrdr//data/aaaFile.root +root://kanrdr//data/bbbFile.root +.fi +.RE +.sp 1 +The redirection to the appropriate dataserver will take place +automatically (with the proper server configuration, discussed below) +and hence the user running the application doesn't need to know +anything about the actual layout of the data over the data +servers. Note also that after redirection the client is reading +directly from the data server to which it was redirected. It does need +the redirector any longer (at least until it needs to open a different +file). +.PP +To accomplish this a second daemon, the \fBolbd\fR, must be started on +both the redirector and each of the dataservers as show in the figure +above. Configuration of an \fBxrootd\fI/\fBolbd\fR system +.SH OPTIONS +.TP +\fB\-l\fR \fIlogfile\fR +The primary advantage of using this option as opposed to simply +redirecting the output to a file is that there is also a feature which +does automatic log file rotation. At midnight each night +\fBxrootd\fR will move the current \fIlogfile\fR to +\fIlogfile.yyyymmdd\fR and then continue writing to \fIlogfile\fR. +.TP +\fB-p\fR \fIport\fR +As with \fBrootd\fR(1), \fBxrootd\fR will started automatically on the +IANA assigned port number 1094. If you need to start it on another +port, that can be done using this option. Clients will need to +specify this port when accessing the server, using an URL like +\fIroot://kan001:2525//tmp/mydatafile.root\fR. In general it is +probably simplest to run xrootd on the standard port 1094. +.TP +\fB\-c\fR \fIconfigfile\fR +\fBxrootd\fR can be configured via a config file as well as via +command line options. There are in fact many more options available +via the config file and hence this is the recommended way of starting +\fBxrootd\fR is to use this option. The config file \fIconfigfile\fR +can have configuration directives as described below. +.TP +.B \-r +Flag this server as a redirector. + +.SH CONFIGURATION FILES +A configuration file for \fBxrootd\fR looks like +.sp 1 +.RS +.nf +# Start the server on port 2525 +xrd.port 2525 +# Export files in /data only +xrootd.export /data +.fi +.RE +.sp 1 +in order to achieve (for example) what was done with command line +options in the sections above. Note that lines beginning with \fB#\fR +are taken to be comments and ignored. For the moment we just note that +all config lines are of the form: +.sp 1 +.RS +.nf +\fIconfigclass\fR.\fIoption\fR [\fIoptval1\fR] [\fIoptval2\fR] [...] +.fi +.RE +.sp 1 +.PP +It is also important to note that spelling errors in either +\fIconfigclass\fR or \fIoption\fR will result in the entire line being +(silently) ignored. +.PP +.B Read-only data access +.br +An important thing to note about \fBxrootd\fR access to files is that +by default it allows any accessed file to be opened in update mode +(and/or new files to be created). For many situations this is +undesirable: the goal is simply to make data files available for +others to read. The easiest thing to do in that case is simply to +disallow all write access. To do this you need to add two lines to +your config file: +.sp 1 +.RS +.nf +xrootd.fslib /opt/xrootd/lib/libXrdOfs.so +oss.readonly +.fi +.RE +.sp 1 +in your configuration file. The first of these will cause the shared +library for the optional ofs/oss file layer to be loaded (the exact +path the \fIlib\fR area will depend on how you installed +\fBxrootd\fR). This shared library provides a number of filesystem +extensions. The second line disallows all write/update access using +one of these options. +.PP +More fine-grained configurations are possible, but globally +disallowing writes like this should cover a common use case. +.PP +.B Multiple servers +.br +As an example we take a redirector (called \fBkanrdr\fR) and two data +servers (called \fBkan001\fR and \fBkan002\fR) with files +\fBaaaFile.root\fR and \fBbbbFile.root\fR as above. +.PP +For the redirector we use a config file: +.sp 1 +.RS +.nf +# +# redirector.cf +# +# xrootd +xrootd.fslib /opt/xrootd/lib/libXrdOfs.so +xrootd.export /data +odc.manager kanrdr 3121 +odc.trace redirect +# olbd +olb.port 3121 +olb.allow host kanrdr.slac.stanford.edu +olb.allow host kan001.slac.stanford.edu +olb.allow host kan002.slac.stanford.edu +.fi +.RE +.sp 1 +and for the data servers we use: +.sp 1 +.RS +.nf +# +# dataserver.cf +# +# xrootd +xrootd.fslib /opt/xrootd/lib/libXrdOfs.so +xrootd.export /data +oss.readonly +odc.manager kanrdr 3121 +# olbd +olb.port 3121 +olb.subscribe kanrdr 3121 +.fi +.RE +.sp 1 +As in the earlier examples, the actual path the to the \fBlibXrdOfs.so\fR +may depend on your installation. (And you should obviously substitute +your machine names for \fBkanrdr\fR/\fBkan001\fR/\fBkan002\fR.) +.PP +It is then possible to start the \fBxrootd\fR and \fBolbd\fR servers +on each of the machines. +.PP +On dataserver kan001: +.sp 1 +.RS +.nf +xrootd \-l kan001.xrdlog -c dataserver.cf & +olbd -s \-l kan001.olblog -c dataserver.cf & +.fi +.RE +.sp 1 +On dataserver kan002: +.sp 1 +.RS +.nf +xrootd \-l kan002.xrdlog -c dataserver.cf & +olbd -s \-l kan002.olblog -c dataserver.cf & +.fi +.RE +.sp 1 +And on the redirector kanrdr: +.sp 1 +.RS +.nf +xrootd -r \-l kanrdr.xrdlog -c redirector.cf & +olbd -m \-l kanrdr.olblog -c redirector.cf & +.fi +.RE +.sp 1 +This should give you a working system capable of providing (readonly) +access to data files on two servers transparently masqueraded behind a +single redirector machine. +.PP +.B Testing the example load balanced system +.br +Once the system is running we can try to open one of the files, for +example: +.sp 1 +.RS +.nf +root [1] myfile = TFile::Open("root://kanrdr//data/aaafile.root"); +root [2] myfile->ls(); +XTNetFile** root://kanrdr//data/aaafile.root + XTNetFile* root://kanrdr//data/aaafile.root + KEY: TF1 fooHist;1 gaus + KEY: TF1 barHist;1 gaus +.fi +.RE +.sp 1 +Your client will be redirected and connect itself to \fBkan001\fR, the +actual location of the requested file. +.SH "SEE ALSO" +\fIrootd\fR(1), \fIproofd\fR(1), \fIsystem.rootdaemonrc\fR(1) +.PP +See also +.I http://xrootd.slac.stanford.edu +for more on the extended \fBROOT\fR server. +.PP +For more information on the \fBROOT\fR system, please refer to +.US http://root.cern.ch/ +.I http://root.cern.ch +.UE +.SH "ORIGINAL AUTHORS" +The ROOT team (see web page above): +.RS +.B Rene Brun +and +.B Fons Rademakers +.RE +.SH "COPYRIGHT" +ROOT Software Terms and Conditions +.PP +The authors hereby grant permission to use, copy, and distribute this +software and its documentation for any purpose, provided that existing +copyright notices are retained in all copies and that this notice is +included verbatim in any distributions. Additionally, the authors grant +permission to modify this software and its documentation for any purpose, +provided that such modifications are not distributed without the explicit +consent of the authors and that existing copyright notices are retained in +all copies. Users of the software are asked to feed back problems, benefits, +and/or suggestions about the software to the ROOT Development Team +(rootdev@root.cern.ch). Support for this software - fixing of bugs, +incorporation of new features - is done on a best effort basis. All bug +fixes and enhancements will be made available under the same terms and +conditions as the original software, +.PP +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, +EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.PP +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS +PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +.SH AUTHOR +This manual page was originally written by Christian Holm Christensen +<cholm@nbi.dk>, for the Debian GNU/Linux system and ROOT version 3. diff --git a/mysql/Module.mk b/mysql/Module.mk index 70bdde55c23..8a337fdbab5 100644 --- a/mysql/Module.mk +++ b/mysql/Module.mk @@ -46,7 +46,7 @@ $(MYSQLDS): $(MYSQLH) $(MYSQLL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(MYSQLH) $(MYSQLL) $(MYSQLDO): $(MYSQLDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I$(MYSQLINCDIR) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) $(MYSQLINCDIR:%=-I%) -I. -o $@ -c $< all-mysql: $(MYSQLLIB) @@ -68,4 +68,4 @@ distclean:: distclean-mysql ##### extra rules ###### $(MYSQLO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(MYSQLINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(MYSQLINCDIR:%=-I%) -o $@ -c $< diff --git a/net/Module.mk b/net/Module.mk index 9251d934861..4a0bda506c5 100644 --- a/net/Module.mk +++ b/net/Module.mk @@ -32,7 +32,7 @@ DAEMONUTILSO := $(MODDIRS)/DaemonUtils.o # Add SSL flags, if required ifneq ($(SSLLIB),) -SSLFLAGS := -I$(SSLINCDIR) +SSLFLAGS := $(SSLINCDIR:%=-I%) ifneq ($(CRYPTLIBS),) CRYPTLIBS += $(SSLLIBDIR) $(SSLLIB) else diff --git a/netx/Module.mk b/netx/Module.mk index 3055cb3a845..3fb7fb74f66 100644 --- a/netx/Module.mk +++ b/netx/Module.mk @@ -34,7 +34,7 @@ ALLLIBS += $(NETXLIB) INCLUDEFILES += $(NETXDEP) # Xrootd includes -NETXINCEXTRA := -I$(XROOTDDIRI) +NETXINCEXTRA := $(XROOTDDIRI:%=-I%) ##### local rules ##### include/%.h: $(NETXDIRI)/%.h diff --git a/pgsql/Module.mk b/pgsql/Module.mk index 89bf32122a5..aa3298e3809 100644 --- a/pgsql/Module.mk +++ b/pgsql/Module.mk @@ -46,7 +46,7 @@ $(PGSQLDS): $(PGSQLH) $(PGSQLL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(PGSQLH) $(PGSQLL) $(PGSQLDO): $(PGSQLDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I$(PGSQLINCDIR) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) $(PGSQLINCDIR:%=-I%) -I. -o $@ -c $< all-pgsql: $(PGSQLLIB) @@ -68,4 +68,4 @@ distclean:: distclean-pgsql ##### extra rules ###### $(PGSQLO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(PGSQLINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(PGSQLINCDIR:%=-I%) -o $@ -c $< diff --git a/pyroot/Module.mk b/pyroot/Module.mk index 839ba8c75e9..f908d4a0265 100644 --- a/pyroot/Module.mk +++ b/pyroot/Module.mk @@ -86,4 +86,4 @@ distclean:: distclean-pyroot ##### extra rules ###### $(PYROOTO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(PYTHONINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(PYTHONINCDIR:%=-I%) -o $@ -c $< diff --git a/qt/Module.mk b/qt/Module.mk index d7b204d8e97..29d3e7a9ac2 100644 --- a/qt/Module.mk +++ b/qt/Module.mk @@ -11,9 +11,6 @@ GQTDIR := $(MODDIR) GQTDIRS := $(GQTDIR)/src GQTDIRI := $(GQTDIR)/inc -# better detect directly in ./configure -QTMOCEXE := $(QTINCDIR)/../bin/moc - ##### libGQt ##### GQTL := $(MODDIRI)/LinkDef.h GQTDS := $(MODDIRS)/G__GQt.cxx @@ -35,7 +32,7 @@ GQTMOCO := $(GQTMOC:.cxx=.o) GQTDEP := $(GQTO:.o=.d) $(GQTDO:.o=.d) -GQTCXXFLAGS := -DQT_DLL -DQT_THREAD_SUPPORT -I. -I$(QTINCDIR) +GQTCXXFLAGS := -DQT_DLL -DQT_THREAD_SUPPORT -I. $(QTINCDIR:%=-I%) GQTLIB := $(LPATH)/libGQt.$(SOEXT) diff --git a/rfio/Module.mk b/rfio/Module.mk index 6d4765fb38a..e779d36f806 100644 --- a/rfio/Module.mk +++ b/rfio/Module.mk @@ -69,8 +69,8 @@ distclean:: distclean-rfio ##### extra rules ###### $(RFIOO): %.o: %.cxx ifeq ($(PLATFORM),win32) - $(CXX) $(OPT) $(CXXFLAGS) -D__INSIDE_CYGWIN__ -I$(SHIFTINCDIR) \ + $(CXX) $(OPT) $(CXXFLAGS) -D__INSIDE_CYGWIN__ $(SHIFTINCDIR:%=-I%) \ -o $@ -c $< else - $(CXX) $(OPT) $(CXXFLAGS) -I$(SHIFTINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(SHIFTINCDIR:%=-I%) -o $@ -c $< endif diff --git a/rpdutils/Module.mk b/rpdutils/Module.mk index 18a2e597dca..defc865abfb 100644 --- a/rpdutils/Module.mk +++ b/rpdutils/Module.mk @@ -38,19 +38,19 @@ endif # use SRP for authentication ifneq ($(SRPLIB),) -SRPFLAGS := -I$(SRPINCDIR) +SRPFLAGS := $(SRPINCDIR:%=-I%) SRPLIBS := $(SRPLIBDIR) $(SRPLIB) endif # use krb5 for authentication ifneq ($(KRB5LIB),) -KRB5FLAGS := -I$(KRB5INCDIR) +KRB5FLAGS := $(KRB5INCDIR:%=-I%) KRB5LIBS := $(KRB5LIBDIR) $(KRB5LIB) endif # use Globus for authentication ifneq ($(GLOBUSLIB),) -GLBSFLAGS := -I$(GLOBUSINCDIR) +GLBSFLAGS := $(GLOBUSINCDIR:%=-I%) GLBSLIBS := $(GLOBUSLIBDIR) $(GLOBUSLIB) SRVAUTHS += $(MODDIRS)/globus.cxx SRVAUTHO += $(MODDIRS)/globus.o diff --git a/ruby/Module.mk b/ruby/Module.mk index accee97db96..97f5ca01e30 100644 --- a/ruby/Module.mk +++ b/ruby/Module.mk @@ -69,4 +69,4 @@ distclean:: distclean-ruby ##### extra rules ###### $(RUBYROOTO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(RUBYINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(RUBYINCDIR:%=-I%) -o $@ -c $< diff --git a/sapdb/Module.mk b/sapdb/Module.mk index bc91e2e0b03..3db7431e6f2 100644 --- a/sapdb/Module.mk +++ b/sapdb/Module.mk @@ -46,7 +46,7 @@ $(SAPDBDS): $(SAPDBH) $(SAPDBL) $(ROOTCINTTMP) $(ROOTCINTTMP) -f $@ -c $(SAPDBH) $(SAPDBL) $(SAPDBDO): $(SAPDBDS) - $(CXX) $(NOOPT) $(CXXFLAGS) -I$(SAPDBINCDIR) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(CXXFLAGS) $(SAPDBINCDIR:%=-I%) -I. -o $@ -c $< all-sapdb: $(SAPDBLIB) @@ -68,4 +68,4 @@ distclean:: distclean-sapdb ##### extra rules ###### $(SAPDBO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(SAPDBINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(SAPDBINCDIR:%=-I%) -o $@ -c $< diff --git a/srputils/Module.mk b/srputils/Module.mk index 6918c42d96f..624dbe9a777 100644 --- a/srputils/Module.mk +++ b/srputils/Module.mk @@ -74,12 +74,12 @@ distclean:: distclean-srputils ##### extra rules ###### $(SRPUTILSO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(SRPINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(SRPINCDIR:%=-I%) -o $@ -c $< $(RPASSWDO): $(RPASSWDS) - $(CC) $(OPT) $(CFLAGS) -I$(SRPUTILINCDIR) -I$(SRPINCDIR) \ + $(CC) $(OPT) $(CFLAGS) $(SRPUTILINCDIR:%=-I%) $(SRPINCDIR:%=-I%) \ -o $@ -c $< $(RTCONFO): $(RTCONFS) - $(CC) $(OPT) $(CFLAGS) -I$(SRPUTILINCDIR) -I$(SRPINCDIR) \ + $(CC) $(OPT) $(CFLAGS) $(SRPUTILINCDIR:%=-I%) $(SRPINCDIR:%=-I%) \ -o $@ -c $< diff --git a/win32gdk/Module.mk b/win32gdk/Module.mk index 4b82ab89c92..f2a6276b17a 100644 --- a/win32gdk/Module.mk +++ b/win32gdk/Module.mk @@ -81,15 +81,15 @@ $(WIN32GDKLIB): $(WIN32GDKO) $(WIN32GDKDO) $(FREETYPELIB) $(GDKLIB) $(GDKDLL) \ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libWin32gdk.$(SOEXT) $@ \ "$(WIN32GDKO) $(WIN32GDKDO)" \ - "$(FREETYPELIB) $(GDKLIB) $(WIN32GDKLIBEXTRA)" + "$(FREETYPELDFLAGS) $(FREETYPELIB) $(GDKLIB) $(WIN32GDKLIBEXTRA)" $(WIN32GDKDS): $(WIN32GDKH1) $(WIN32GDKL) $(ROOTCINTTMP) @echo "Generating dictionary $@..." $(ROOTCINTTMP) -f $@ -c $(WIN32GDKH1) $(WIN32GDKL) $(WIN32GDKDO): $(WIN32GDKDS) $(FREETYPELIB) - $(CXX) $(NOOPT) $(CXXFLAGS) -I. -I$(FREETYPEDIRI) \ - -I$(WIN32GDKDIR)/gdk/src -I$(GDKDIRI) -I$(GLIBDIRI) \ + $(CXX) $(NOOPT) $(CXXFLAGS) -I. $(FREETYPEINC) \ + -I$(WIN32GDKDIR)/gdk/src $(GDKDIRI:%=-I%) $(GLIBDIRI:%=-I%) \ -o $@ -c $< all-win32gdk: $(WIN32GDKLIB) @@ -117,6 +117,6 @@ distclean:: distclean-win32gdk ##### extra rules ##### $(WIN32GDKO1): %.o: %.cxx $(FREETYPELIB) - $(CXX) $(OPT) $(CXXFLAGS) -I$(FREETYPEDIRI) \ - -I$(WIN32GDKDIR)/gdk/src -I$(GDKDIRI) -I$(GLIBDIRI) \ + $(CXX) $(OPT) $(CXXFLAGS) $(FREETYPEINC) \ + -I$(WIN32GDKDIR)/gdk/src $(GDKDIRI:%=-I%) $(GLIBDIRI:%=-I%) \ -o $@ -c $< diff --git a/x11ttf/Module.mk b/x11ttf/Module.mk index 88147946b5e..7769da3f18a 100644 --- a/x11ttf/Module.mk +++ b/x11ttf/Module.mk @@ -40,14 +40,14 @@ $(X11TTFLIB): $(X11TTFO) $(X11TTFDO) $(FREETYPELIB) $(MAINLIBS) $(X11TTFLIBDEP @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGX11TTF.$(SOEXT) $@ \ "$(X11TTFO) $(X11TTFDO)" \ - "$(FREETYPELIB) $(X11TTFLIBEXTRA) $(XLIBS)" + "$(FREETYPELDLFAGS) $(FREETYPELIB) $(X11TTFLIBEXTRA) $(XLIBS)" $(X11TTFDS): $(X11TTFH) $(X11TTFL) $(ROOTCINTTMP) @echo "Generating dictionary $@..." $(ROOTCINTTMP) -f $@ -c $(X11TTFH) $(X11TTFL) $(X11TTFDO): $(X11TTFDS) $(FREETYPELIB) - $(CXX) $(NOOPT) -I$(FREETYPEDIRI) $(CXXFLAGS) -I. -o $@ -c $< + $(CXX) $(NOOPT) $(FREETYPEINC) $(CXXFLAGS) -I. -o $@ -c $< all-x11ttf: $(X11TTFLIB) @@ -69,4 +69,4 @@ distclean:: distclean-x11ttf ##### extra rules ###### $(X11TTFO): %.o: %.cxx $(FREETYPELIB) - $(CXX) $(OPT) -I$(FREETYPEDIRI) $(CXXFLAGS) -o $@ -c $< + $(CXX) $(OPT) $(FREETYPEINC) $(CXXFLAGS) -o $@ -c $< diff --git a/xmlparser/Module.mk b/xmlparser/Module.mk index 29e8b9c9b54..b5fc8d949f3 100644 --- a/xmlparser/Module.mk +++ b/xmlparser/Module.mk @@ -70,4 +70,4 @@ distclean:: distclean-xmlparser ##### extra rules ###### $(XMLPARSERO): %.o: %.cxx - $(CXX) $(OPT) $(CXXFLAGS) -I$(XMLINCDIR) -o $@ -c $< + $(CXX) $(OPT) $(CXXFLAGS) $(XMLINCDIR:%=-I%) -o $@ -c $< diff --git a/xrootd/Module.mk b/xrootd/Module.mk index ea979b3727f..cf03e7b6bca 100644 --- a/xrootd/Module.mk +++ b/xrootd/Module.mk @@ -29,7 +29,7 @@ XROOTDA := $(XROOTDDIRD)/bin/xrootd XOLBD := bin/olbd XROOTD := bin/xrootd -ALLEXECS += $(XROOTD) +ALLEXECS += $(XROOTD) $(XOLBD) ##### local rules ##### $(XROOTD): $(XROOTDA) -- GitLab