Epics@GSI Webhome

step-by-step - EPICS installations at GSI


... on user account epics on Linux sarge system

On the Linux system at GSI there are:
  • an user account epics to provide the space to store this installation, a login is practically '_never_' foreseen. (I meanwhile even forgot the password)
  • two groups:
    1. epicsadm for general installations
    2. epicsusr for user specific installations

GSI Prerequisites

Things you have to prepare and conditions you have to fulfill before being able to start any installation ... more.

EPICS base

Installation of the EPICS base distribution:

Testing of base installation with makeBaseApp.pl

Example Application
... (Click to expand) Click to expand
-- PeterZumbruch - 09 Aug 2007

Extensions

Prerequisites for Extensions

Extensions directory structure
Before installing any kind of extension/application
  • either the new and recommended Extensions Top method:
    • you have to install extensionsTop_YYYYMMDD.tar.gz for version 3.14 and higher
  • or the old Configuration File method:
    • you have to install the extensionsConfigure_YYYYMMDD.tar.gz and extensionsConfig_YYYYMMDD.tar.gz, depending on which version of base you use. (Look at "Why two extensions" for more information.)

Extensions Top (New Method/Recommended) -- (15 May 2008)
  • Set EXTENSIONS_TOP_INSTALLATIONDOCS = https://epics.anl.gov/extensions/configure/index.php
  • Set EXTENSIONS_TOP_ID = Extensions Top (New Method/Recommended) Version: %EXTENSIONS_TOP_VERSION% (15 May 2008)
  • -->

    The extensionsTop_YYYYMMDD.tar.gz gnuzipped tar file contains the extensions/configure directory, top level Makefile, the src directory and src/Makefile.

    The src/Makefile knows all the standard EPICS extensions directory names and can build any that are present in the correct order for dependency resolution. To use an extension with a specific version number in its directory name, edit the assignment statement so the right hand side of the assignment exactly matches the name of the subdirectory containing that extension. For example:

    • ALH = alh1_2_23

    Edit the DIRS definition in the Makefile to change the order of building (the wildcard at the bottom removes any directories that don't exist from the list).
    Extension Top Conform
    ... (Click to expand detailed description) Click to expand
    • Compact
      export MYEPICS_VERSION=3.14.10

      . epicslogin.sh -v -H ~epics/EPICS-${MYEPICS_VERSION} ${MYEPICS_VERSION}

      export EPICS_DOWNLOAD_DIR=<Download Directory>
      mkdir -p $EPICS_DOWNLOAD_DIR/extensions
      cd $EPICS_DOWNLOAD_DIR/extensions &&
      wget -N https://epics.anl.gov/download/extensions/extensionsTop_20070703.tar.gz
      groups | grep -q -w epicsadm && chgrp -R epicsadm $EPICS_DOWNLOAD_DIR/extensions
      find $EPICS_DOWNLOAD_DIR/extensions -user $(id -n -u) -exec chmod ug+rw {} \;
      cd $EPICS_HOME &&
      tar -xzvf $EPICS_DOWNLOAD_DIR/extensions/extensionsTop_20070703.tar.gz
      cd $EPICS_EXTENSIONS
      echo ${EPICS_BASE}
      if [ ! -z $EDITOR ];
      then
          $EDITOR configure/RELEASE
      else
          echo '$EDITOR' undefined ... exiting;
      fi
      cd $EPICS_EXTENSIONS &&
      make realclean uninstall install
    -- PeterZumbruch - 15 May 2008

    Configuration Files (Old Method)
    ... (Click to expand detailed description) Click to expand
    -- PeterZumbruch - 11 Jun 2007
    gcc @ GSI
    Since the GSI Sarge installation runs with gcc=gcc-3.3.5 you have to set the environment variable EPICS_GCC_VERSION_GSI to one of the available 3.x versions (3.4):
    $> export EPICS_GCC_VERSION_GSI=3.4
    $> [ ! -z ${EPICS_GCC_VERSION_GSI} ] && echo 'CC = $(GNU_BIN)/gcc-'${EPICS_GCC_VERSION_GSI} >> ${EPICS_EXTENSIONS}/configure/os/CONFIG_SITE.$(${EPICS_BASE}/startup/EpicsHostArch.pl).linux-x86
    $> [ ! -z ${EPICS_GCC_VERSION_GSI} ] && echo 'CCC = $(GNU_BIN)/g++-'${EPICS_GCC_VERSION_GSI} >> ${EPICS_EXTENSIONS}/configure/os/CONFIG_SITE.$(${EPICS_BASE}/startup/EpicsHostArch.pl).linux-x86
    Compact
    export EPICS_GCC_VERSION_GSI=3.4
    [ ! -z ${EPICS_GCC_VERSION_GSI} ] && echo 'CC = $(GNU_BIN)/gcc-'${EPICS_GCC_VERSION_GSI} >> ${EPICS_EXTENSIONS}/configure/os/CONFIG_SITE.$(${EPICS_BASE}/startup/EpicsHostArch.pl).linux-x86

    [ ! -z ${EPICS_GCC_VERSION_GSI} ] && echo 'CCC = $(GNU_BIN)/g++-'${EPICS_GCC_VERSION_GSI} >> ${EPICS_EXTENSIONS}/configure/os/CONFIG_SITE.$(${EPICS_BASE}/startup/EpicsHostArch.pl).linux-x86
    -- PeterZumbruch - 10 Nov 2008


    XMOTIF - X-Motif Settings (24 November 2008)

      For XMotif based applications, like MEDM, ..., the following changes have to be applied:

      Set EPICS variables, if not yet done:
      (e.g. assuming the <EPICS home dir> to be ~epics/EPICS-3.14.10, and running version 3.14.10)
      $> export MYEPICS_VERSION=3.14.10
      $> . epicslogin.sh -v -H ~epics/EPICS-${MYEPICS_VERSION} ${MYEPICS_VERSION}

      And now edit the file(s) $EPICS_EXTENSIONS/configure/os/CONFIG_SITE.linux-x86.linux-x86
      Change the block
      X11_LIB=/usr/lib 
      X11_INC=/usr/include/X11
      MOTIF_LIB=/usr/lib
      MOTIF_INC=/usr/include</td> <td> into </td> <td>%CODE{"makefile"}%  
      #X11_LIB=/usr/lib
      #X11_INC=/usr/include/X11
      #MOTIF_LIB=/usr/lib
      #MOTIF_INC=/usr/include</td> </tr></table></span>
      <div style="background-color:#f8f8f8;padding:0.5ex;border:thin solid #808080;margin:1.0ex;margin-left:2.5ex;padding-left:1ex;padding-right:1ex"> <code style="color:#008000;font-weight:bold"> 
      if [ ! -z $EDITOR ];
      <br /> then 
      <br /> &nbsp;&nbsp;&nbsp; $EDITOR $EPICS_EXTENSIONS/configure/os/CONFIG_SITE.linux-x86.linux-x86 <br /> else 
      <br />&nbsp;&nbsp;&nbsp; echo '$EDITOR' undefined ... exiting;
      <br /> fi 
      </code></div>
      </ol>
      <div style="text-align:right">-- Main.PeterZumbruch - 24 November 2008</div>      
      <div style="text-align:right;"><span style="font-weight:bold;font-size:smaller;padding:0.2ex 1ex 0.1ex 1ex;background-color:#d0d0d0">[[#PageTop][Back to top]]</span></div>
      ---
      <a name="MEDM"></a> <!-- Anchor -->
      ---++++ <nop><nop>MEDM - Motif Editor and Display Manager -- Version: 3.1.2.2 (09 September 2008)
      <!-- 
      * Set MEDM_LAST_CHANGE_ON = 09 September 2008
      * Set MEDM_LAST_CHANGE_BY = Main.PeterZumbruch
      * Set MEDM_TITLE = <nop>MEDM - Motif Editor and Display Manager
      * Set MEDM_SRCNAME = MEDM - Motif Editor and Display Manager
      * Set MEDM_SHORTNAME = MEDM
      * Set MEDM_VERSION = 3.1.2.2
      * Set MEDM_VERSION_STRING = 3_1_2_2
      * Set MEDM_VERSIONDATE = May 7th, 2008
      * Set MEDM_VERSIONCOMMENT =
      * Set MEDM_DOWNLOADADRESS = https://epics.anl.gov/extensions/medm/index.php
      * Set MEDM_DIRECTDOWNLOADADRESS = https://epics.anl.gov/download/extensions
      * Set MEDM_DOWNLOADPATH = $EPICS_DOWNLOAD_DIR/extensions/medm
      * Set MEDM_INSTALLDIR = $EPICS_EXTENSIONS/src
      * Set MEDM_TARFILENAME = medm3_1_2_2.tar.gz
      * Set MEDM_SRCMAKEFILEENTRYOLD = EXTENSION_MEDM = medm
      * Set MEDM_SRCMAKEFILEENTRYNEW = EXTENSION_MEDM = medm3_1_2_2
      * Set MEDM_TOPLEVELDIR = $EPICS_EXTENSIONS/src
      * Set MEDM_OPTIONALMAKEOPTIONS = EPICS_BASE=$EPICS_BASE
      * Set MEDM_FILESTOEDIT_1 = $EPICS_EXTENSIONS/configure/os/CONFIG_SITE.linux-x86.linux-x86
      * Set MEDM_FILESTOEDIT_1_BEFORE = %CODE{"makefile"}%  
      X11_LIB=/usr/lib 
      X11_INC=/usr/include/X11
      MOTIF_LIB=/usr/lib
      MOTIF_INC=/usr/include
      
      #X11_LIB=/usr/X11R6/lib
      #X11_INC=/usr/X11R6/include/X11
      #MOTIF_LIB=/usr/X11R6/lib
      #MOTIF_INC=/usr/X11R6/include
      

      • Set MEDM_FILESTOEDIT_1_AFTER =
      #X11_LIB=/usr/lib
      #X11_INC=/usr/include/X11
      #MOTIF_LIB=/usr/lib
      #MOTIF_INC=/usr/include
      
      X11_LIB=/usr/X11R6/lib
      X11_INC=/usr/X11R6/include/X11
      MOTIF_LIB=/usr/X11R6/lib
      MOTIF_INC=/usr/X11R6/include
      

      • Set MEDM_FILESTOEDIT_2 = $EPICS_EXTENSIONS/src/medm3_1_2_2/xc/WheelSwitch.c
      • Set MEDM_FILESTOEDIT_2_BEFORE = line 232:
      Widget _XmGetTabGroup(); 

      • Set MEDM_FILESTOEDIT_2_AFTER =
      /*Widget _XmGetTabGroup();*/
      #define _XmGetTabGroup !XmGetTabGroup 

      • Set MEDM_FILESTOEDIT_3 = $EPICS_EXTENSIONS/src/medm3_1_2_2/xc/Matrix.c
      • Set MEDM_FILESTOEDIT_3_BEFORE = line 44 :
      void _XmDrawShadow(); 

      • Set MEDM_FILESTOEDIT_3_AFTER = commenting out:
      /*void _XmDrawShadow();*/ 

      -->
      Extension Top Conform
      Installation
      ... (Click to expand detailed description) Click to expand