-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrecipe.def
215 lines (193 loc) · 7.45 KB
/
recipe.def
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
BootStrap:library
From: ubuntu:20.04
%setup
_pwd=$(pwd)
mkdir -p ${_pwd}/tmp
export SINGULARITY_TMPDIR=${_pwd}/tmp
%help
Environment (Ubuntu 20.04 + mandatory and optional libs) for NASA LIS Framework (https://lis.gsfc.nasa.gov/).
Author: [email protected]
March 2024
%files
terze_parti/openmpi-4.1.6.tar.gz /opt
terze_parti/hdf5-1.12.3.tar.gz /opt
terze_parti/netcdf-c-4.9.2.tar.gz /opt
terze_parti/netcdf-fortran-4.6.1.tar.gz /opt
terze_parti/cmake-3.20.0.tar.gz /opt
terze_parti/openjpeg-2.5.2.tar.gz /opt
terze_parti/eccodes-2.34.1-Source.tar.gz /opt
terze_parti/esmf-ESMF_8_1_1.tar.gz /opt
terze_parti/hdf-4.2.13.tar.gz /opt
terze_parti/HDF-EOS2.20v1.00.tar.Z /opt
terze_parti/sqlite-autoconf-3450200.tar.gz /opt
terze_parti/proj-6.2.0.tar.gz /opt
terze_parti/libgeotiff-1.7.1.tar.gz /opt
terze_parti/gdal-2.4.4.tar.gz /opt
terze_parti/shapelib-master.zip /opt
terze_parti/fortrangis-master.zip /opt
terze_parti/petsc-main.tar.gz /opt
%environment
export LD_LIBRARY_PATH=/opt/hdfeos-build:$LD_LIBRARY_PATH
%post
apt-get update
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y --force-yes install tzdata
apt-get install -y --force-yes texinfo vim dialog locales libtool autoconf git flex gawk
apt-get install -y --force-yes build-essential zlib1g-dev csh libcurl4-gnutls-dev libssl-dev
apt-get install -y --force-yes libxml2-dev libsz2 zip unzip libssl-dev libaec-dev bison libjpeg-turbo8-dev libtiff-dev pkg-config python3 libblas-dev liblapack-dev
apt install -y gcc-10 g++-10 cpp-10 gfortran-10
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-10 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-10 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-10
update-alternatives --install /usr/bin/python python /usr/bin/python3 20
cd /opt
tar xzvf openmpi-4.1.6.tar.gz
cd /opt/openmpi-4.1.6
CFLAGS=-m64 CXXFLAGS=-m64 FCFLAGS=-m64 ./configure --prefix=/usr/local --enable-static
make all install
ldconfig
cd /opt
tar xzvf hdf5-1.12.3.tar.gz
cd /opt/hdf5-1.12.3
CC=/usr/local/bin/mpicc FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 FFLAGS=-I/usr/local/include CFLAGS=-I/usr/local/include CPPFLAGS=-I/usr/local/include \
./configure --enable-parallel --prefix=/usr/local --enable-fortran --with-zlib --with-szlib
make
make install
ldconfig
cd /opt
tar xvf netcdf-c-4.9.2.tar.gz
cd netcdf-c-4.9.2
CC=/usr/local/bin/mpicc LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include \
./configure --prefix=/usr/local --disable-dap-remote-tests
make check install
ldconfig
cd /opt
tar xzvf netcdf-fortran-4.6.1.tar.gz
cd /opt/netcdf-fortran-4.6.1
CPPFLAGS="-I/usr/local/include -DgFortran" LDFLAGS=-L/usr/local/lib \
FC=/usr/local/bin/mpif90 F77=/usr/local/bin/mpif77 CC=/usr/local/bin/mpicc \
F77FLAGS="-O3 -fno-second-underscore" FCFLAGS="-O3 -fno-second-underscore" FFLAGS="-O3 -fno-second-underscore" \
./configure --prefix=/usr/local --enable-shared
make check install
ldconfig
cd /opt
tar xzvf cmake-3.20.0.tar.gz
cd cmake-3.20.0
./bootstrap
make
make install
ldconfig
cd /opt
tar xzvf openjpeg-2.5.2.tar.gz
cd openjpeg-2.5.2
mkdir build
cd build
FC=/usr/local/bin/mpif90 F77=/usr/local/bin/mpif77 CC=/usr/local/bin/mpicc cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/usr/local
make
make install
make clean
cd /opt
tar xzvf eccodes-2.34.1-Source.tar.gz
cd eccodes-2.34.1-Source
mkdir build
cd build
FC=/usr/local/bin/mpif90 F77=/usr/local/bin/mpif77 CC=/usr/local/bin/mpicc cmake ../ -DCMAKE_PREFIX_PATH=/usr/local
make
ctest
make install
ldconfig
cd /opt
tar xzvf sqlite-autoconf-3450200.tar.gz
cd sqlite-autoconf-3450200
CC=/usr/local/bin/mpicc FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 FFLAGS=-I/usr/local/include CFLAGS=-I/usr/local/include CPPFLAGS=-I/usr/local/include \
./configure --prefix=/usr/local
make
make install
ldconfig
cd /opt
tar xzvf proj-6.2.0.tar.gz
cd proj-6.2.0
mkdir build
cd build
CC=/usr/local/bin/mpicc FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 cmake ../ -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -pthread"
cmake --build .
cmake --build . --target install
ldconfig
cd /opt
tar xzvf esmf-ESMF_8_1_1.tar.gz
cd esmf-ESMF_8_1_1
export ESMF_COMM=openmpi
export ESMF_INSTALL_PREFIX=/usr/local
export ESMF_DIR=/opt/esmf-ESMF_8_1_1
export ESMF_OS=Linux
export ESMF_MACHINE=x86_64
export ESMF_NETCDF=split
export ESMF_NETCDF_INCLUDE=/usr/local/include
export ESMF_NETCDF_LIBPATH=/usr/local/lib
export ESMF_PROJ4=external
export ESMF_PROJ4_INCLUDE=/usr/local/include
export ESMF_PROJ4_LIBPATH=/usr/local/lib
export ESMF_PIO=OFF
export ESMF_INSTALL_MODDIR=/usr/local/mod
export ESMF_INSTALL_LIBDIR=/usr/local/lib
export ESMF_INSTALL_HEADERDIR=/usr/local/include
export ESMF_CXXOPTFLAG=-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1
make
make install
## make check
ldconfig
cd /opt
tar xzvf hdf-4.2.13.tar.gz
cd hdf-4.2.13
CC=/usr/local/bin/mpicc FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 FFLAGS="-I/usr/local/include -fPIC" CFLAGS="-I/usr/local/include -fPIC" CPPFLAGS="-I/usr/local/include -fPIC" FFLAGS="-I/usr/local/include -fPIC -fallow-argument-mismatch" ./configure --enable-parallel --prefix=/usr/local --disable-netcdf
make
make install
ldconfig
cd /opt
tar xzvf HDF-EOS2.20v1.00.tar.Z
cd hdfeos
# Devo cambiare prefix perchè sovrascrive /usr/local/include/proj.h
mkdir /opt/hdfeos-build
FC="/usr/local/bin/mpif90" CC="/usr/local/bin/h4cc -Df2cFortran" FFLAGS=-I/usr/local/include CFLAGS=-I/usr/local/include CPPFLAGS=-I/usr/local/include ./configure prefix=/opt/hdfeos-build --enable-install-include
make
make install
ldconfig
cd /opt
tar xzvf libgeotiff-1.7.1.tar.gz
cd libgeotiff-1.7.1
CC=/usr/local/bin/mpicc CFLAGS=-I/usr/local/include ./configure --prefix=/usr/local/ --with-proj=/usr/local
make
make install
ldconfig
cd /opt
tar xzvf gdal-2.4.4.tar.gz
cd gdal-2.4.4
NETCDF_INCLUDE_DIR=/usr/local/include NETCDF_LIBRARY=/usr/local/lib OPENJPEG_INCLUDE_DIR=/usr/local/include/openjpeg-2.5 OPENJPEG_LIBRARY=/usr/local/lib OPENJPEG_LIBRARY=ON CC=/usr/local/bin/mpicc CXX=/usr/local/bin/mpic++ FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --with-proj=/usr/local --disable-shared --without-libtool --prefix=/usr/local --with-openjpeg=/usr/local --with-netcdf=/usr/local
make
make install
ldconfig
cd /opt
unzip shapelib-master.zip
cd shapelib-master
mkdir build
cd build
CC=/usr/local/bin/mpicc FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 cmake .. -DCMAKE_PREFIX_PATH=/usr/local
make
make install
ldconfig
cd /opt
unzip fortrangis-master.zip
cd fortrangis-master
mkdir build
cd build
CC=/usr/local/bin/mpicc FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 FFLAGS="-I/opt/fortrangis-master/include" cmake .. -DCMAKE_PREFIX_PATH=/usr/local
make
make install
ldconfig
cd /opt
tar xzvf petsc-main.tar.gz
cd petsc-main
./configure CC=/usr/local/bin/mpicc FC=/usr/local/bin/mpif90 F90=/usr/local/bin/mpif90 --prefix=/usr/local --with-mpi-include=/usr/local/include/openmpi --with-mpi-lib=/usr/local/lib/libmpi.so
make PETSC_DIR=/opt/petsc-main PETSC_ARCH=arch-linux-c-debug all
make PETSC_DIR=/opt/petsc-main PETSC_ARCH=arch-linux-c-debug install
ldconfig