Skip to content

Commit 7c8b1c1

Browse files
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. git-svn-id: http://root.cern.ch/svn/root/trunk@3719 27541ba8-7e3a-0410-8455-c3a389f83636
1 parent a1dc5cc commit 7c8b1c1

File tree

158 files changed

+3093
-1751
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+3093
-1751
lines changed

Makefile

+8-6
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ endif
9191
ifneq ($(STAR),)
9292
MODULES += star
9393
endif
94-
ifneq ($(SRPDIR),)
94+
ifneq ($(SRPUTILLIB),)
9595
MODULES += srputils
9696
endif
9797

@@ -319,7 +319,7 @@ redhat:
319319
@vers=`sed 's|\(.*\)/\(.*\)|\1.\2|' < build/version_number` ; \
320320
echo "called root-v$$vers.source.tar.gz and put it in you RPM "
321321
@echo "source directory (default /usr/src/rpm/SOURCES) and the "
322-
@echo "spec-file ../root.spec in your RPM spec directory"
322+
@echo "spec-file root.spec in your RPM spec directory"
323323
@echo "(default /usr/src/RPM/SPECS). If you want to build outside"
324324
@echo "the regular tree, please refer to the RPM documentation."
325325
@echo "After that, do"
@@ -456,9 +456,9 @@ install:
456456
$(INSTALLDIR) $(DESTDIR)$(ETCDIR); \
457457
$(INSTALLDATA) etc/* $(DESTDIR)$(ETCDIR); \
458458
rm -rf $(DESTDIR)$(ETCDIR)/CVS; \
459-
echo "Installing utils in $(DESTDIR)$(DATADIR)"; \
460-
$(INSTALLDIR) $(DESTDIR)$(DATADIR); \
461-
$(INSTALLDATA) build/misc/* $(DESTDIR)$(DATADIR); \
459+
echo "Installing Autoconf macro in $(DESTDIR)$(ACLOCALDIR)"; \
460+
$(INSTALLDIR) $(DESTDIR)$(ACLOCALDIR); \
461+
$(INSTALLDATA) build/misc/root.m4 $(DESTDIR)$(ACLOCALDIR); \
462462
rm -rf $(DESTDIR)$(DATADIR)/CVS; \
463463
fi
464464

@@ -587,7 +587,9 @@ showbuild:
587587
@echo "MYSQLINCDIR = $(MYSQLINCDIR)"
588588
@echo "PGSQLINCDIR = $(PGSQLINCDIR)"
589589
@echo "SAPDBINCDIR = $(SAPDBINCDIR)"
590-
@echo "SRPDIR = $(SRPDIR)"
590+
@echo "SRPLIBDIR = $(SRPLIBDIR)"
591+
@echo "SRPINCDIR = $(SRPINCDIR)"
592+
@echo "SRPUTILLIB = $(SRPUTILLIB)"
591593
@echo "AFSDIR = $(AFSDIR)"
592594
@echo ""
593595
@echo "INSTALL = $(INSTALL)"

README/INSTALL

+64-36
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ and that it is setup correctly, see:
7474

7575
http://root.cern.ch/root/Cygwin.html
7676

77-
Before proceeding read the complete document.
77+
Before proceeding read the complete document. Note: With the advent
78+
of Cygwin 1.0 your system is mostly setup correctly by the setup.exe
79+
program.
7880

7981

8082
Choosing the installation method
@@ -121,14 +123,14 @@ Linux packages.
121123

122124
This scheme also makes it easier to make ROOT
123125
distributions/installations that fit with an existing system. E.g.,
124-
it should be trivial to install ROOT via a RedHat (.rpm) or Debian
125-
GNU/Linux (.deb) package.
126+
it is trivial to install ROOT via a RedHat (.rpm) or Debian
127+
GNU/Linux (.deb) package (see also below).
126128

127129
It's _strongly_ recommended to enable version numbers in sonames
128130
(if possible) using this method (see --enable-soversion
129131
below). Also, using the --enable-rpath option to "configure" you
130132
can set the load path to the ROOT libraries on the
131-
applications. However, this is not recommended if you have soome
133+
applications. However, this is not recommended if you have some
132134
other way (like /etc/ld.so.conf) of making the dynamic loader
133135
aware of where you installed the ROOT libraries.
134136

@@ -153,9 +155,11 @@ outlined above and cd into the source directory. Then just do
153155

154156
make redhat
155157

156-
This will create a RPM spec file in "../". To build the packages do:
158+
This will create a RPM spec file in the source tree. To build the
159+
packages do:
160+
161+
1) Make a tar-ball of the source tree.
157162

158-
1)
159163
cd ../
160164
tar -czvf root_v<version>.source.tar.gz root
161165

@@ -172,11 +176,11 @@ This will create a RPM spec file in "../". To build the packages do:
172176
B) However, if you don't have system privileges, you should set up a
173177
build area by having the file ~/.rpmrc with a contents like
174178

175-
%macros /usr/lib/rpm/macros:<your home dir>/.rpmmac
179+
%macrofiles: /usr/lib/rpm/macros:<your home dir>/.rpmmac
176180

177181
and a file <your home dir>/.rpmmac with a contents like
178182

179-
%_topdir: <some where you can write>/redhat
183+
%_topdir <some where you can write>/redhat
180184

181185
Then you should make the appropiate directories:
182186

@@ -197,16 +201,20 @@ This will create a RPM spec file in "../". To build the packages do:
197201

198202
rpm -ba root.spec
199203

204+
If you left the spec file in the source tree, you can build directly
205+
from the tar-ball. You still need to have a proper build area
206+
setup, as outlined above. All you need to do is
207+
208+
rpm -ta root_v<version>.source.tar.gz
209+
200210
Per default the binaries will be build in /tmp/rootrpm, but one may
201211
change that at build time by passing the option --buildroot too rpm.
202212

203213
Please refer to man-page rpm(1) and http://www.rpm.org for more
204-
infomation on RPM.
214+
information on RPM.
205215

206-
Please note, that it is assumed you have OpenGL (Mesa), SHIFT, MySQL,
207-
CERNLIB, and true type fonts installed. If that is not the case,
208-
please see if there are pre-build rpms at http://root.cern.ch, or if
209-
you feel lucky, read build/package/common/README thourougly!
216+
Please note, that all possible packages may not be specified in the
217+
spec file. See also build/package/common/README.
210218

211219
Debian GNU/Linux packages:
212220
--------------------------
@@ -215,11 +223,10 @@ outlined above and cd into the source directory. Then just do
215223

216224
make debian
217225

218-
The packages will be build in "../". Please note, that it is assumed you
219-
have OpenGL (Mesa), SHIFT, MySQL, CERNLIB, and true type fonts
220-
install. If that is not the case, please see if there are pre-build
221-
debs at http://root.cern.ch, or if you feel lucky, read
222-
build/package/common/README thourougly!
226+
The packages will be build in "../".
227+
228+
Please note, that all possible packages may not be specified in the
229+
debian directory file. See also build/package/common/README.
223230

224231
Installation Location
225232
=====================
@@ -392,7 +399,7 @@ The flags consist of two classes:
392399
Compile ROOT thread safe, as well as a thread API library. This
393400
options is strongly recommended. This requires the system library
394401
libpthread (Posix threads). Default is false, except for the
395-
"linuxegcs" architecture.
402+
"linux" architecture.
396403
* ttf
397404
True Type Font support for those OSs with no native TTF
398405
support. This feature requires third-party library libtff, header
@@ -416,6 +423,14 @@ The flags consist of two classes:
416423
library libmysqlclient and header files. Note that there may be
417424
licensing issues regarding linking against libmysqlclient.
418425
Default is true.
426+
* psql
427+
Build a thin PostGreSQL client for ROOT. This requires the
428+
third-party library libpsql and header files.
429+
Default is true.
430+
* sapdb
431+
Build a thin SapDB client for ROOT. This requires the
432+
third-party library libsql and header files.
433+
Default is true.
419434
* shift
420435
Interface to SHIFT managed tape robots. This option requires you
421436
get the libshift.a from CERN. Please note, that this library is
@@ -439,7 +454,7 @@ The flags consist of two classes:
439454
Build daemons rootd and proofd with AFS support. This requires
440455
the third-party AFS libs and objects. Default is false.
441456

442-
2) "--with-<feature dir>=<dir>" flags:
457+
2) --with-<feature dir>=<dir> flags:
443458
If "configure" isn't able to find some third-party library, header,
444459
or other file, corresponding to one of the above features, you can
445460
force it to look for these files in specific directories, using the
@@ -474,7 +489,7 @@ The flags consist of two classes:
474489
Directory containing libttf.{so,a}, needed by feature ttf.
475490
* ttf-fontdir
476491
Directory containing TTF font files, needed by feature ttf.
477-
"configure" is looking for "arial.ttf", which must be present.
492+
"configure" is looking for "arial.ttf".
478493
* opengl-incdir
479494
Directory containing GL/gl.h (note the sub-directory), needed by
480495
feature opengl.
@@ -497,18 +512,27 @@ The flags consist of two classes:
497512
needed by feature cern, for the ZEBRA file converters.
498513
* shift-libdir
499514
Directory containing libshift.a, needed for feature shify.
515+
* srp-incdir
516+
Path to header files for regular SRP library (not utilities)
517+
This is needed for building the daemons rootd and proofd with
518+
SRP support (authentication).
519+
* srp-libdir
520+
Path to regular SRP library (not utilities). This is needed for
521+
building the daemons rootd and proofd with SRP support
522+
(authentication).
500523
* srp
501524
Top directory of the SRP (Secure Remote Passwd). This directory
502525
must contain:
503526
base/libmisc/libmisc.a
504527
base/lib/libshadow.a
528+
base/lib/pwauth.h
505529
lib/libsrp.a
506530
include
507531
And alternatively
508532
lib/libgmp.a
509533
lib/libcrack.a
510-
This is needed for building the daemons rootd and proofd with
511-
SRP support (authentication).
534+
This is needed to build the utility programs for managing ROOT
535+
related SRP access.
512536
* afs
513537
Top directory of the AFS distribution. This directory must
514538
contain:
@@ -539,16 +563,14 @@ hugely increase the appearance of text on the screen.
539563

540564
Posix Thread usage
541565
------------------
542-
543566
To build the library providing thread support you need to have the
544567
library libpthread.{a,so} and header files installed. This is usually
545-
the case for any Un*x OS. For architecture "linuxegcs" thread support
568+
the case for any Un*x OS. For architecture "linux" thread support
546569
will always be build.
547570

548571

549572
True Type Font library and fonts
550573
--------------------------------
551-
552574
On how to get the True Type ttf directory see:
553575

554576
http://root.cern.ch/root/TrueType.html
@@ -566,7 +588,6 @@ get a minimal set of fonts from:
566588

567589
OpenGL library
568590
--------------
569-
570591
On how to get an open source version of OpenGL see:
571592

572593
http://www.mesa3d.org
@@ -582,7 +603,6 @@ in XFree86 version 4 or above.
582603

583604
SHIFT managed tape I/O
584605
----------------------
585-
586606
To build the library providing CERN RFIO (remote I/O) support you need
587607
to get the "libshift.a" library from CERN. You can get pre-build
588608
libraries from
@@ -606,7 +626,6 @@ Apply it with
606626

607627
ZEBRA file conversion tools
608628
---------------------------
609-
610629
To build the HBOOK and Geant3 conversion programs `h2root' and
611630
`g2root' you need the CERNLIB components "libpacklib.{a,so}" and
612631
"libkernlib.{a,so}" from CERN. You can get it from
@@ -616,15 +635,26 @@ To build the HBOOK and Geant3 conversion programs `h2root' and
616635

617636
MySQL client
618637
------------
619-
620638
To build the MySQL interface library you need to install MySQL first. See:
621639

622640
http://www.mysql.com/
623641

642+
PostGreSQL Client
643+
-----------------
644+
To build the PostGreSQL interface you need to install PostGreSQL
645+
first. See
646+
647+
http://www.postgresql.org
648+
649+
SapDB Client
650+
------------
651+
To build the SapDB interface you need to install the SapDB calling
652+
interface first, which can be found in the rpm sapdb-callif-xxxx. See
653+
654+
http://www.sapdb.org
624655

625656
Pythia Event Generators
626657
-----------------------
627-
628658
To build the event generator interfaces for Pythia and Pythia6, you
629659
first have to get the pythia libraries. You can get pre-build
630660
libraries from:
@@ -641,34 +671,32 @@ More information is avaliable from:
641671

642672
Venus Event Generators
643673
----------------------
644-
645674
No information at this time.
646675

647676

648677
Secure Remote Password (SRP) Authentication
649678
-------------------------------------------
650-
651679
To build the strong authentication module used by rootd and proofd,
652680
you first have to install the SRP (Secure Remote Password)
653681
system. See:
654682

655683
http://srp.stanford.edu/
656684

657685
Please note, that the library "libsrp-dev" as distributed by Standford
658-
is not enough.
686+
is not enough to build the two utility program in the srputil
687+
directory of the ROOT source tree.
659688

660689

661690
AFS Authentication
662691
------------------
663-
664692
To build rootd and proofd with support for AFS authentication, you
665693
first have to install AFS client libraries system. There are a few AFS
666694
distributions avaliable.
667695

668696
* OpenAFS
669697
IBMs OpenSource AFS distribution - see
670698

671-
http://oss.software.ibm.com/developerworks/opensource/afs/?dwzone=opensource
699+
http://www.openafs.org
672700

673701
* Transarc AFS
674702
IBMs commercial AFS ditribution - see

base/src/TUUID.cxx

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @(#)root/base:$Name: $:$Id: TUUID.cxx,v 1.5 2001/10/06 13:12:15 rdm Exp $
1+
// @(#)root/base:$Name: $:$Id: TUUID.cxx,v 1.6 2001/10/08 15:05:54 rdm Exp $
22
// Author: Fons Rademakers 30/9/2001
33

44
/*************************************************************************
@@ -116,7 +116,7 @@
116116
#else
117117
#include <unistd.h>
118118
#include <sys/time.h>
119-
#ifdef R__LINUX
119+
#if defined(R__LINUX)
120120
#include <sys/sysinfo.h>
121121
#endif
122122
#endif
@@ -408,15 +408,15 @@ void TUUID::GetRandomInfo(UChar_t seed[16])
408408
GetComputerName(r.hostname, &r.l);
409409
#else
410410
struct randomness {
411-
#ifdef R__LINUX
411+
#if defined(R__LINUX)
412412
struct sysinfo s;
413413
#endif
414414
struct timeval t;
415415
char hostname[257];
416416
};
417417
randomness r;
418418

419-
#ifdef R__LINUX
419+
#if defined(R__LINUX)
420420
sysinfo(&r.s);
421421
#endif
422422
gettimeofday(&r.t, 0);

build/misc/acinclude.m4

-27
This file was deleted.

0 commit comments

Comments
 (0)