#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")" linuxcnc_root=${LINUXCNC_ROOT:-../linuxcnc} cxx=${CXX:-g++} build_dir=$(mktemp -d "${TMPDIR:-/tmp}/cnc_sim_native.XXXXXX") if [[ ! -d "$linuxcnc_root" ]]; then echo "missing LinuxCNC root: $linuxcnc_root" >&2 exit 1 fi trap 'rm -rf "$build_dir"' EXIT project_source_list="$build_dir/linuxcnc_bridge_smoke_project_sources.txt" ./list-linuxcnc-bridge-smoke-project-sources.sh > "$project_source_list" mapfile -t project_sources < "$project_source_list" "$cxx" -std=c++17 \ -I core/include \ -I core/src \ -I "$linuxcnc_root/src/emc" \ -I "$linuxcnc_root/src/emc/nml_intf" \ -I "$linuxcnc_root/src/emc/rs274ngc" \ -I "$linuxcnc_root/src/emc/motion" \ -I "$linuxcnc_root/src" \ -I "$linuxcnc_root/include" \ "${project_sources[@]}" \ core/tests/linuxcnc_canon_bridge_smoke.cpp \ -L "$linuxcnc_root/lib" \ -Wl,-rpath,"$linuxcnc_root/lib" \ -ltooldata \ -o "$build_dir/linuxcnc_canon_bridge_smoke" "$build_dir/linuxcnc_canon_bridge_smoke" echo "linuxcnc canon bridge smoke passed"