84 lines
2.9 KiB
Bash
Executable File
84 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 使用 uname 获取操作系统类型
|
||
OS_TYPE=$(uname -s)
|
||
|
||
# 根据操作系统类型安装外部依赖库
|
||
case $OS_TYPE in
|
||
Linux)
|
||
# 判断是否是基于 Debian 的系统(如 Ubuntu)
|
||
if [ -f /etc/debian_version ]; then
|
||
echo "Detected Debian-based system (e.g., Ubuntu)."
|
||
# 安装 apt 包管理器(如果尚未安装)
|
||
sudo apt-get update
|
||
sudo apt-get install -y apt
|
||
# 使用 apt 安装依赖
|
||
sudo apt-get install -y libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev
|
||
# 判断是否是基于 Red Hat 的系统(如 CentOS)
|
||
elif [ -f /etc/redhat-release ]; then
|
||
echo "Detected Red Hat-based system (e.g., CentOS)."
|
||
# 安装 yum 包管理器(CentOS 7)或 dnf 包管理器(CentOS 8 及以上)
|
||
if command -v yum &> /dev/null; then
|
||
sudo yum install -y yum
|
||
sudo yum install -y libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev
|
||
elif command -v dnf &> /dev/null; then
|
||
sudo dnf install -y dnf
|
||
sudo dnf install -y libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev
|
||
else
|
||
echo "Package manager not found. Please check your system configuration."
|
||
exit 1
|
||
fi
|
||
else
|
||
echo "Unsupported Linux distribution."
|
||
exit 1
|
||
fi
|
||
;;
|
||
Darwin)
|
||
echo "Detected macOS."
|
||
# 安装 Homebrew(如果尚未安装)
|
||
if ! command -v brew &> /dev/null; then
|
||
echo "Installing Homebrew..."
|
||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||
fi
|
||
# 使用 Homebrew 安装 gcc
|
||
brew install fftw3 netcdf gmt gsl ncurses
|
||
;;
|
||
*)
|
||
echo "Unsupported operating system: $OS_TYPE"
|
||
exit 1
|
||
;;
|
||
esac
|
||
|
||
# 0. 拷贝cmake配置文件
|
||
sudo mkdir /usr/local/lib/cmake && \
|
||
sudo cp -r dep/cmake /usr/local/lib/cmake
|
||
|
||
# 1. 编译安装EEMD
|
||
sudo mkdir /opt/stow/libeemd && \
|
||
mkdir dep/libeemd/build && \
|
||
cd dep/libeemd/build && \
|
||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/stow/libeemd && \
|
||
make && make install
|
||
|
||
sudo stow -d /opt/stow -t /usr/local -S libeemd
|
||
|
||
# 2. 编译安装netcdfcxx_legacy
|
||
sudo mkdir /opt/stow/netcdfcpp && \
|
||
mkdir dep/netcdfcxx_legacy/build && \
|
||
cd dep/netcdfcxx_legacy/build && \
|
||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/stow/netcdfcpp && \
|
||
make && make install
|
||
|
||
sudo stow -d /opt/stow -t /usr/local -S netcdfcpp
|
||
|
||
# 3. 拷贝partow模版文件
|
||
sudo cp -r dep/partow /opt/stow
|
||
|
||
# 4. 编译安装gctl
|
||
sudo mkdir /opt/stow/gctl && \
|
||
mkdir build && \
|
||
cd build && \
|
||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/stow/gctl && \
|
||
make && make install
|
||
|
||
sudo stow -d /opt/stow -t /usr/local -S gctl |