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:


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 .