Difference between revisions of "Online builds 10-apr-2013"
From GlueXWiki
m |
m |
||
Line 34: | Line 34: | ||
| `-- scripts | | `-- scripts | ||
`-- SCONS | `-- SCONS | ||
+ | |||
+ | |||
= Build System = | = Build System = | ||
* Based on SCONS and Python/Perl scripts (by Maurizio, Elliott and Dave L). | * Based on SCONS and Python/Perl scripts (by Maurizio, Elliott and Dave L). | ||
− | * Builds libsrc,binsrc and installs | + | * Assumes only one library per package, but allows multiple executables and test programs. |
− | * Builds test but only installs it locally (i.e. ignores INSTALL_DIR env var) | + | * Builds libsrc,binsrc and installs libsrc,binsrc,scripts into $INSTALL_DIR (default is package directory). |
− | * Ignores | + | * Copies include files from libsrc into include directory in $INSTALL_DIR. |
− | * | + | * Builds test area but only installs it locally (i.e. ignores INSTALL_DIR env var) |
+ | * Ignores any other directories in src (e.g. examples dir). | ||
+ | * Include statements MUST be qualified by package name (e.g. #include <cMsg2et/cMsg2et.h>) (thus the soft link in libsrc dir). | ||
+ | |||
+ | |||
− | + | = File structure for release area = | |
* This shows the release directory structure (rw from hdsys account, ro from all other accounts). | * This shows the release directory structure (rw from hdsys account, ro from all other accounts). |
Revision as of 16:38, 6 May 2013
File structure for release area
Simple but cluttered:
-- builds `-- devel |-- aPackage |-- anotherPackage |-- cMsg2et | |-- doc | |-- java | `-- org | `-- jlab | `-- halld | |-- jar | |-- Linux_RHEL6-x86_64-gcc4.8.0 | | |-- bin | | |-- include | | |-- lib | | `-- scripts | `-- src | |-- binsrc | |-- examples | |-- libsrc | | `-- cMsg2et -> . | |-- scripts | `-- test |-- doc |-- jar |-- Linux_RHEL6-x86_64-gcc4.8.0 | |-- bin | |-- include | |-- lib | `-- scripts `-- SCONS
Build System
- Based on SCONS and Python/Perl scripts (by Maurizio, Elliott and Dave L).
- Assumes only one library per package, but allows multiple executables and test programs.
- Builds libsrc,binsrc and installs libsrc,binsrc,scripts into $INSTALL_DIR (default is package directory).
- Copies include files from libsrc into include directory in $INSTALL_DIR.
- Builds test area but only installs it locally (i.e. ignores INSTALL_DIR env var)
- Ignores any other directories in src (e.g. examples dir).
- Include statements MUST be qualified by package name (e.g. #include <cMsg2et/cMsg2et.h>) (thus the soft link in libsrc dir).
File structure for release area
- This shows the release directory structure (rw from hdsys account, ro from all other accounts).
- Package directories are what's in SVN, can be checked out by anyone.
- Should SCONS dir be under packages? Should it be installed?
-- builds `-- devel |-- doc |-- jar |-- Linux_RHEL6-x86_64-gcc4.8.0 | |-- bin | |-- include | |-- lib | `-- scripts |-- packages | |-- aPackage | |-- anotherPackage | `-- cMsg2et | |-- doc | |-- java | `-- org | `-- jlab | `-- halld | |-- jar | |-- Linux_RHEL6-x86_64-gcc4.8.0 | | |-- bin | | |-- include | | |-- lib | | `-- scripts | `-- src | |-- binsrc | |-- examples | |-- libsrc | | `-- cMsg2et -> . | |-- scripts | `-- test `-- SCONS