Skip to content

Instantly share code, notes, and snippets.

@hckaraman
Created February 1, 2024 16:57
Show Gist options
  • Save hckaraman/a2c22bb4e93fb1372a46dab5a47d8e20 to your computer and use it in GitHub Desktop.
Save hckaraman/a2c22bb4e93fb1372a46dab5a47d8e20 to your computer and use it in GitHub Desktop.
!#/usr/bin/bash
sudo apt-get install cmake make gcc g++ gfortran m4
# create costs folder
cd /usr/local/
sudo mkdir FCICOMP_COTS
cd FCICOMP_COTS
sudo mkdir zlib
sudo mkdir hdf5
sudo mkdir netcdf
sudo mkdir charls
# data folder
folder=/data/libs
cd $folder
# install zlib
tar -xvf zlib-1.2.12.tar.gz
cd zlib-1.2.12/
INSTALL=/usr/local/FCICOMP_COTS/zlib
./configure --prefix=$INSTALL
sudo make install
# install hdf
cd $folder
tar -xvf hdf5-1.8.22.tar.gz
cd hdf5-1.8.22
INSTALL=/usr/local/FCICOMP_COTS/hdf5
ZLIB=/usr/local/FCICOMP_COTS/zlib
export LIBS=-ldl
./configure --enable-hl --with-zlib=$ZLIB --prefix=$INSTALL
make -j8
sudo make install
# install netcdf
cd $folder
tar -xvf netcdf-c-4.8.1.tar.gz && cd netcdf-c-4.8.1
INSTALL=/usr/local/FCICOMP_COTS/netcdf
ZLIB=/usr/local/FCICOMP_COTS/zlib
HDF5=/usr/local/FCICOMP_COTS/hdf5
export LD_LIBRARY_PATH=$HDF5/lib:$ZLIB/lib:$LD_LIBRARY_PATH
export LDFLAGS="-L$HDF5/lib -L$ZLIB/lib"
export CPPFLAGS="-I$HDF5/include -I$ZLIB/include"
./configure --enable-netcdf-4 --prefix=$INSTALL
make -j8
sudo make install
# charls
cd $folder
tar -xvf charls-1.0.tar.gz && cd charls-1.0
sed -i.ori '1s/^/#include "header.h"\n/' defaulttraits.h
mkdir ../CharLS-build-1.0
cd ../CharLS-build-1.0
cmake -Dcharls_BUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=RELEASE ../charls-1.0
make -j8
INSTALL=/usr/local/FCICOMP_COTS/charls
sudo mkdir -p $INSTALL/lib $INSTALL/include
sudo cp libCharLS.so $INSTALL/lib
cd ../charls-1.0
sudo cp config.h interface.h publictypes.h $INSTALL/include
## fci
cd $folder
tar -xvf EUMETSAT-FCIDECOMP_V1.0.2.tar.gz && cd FCIDECOMP_V1.0.2/Software
tar -xvf fcidecomp_sources-V1.0.2.tar.gz && cd FCIDECOMP_SOURCES
CHARLS_INSTALLATION_PATH=/usr/local/FCICOMP_COTS/charls
FCIDECOMP_INSTALLATION_PATH=/usr/local
HDF5_INSTALLATION_PATH=/usr/local/FCICOMP_COTS/hdf5
ZLIB_INSTALLATION_PATH=/usr/local/FCICOMP_COTS/zlib
NETCDF_INSTALLATION_PATH=/usr/local/FCICOMP_COTS/netcdf
./gen/build.sh fcicomp-jpegls release \
-DCMAKE_PREFIX_PATH=${CHARLS_INSTALLATION_PATH} \
-DCMAKE_INSTALL_PREFIX=${FCIDECOMP_INSTALLATION_PATH}
./gen/build.sh fcicomp-jpegls test
sudo ./gen/install.sh fcicomp-jpegls
./gen/build.sh fcicomp-H5Zjpegls release -DCMAKE_PREFIX_PATH="${FCIDECOMP_INSTALLATION_PATH};${ZLIB_INSTALLATION_PATH};${HDF5_INSTALLATION_PATH}" -DCMAKE_INSTALL_PREFIX=${FCIDECOMP_INSTALLATION_PATH}
./gen/build.sh fcicomp-H5Zjpegls test
sudo ./gen/install.sh fcicomp-H5Zjpegls
# post installation
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${FCIDECOMP_INSTALLATION_PATH}/lib:
export HDF5_PLUGIN_PATH=$HDF5_PLUGIN_PATH:${FCIDECOMP_INSTALLATION_PATH}/hdf5/lib/plugin/
export PATH=${NETCDF_INSTALLATION_PATH}/bin/:$PATH
export LD_LIBRARY_PATH${NETCDF_INSTALLATION_PATH}/lib:${HDF5_INSTALLATION_PATH}/lib:$LD_LIBRARY_PATH
# test
nccopy -s -d 9 dummy_dataset.nc dummy_dataset_deflate.nc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment