Difference between revisions of "Build Scripts and Makefiles"

From GlueXWiki
Jump to: navigation, search
(add links to file listings)
(Contents of the directory: update directory information)
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%2Fcernlib_build.sh cernlib_build.sh]''' Bourne shell script 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%2Fclhep_install.sh clhep_install.sh]''' Bourne shell script to build the CLHEP package from source. 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%2Fclhep_install.sh clhep_install.sh]''' Bourne shell script to build the CLHEP package from source. 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%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.
 
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fgluex_env.csh gluex_env.csh]''' Sets up the environment in the C shell for building JANA and Hall-D packages.
 
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fgluex_env.csh gluex_env.csh]''' Sets up the environment in the C shell for building JANA and Hall-D packages.
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fhalld_build.csh halld_build.csh]''' C shell script 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%2Fhdds_install.sh hdds_install.sh]''' Bourne shell script to install a stand-alone version of the HDDS package. Not necessary for Hall D users.
 
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fhdds_install.sh hdds_install.sh]''' Bourne shell script to install a stand-alone version of the HDDS package. Not necessary for Hall D users.
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fjana_build.csh jana_build.csh]''' Bourne shell script for building the JANA package.
+
* '''[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_root Makefile_root]''' GNU makefile for building ROOT from source.
+
* '''[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%2Fpatches patches]''' Directory containing various patches needed to build some of the packages.
+
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_clhep Makefile_clhep]''' Makefile to build clhep. Under development.
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fxerces-c_install.sh xerces-c_install.sh]''' Bourne shell script build the XERCES-C++ package from Apache from source.
+
* '''[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_root Makefile_root]''' Makefile for building ROOT from source.
 +
* '''[http://clasweb.jlab.org/websvn/prod/filedetails.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2FMakefile_xerces Makefile_xerces]''' Makefile that builds the XERCES-C++ package from Apache from source.
 +
* '''[http://clasweb.jlab.org/websvn/prod/listing.php?repname=GlueX&path=%2Ftrunk%2Fscripts%2Fbuild_scripts%2Fpatches%2F#_trunk_scripts_build_scripts_patches_ patches]''' Directory containing various patches needed to build some of the packages.
  
 
Note: GEANT4 is not currently used by GlueX/Hall-D software.
 
Note: GEANT4 is not currently used by GlueX/Hall-D software.

Revision as of 09:51, 7 July 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

  • clhep_install.sh Bourne shell script to build the CLHEP package from source. CLHEP is used as a sort of C++ CERNLIB-replacement by GEANT4.
  • 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. Under development.
  • 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.

N. B. (June 2008): Until recently these were all private scripts that used on Linux boxes under my direct control. There are still a few "Mark's-isms" in the scripts. If there is demand, they can be polished for general use. In the mean time if you have questions or need interpretations, do not hesitate to contact me.

--Marki 15:24, 18 June 2008 (EDT)