Menu

Running Bilder

Roopa Pundaleeka

Running Bilder

Running Bilder for the Novice User ...

First you will need to check out a ''meta-project'' svn repo that includes the source that you want to build along with the bilder scripts repo.

For example, Tech-X maintains the visitall repo, which can be obtained by:

svn co https://ice.txcorp.com/svnrepos/code/visitall/trunk visitall

In the bilder'ized project, if there is a script usually named "mk<project>all-default.sh" where <project> is the project name that may be abbreviated (e.g. for visitall the script is mkvisitall.sh), then this is the easiest way to run bilder. The options of a top level "default" Bilder script can be seen by running the script with the -h flag:</project></project>

$ ./mkvisitall-default.sh -h
source /Users/cary/projects/visitall/bilder/runnr/runnrfcns.sh
Usage: ./mkvisitall-default.sh [options]
This script is meant to handle some of the vagaries that occur at LCFs and
clusters in large systems (which have complicated file systems) such as those 
that have high performance scratch systems and NFS mounted home systems. This 
script is also meant to ease the use of non-gfortran compilers.
OPTIONS
-c              common installations: for non-LCFS, goes into /contrib,
                /volatile or /internal, for LCFSs, goes into group areas
-C              Install in separate tarball and repo install dirs
                (internal/volatile) rather than in one area (software).
-E <env pairs>  Comma-delimited list of environment var=value pair
-f <file>       File that contains extra arguments to pass
                Default: .extra_args
-F <compiler>   Specify fortran compiler on non-LCF systems
-g              Label the gnu builds the same way other builds occur.
-H <host name>  use rules for this hostname (carver, surveyor, intrepid)
-h              print this message
-i              Software directory is labeled with "internal" if '$USER'
                is member of internal install list
-I              Install in $HOME instead of default location
                (projects directory at LCFs, BUILD_ROOTDIR on non-LCFs)
-j              Maximum allowed value of the arg of make -j
-k              On non-LCFs: Try to find a tarball directory (/contrib)
                On LCFs:     Install tarballs (instead of using facetspkgs)
-m              force this machine file
-n              invoke with a nohup and a redirect output
-p              just print the command
-q <timelimit>  run in queue if possible, with limit of timelimit time
-t              Pass the -t flag to the  mk script (turn on testing)
-v <file>       A file containing a list (without commas) of declared
                environment variables to be passed to mk*.sh script
-w <file>       Specify the name of a file which has a comma-delimited
                list of packages not to build (e.g.,
                plasma_state,nubeam,uedge) Default: .nobuild
--              End processing of args for mkall-default.sh, all remaining
                args are passed to the script.



For this script to work, you must have defined the location of your Bilder configuration directory in the environment variable, BILDER_CONFDIR. This will be discussed more in [ConfiguringBilder].


Running Bilder for the Advanced User ...

In the bilder'ized project, there will be a script named "mk<project>all.sh" where <project> is the project name that may be abbreviated (e.g. for nautilus the script is mkvisitall.sh). The options of a top level Bilder script can be seen by running the script with the -h flag:</project></project>

$ ./mkvisitall.sh -h
/Users/cary/projects/visitall/bilder/runnr/runnrfcns.sh sourced.
Usage: ./mkvisitall.sh [options]
GENERAL OPTIONS
  -A <addl_sp>        Add this to the supra search path
  -b <build_dir>      Build in <build_dir>
  -B <build_type>     CMake build type
  -c ............... Configure packages but don't build
  -C ............... Create installers
  -d ............... Create debug builds (limited package support)
  -D ............... Build/install docs
  -e <addr>          Email log to specified recipients
  -E <env pairs>.... Comma-delimited list of environment var=value pair
  -F ............... Force installation of packages that have local
                     modifications
  -g ............... Allow use of gfortran with version <4.3
  -h ............... Print this message
  -i <install_dir>   Set comma delimited list of installation directories
                     for code in subdirs, expected to be svn repos; install
                     in first directory unless command line contains -2,
                     in which case install in the last directory.
                     <install_dir> defaults to $HOME/software if not set.
  -I ............... Install even if tests fail (ignore test results)
  -j <n>             Pass arg to make with -j
  -k <tarball_dir>   Set installation directory for code in tarballs,
                     expected to be found in one of the pkg repo subdirs;
                     <tarball_dir> defaults to <install_dir> if not set.
  -l <mpi launcher>  The executable that launches an MPI job
  -L ............... Directory for logs (if different from build)
  -m <hostfile>      File to source for machine specific defs
  -M ............... Maximally thread
  -o ............... Install openmpi if not on cygwin.
  -O ............... Install optional packages = ATLAS, parallel visit, ...
  -p <path>          Specify a supra-search-path
  -P ............... Force build of python(does not apply to OS X or Windows)
  -r ............... Remove other installations of a package upon successful
                     installation of that package
  -R ............... Build RELEASE (i.e., licensed) version of executable,
                     if applicable.
  -S ............... Build static
  -t ............... Run tests
  -u ............... Do "svn up" at start
  -U ............... Do not get (direct access or svn up) tarballs
  -v ............... Verbose: print debug information from bilder
  -w <wait days>      Wait this many days before doing a new installation
  -W <disable builds> Build without these packages (comma delimited list)
                      e.g., -W nubeam,plasma_state
  -X ............... Build experimental (new) versions of packages
  -Z ............... Do not execute the final action
  -2 ............... Use the second installation directory of the comma
                     delimited list.  Causes -FI options.


Notes on Installation Directories and Path Modifications

Bilder builds all software, when possible, in ''the build directory'' or <builddir>, which is specified by the -b flag. It also unpacks tarballs into this directory before building them.</builddir>

Bilder defines two installation directories, which may be the same.

Tarballs are installed in ''the tarball directory'' or <tarballdir>, which is specified by the -k flag. This is the /contrib directory at Tech-X.</tarballdir>

Code from repositories is installed in ''the repo directory'' or <repodir>, the directory that is specified by the -i flag. At Tech-X, this is typically /volatile or /internal.</repodir>

If only one of the above directories is specified, then the other directory defaults to the specified directory. If neither directory is specified, then both directories default to $HOME/software.

During the build process, /contrib/autotools/bin:/contrib/valgrind/bin:/contrib/mpi/bin:/contrib/hdf5/bin:/contrib/bin: is added to the front of the path so that the installed packages are use to build the packages.


Debugging Bilder Errors

Bilder is a set of bash scripts. The [https://ice.txcorp.com/svnrepos/code/bilder/trunk/ trunk version of the scripts] will tell you exactly what bilder is doing if you know bash programming.


Related

Wiki: Configuring Bilder

MongoDB Logo MongoDB