Difference between revisions of "Online release"

From GlueXWiki
Jump to: navigation, search
m
m
Line 1: Line 1:
=How To Make an Online Release with SCONS=
+
=How To Make an Online ReleaseS=
  
 
'''Introduction'''
 
  
 
Official online releases must be made from the hdsys account.  You can make a release in your own area by following the instructions below, with some obvious modifications.
 
Official online releases must be made from the hdsys account.  You can make a release in your own area by following the instructions below, with some obvious modifications.
 
Eventually much of this will be automated.
 
 
  
  
Line 13: Line 8:
  
  
2. Go to the official release area, create a new release directory structure:
+
2. Check out the script that makes the release
  
$ cd /gluex/builds
+
  $ svn co https://halldsvn.jlab.org/repos/trunk/online/packages/buildScripts/scripts/create_online_release
$ mkdir theRelease
+
 
+
$ cd theRelease
+
$ mkdir packages
+
 
+
$ cd packages
+
 
+
 
+
3. Check out the buildScripts package and create top-level SConstruct file:
+
 
+
  $ svn co https://halldsvn.jlab.org/repos/trunk/online/packages/buildScripts
+
$ cp buildScripts/scripts/SConstruct_for_package_dir SConstruct
+
 
+
 
+
4. Check out other packages:
+
 
+
$ svn co https://halldsvn.jlab.org/repos/trunk/online/packages/somePackage
+
... check out more packages if desired ...
+
 
   
 
   
  $ ls
+
  usage:
somePackage/ buildSCripts/  SConstruct
+
    create_online_release [-noBuild] [-noCheckout] [-noCPP] [-noJava] [-noInstall]
  
  
5.  Set PATH to point to gcc 4.8.0 (or whatever compiler you want) and set LD_LIBRARY_PATH accordingly:
+
3.  Set PATH to point to gcc 4.8.0 (or whatever compiler you want) and set LD_LIBRARY_PATH accordingly:
  
 
  $ setenv PATH /apps/gcc/4.8.0/bin:"$PATH"
 
  $ setenv PATH /apps/gcc/4.8.0/bin:"$PATH"
Line 45: Line 22:
  
  
6.  Set PYTHON and PERL paths to point to build scripts previously checked out (later these scripts will be released into another area, but for now use the versions just checked out):
+
4.  Set package environment variables needed for the build (note that eventually a system script will take care of this step):
 
+
$ setenv PYTHONPATH /gluex/builds/theRelease/packages/buildScripts/scripts
+
$ setenv PERL5LIB /gluex/builds/theRelease/packages/buildScripts/scripts
+
 
+
 
+
7.  Set package environment variables needed for the build (note that eventually a system script will take care of this step):
+
  
 
  $ setenv CMSGROOT /gluex/coda_install_dir/Linux-x86_64
 
  $ setenv CMSGROOT /gluex/coda_install_dir/Linux-x86_64
Line 57: Line 28:
  
  
8Build and install everything (except Java, see below):
+
5Create release dirs, check out, build and install everything
 
+
$ scons
+
$ scons install INSTALL_DIR=/gluex/builds/theRelease
+
 
+
 
+
9.  Currently Java code must be built separately, until this is fixed do the following:
+
  
  $ scons java
+
  $ create_online_release myRelease
$ scons install java INSTALL_DIR=/gluex/builds/theRelease
+

Revision as of 16:26, 16 May 2013

How To Make an Online ReleaseS

Official online releases must be made from the hdsys account. You can make a release in your own area by following the instructions below, with some obvious modifications.


1. Log into the hdsys account on the Hall D online computing cluster. If you don't know how to do this then you should not be making official releases!


2. Check out the script that makes the release

$ svn co https://halldsvn.jlab.org/repos/trunk/online/packages/buildScripts/scripts/create_online_release

usage:
    create_online_release [-noBuild] [-noCheckout] [-noCPP] [-noJava] [-noInstall]


3. Set PATH to point to gcc 4.8.0 (or whatever compiler you want) and set LD_LIBRARY_PATH accordingly:

$ setenv PATH /apps/gcc/4.8.0/bin:"$PATH"
$ setenv LD_LIBRARY_PATH /apps/gcc/4.8.0/lib64:/apps/gcc/4.8.0/lib:"$LD_LIBRARY_PATH"


4. Set package environment variables needed for the build (note that eventually a system script will take care of this step):

$ setenv CMSGROOT /gluex/coda_install_dir/Linux-x86_64
(set others as needed, e.g. for EVIO, ET, CODAOBJECT, etc)


5. Create release dirs, check out, build and install everything

$ create_online_release myRelease