-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_g2.sh
executable file
·127 lines (118 loc) · 3.62 KB
/
build_g2.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/bash
: ${THISDIR:=$(dirname $(readlink -f -n ${BASH_SOURCE[0]}))}
CDIR=$PWD; cd $THISDIR
source ./Conf/Analyse_args.sh
source ./Conf/Collect_info.sh
source ./Conf/Gen_cfunction.sh
source ./Conf/Reset_version.sh
if [[ ${sys} == "intel_general" ]]; then
sys6=${sys:6}
source ./Conf/G2_${sys:0:5}_${sys6^}.sh
rinst=false
elif [[ ${sys} == "gnu_general" ]]; then
sys4=${sys:4}
source ./Conf/G2_${sys:0:3}_${sys4^}.sh
rinst=false
else
source ./Conf/G2_intel_${sys^}.sh
fi
$CC --version &> /dev/null || {
echo "??? G2: compilers not set." >&2
exit 1
}
[[ -z ${G2_VER+x} || -z ${G2_LIB4+x} ]] && {
[[ -z ${libver+x} || -z ${libver} ]] && {
echo "??? G2: \"libver\" not set." >&2
exit
}
G2_INC4=${libver}_4
G2_INCd=${libver}_d
G2_LIB4=lib${libver}_4.a
G2_LIBd=lib${libver}_d.a
G2_VER=v${libver##*_v}
}
set -x
g2Lib4=$(basename $G2_LIB4)
g2Libd=$(basename $G2_LIBd)
g2Inc4=$(basename $G2_INC4)
g2Incd=$(basename $G2_INCd)
#################
cd src
#################
#-------------------------------------------------------------------
# Start building libraries
#
echo
echo " ... build (i4/r4) g2 library ..."
echo
make clean LIB=$g2Lib4 MOD=$g2Inc4
mkdir -p $g2Inc4
FFLAGS4="$I4R4 $FFLAGS ${MODPATH}$g2Inc4"
collect_info g2 4 OneLine4 LibInfo4
g2Info4=g2_info_and_log4.txt
$debg && make debug FFLAGS="$FFLAGS4" LIB=$g2Lib4 &> $g2Info4 \
|| make build FFLAGS="$FFLAGS4" LIB=$g2Lib4 &> $g2Info4
make message MSGSRC="$(gen_cfunction $g2Info4 OneLine4 LibInfo4)" LIB=$g2Lib4
echo
echo " ... build (i4/r8) g2 library ..."
echo
make clean LIB=$g2Libd MOD=$g2Incd
mkdir -p $g2Incd
FFLAGSd="$I4R8 $FFLAGS ${MODPATH}$g2Incd"
collect_info g2 d OneLined LibInfod
g2Infod=g2_info_and_logd.txt
$debg && make debug FFLAGS="$FFLAGSd" LIB=$g2Libd &> $g2Infod \
|| make build FFLAGS="$FFLAGSd" LIB=$g2Libd &> $g2Infod
make message MSGSRC="$(gen_cfunction $g2Infod OneLined LibInfod)" LIB=$g2Libd
$inst && {
#
# Install libraries and source files
#
$local && {
instloc=..
LIB_DIR=$instloc/lib
INCP_DIR=$instloc/include
[ -d $LIB_DIR ] || { mkdir -p $LIB_DIR; }
[ -d $INCP_DIR ] || { mkdir -p $INCP_DIR; }
LIB_DIR4=$LIB_DIR
LIB_DIRd=$LIB_DIR
INCP_DIR4=$INCP_DIR
INCP_DIRd=$INCP_DIR
SRC_DIR=
} || {
$rinst && {
LIB_DIR4=$(dirname ${G2_LIB4})
LIB_DIRd=$(dirname ${G2_LIBd})
INCP_DIR4=$(dirname $G2_INC4)
INCP_DIRd=$(dirname $G2_INCd)
[ -d $G2_INC4 ] && { rm -rf $G2_INC4; } \
|| { mkdir -p $INCP_DIR4; }
[ -d $G2_INCd ] && { rm -rf $G2_INCd; } \
|| { mkdir -p $INCP_DIRd; }
SRC_DIR=$G2_SRC
} || {
LIB_DIR=$instloc/lib
LIB_DIR4=$LIB_DIR
LIB_DIRd=$LIB_DIR
INCP_DIR=$instloc/include
INCP_DIR4=$INCP_DIR
INCP_DIRd=$INCP_DIR
G2_INC4=$INCP_DIR4/$G2_INC4
G2_INCd=$INCP_DIRd/$G2_INCd
[ -d $G2_INC4 ] && { rm -rf $G2_INC4; } \
|| { mkdir -p $INCP_DIR4; }
[ -d $G2_INCd ] && { rm -rf $G2_INCd; } \
|| { mkdir -p $INCP_DIRd; }
SRC_DIR=$instloc/src
[[ $instloc == .. ]] && SRC_DIR=
}
[ -d $LIB_DIR4 ] || mkdir -p $LIB_DIR4
[ -d $LIB_DIRd ] || mkdir -p $LIB_DIRd
[ -z $SRC_DIR ] || { [ -d $SRC_DIR ] || mkdir -p $SRC_DIR; }
}
make clean LIB=
make install LIB=$g2Lib4 MOD=$g2Inc4 \
LIB_DIR=$LIB_DIR4 INC_DIR=$INCP_DIR4 SRC_DIR=
make install LIB=$g2Libd MOD=$g2Incd \
LIB_DIR=$LIB_DIRd INC_DIR=$INCP_DIRd SRC_DIR=$SRC_DIR
}