Difference between revisions of "Build Scripts and Makefiles"
From GlueXWiki
(→Using the scripts: remove cautionary note) |
(→Contents of the directory: start of edits) |
||
Line 13: | Line 13: | ||
=Contents of the directory= | =Contents of the directory= | ||
− | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts% | + | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fdelpath.pl delpath.pl]''' Perl script to remove specified directories from the PATH environment variable (works for C shell only). Used by '''gluex_env_clean.csh'''. |
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fgeant4.8.1.p01.tcl geant4.8.1.p01.tcl]''' Expect script used by '''geant4_install.sh'''. Expect is used to answer questions asked by the GEANT4 installation script. | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fgeant4.8.1.p01.tcl geant4.8.1.p01.tcl]''' Expect script used by '''geant4_install.sh'''. Expect is used to answer questions asked by the GEANT4 installation script. | ||
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fgeant4_install.sh geant4_install.sh]''' Bourne shell script to build GEANT4 from source. Uses '''geant4.8.1.p01.tcl''' to handle the interactive dialog in the installation script. | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fgeant4_install.sh geant4_install.sh]''' Bourne shell script to build GEANT4 from source. Uses '''geant4.8.1.p01.tcl''' to handle the interactive dialog in the installation script. | ||
Line 20: | Line 20: | ||
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_all Makefile_all]''' Makefile that builds everything. Invokes all of the other makefiles in this directory in a sensible order. | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_all Makefile_all]''' Makefile that builds everything. Invokes all of the other makefiles in this directory in a sensible order. | ||
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_cernlib Makefile_cernlib]''' Makefile that builds CERNLIB from source. This may be necessary if a compatible binary version does not exist at CERN and/or if the RedHat rpm is missing certain key packages due to license issues. | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_cernlib Makefile_cernlib]''' Makefile that builds CERNLIB from source. This may be necessary if a compatible binary version does not exist at CERN and/or if the RedHat rpm is missing certain key packages due to license issues. | ||
− | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_clhep Makefile_clhep]''' Makefile to build clhep. | + | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_clhep Makefile_clhep]''' Makefile to build clhep. CLHEP is used as a sort of C++ CERNLIB-replacement by GEANT4. |
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_halld Makefile_halld]''' Makefile to build the Hall-D/GlueX software packages. Relies on JANA having been built. | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_halld Makefile_halld]''' Makefile to build the Hall-D/GlueX software packages. Relies on JANA having been built. | ||
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_jana Makefile_jana]''' Makefile for building the JANA package. | * '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_jana Makefile_jana]''' Makefile for building the JANA package. |
Revision as of 11:47, 5 November 2008
I've written a set of scripts that will retrieve and build various components of the Hall-D/GlueX software infrastructure. The scripts can serve as examples of the steps involved.
Get the scripts
They are stored in the Hall D Subversion repository. To check them out:
svn checkout https://halldsvn.jlab.org/repos/trunk/scripts/build_scripts
This will create the directory build_scripts in your current working directory. Alternately to can get a tarball at:
http://www.jlab.org/~marki/halld/build_scripts_2008-06-18.tar
Contents of the directory
- delpath.pl Perl script to remove specified directories from the PATH environment variable (works for C shell only). Used by gluex_env_clean.csh.
- geant4.8.1.p01.tcl Expect script used by geant4_install.sh. Expect is used to answer questions asked by the GEANT4 installation script.
- geant4_install.sh Bourne shell script to build GEANT4 from source. Uses geant4.8.1.p01.tcl to handle the interactive dialog in the installation script.
- gluex_env.csh Sets up the environment in the C shell for building JANA and Hall-D packages.
- hdds_install.sh Bourne shell script to install a stand-alone version of the HDDS package. Not necessary for Hall D users.
- Makefile_all Makefile that builds everything. Invokes all of the other makefiles in this directory in a sensible order.
- Makefile_cernlib Makefile that builds CERNLIB from source. This may be necessary if a compatible binary version does not exist at CERN and/or if the RedHat rpm is missing certain key packages due to license issues.
- Makefile_clhep Makefile to build clhep. CLHEP is used as a sort of C++ CERNLIB-replacement by GEANT4.
- Makefile_halld Makefile to build the Hall-D/GlueX software packages. Relies on JANA having been built.
- Makefile_jana Makefile for building the JANA package.
- Makefile_root Makefile for building ROOT from source.
- Makefile_xerces Makefile that builds the XERCES-C++ package from Apache from source.
- patches Directory containing various patches needed to build some of the packages.
Note: GEANT4 is not currently used by GlueX/Hall-D software.
Using the scripts
Generally one should follow the relevant instructions on the Hall D wiki pages. These scripts give concrete examples of how one might structure a build session. In most cases the retrieval of the source code from web or subversion servers is scripted.
--Marki 09:52, 7 July 2008 (EDT)