As an example, here is how to build the branch opt
on top of the branch bf
of cycle 31t1
for the executable ALADIN :
% gmkpack -r31t1 -bbf -uopt -p aladin
/home/khatib/bin/gmkpack/util/gmkpack starts. Creating pack /home/khatib/pack/opt upon /home/khatib/rootpack/31t1_bf.01.PGI616.x ... Architecture file directory : .gmkfile/ copy PGI.LXGMAP from directory /home/khatib/rootpack/31t1_bf.01.PGI616.x/.gmkfile Programs system directories : sys sys/odb98.x -> /home/khatib/rootpack/31t1_main.01.PGI616.x/sys/odb98.x sys/bl95.x -> /home/khatib/rootpack/31t1_main.01.PGI616.x/sys/bl95.x Basic directories : src src/local lib bin Unsatisfied external references directories : src/unsxref/quiet src/unsxref/verbose Sources control directory : src/.gmak Sources view : local inter.1 main Links : src/inter.1 -> /home/khatib/rootpack/31t1_bf.01.PGI616.x/src/local src/main -> /home/khatib/rootpack/31t1_main.01.PGI616.x/src/local Background source descriptors files : inter.1.sds main.sds "main" tree for ald ... "main" tree for arp ... "main" tree for bla ... no tree for coh "main" tree for mpa ... "main" tree for mse ... "main" tree for odb ... no tree for ost "main" tree for sat ... "main" tree for sur ... "main" tree for tal ... "main" tree for tfl ... "main" tree for uti ... "main" tree for xrd ... libarp.inter.1.a -> /home/khatib/rootpack/31t1_bf.01.PGI616.x/lib/libarp.local.a libald.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libald.local.a libarp.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libarp.local.a libbator-uti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libbator-uti.local.a libbla.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libbla.local.a libcma-odb.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libcma-odb.local.a libdummyald.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libdummyald.local.a libdummybla.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libdummybla.local.a libdummympa.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libdummympa.local.a libdummymse.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libdummymse.local.a libdummyodb.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libdummyodb.local.a libdummysat.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libdummysat.local.a libdummytal.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libdummytal.local.a libextrtovs-uti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libextrtovs-uti.local.a libfcq-uti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libfcq-uti.local.a libgrib-uti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libgrib-uti.local.a libmain-odb.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libmain-odb.local.a libmpa.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libmpa.local.a libmse.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libmse.local.a libmtocomp-odb.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libmtocomp-odb.local.a libodb.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libodb.local.a liboulan-uti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/liboulan-uti.local.a libport-odb.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libport-odb.local.a libpregpssol-uti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libpregpssol-uti.local.a libprescat-uti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libprescat-uti.local.a libprograms-ald.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libprograms-ald.local.a libsat.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libsat.local.a libscr-odb.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libscr-odb.local.a libsur.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libsur.local.a libtal.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libtal.local.a libtfl.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libtfl.local.a libunsxref-verbose.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libunsxref-verbose.local.a libuti.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libuti.local.a libxrd.main.a -> /home/khatib/rootpack/31t1_main.01.PGI616.x/lib/libxrd.local.a Background include/module paths ... -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/ald/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/arp/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/chem/internals -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/chem/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/conv/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/micro/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/turb/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mse/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/sat/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/sur/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/tal/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/tfl/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/uti/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/uti/prescat/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/fa -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/module -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/bla/library -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/bla/old2new -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/aux -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/lib -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/tools -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/support -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/svipc -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/utilities -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/ddl.CCMA -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/ddl.ECMA -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/ddl.ECMASCR -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/ddl.MTOCOMP -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/arp/ald_inc/function -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/arp/ald_inc/namelist -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/arp/common -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/arp/function -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/arp/namelist -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/bla/include -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/chem/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/chem/internals -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/conv/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/micro/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mpa/turb/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/mse/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/include -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/odb/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/sat/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/sur/function -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/sur/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/tal/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/tfl/interface -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/uti/include -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/uti/namelist -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/ddh -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/fa -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/include -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/lfi -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/xrd/svipc/include -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/.intfb/ald -I/home/khatib/rootpack/31t1_main.01.PGI616.x/src/local/.intfb/arp done. Genesis : /home/khatib/bin/gmkpack.6.3/util/gmkpack -r 31t1 -b bf -v 01 -u opt -l PGI616 -o x -p aladin Prepare script(s) ... > copy compilation and load script on /home/khatib/pack/opt/ics_aladin ... /home/khatib/bin/gmkpack/util/gmkpack ends.
GmkPack has created a pack named opt
with a compilation script inside, named ics_aladin
.
Remarks :
-u
had been omitted, then the pack would have been named
31t1_bf.01.PGI616.x
, which is not very accurate : the names refers to the reference pack, not to the modification label.
ROOTPACK
and HOMEPACK
had the same value, then the pack would have been named
31t1_opt.01.PGI616.x
. Having ROOTPACK=HOMEPACK
offers this special facility : thanks to its expanded name the new working pack will be able to be used a reference pack for another working pack.
Discussion : together with a new naming convention as described in the introduction, the use of the option -u should be mandatory for working pack, so that any working pack could serve as a reference pack. Today this is possible only if the option -u is omitted, which would make unclear the stacking of reference packs.
This pack is lying upon the reference pack 31t1_bf.01.PGI616.x
, as shown in the logfile :
sys
the precompilers are linked from the bottom (main) pack 31t1_main.01.PGI616.x
src
various directories are created :
main
'' is a symbolic link to the directory local
of the main pack 31t1_main.01.PGI616.x
inter.1
'' is a symbolic link to the directory local
of the reference pack 31t1_bf.01.PGI616.x
local
'' is the working source code directory and is mapped from the directory tree of the main pack.
lib
all the libraries from the reference pack are present as symbolic links.
Note that at this stage, the pack is always empty, that is : it does not contain any new source file (apart the source code
coming from the reference pack) though subdirectories have been created.
The source code directories src/local/*
have to be filled by yourself (for the time being there is no option in GmkPack to
import source code).
Once this is done, you can submit or execute the compilation script :
./ics_aladin 2>&1 | tee ics_aladin.outHere the output of
ics_aladin
is piped to tee
in order to keep a logile of the execution. If there is no batch scheduler in the machine,
another way to do that is to mimic the behavior of a scheduler in a script like the one below :
if [ -f $HOME/.qsub ] ; then i=$(cat $HOME/.qsub) else i=0 fi i=$(($i+1)) echo $i > $HOME/.qsub chmod 755 $1 time ./$1 2>&1 | tee $1.o$i
If everything works fine you should get at the end new libraries in the directory lib
and executables in the directory
bin
. Unless the source code added is huge the compilation should be fast.