summaryrefslogtreecommitdiff
path: root/scripts/build-all.sh
blob: 571b4668dde7c8bc02be77c50c39daa62d6c1ecf (plain)
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
#!/usr/bin/env bash
# MainAX25-Stack — build all merged stacks (max25-bcpr default ON).
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
BUILD_DIR="${BUILD_DIR:-build}"
BUILD_TYPE="${CMAKE_BUILD_TYPE:-Release}"
DO_INSTALL=0
PREFIX="${PREFIX:-/usr/local}"

usage() {
  cat <<USAGE
Usage: $0 [--install] [--prefix DIR] [--build-dir DIR]

  Default: cmake configure + build (TERMINAL/DAEMON/BCPR ON).
  --install   also cmake --install to PREFIX
USAGE
}

while [[ $# -gt 0 ]]; do
  case "$1" in
    --install) DO_INSTALL=1; shift ;;
    --prefix) PREFIX="$2"; shift 2 ;;
    --build-dir) BUILD_DIR="$2"; shift 2 ;;
    -h|--help) usage; exit 0 ;;
    *) echo "unknown: $1" >&2; usage; exit 2 ;;
  esac
done

echo "== MainAX25-Stack build-all (${BUILD_DIR}, ${BUILD_TYPE}) =="
cmake -B "${BUILD_DIR}" \
  -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
  -DMAX25_BUILD_MAX25_BCPR="${MAX25_BUILD_MAX25_BCPR:-ON}" \
  -DMAX25_BUILD_TERMINAL=ON \
  -DMAX25_BUILD_DAEMON=ON \
  -DMAX25_BUNDLE_AX25=OFF
cmake --build "${BUILD_DIR}" -j"$(nproc 2>/dev/null || echo 2)"

echo "== plugin discovery =="
bash scripts/discover-plugins.sh || true

if [[ "$DO_INSTALL" -eq 1 ]]; then
  echo "== install → ${PREFIX} =="
  if [[ "$(id -u)" -eq 0 ]]; then
    cmake --install "${BUILD_DIR}" --prefix "${PREFIX}"
  else
    sudo cmake --install "${BUILD_DIR}" --prefix "${PREFIX}"
  fi
  echo "Launchers: ${PREFIX}/bin/run-max25d  ${PREFIX}/bin/run-max25-terminal"
  echo "Tests:     ${PREFIX}/sbin/max25-tx-rx-test  ${PREFIX}/sbin/max25-bcpr-rxtx-smoke.sh"
fi

echo "== done =="
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com