1 |
# This is a script in Bash. |
2 |
|
3 |
# This script allows to build LMDZE into a directory other than |
4 |
# "libf". Optionally, a compiler may be chosen on the command line. |
5 |
|
6 |
# -- If a compiler is chosen on the command line then the script links |
7 |
# a compiler file to the directory "libf" and builds LMDZE into a |
8 |
# directory associated to the chosen compiler. |
9 |
|
10 |
# -- If the compiler is not chosen on the command line and a compiler |
11 |
# file already exists in "libf" then the script builds LMDZE with that |
12 |
# compiler into the directory associated to it. |
13 |
|
14 |
# -- If the compiler is not chosen on the command line and there is no |
15 |
# compiler file in "libf" then the script builds LMDZE with the |
16 |
# default compiler macros of make into a default directory. The |
17 |
# default directory is defined in the script. |
18 |
|
19 |
# If you just want to build into "libf" with the current compiler |
20 |
# file, you can invoke "make" directly. |
21 |
|
22 |
# Usage: |
23 |
|
24 |
# make.sh [-c <<<compiler>>>] [options and arguments for make] |
25 |
|
26 |
# The file "<<<compiler>>>.mk" should exist in "../Compilers" and the |
27 |
# directory "<<<compiler>>>" shoud exist in "$dest_dir". |
28 |
|
29 |
# Note that "-c" was chosen because it is not an option of "make". |
30 |
|
31 |
getopts :c: name |
32 |
if ((($? == 0)) && [[ $name = c ]]) |
33 |
then |
34 |
echo "Linking \"$OPTARG.mk\"..." |
35 |
ln -sf ../Compilers/$OPTARG.mk compiler.mk |
36 |
target=$OPTARG |
37 |
shift $((OPTIND - 1)) |
38 |
else |
39 |
# Find the current compiler, if any: |
40 |
if [[ -L compiler.mk ]] |
41 |
then |
42 |
target=`basename $(readlink compiler.mk) .mk` |
43 |
fi |
44 |
fi |
45 |
|
46 |
##dest_dir=$workdir/In_transit/LMDZE/Compil_prod |
47 |
dest_dir=/usr/local/guez/LMDZ_work/LMDZE/Compil_prod${target:+_$target} |
48 |
# (Do not just use the name of the compiler as a directory name, it |
49 |
# confuses some compilers.) |
50 |
|
51 |
set -xe |
52 |
gmake -C $dest_dir -f $PWD/GNUmakefile -I$PWD $* libf_dir=$PWD |