diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..3b20f2f --- /dev/null +++ b/install.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +set -e + +if [ "$(id -u)" = "0" ]; then + echo "Do not run this script as root. It will ask for sudo when needed." + exit 1 +fi + +command -v apt >/dev/null 2>&1 || { echo "This script requires a Debian-based system with apt."; exit 1; } + +PARENT_DIR="$(cd "$(dirname "$0")/.." && pwd)" + +echo "=== MODEM73 Installer ===" +echo "Install directory: $PARENT_DIR" +echo "" + +PACKAGES="git build-essential libncurses-dev g++" + +read -rp "Install hamlib for rigctl PTT support? [y/N] " HAMLIB +if [[ "$HAMLIB" =~ ^[Yy]$ ]]; then + PACKAGES="$PACKAGES libhamlib-dev libhamlib-utils" +fi + +read -rp "Install libhidapi-dev for CM108 USB PTT support? [y/N] " CM108 +if [[ "$CM108" =~ ^[Yy]$ ]]; then + PACKAGES="$PACKAGES libhidapi-dev" +fi + +echo "" +echo "Installing packages: $PACKAGES" +sudo apt update +sudo apt install -y $PACKAGES + +cd "$PARENT_DIR" + +for repo in dsp code modem; do + if [ -d "$repo" ]; then + echo "$repo/ already exists, skipping clone." + else + git clone "https://github.com/aicodix/${repo}.git" + fi +done + +if [ ! -d "modem73" ]; then + git clone "https://github.com/RFnexus/modem73.git" +fi + +cd modem73 +make clean 2>/dev/null || true +make -j"$(nproc)" AICODIX_DSP=../dsp AICODIX_CODE=../code MODEM_SRC=../modem + +echo "" +echo "Build complete." +echo "" +read -rp "Install modem73 to /usr/local/bin? [y/N] " INSTALL +if [[ "$INSTALL" =~ ^[Yy]$ ]]; then + sudo make install + echo "" + echo "Run: modem73 to launch" +else + echo "" + echo "Run: cd $(pwd) && ./modem73 to launch" +fi