
How to retrieve and install PinK
Which platforms are supported?
Currently the following platforms are supported by the configuration script,
but not all of them have not yet been tested:
- IRIX 4 and 5
- OSF1
- ULTRIX
- HP-UX
- SunOS
- Solaris
- Linux
Where to get the archive?
The latest version of the PinK archive can be downloaded directly
from here.
But you may prefer to download the PinK
documentation for local installation. This archive also contains
the source code as well as the HV example that
you should use as an introduction in PinK and Dad programming.
What do you need?
The installation procedure of PinK is currently fitted into the HERMES
software scheme. This means, that you need a certain environment to
succeed in compiling PinK. The HERMES software is arranged in an own
directory tree, most of the programs expect the path of this directory in
an environment variable called $HERMES_ROOT. If this variable is
not set, the PinK installation script will try to find the hermes
software in
/hermes. However for installation as well as for later running
you're free to set $HERMES_ROOT to /usr/local.
In the directory $HERMES_ROOT/include you should install the
cfortran package and also a
corrected version of the ADAMO header file
adamo.h.
Also you must have installed DAD. How this is done you can find
in the related
DAD documentation page (Make sure to install an ADAMO version that
works with Dad as pointed out there!).
The following standard software packages are needed to make PinK. The
location may be explicitly defined by setting the mentioned environment
variable. If this variable is not set, the path is searched for the
package and the standard library directories are used.
- CERNLIB ($CERN_LIB)
- /cern:/cern/pro:/usr/cern:/user/cern/pro:/usr/local/cern:
/usr/local/cern/pro
- ADAMO 3.3 ($ADAMO_ROOT)
- /adamo:../adamo:/cern/adamo:$HERMES_ROOT/adamo:/usr/local/adamo:
/adamo/3.3:../adamo/3.3:/cern/adamo/3.3:$HERMES_ROOT/adamo/3.3:
$HERMES_ROOT/../adamo/3.3:/usr/local/adamo/3.3
- tcl 7.3 ($TCL_LIB)
- $HERMES_ROOT/lib:/usr/local/tcl/lib
- Tk 3.6 plus
patch level 1 ($TK_LIB)
- $HERMES_ROOT/lib:/usr/local/tk/lib
- BLT 1.7($BLT_LIB)
- $HERMES_ROOT/lib:/usr/local/blt/lib
The include files will be searched in the standard directories and
./include:$HERMES_ROOT/include
If the TCL/TK headers are not in there, you may set the
environment variables TCL_INC/TK_INC.
If you want to make use of the HBOOK analysis function of the pink browser,
you'll need to install the following:
- Hister
- Manfred Ferstl's HBOOK interface.
Archives of the required tcl/Tk versions 
When the HERMES software was designed and implemented,
tcl 7.3, Tk 3.6 and BLT 1.7 were up to date. Since HERMES is
a running experiment taking and analyzing physics data, we
decided to freeze those library versions.
Since it's not easy to find this versions on the
servers nowadays (you most likely will find them on
ftp.smli.com:/pub/tcl,
we supply them here:
The following patch should be applied to BLT:
diff -c bltGrAxis.c.old bltGrAxis.c
*** bltGrAxis.c.old Fri Apr 22 17:57:06 1994
--- bltGrAxis.c Sat Nov 16 09:32:03 1996
***************
*** 1713,1724 ****
sgmts++, labels++;
}
value += axisPtr->step;
}
done:
assert(sgmts <= arraySize);
- assert(labels <= axisPtr->numLabels);
if (axisPtr->segArr != NULL) {
free((char *)axisPtr->segArr);
--- 1713,1725 ----
sgmts++, labels++;
}
value += axisPtr->step;
+ if( labels >= axisPtr->numLabels )
+ break;
}
done:
assert(sgmts <= arraySize);
if (axisPtr->segArr != NULL) {
free((char *)axisPtr->segArr);
How to make it...
After you've build up your HERMES environment and installed DAD and all the
other packages, you've good chances to manage PinK also.
First make a directory $HERMES_ROOT/pink, change your working
directory to this one and extract the archive by typing
>gunzip pink.tar.gz
>tar xvf pink.tar
After this you can try to configure the package and finally make it:
>configure
>make
If everything worked fine, you may want to have a look in this
example.
If it does not work...
To write a configuartion script that fits all possible setups is probably
not possible. So if it fails here are some hints for experienced users
to solve the problems.
If you try to install PinK on a platform not mentioned above you're
invited to extend the configuration script. The following paragraph will
give you some hints for doing that.
If you try to install PinK on a supported platform and the configuration
fails, you're not totally lost. In that case you should try to modify the
configuration script for your environment.
The important file for both cases is called configure. In the
upper part of this scripts you'll find sections like the following:
Linux-*)
echo this seems to be a Linus machine. Congrats.
FORLIBS="-lf2c -lf77 -lc"
CC=cc
CFLAGS="-pipe -g -Wall"
ACFLAGS="-pipe -Df2cFortran -g -O -W -Wuninitialized \
-Wparentheses -Wmissing-prototypes -Wimplicit -Wcomment \
-Wformat -Wchar-subscripts "
LINKFLAGS=""
F77FLAGS="-cpp"
RANLIB="ranlib"
INCLUDES="$PWD/include /usr/local/include /usr/include"
EXTRAXLIBS=""
;;
The first line is a key for your setup. It's composed out of the following
fields:
systype-release-hostname
Copy the section for your system type to the beginning of the case block and
add your computer's name. If you're running one of those numerous LINUX PCs
called gandalf, the key would look like:
Linux-*-gandalf)
You can now try to make some changes in that configuration block. (An
explanation of the configuration variables will be added as soon as
I find some time...)
Good luck!
Previous
Up
Next
This page is maintained by
pink@hermes.desy.de;
last modification: Dec 20 1996 .