diff --git a/config/Makefile.aix b/config/Makefile.aix
index 7bd1e6a61731b7aac85413555b94ed7f08151884..f941377a9e572396e1a0fa805f8701ea929e0cca 100644
--- a/config/Makefile.aix
+++ b/config/Makefile.aix
@@ -33,7 +33,7 @@ SOEXT         = a
 
 # System libraries:
 SYSLIBS       = -lm -lld
-XLIBS         = $(XPMLIB) -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11
 CILIBS        = -lm -lld
 
 # Fortran:
@@ -66,13 +66,13 @@ X3DLIBEXTRA         = -lGraf3d -lGui -lX11
 EGLIBDEP            = $(G3DLIB) $(GRAFLIB)
 EGLIBEXTRA          = -lGraf3d -lGraf
 PYTHIALIBDEP        = $(EGLIB) $(GRAFLIB)
-PYTHIALIBEXTRA      = -lEG  -lGraf $(PYTHIA)
+PYTHIALIBEXTRA      = -lEG -lGraf $(FPYTHIA)
 PYTHIA6LIBDEP       = $(EGLIB) $(GRAFLIB)
-PYTHIA6LIBEXTRA     = -lEG -lGraf $(PYTHIA6)
+PYTHIA6LIBEXTRA     = -lEG -lGraf $(FPYTHIA6)
 VENUSLIBDEP         = $(EGLIB)
 VENUSLIBEXTRA       = -lEG
 X11TTFLIBDEP        = $(X11LIB)
 X11TTFLIBEXTRA      = -lGX11 -L$(TTFLIBDIR) -lttf -lX11
 GLLIBDEP            = $(GPADLIB) $(G3DLIB) $(GUILIB)
-GLLIBEXTRA          = -lGpad -lGraf3d -lGui $(OPENGLULIB) \
+GLLIBEXTRA          = -lGpad -lGraf3d -lGui $(OPENGLLIBDIR) $(OPENGLULIB) \
                       $(OPENGLLIB) -lX11 -lXext -lXmu -lXi
diff --git a/config/Makefile.aixegcs b/config/Makefile.aixegcs
index 6977c31e14b7095feb6417b61972afeec6b120b1..fdc41cf583b9b0a24290f2acfe0a2014af49e122 100644
--- a/config/Makefile.aixegcs
+++ b/config/Makefile.aixegcs
@@ -31,7 +31,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -lld -lg++
-XLIBS         = $(XPMLIB) -lX11 -L/share/lib
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11 -L/share/lib
 CILIBS        = -lm -L../lib -lCint -lbsd -lcurses -lld
 
 # Fortran:
diff --git a/config/Makefile.alphacxx6 b/config/Makefile.alphacxx6
index 856dc502b6ee35c940cc7813ae5c9e6d3d6e0c70..7a1ceb5d341f63ee454303b6d21f3ed78050c809 100644
--- a/config/Makefile.alphacxx6
+++ b/config/Makefile.alphacxx6
@@ -30,7 +30,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm
-XLIBS         = $(XPMLIB) -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11
 CILIBS        = -lm -ltermcap
 
 # Fortran:
@@ -38,4 +38,5 @@ F77LIBS       = /usr/shlib/libFutil.so /usr/shlib/libfor.so /usr/shlib/libots.so
 
 # Extras
 CORELIBDEP    = $(G3DLIB) $(GRAFLIB) $(HISTLIB)
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -lX11 -lXext -lXmu -lXi -lm
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -lX11 -lXext -lXmu -lXi -lm
diff --git a/config/Makefile.alphaegcs b/config/Makefile.alphaegcs
index 1cccfbd689080755385808e3cb17452e5d7f331b..f473d1e936ab6f378ddf5db74c638db1cea8ae66 100644
--- a/config/Makefile.alphaegcs
+++ b/config/Makefile.alphaegcs
@@ -29,7 +29,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ltermcap
-XLIBS         = $(XPMLIB) -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11
 CILIBS        = -lm -ltermcap
 
 # Fortran:
@@ -38,4 +38,5 @@ F77           = g77
 F77LD         = g77
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -lX11 -lXext -lXmu -lXi -lm
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -lX11 -lXext -lXmu -lXi -lm
diff --git a/config/Makefile.alphakcc b/config/Makefile.alphakcc
index 89603a740b3487c86b3046e929a13e0324263e18..a9ec9db239bceb40f0a90a86b1be73045d866693 100644
--- a/config/Makefile.alphakcc
+++ b/config/Makefile.alphakcc
@@ -20,8 +20,7 @@ else
 EXCEPTION     = --no_exceptions
 endif
 
-ifeq (thread,$(findstring thread,$(ROOTBUILD)))
-THREAD        += "USE"
+ifneq ($(OSTHREADLIB),)
 CXXOPT        += --thread_safe -g3
 OPT           += -g
 endif
@@ -60,7 +59,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm
-XLIBS         = $(XPMLIB) -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11
 CILIBS        = -lm -ltermcap -lbsd
 CRYPTLIBS     = -lcrypt
 
@@ -70,4 +69,5 @@ F77FLAGS      = -O0 -recursive -nofor_main
 F77LIBS       = /usr/lib/libfor.a -lUfor -lFutil
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -lX11 -lXext -lXmu -lXi -lm
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -lX11 -lXext -lXmu -lXi -lm
diff --git a/config/Makefile.freebsd b/config/Makefile.freebsd
index a2a688cb0ae6e599b0ccf8b561bed9c77061ec7f..cd02d637844bdaeeb6c89c2522a44179cc5f947f 100644
--- a/config/Makefile.freebsd
+++ b/config/Makefile.freebsd
@@ -28,7 +28,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lg++ -lm
-XLIBS         = -L/usr/X11R6/lib -lXpm -lX11 -lg++
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11 -lg++
 CILIBS        = -lm -ltermcap -lg++
 
 
diff --git a/config/Makefile.freebsd4 b/config/Makefile.freebsd4
index 81b1cfd507849620bb2700f84ac28a817183caa0..e893d790aaa030d99d6c4b256061150bd76382f5 100644
--- a/config/Makefile.freebsd4
+++ b/config/Makefile.freebsd4
@@ -28,7 +28,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lstdc++ -lm
-XLIBS         = -L/usr/X11R6/lib -lXpm -lX11 -lstdc++
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11 -lstdc++
 CILIBS        = -lm -ltermcap -lstdc++
 CRYPTLIBS     = -lcrypt
 
diff --git a/config/Makefile.hpux b/config/Makefile.hpux
index a68a1559cb23e964ae1306ac83041d107719dc2e..e92c8344c3cd0ed594a64e027073708139016bd0 100644
--- a/config/Makefile.hpux
+++ b/config/Makefile.hpux
@@ -15,10 +15,12 @@ CXX           = CC
 CC            = cc
 CXXFLAGS      = +a1 -z +Z -I/usr/include/X11R5 $(EXTRA_CXXFLAGS)
 CFLAGS        = -Ae -z +Z -I/usr/include/X11R5 $(EXTRA_CFLAGS)
-CINTCXXFLAGS  = +a1 -z +Z -I/opt/CC/include -DG__REGEXP -DG__UNIX -DG__HPUXCPPDLL \
-                -DG__SHAREDLIB -D_POSIX2_SOURCE -DG__ROOT -DG__REDIRECTIO $(EXTRA_CXXFLAGS)
-CINTCFLAGS    = -Ae -z +Z -I/opt/CC/include -DG__REGEXP -DG__UNIX -DG__HPUXCPPDLL \
-                -DG__SHAREDLIB -D_POSIX2_SOURCE -DG__ROOT -DG__REDIRECTIO $(EXTRA_CFLAGS)
+CINTCXXFLAGS  = +a1 -z +Z -I/opt/CC/include -DG__REGEXP -DG__UNIX \
+                -DG__HPUXCPPDLL -DG__SHAREDLIB -D_POSIX2_SOURCE -DG__ROOT \
+                -DG__REDIRECTIO $(EXTRA_CXXFLAGS)
+CINTCFLAGS    = -Ae -z +Z -I/opt/CC/include -DG__REGEXP -DG__UNIX \
+                -DG__HPUXCPPDLL -DG__SHAREDLIB -D_POSIX2_SOURCE -DG__ROOT \
+                -DG__REDIRECTIO $(EXTRA_CFLAGS)
 
 # Linker:
 LD            = CC
@@ -28,7 +30,7 @@ SOEXT         = sl
 
 # System libraries:
 SYSLIBS       = -lm -ldld
-XLIBS         = $(XPMLIB) -L/usr/lib/X11R5 -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/lib/X11R5 -lX11
 CILIBS        = -lm -Wl,-E -ldld -lcurses
 CRYPTLIBS     =
 
@@ -40,4 +42,5 @@ F77LDFLAGS    = -K +ppu $(OPT)
 F77LIBS       =
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/lib -lXext -lXi -lX11
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/lib -lXext -lXi -lX11
diff --git a/config/Makefile.hpuxacc b/config/Makefile.hpuxacc
index 9f1b0af86343e648e76d925f18e3184a8a6e3ebd..15cdefd68fa2a35050313f08cdef4c0d3c17e63a 100644
--- a/config/Makefile.hpuxacc
+++ b/config/Makefile.hpuxacc
@@ -30,7 +30,7 @@ SOEXT         = sl
 
 # System libraries:
 SYSLIBS       = -lm -ldld
-XLIBS         = $(XPMLIB) -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11
 CILIBS        = -lm -Wl,-E -ldld -lcurses
 
 # Fortran:
@@ -41,5 +41,5 @@ F77LDFLAGS    = -K +ppu $(OPT)
 F77LIBS       =
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) \
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
                 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11
diff --git a/config/Makefile.hpuxegcs b/config/Makefile.hpuxegcs
index df2ec8f0677acc4dc1e3b4b83545bae772c531c2..21c79fd840f47677e6a68438787cc26be9e50784 100644
--- a/config/Makefile.hpuxegcs
+++ b/config/Makefile.hpuxegcs
@@ -28,7 +28,7 @@ SOEXT         = sl
 
 # System libraries:
 SYSLIBS       = -lm -ldld
-XLIBS         = $(XPMLIB) -L/usr/lib/X11R5 -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/lib/X11R5 -lX11
 CILIBS        = -L/usr/lib -lm -ldld
 
 # Fortran:
@@ -38,4 +38,6 @@ F77FLAGS      = -K +ppu
 F77LDFLAGS    = -K +ppu $(OPT)
 F77LIBS       = -lf
 
-
+# Extras
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11
diff --git a/config/Makefile.in b/config/Makefile.in
index 7eeab155890f29c39caee883603f51f63ebfe399..5fe2fa9826f2e3804b61ac13c667b03558353344 100644
--- a/config/Makefile.in
+++ b/config/Makefile.in
@@ -1,17 +1,20 @@
 # Makefile definitions included by the top Makefile
 
 ARCH           := @architecture@
+@rootbuild@
 USECONFIG      := @useconfig@
 
-EXTRA_CFLAGS   := -Iinclude @cflags
-EXTRA_CXXFLAGS := -Iinclude @cflags
+EXTRA_CFLAGS   := -Iinclude @cflags@
+EXTRA_CXXFLAGS := -Iinclude @cflags@
 EXTRA_LDFLAGS  := @ldflags@
 
 BINDIR         := @bindir@
 LIBDIR         := @libdir@
 INCDIR         := @incdir@
 ETCDIR         := @etcdir@
+MANDIR         := @mandir@
 DATADIR        := @datadir@
+PROOFDATADIR   := @proofdir@
 MACRODIR       := @macrodir@
 SRCDIR         := @srcdir@
 ICONPATH       := @iconpath@
@@ -20,28 +23,45 @@ DOCDIR         := @docdir@
 TESTDIR        := @testdir@
 TUTDIR         := @tutdir@
 
+XPMLIBDIR      := @xpmlibdir@
 XPMLIB         := @xpmlib@
 
+OSTHREADLIBDIR := @threadlibdir@
+OSTHREADLIB    := @threadlib@
+
 TTFLIBDIR      := @ttflibdir@
 TTFFONTDIR     := @ttffontdir@
 TTFINCDIR      := @ttfincdir@
+TTFLIB         := @ttflib@
 
+OPENGLLIBDIR   := @opengllibdir@
 OPENGLULIB     := @openglulib@
 OPENGLLIB      := @opengllib@
 OPENGLINCDIR   := @openglincdir@
 
-MYSQLINCDIR    := @mysqlincdir@
+CERNLIBDIR     := @cernlibdir@
+CERNLIBS       := @cernlibs@
+
 MYSQLLIBDIR    := @mysqllibdir@
+MYSQLCLILIB    := @mysqllib@
+MYSQLINCDIR    := @mysqlincdir@
+
+SHIFTLIBDIR    := @shiftlibdir@
+SHIFTLIB       := @shiftlib@
+
+FPYTHIALIBDIR  := @pythialibdir@
+FPYTHIALIB     := @pythialib@
+
+FPYTHIA6LIBDIR := @pythia6libdir@
+FPYTHIA6LIB    := @pythia6lib@
+
+FVENUSLIBDIR   := @venuslibdir@
+FVENUSLIB      := @venuslib@
 
-CERNLIBDIR     := @cernlibdir@
-THREAD         := @thread@
-RFIO           := @rfio@
 SRPDIR         := @srpdir@
 AFSDIR         := @afsdir@
 
-PYTHIA         := @pythialib@
-PYTHIA6        := @pythia6lib@
-VENUS          := @venuslib@
+STAR           := @enable_star@
 
 INSTALL        := cp -dpR
 INSTALLDATA    := cp -dpR
diff --git a/config/Makefile.linux b/config/Makefile.linux
index e89d7bd862dffd28d7553aabc0355126ab9aed72..48ae44a241b08530e263606f5644b85578061ee3 100644
--- a/config/Makefile.linux
+++ b/config/Makefile.linux
@@ -28,7 +28,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lg++ -lm -ldl -rdynamic
-XLIBS         = ../lib/libXpm.a -L/usr/X11R6/lib -lX11 -lg++
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11 -lg++
 CILIBS        = -lm -ltermcap -lbsd -ldl -lg++ -rdynamic
 CRYPTLIBS     =
 
@@ -38,4 +38,5 @@ F77FLAGS      = $(OPT) -Nx800 -NC200
 F77LIBS       =
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxalphaegcs b/config/Makefile.linuxalphaegcs
index 47acadb91ab17d3217e5ce791ca1fe12748595ba..effae77ac6af2c33f9abc7b702cf161b003d33b1 100644
--- a/config/Makefile.linuxalphaegcs
+++ b/config/Makefile.linuxalphaegcs
@@ -29,11 +29,10 @@ SOFLAGS       = -shared -Wl,-soname,
 SOEXT         = so
 
 # System libraries:
-SYSLIBS       = -lm -ldl $(THREAD) -rdynamic
-XLIBS         = -L/usr/X11R6/lib -lXpm -lX11
+SYSLIBS       = -lm -ldl $(OSTHREADLIBDIR) $(OSTHREADLIB) -rdynamic
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ldl -rdynamic
 CRYPTLIBS     = -lcrypt
-THREAD        = -lpthread
 
 # Fortran:
 F77           = g77
@@ -41,4 +40,5 @@ F77FLAGS      =
 F77LIBS       = -lg2c -lnsl
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxdeb b/config/Makefile.linuxdeb
index 4bcfb61cbab50d5f72bc7231a50b58686de2a883..874185c054ba9c78604b40e24e7c40ea0401a037 100644
--- a/config/Makefile.linuxdeb
+++ b/config/Makefile.linuxdeb
@@ -28,11 +28,12 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -rdynamic
-XLIBS         = -lXpm -L/usr/X11R6/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -lncurses -ldl -rdynamic
 
 # Fortran:
 
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxdeb2 b/config/Makefile.linuxdeb2
index 0390e35ec5248eca668f5371393d71a18c79de1d..f3ddd25bcee2e15443742c29f8d1c1cdbdb47a30 100644
--- a/config/Makefile.linuxdeb2
+++ b/config/Makefile.linuxdeb2
@@ -33,7 +33,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lnsl -lm -ldl -rdynamic
-XLIBS         = -L/usr/X11R6/lib -lX11 -lXpm
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ldl -rdynamic
 CRYPTLIBS     = -lcrypt
 
@@ -43,4 +43,5 @@ F77FLAGS      = $(OPT)
 F77LIBS       = -lg2c
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxdeb2ppc b/config/Makefile.linuxdeb2ppc
index 970acd35652e4f93fc82dfaa129105f09f610b70..b98d71fed187553e4c59f7ea7af6025a8745ec1b 100644
--- a/config/Makefile.linuxdeb2ppc
+++ b/config/Makefile.linuxdeb2ppc
@@ -33,7 +33,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lnsl -lm -ldl -rdynamic
-XLIBS         = -L/usr/X11R6/lib -lX11 -lXpm
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ldl -rdynamic
 CRYPTLIBS     = -lcrypt
 
@@ -43,4 +43,5 @@ F77FLAGS      = $(OPT)
 F77LIBS       = -lg2c
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxegcs b/config/Makefile.linuxegcs
index cf0d63740913549efdc17f8d1ab29f637357ad5f..276c8bf487cf4b6339e6b4df58995e5ae0c1d76f 100644
--- a/config/Makefile.linuxegcs
+++ b/config/Makefile.linuxegcs
@@ -29,11 +29,10 @@ SOFLAGS       = -shared -Wl,-soname,
 SOEXT         = so
 
 # System libraries:
-SYSLIBS       = -lm -ldl $(THREAD) -rdynamic
-XLIBS         = -L/usr/X11R6/lib -lXpm -lX11
+SYSLIBS       = -lm -ldl $(OSTHREADLIBDIR) $(OSTHREADLIB) -rdynamic
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ldl -rdynamic
 CRYPTLIBS     = -lcrypt
-THREAD        = -lpthread
 
 # Fortran:
 F77           = g77
@@ -41,4 +40,5 @@ F77FLAGS      =
 F77LIBS       = -lg2c -lnsl
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxia64gcc b/config/Makefile.linuxia64gcc
index d0e4cbe451915c5c2692b62def4dcf1629d0518a..02f1248ab282f2bc56f33b3915e64fd067e2d437 100644
--- a/config/Makefile.linuxia64gcc
+++ b/config/Makefile.linuxia64gcc
@@ -29,11 +29,10 @@ SOFLAGS       = -shared -Wl,-soname,
 SOEXT         = so
 
 # System libraries:
-SYSLIBS       = -lm -ldl $(THREAD) -rdynamic
-XLIBS         = -L/usr/X11R6/lib -lXpm -lX11
+SYSLIBS       = -lm -ldl $(OSTHREADLIBDIR) $(OSTHREADLIB) -rdynamic
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ldl -rdynamic
 CRYPTLIBS     = -lcrypt
-THREAD        = #-lpthread
 
 # Fortran:
 F77           = g77
@@ -41,4 +40,5 @@ F77FLAGS      =
 F77LIBS       = -lg2c -lnsl
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxia64sgi b/config/Makefile.linuxia64sgi
index 0ca50be48920e5c8d9e7bffee349e3c649748773..0a5c725141dc802b618bd4f02e7c592ffba9fc43 100644
--- a/config/Makefile.linuxia64sgi
+++ b/config/Makefile.linuxia64sgi
@@ -29,11 +29,10 @@ SOFLAGS       = -shared -Wl,-soname,
 SOEXT         = so
 
 # System libraries:
-SYSLIBS       = -lm -ldl $(THREAD)
-XLIBS         = -L/usr/X11R6/lib -lXpm -lX11
+SYSLIBS       = -lm -ldl $(OSTHREADLIBDIR) $(OSTHREADLIB)
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ldl
 CRYPTLIBS     = -lcrypt
-THREAD        = #-lpthread
 
 # Fortran:
 F77           = g77
@@ -41,4 +40,5 @@ F77FLAGS      =
 F77LIBS       = -lg2c -lnsl
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxkcc b/config/Makefile.linuxkcc
index 9d41596486cf4cf175a2faca8cc6513d5795431b..638dc33677f9f1a62bcd23ae6a30641bcc54b2c2 100644
--- a/config/Makefile.linuxkcc
+++ b/config/Makefile.linuxkcc
@@ -1,18 +1,19 @@
 # Makefile of ROOT for Linux with glibc and KCC compiler
 
-# When changing OPT to -O you can also change +K0 to +K1
-# When changing OPT to -g you can also change +K1 to +K0
+# When changing OPT to -O you can also change +K0 to +K3
+# When changing OPT to -g you can also change +K3 to +K0
 
 PLATFORM      = linux
 
 ifeq (debug,$(findstring debug,$(ROOTBUILD)))
 OPT           = -g -O0
-CXXOPT        = +K0 -g -O0
+COPT          =
+CXXOPT        = +K0
 NOOPT         =
 else
 OPT           = -O2
 COPT          = -m486 -malign-loops=4 -malign-functions=4 -malign-jumps=4
-CXXOPT        = +K3 -O2 --backend -m486 --backend -malign-loops=4 --backend \
+CXXOPT        = +K3 --backend -m486 --backend -malign-loops=4 --backend \
                 -malign-functions=4 --backend -malign-jumps=4
 NOOPT         =
 endif
@@ -23,8 +24,7 @@ else
 EXCEPTION     = --no_exceptions
 endif
 
-ifeq (thread,$(findstring thread,$(ROOTBUILD)))
-THREAD        += "USE"
+ifneq ($(OSTHREADLIB),)
 CXXOPT        += --thread_safe -g
 OPT           += -g
 endif
@@ -51,15 +51,15 @@ endif
 
 # Linker:
 LD            = KCC
-LDFLAGS       = $(CXXOPT) $(EXCEPTION) $(EXTRA_LDFLAGS)
+LDFLAGS       = $(OPT) $(CXXOPT) $(EXCEPTION) $(EXTRA_LDFLAGS)
 AR            = KCC
-ARFLAGS       = $(CXXOPT) $(EXCEPTION)
+ARFLAGS       = $(OPT) $(CXXOPT) $(EXCEPTION)
 SOFLAGS       =
 SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl
-XLIBS         = $(XPMLIB) -L/usr/X11R6/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -lbsd -ldl
 CRYPTLIBS     = -lcrypt
 
@@ -72,4 +72,5 @@ F77LIBS       = -lf2c -lnsl
 
 # fix for libGui.so that needs lstat
 GUILIBEXTRA   = -lc
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxpgcc b/config/Makefile.linuxpgcc
index d786ba272156c29448ccea7233c0f4a17df2b8b9..eb870f3692e805b4af882cb12a13369fc5ba78c1 100644
--- a/config/Makefile.linuxpgcc
+++ b/config/Makefile.linuxpgcc
@@ -30,7 +30,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -rdynamic
-XLIBS         = ../lib/libXpm.a -L/usr/X11R6/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ltermcap -lbsd -ldl -rdynamic
 CRYPTLIBS     = -lcrypt
 
@@ -40,4 +40,5 @@ F77FLAGS      = $(OPT)
 F77LIBS       = -lg2c
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxppcegcs b/config/Makefile.linuxppcegcs
index 835e4d8739a8e081f12685a80138d3c1fae123d3..f8c87fa346ee71cc8699234dabc9b213207403d7 100644
--- a/config/Makefile.linuxppcegcs
+++ b/config/Makefile.linuxppcegcs
@@ -32,7 +32,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl
-XLIBS         = -L/usr/X11R6/lib -lX11 -lSM -lICE -lXpm
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11 -lSM -lICE
 CILIBS        = -lm -ltermcap -lbsd -ldl
 CRYPTLIBS     = -lcrypt
 
@@ -42,4 +42,5 @@ F77FLAGS      = -fPIC
 F77LIBS       = -lg2c
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxrh42 b/config/Makefile.linuxrh42
index 10b54ffddce0ba7a9cb24309bf6354a94fe00aaf..ebb1dca1a8572102ec463dac5a5964314316f4f0 100644
--- a/config/Makefile.linuxrh42
+++ b/config/Makefile.linuxrh42
@@ -30,11 +30,12 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lg++ -lm -ldl -rdynamic
-XLIBS         = ../lib/libXpm.a -L/usr/X11R6/lib -lX11 -lg++
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11 -lg++
 CILIBS        = -lm -ltermcap -lbsd -ldl -lg++ -rdynamic
 
 # Fortran:
 
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.linuxsuse6 b/config/Makefile.linuxsuse6
index 3a9079571911505d05461ebb0777bc78409ab676..ed400cdb16a93a2bda7439b7b624e90df9d7da8f 100644
--- a/config/Makefile.linuxsuse6
+++ b/config/Makefile.linuxsuse6
@@ -28,7 +28,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -rdynamic
-XLIBS         = $(XPMLIB) -L/usr/X11R6/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -lncurses -ldl -rdynamic
 CRYPTLIBS     = -lcrypt
 
@@ -38,4 +38,5 @@ F77FLAGS      = $(OPT)
 F77LIBS       = -lg2c
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) -L/usr/X11R6/lib -lXmu
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
+                -L/usr/X11R6/lib -lXmu
diff --git a/config/Makefile.lynxos b/config/Makefile.lynxos
index d7128e73306d1de8c41f5e53b5c68b6de8de9802..8376e2a7061fe42918f48b22da267b5d60534816 100644
--- a/config/Makefile.lynxos
+++ b/config/Makefile.lynxos
@@ -30,7 +30,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl
-XLIBS         = -L/usr/X11R6/lib -lX11 -lXpm
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
 CILIBS        = -lm -ltermcap -lbsd
 CRYPTLIBS     = -lcrypt
 
diff --git a/config/Makefile.mklinux b/config/Makefile.mklinux
index 684c5210f41e96a7f396e96b360e606c87948a9b..a3dccb926d61894b9222ec3de8455dd4ef90bd4b 100644
--- a/config/Makefile.mklinux
+++ b/config/Makefile.mklinux
@@ -31,7 +31,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lg++ -lm -ldl
-XLIBS         = -L/usr/X11R6/lib -lX11 -lSM -lICE -lXpm -lg++
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11 -lSM -lICE -lg++
 CILIBS        = -lm -ltermcap -lbsd -ldl -lg++
 
 # Fortran:
diff --git a/config/Makefile.sgicc b/config/Makefile.sgicc
index 5cb344fd7ae873ae658a3cc652912d16f424da5a..3bbac45eac229908460b950c531158b335cd52c7 100644
--- a/config/Makefile.sgicc
+++ b/config/Makefile.sgicc
@@ -28,8 +28,8 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -lPW -ldl
-XLIBS         = $(XPMLIB) -lX11
-CILIBS        =  -lm -ltermcap -lbsd -lgen -ldl
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11
+CILIBS        = -lm -ltermcap -lbsd -lgen -ldl
 
 # Fortran:
 F77           = f77
@@ -40,5 +40,5 @@ else
 F77LIBS       = -lI77 -lU77 -lF77 -lisam
 endif
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB)
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB)
 
diff --git a/config/Makefile.sgiegcs b/config/Makefile.sgiegcs
index 03bacd95f446c75dde4db580a46d381ccc27dc1a..c55eec96a0e99ba3d71f7784a5dc34387e9719f1 100644
--- a/config/Makefile.sgiegcs
+++ b/config/Makefile.sgiegcs
@@ -30,11 +30,11 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lgen -lstdc++ -lm
-XLIBS         = $(XPMLIB) -L/usr/X11R6/lib -lX11
-CILIBS        =  -lm -lgen -lbsd -lstdc++
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/X11R6/lib -lX11
+CILIBS        = -lm -lgen -lbsd -lstdc++
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB)
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB)
 
 # Fortran:
 F77LIBS       = -lftn
diff --git a/config/Makefile.sgikcc b/config/Makefile.sgikcc
index 7879caf271878bab07aafcfa3b91795cfafd5b5a..a95be696b5719ca05dd15360b9f3389a17a59e17 100644
--- a/config/Makefile.sgikcc
+++ b/config/Makefile.sgikcc
@@ -30,8 +30,7 @@ else
 ABI           = -32 -mips2
 endif
 
-ifeq (thread,$(findstring thread,$(ROOTBUILD)))
-THREAD        += "USE"
+ifneq ($(OSTHREADLIB),)
 CXXOPT        += --thread_safe -g
 OPT           += -g
 endif
@@ -69,7 +68,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl
-XLIBS         = $(XPMLIB) -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -lX11
 CILIBS        = -lm -ltermcap -lbsd -ldl -lgen
 CRYPTLIBS     = -lcrypt
 
@@ -83,5 +82,5 @@ F77LIBS       = -lI77 -lU77 -lF77 -lisam
 endif
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB)
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB)
 
diff --git a/config/Makefile.sgin32egcs b/config/Makefile.sgin32egcs
index 61910492ad519be910ef2f69b12131a60878feda..5f64f4fff54be5362d7473971432be9fc5b03c7f 100644
--- a/config/Makefile.sgin32egcs
+++ b/config/Makefile.sgin32egcs
@@ -31,7 +31,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl
-XLIBS         = $(XPMLIB) -L/usr/lib32 -lX11 -lg++
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/lib32 -lX11 -lg++
 CILIBS        = -lm -lgen
 
 
diff --git a/config/Makefile.solaris b/config/Makefile.solaris
index 58bed3ed7349fee5ddc34e77695e74b55645daac..a7deae29937998f47573e717dd78da48945b4bb7 100644
--- a/config/Makefile.solaris
+++ b/config/Makefile.solaris
@@ -29,14 +29,14 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -lnsl -lsocket -lgen
-XLIBS         = $(XPMLIB) -L/usr/openwin/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/openwin/lib -lX11
 CILIBS        = -lm -ltermcap -ldl -L/usr/ccs/lib -lgen
 
 # Fortran:
 F77           = /opt/SUNWspro/bin/f77
-F77LIBS       = $(CERNLIB)/libpacklib.a -lM77 -lF77 -lsunmath -lsocket -lnsl
+F77LIBS       = -lM77 -lF77 -lsunmath -lsocket -lnsl
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) \
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
                 -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
 
diff --git a/config/Makefile.solarisCC5 b/config/Makefile.solarisCC5
index 54f37cf21ef96b968d7c0730aa836737df3e90da..2c979bc50b057402f9cdd2538d6a27394e5ca315 100644
--- a/config/Makefile.solarisCC5
+++ b/config/Makefile.solarisCC5
@@ -34,13 +34,13 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -lnsl -lsocket
-XLIBS         = $(XPMLIB) -L/usr/openwin/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/openwin/lib -lX11
 CILIBS        = -lm -ltermcap -ldl
 
 # Fortran:
 F77           = /opt/SUNWspro/bin/f77
-F77LIBS       = $(CERNLIB)/libpacklib.a -lM77 -lF77 -lsunmath -lsocket -lnsl
+F77LIBS       = -lM77 -lF77 -lsunmath -lsocket -lnsl
 
 # Extras
-GLLIBEXTRA    = $(OPENGLULIB) $(OPENGLLIB) \
+GLLIBEXTRA    = $(OPENGLLIBDIR) $(OPENGLULIB) $(OPENGLLIB) \
                 -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
diff --git a/config/Makefile.solarisegcs b/config/Makefile.solarisegcs
index 8122c3ef58154f0242a6016f85a2523d85d32ce9..e6c95337aeebd669dbe1ebd220b5d2d1775bc9e3 100644
--- a/config/Makefile.solarisegcs
+++ b/config/Makefile.solarisegcs
@@ -29,7 +29,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -L/usr/include/sys -lsocket -lnsl
-XLIBS         = $(XPMLIB) -L/usr/openwin/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/openwin/lib -lX11
 CILIBS        = -lm -ltermcap -ldl -L/usr/ccs/lib -lgen
 
 # Fortran:
diff --git a/config/Makefile.solarisgcc b/config/Makefile.solarisgcc
index e50451e27b94b5c310a5039ee500d7ec15921d06..8a1c0e1b87a9461a1b400c45b5ce494ae287e289 100644
--- a/config/Makefile.solarisgcc
+++ b/config/Makefile.solarisgcc
@@ -29,7 +29,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -L/usr/include/sys -lsocket -lnsl
-XLIBS         = $(XPMLIB) -L/usr/openwin/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/openwin/lib -lX11
 CILIBS        = -lm -ltermcap -ldl -L/usr/ccs/lib -lgen
 
 # Fortran:
diff --git a/config/Makefile.solariskcc b/config/Makefile.solariskcc
index 5057537b35e600b96dba70423cfa132e0a0d2ef0..0616b5b12fd759e214700d6a80a5a1c25a976574 100644
--- a/config/Makefile.solariskcc
+++ b/config/Makefile.solariskcc
@@ -43,7 +43,7 @@ SOEXT         = so
 
 # System libraries:
 SYSLIBS       = -lm -ldl -lsocket -lnsl
-XLIBS         = $(XPMLIB) -L/usr/openwin/lib -lX11
+XLIBS         = $(XPMLIBDIR) $(XPMLIB) -L/usr/openwin/lib -lX11
 CILIBS        = -lm -ltermcap -ldl -L/usr/ccs/lib -lgen
 CRYPTLIBS     =
 
diff --git a/config/Makefile.win32 b/config/Makefile.win32
index 2efc389757a019c6ea866e2f3843857a0545fe49..ddf4b4a74f366435b2a58e88fde43b5fbeb57326 100644
--- a/config/Makefile.win32
+++ b/config/Makefile.win32
@@ -48,7 +48,6 @@ SYSLIBS       =
 XLIBS         =
 CILIBS        =
 CRYPTLIBS     =
-THREAD        =
 
 # Fortran:
 F77           = build/win/f77.sh
@@ -84,9 +83,9 @@ TREEVIEWERLIBEXTRA  = lib/libTree.lib lib/libGpad.lib lib/libGraf.lib \
 EGLIBDEP            = $(G3DLIB) $(GRAFLIB)
 EGLIBEXTRA          = lib/libGraf3d.lib lib/libGraf.lib
 PYTHIALIBDEP        = $(EGLIB) $(GRAFLIB)
-PYTHIALIBEXTRA      = lib/libEG.lib lib/libGraf.lib $(PYTHIA)
+PYTHIALIBEXTRA      = lib/libEG.lib lib/libGraf.lib $(FPYTHIA)
 PYTHIA6LIBDEP       = $(EGLIB) $(GRAFLIB)
-PYTHIA6LIBEXTRA     = lib/libEG.lib lib/libGraf.lib $(PYTHIA6)
+PYTHIA6LIBEXTRA     = lib/libEG.lib lib/libGraf.lib $(FPYTHIA6)
 VENUSLIBDEP         = $(EGLIB)
 VENUSLIBEXTRA       = lib/libEG.lib
 GLLIBDEP            = $(G3DLIB) $(WIN32LIB)
diff --git a/config/root-config.in b/config/root-config.in
index a872c6acd2c0756a43d486488d668fbc35c8995b..a030795b4e7a654b748dffa59740ec7a68b462d8 100755
--- a/config/root-config.in
+++ b/config/root-config.in
@@ -6,23 +6,15 @@
 # Author: Fons Rademakers, 06/06/99
 
 arch=@architecture@
+libdir=@libdir@
+incdir=@incdir@
 
 ### ROOT libraries ###
 
-if [ "$arch" = "win32" ]; then
-   newlib="%prefix%/libNew.lib"
-   rootlibs="%prefix%/libCore.lib %prefix%/libCint.lib %prefix%/libHist.lib \
-             %prefix%/libGraf.lib %prefix%/libGraf3d.lib %prefix%/libGpad.lib \
-             %prefix%/libTree.lib %prefix%/libRint.lib \
-             %prefix%/libPostscript.lib %prefix%/libMatrix.lib \
-             %prefix%/libPhysics.lib"
-   rootglibs="%prefix%/libGui.lib"
-else
-   newlib="-lNew"
-   rootlibs="-lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint \
-             -lPostscript -lMatrix -lPhysics"
-   rootglibs="-lGui"
-fi
+newlib="-lNew"
+rootlibs="-lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint \
+          -lPostscript -lMatrix -lPhysics"
+rootglibs="-lGui"
 
 ### machine dependent settings ###
 
@@ -190,6 +182,12 @@ linuxia64gcc)
    auxlibs="-lm -ldl -rdynamic"
    auxglibs=${auxlibs}
    ;;
+linuxia64sgi)
+   # Itanium Linux with SGI compiler
+   auxcflags=
+   auxlibs="-lm -ldl"
+   auxglibs=${auxlibs}
+   ;;
 linuxalphaegcs)
    # Alpha Linux with egcs
    auxcflags=
@@ -237,7 +235,7 @@ esac
 
 
 prefix=@prefix@
-if [ "$arch" = "win32" ]; then
+if test "$arch" = "win32"; then
    prefix=`cygpath -u ${prefix}`
 fi
 exec_prefix=${prefix}
@@ -248,35 +246,45 @@ usage="\
 Usage: root-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--nonew] [--libs] [--glibs] [--cflags]"
 
 if test $# -eq 0; then
-      echo "${usage}" 1>&2
-      exit 1
+   echo "${usage}" 1>&2
+   exit 1
 fi
 
 while test $# -gt 0; do
   case "$1" in
   -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
+  *)    optarg= ;;
   esac
 
   case $1 in
     --prefix=*)
-      if [ "$arch" = "win32" ]; then
+      if test "$arch" = "win32"; then
          optarg=`cygpath -u $optarg`
       fi
       prefix=$optarg
+      incdir=${prefix}/include
+      libdir=${prefix}/lib
+      if test "$arch" = "win32"; then
+         incdir=`cygpath -u $incdir`
+         libdir=`cygpath -u $libdir`
+      fi
       if test $exec_prefix_set = no ; then
-        exec_prefix=$optarg
+         exec_prefix=$optarg
       fi
       ;;
     --prefix)
       echo $prefix
       ;;
     --exec-prefix=*)
-      if [ "$arch" = "win32" ]; then
+      if test "$arch" = "win32"; then
          optarg=`cygpath -u $optarg`
       fi
       exec_prefix=$optarg
       exec_prefix_set=yes
+      libdir=${exec_prefix}/lib
+      if test "$arch" = "win32"; then
+         libdir=`cygpath -u $libdir`
+      fi
       ;;
     --exec-prefix)
       echo $exec_prefix
@@ -285,55 +293,55 @@ while test $# -gt 0; do
       nonew_set=yes
       ;;
     --version)
-      if test -r ${prefix}/include/RVersion.h ; then
-         echo `cat ${prefix}/include/RVersion.h | sed -e "s/.*ROOT_RELEASE //" \
+      if test -r ${incdir}/RVersion.h; then
+         echo `cat ${incdir}/RVersion.h | sed -e "s/.*ROOT_RELEASE //" \
                -e "s/.*#.*$//" -e "s/.*\*.*$//" -e "s/\"//g" -e "/^$/d"`
       else
-         echo "cannot read ${prefix}/include/RVersion.h"
+         echo "cannot read ${incdir}/RVersion.h"
       fi
       ;;
     --cflags)
-      if test ${prefix}/include != /usr/include ; then
-         if [ "$arch" = "win32" ]; then
-            includes=-I\'`cygpath -w ${prefix}/include`\'
+      if test ${incdir} != /usr/include; then
+         if test "$arch" = "win32"; then
+            includes=-I\'`cygpath -w ${incdir}`\'
          else
-            includes=-I${prefix}/include
+            includes=-I${incdir}
          fi
       fi
       echo ${auxcflags} $includes
       ;;
     --libs)
-      if test $nonew_set = no ; then
-        libs="${newlib} ${rootlibs}"
+      if test $nonew_set = no; then
+         libs="${newlib} ${rootlibs}"
       else
-        libs=${rootlibs}
+         libs=${rootlibs}
       fi
-      if [ "$arch" = "win32" ]; then
-         nlibs=`echo $libs | sed "s@%prefix%@${exec_prefix}/lib@g"`
+      if test "$arch" = "win32"; then
+         nlibs=`echo $libs | sed "s@-l\([a-zA-Z]*\)@${libdir}/lib\1.lib@g"`
          libs=
          for i in $nlibs; do
             libs="$libs '`cygpath -w $i`'"
          done
          echo $libs ${auxlibs}
       else
-         echo -L${exec_prefix}/lib $libs ${auxlibs}
+         echo -L${libdir} $libs ${auxlibs}
       fi
       ;;
     --glibs)
-      if test $nonew_set = no ; then
-        glibs="${newlib} ${rootlibs} ${rootglibs}"
+      if test $nonew_set = no; then
+         glibs="${newlib} ${rootlibs} ${rootglibs}"
       else
-        glibs="${rootlibs} ${rootglibs}"
+         glibs="${rootlibs} ${rootglibs}"
       fi
-      if [ "$arch" = "win32" ]; then
-         nlibs=`echo $glibs | sed "s@%prefix%@${exec_prefix}/lib@g"`
+      if test "$arch" = "win32"; then
+         nlibs=`echo $glibs | sed "s@-l\([a-zA-Z]*\)@${libdir}/lib\1.lib@g"`
          glibs=
          for i in $nlibs; do
             glibs="$glibs '`cygpath -w $i`'"
          done
          echo $glibs ${auxglibs}
       else
-         echo -L${exec_prefix}/lib $glibs ${auxglibs}
+         echo -L${libdir} $glibs ${auxglibs}
       fi
       ;;
     *)