Index: trunk/doc/genMakefile.tcl
===================================================================
--- trunk/doc/genMakefile.tcl	(revision 2)
+++ trunk/doc/genMakefile.tcl	(revision 5)
@@ -233,548 +233,17 @@
 # Author: P. Demin - UCL, Louvain-la-Neuve
 #
-# multi-platform configuration is taken from ROOT (root/test/Makefile)
+# multi-platform configuration is taken from ROOT (root/test/Makefile.arch)
 #
 
-ARCH   = $(shell root-config --arch)
-
-CXX    =
-ObjSuf = o
+include $(ROOTSYS)/test/Makefile.arch
+
+ifeq ($(ARCH),macosx64)
+UNDEFOPT = dynamic_lookup
+endif
+
 SrcSuf = cc
-ExeSuf =
-DllSuf = so
-LibSuf = a
-OutPutOpt     = -o # keep whitespace after "-o"
-
-ROOTCFLAGS   := $(shell root-config --cflags)
-ROOTLIBS     := $(shell root-config --libs)
-ROOTGLIBS    := $(shell root-config --glibs)
-
-ifeq ($(ARCH),win32)
-PLATFORM      = win32
-endif
-ifeq ($(ARCH),win32gdk)
-PLATFORM      = win32
-endif
-
-ifeq ($(ARCH),hpux)
-# HP-UX with CC
-CXX    = CC
-CXXFLAGS      = -O +Z
-LD     = CC
-LDFLAGS= -O +a1 -z
-SOFLAGS= -b
-DllSuf = sl
-endif
-
-ifeq ($(ARCH),hpuxacc)
-# HP-UX 10.x with aCC
-CXX    = aCC
-CXXFLAGS      = -O +Z
-LD     = aCC
-LDFLAGS= -O -z
-SOFLAGS= -b
-endif
-
-ifeq ($(ARCH),hpuxia64acc)
-# HP-UX 11i 1.5 (IA-64) with aCC
-CXX    = aCC
-CXXFLAGS      = +DD64 -O +Z
-LD     = aCC
-LDFLAGS= +DD64 -O -z
-SOFLAGS= -b
-endif
-
-ifeq ($(ARCH),hpuxegcs)
-# HP-UX 10.x with g++
-CXXFLAGS      = -O -fPIC
-CXX    = g++
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -fPIC -shared
-endif
-
-
-ifeq ($(ARCH),hurddeb)
-# GNU/Hurd
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),aix)
-# IBM AIX xlC 4.x
-CXX    = xlC
-CXXFLAGS      = -O
-LD     = xlC
-LDFLAGS= -O
-SOFLAGS=
-ROOTLIBS     := $(shell root-config --nonew --libs)
-ROOTGLIBS    := $(shell root-config --nonew --glibs)
-endif
-
-ifeq ($(ARCH),aix5)
-# IBM AIX xlC 5.x
-CXX    = xlC
-CXXFLAGS      = -O
-LD     = xlC
-LDFLAGS= -O
-SOFLAGS=
-ROOTLIBS     := $(shell root-config --nonew --libs)
-ROOTGLIBS    := $(shell root-config --nonew --glibs)
-endif
-
-ifeq ($(ARCH),aixegcs)
-# IBM AIX with GCC
-CXX    = g++
-CXXFLAGS      = -O
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),solaris)
-# Solaris CC
-CXX    = /opt/SUNWspro/bin/CC
-CXXFLAGS      = -O -KPIC
-LD     = /opt/SUNWspro/bin/CC
-LDFLAGS= -O
-SOFLAGS= -G
-endif
-
-ifeq ($(ARCH),solarisCC5)
-# Solaris CC 5.0
-CXX    = CC
-CXXFLAGS      = -O -KPIC
-LD     = CC
-LDFLAGS= -O
-SOFLAGS= -G
-endif
-
-ifeq ($(ARCH),solarisegcs)
-# Solaris egcs
-CXX    = g++
-CXXFLAGS      = -O -fPIC
-LD     = CC
-LDFLAGS= -O
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),solarisgcc)
-# Solaris gcc
-CXX    = g++
-CXXFLAGS      = -O -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),solariskcc)
-# Solaris kcc
-CXX    = KCC --one_instantiation_per_object
-CXXFLAGS      = -O4 -KPIC
-LD     = KCC
-LDFLAGS= -O4
-SOFLAGS=
-endif
-
-ifeq ($(ARCH),solarisx86)
-# Solaris CC on Intel
-CXX    = CC
-CXXFLAGS      = -O -KPIC
-LD     = CC
-LDFLAGS= -O
-SOFLAGS= -G
-endif
-
-ifeq ($(ARCH),sgicc)
-# SGI
-CXX    = CC -n32  -I/usr/include/CC.sgi
-CXXFLAGS      = -O
-LD     = CC -n32  -I/usr/include/CC.sgi
-LDFLAGS= -O
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),sgiegcs)
-# SGI 6.x with EGCS
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),sgin32egcs)
-# SGI 6.x with EGCS for n32 ABI
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O -L/usr/lib32 -Wl,-woff,134
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),sgigcc)
-# SGI with GCC
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv
-SOFLAGS= -shared
-endif
-
-ifeq ($(ARCH),sgikcc)
-# SGI with KCC
-CXX    = KCC -n32 --one_instantiation_per_object
-CXXFLAGS      = -O
-LD     = KCC -n32
-LDFLAGS= -O
-SOFLAGS=
-endif
-
-ifeq ($(ARCH),alphagcc)
-# Alpha/OSF with g++
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -Wl,-expect_unresolved,* -shared
-endif
-
-ifeq ($(ARCH),alphaegcs)
-# Alpha/OSF with egcs
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -Wl,-expect_unresolved,* -shared
-endif
-
-ifeq ($(ARCH),alphakcc)
-# Alpha/OSF with kai compiler (not yet valid)
-CXX    = KCC --one_instantiation_per_object
-CXXFLAGS      = -O -fPIC
-LD     = KCC
-LDFLAGS= -O
-SOFLAGS= -Wl,-expect_unresolved,* -shared
-endif
-
-ifeq ($(ARCH),alphacxx6)
-# Alpha/OSF with cxx6
-CXX    = cxx
-CXXFLAGS      = -O
-LD     = cxx
-LDFLAGS= -O
-SOFLAGS= -shared -nocxxstd -Wl,-expect_unresolved,*,-msym
-endif
-
-ifeq ($(ARCH),alphacxx)
-# Alpha/OSF with cxx5
-CXX    = cxx
-CXXFLAGS      = -O
-LD     = cxx
-LDFLAGS= -O
-SOFLAGS= -Wl,-expect_unresolved,* -call_shared
-endif
-
-ifeq ($(ARCH),linuxrh51)
-# Linux with gcc 2.7.2.x
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxrh42)
-# Linux with gcc 2.7.2.x (RedHat 4.2)
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxdeb)
-# Linux with gcc 2.7.2.x
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxdeb2)
-# Linux with gcc 2.7.2.x
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxdeb2ppc)
-# Debian/Linux on the PowerPC
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-
-ifeq ($(ARCH),linuxsuse6)
-# Linux with gcc 2.7.2.x
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linux)
-# Linux with egcs, gcc 2.9x, gcc 3.x (>= RedHat 5.2)
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxkcc)
-# Linux with the KAI compiler
-CXX    = KCC --one_instantiation_per_object
-CXXFLAGS      = -fPIC +K0
-LD     = KCC
-LDFLAGS= -O $(shell root-config --cflags)
-SOFLAGS=
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxicc)
-# Linux with Intel icc compiler
-CXX    = icc
-CXXFLAGS      = -O
-LD     = icc
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxppcegcs)
-# MkLinux with egcs/glibc
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxia64gcc)
-# Itanium Linux with gcc 2.9x
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxia64sgi)
-# Itanium Linux with sgiCC
-CXX    = sgiCC
-CXXFLAGS      = -O -Wall -fPIC
-LD     = gsgiCC
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxia64ecc)
-# Itanium Linux with Intel ecc
-CXX    = ecc
-CXXFLAGS      = -O
-LD     = ecc
-LDFLAGS= -O -i_dynamic
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxx8664gcc)
-# AMD Opteron (64 bit mode) Linux with gcc 3.x
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxalphaegcs)
-# Alpha Linux with egcs
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),linuxarm)
-# ARM Linux with egcs
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),mklinux)
-# MkLinux with libc5
-CXX    = g++
-CXXFLAGS      = -O -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),freebsd)
-# FreeBSD with libc5
-CXX    = g++
-CXXFLAGS      = -O -pipe -W -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared -Wl,-x
-AR = ar
-ARFLAGS = cru -crv
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),freebsd4)
-# FreeBSD with glibc
-CXX    = g++
-CXXFLAGS      = -O -pipe -W -Wall -fPIC
-LD     = g++
-LDFLAGS= -O
-SOFLAGS= -shared -Wl,-x
-AR = ar
-ARFLAGS = cru -crv
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),macosx)
-# MacOS X with cc (GNU cc 2.95.2)
-CXX    = c++
-CXXFLAGS      = -O -pipe -Wall
-LD     = c++
-LDFLAGS= -O -Xlinker -bind_at_load -flat_namespace
-# The SOFLAGS will be used to create the .dylib; the .so will
-# be created separately
-DllSuf = dylib
-SOFLAGS= -dynamiclib -flat_namespace -undefined suppress
-AR = ar
-ARFLAGS = cru -crv
-RANLIB = ranlib
-endif
-
-ifeq ($(ARCH),hiux)
-# Hitachi HIUX
-CXX    = g++
-CXXFLAGS      = -O2 -fPIC
-LD     = g++
-LDFLAGS= -Wl,+s
-SOFLAGS= -Wl,-b,-E -nostdlib -nostartfiles
-DllSuf = sl
-endif
-
-ifeq ($(PLATFORM),win32)
-# Windows with the VC++ compiler
-ObjSuf = obj
-SrcSuf = cxx
-ExeSuf = .exe
-DllSuf = dll
-OutPutOpt     = -out:
-CXX    = cl
-CXXOPT = -O2
-#CXXOPT = -Z7
-CXXFLAGS      = $(CXXOPT) -G5 -GR -GX -MD -DWIN32 -D_WINDOWS -nologo \
-  -DVISUAL_CPLUSPLUS -D_X86_=1 -D_DLL
-LD     = link
-LDOPT  = -opt:ref
-#LDOPT  = -debug
-LDFLAGS= $(LDOPT) -pdb:none -nologo
-SOFLAGS= -DLL
-
-ROOTLIBS     := $(shell root-config --nonew --libs)
-ROOTGLIBS    := $(shell root-config --nonew --glibs)
-EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
-endif
-
-ifeq ($(ARCH),win32gcc)
-# Windows with gcc
-DllSuf = dll
-ExeSuf = .exe
-CXX    = g++
-CXXFLAGS      = -O -Wall -Woverloaded-virtual -I/usr/X11R6/include
-LD     = g++
-LDFLAGS= -O -Wl,--enable-auto-import
-SOFLAGS= -shared -D_DLL -Wl,--export-all-symbols
-EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
-AR = ar
-ARFLAGS = cru
-RANLIB = ranlib
-endif
-
-ifeq ($(CXX),)
-$(error $(ARCH) invalid architecture)
-endif
 
 CXXFLAGS += $(ROOTCFLAGS) -DDROP_CGAL -I. -Itcl -Imcfio -Istdhep -ICDFCones -ICDFCones/CDFcode
-LIBS = $(ROOTLIBS) -lEG $(SYSLIBS)
+LIBS = $(ROOTLIBS) $(SYSLIBS)
 GLIBS = $(ROOTGLIBS) $(SYSLIBS)
 	
@@ -822,26 +291,25 @@
 
 $(SHARED): $(DICT_OBJ) $(SOURCE_OBJ) $(TCL_OBJ)
-		@mkdir -p $(@D)
-		@echo ">> Building $@"
+	@mkdir -p $(@D)
+	@echo ">> Building $@"
 ifeq ($(ARCH),aix)
-		@/usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt)$@ $(LIBS) -p 0 $^
+	@/usr/ibmcxx/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
 else
 ifeq ($(ARCH),aix5)
-		@/usr/vacpp/bin/makeC++SharedLib $(OutPutOpt)$@ $(LIBS) -p 0 $^
+	@/usr/vacpp/bin/makeC++SharedLib $(OutPutOpt) $@ $(LIBS) -p 0 $^
 else
-ifeq ($(ARCH),macosx)
+ifeq ($(PLATFORM),macosx)
 # We need to make both the .dylib and the .so
-		@$(LD) $(SOFLAGS) $^ $(OutPutOpt)$@
-		@$(LD) -bundle -undefined suppress $(LDFLAGS) $^ $(LIBS) \
-		   $(OutPutOpt)$(subst .$(DllSuf),.so,$@)
+	@$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
+	@$(LD) -bundle -undefined $(UNDEFOPT) $(LDFLAGS) $^ $(LIBS) $(OutPutOpt) $(subst .$(DllSuf),.so,$@)
 else
 ifeq ($(PLATFORM),win32)
-		@bindexplib $* $^ > $*.def
-		@lib -nologo -MACHINE:IX86 $^ -def:$*.def \
-		   $(OutPutOpt)$(EVENTLIB)
-		@$(LD) $(SOFLAGS) $(LDFLAGS) $^ $*.exp $(LIBS) \
-		   $(OutPutOpt)$@
+	@bindexplib $* $^ > $*.def
+	@lib -nologo -MACHINE:IX86 $^ -def:$*.def $(OutPutOpt)$(EVENTLIB)
+	@$(LD) $(SOFLAGS) $(LDFLAGS) $^ $*.exp $(LIBS) $(OutPutOpt)$@
+	@$(MT_DLL)
 else
-		@$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(EXPLLINKLIBS)
+	@$(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(EXPLLINKLIBS)
+	@$(MT_DLL)
 endif
 endif
@@ -850,8 +318,8 @@
 
 clean:
-		@rm -f $(PGS_DICT_OBJ) $(PGS_SOURCE_OBJ) $(PGS_OBJ) $(DICT_OBJ) $(SOURCE_OBJ) $(TCL_OBJ) $(STDHEP_OBJ) core
+	@rm -f $(PGS_DICT_OBJ) $(PGS_SOURCE_OBJ) $(PGS_OBJ) $(DICT_OBJ) $(SOURCE_OBJ) $(TCL_OBJ) $(STDHEP_OBJ) core
 
 distclean: clean
-		@rm -f $(SHARED) $(STATIC) $(EXECUTABLE) $(STDHEP_EXECUTABLE)
+	@rm -f $(SHARED) $(STATIC) $(EXECUTABLE) $(STDHEP_EXECUTABLE)
 
 ###
