Inconsist in Makefile for Geant4 and ROOT functionality.

From: Rafal Lalik <r.lalik_at_gsi.de>
Date: Sun, 27 Jul 2008 16:41:50 +0200


Dear All,

I am little bit confused about Makefile for Geant4-VMC (and also other Geants as i remember). Lets quote something:

ifeq ($(ROOTSYS),)
ROOT_INCDIR = $(shell root-config --incdir)
ROOT_BINDIR = $(shell root-config --prefix)/bin
ROOT_ETCDIR = $(shell root-config --prefix)/etc/vmc
else
ROOT_INCDIR = $(ROOTSYS)/include
ROOT_BINDIR = $(ROOTSYS)/bin
ROOT_ETCDIR = $(ROOTSYS)/etc/vmc

endif

include $(ROOT_ETCDIR)/Makefile.$(PLATFORM)

This part show us how ROOT_*DIR are prepared.

Lets look also to ./configure script for root:

./configure --help
`configure' configures ROOT 5.18/00d to adapt to many kind of systems.

Usage: ./configure [architecture] [flag=value]

The architecture to build for will be guessed from the output of 'uname'. If, however, that fails, or you don't want the 'native' compiler on the host platform, you can specify the architecture to use by passing as the FIRST argument one of the architecures given at the end of this message.

     FLAG            DESCRIPTION               DEFAULT

--aclocaldir Autoconf macro install dir(<prefix>/share/aclocal)
--bindir Binary installation dir (<prefix>/bin)
--build Build configuration [debug, exceptions, ...],
overrides the ROOTBUILD shell variable
--cintincdir CINT interpeted headers (<libdir>/cint)
--datadir Data installation dir (<prefix>/share/root)
--docdir Documentation (<prefix>/share/doc/root)
--elispdir Where to put Emacs Lisp
(<prefix>/share/emacs/site-lisp)
--etcdir Config installation dir (/etc/root)
--fontdir Font installation dir (<datadir>/fonts)
--iconpath Icon installation dir (<datadir>/icons)
--incdir Header installation dir (<prefix>/include/root)
--libdir Library installation dir (<prefix>/lib/root)
--macrodir Macro installation dir (<datadir>/macros)
--mandir Manpages installation dir (<prefix>/share/man/man1)
--no-create Do not create output files, dry run
--prefix Installation prefix (/usr/local)
--srcdir Sources installation dir (<datadir>/src)
--testdir Tests (<docdir>/test)
--tutdir Tutorials (<docdir>/tutorial)

If any of the flags --cintincdir, --datadir, --docdir, --etcdir, --iconpath --incdir, --libdir, --macrodir, --mandir, or --prefix is given, ROOT will be compiled with static directory names, and you should not set the ROOTSYS environment variable.

This part: --etcdir Config installation dir (/etc/root) shows that default --etcdir is without prefix and variable --prefix will have
affect to all variables excluding etcdir.

But your Makefile for Geant4, for case where $ROOTSYS is not set, include this prefix:
ROOT_ETCDIR = $(shell root-config --prefix)/etc/vmc Whatmore, even if --prefix=/ for ROOT, then this path is wrong: /etc/vmc instead of /etc/root/vmc

This is a little bit confusing for me, and i see two solutions for this: 1. Small patch for Makefile:
--- CUT HERE ---
--- Makefile.old 2008-07-24 00:22:00.000000000 +0200 +++ Makefile 2008-07-24 00:22:19.000000000 +0200 @@ -27,7 +27,7 @@

   ifeq ($(ROOTSYS),)
   ROOT_INCDIR = $(shell root-config --incdir)    ROOT_BINDIR = $(shell root-config --prefix)/bin -ROOT_ETCDIR = $(shell root-config --prefix)/etc/vmc +ROOT_ETCDIR = /etc/root/vmc

   else
   ROOT_INCDIR = $(ROOTSYS)/include
   ROOT_BINDIR = $(ROOTSYS)/bin
--- END of CUT HERE ---
But it is not good solutions still. What if I use --etcdir variable for ROOT? 2. Ask guys from ROOT to add options --etcdir for root-config to get this value. Maybe I should forward this e-mail to them? I have prepeared patches for root-config which include this features.

Best regards,

Rafal Lalik

PS. https://savannah.cern.ch/bugs/?39259 Lets look what ROOT developers say about this.

-- 
Rafal Lalik
GSI Darmstadt
E-mail: R.Lalik_at_gsi.de
Phone: +49-6159-71 1321
Skype: r.lalik
Department: Detektorlabor
Location: C12 1.003


Gesellschaft für Schwerionenforschung mbH
Planckstraße 1
D-64291 Darmstadt
www.gsi.de

Limited Liability Company
Registered Office: Darmstadt, Commercial Register: Darmstadt, HRB 1528,

Managing Directors: Professor Dr. Horst Stöcker, Dr. Alexander Kurz,

Supervisory Board Chair: Dr. Beatrix Vierkorn-Rudolph,
Deputy Chair: Ministerialdirigent Dr. Rolf Bernhardt
Received on Sun Jul 27 2008 - 16:42:02 CEST

This archive was generated by hypermail 2.2.0 : Mon Jul 28 2008 - 17:25:01 CEST