#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")" linuxcnc_root=${LINUXCNC_ROOT:-../linuxcnc} cxx=${CXX:-g++} build_dir=${TMPDIR:-/tmp}/cnc_sim_native mkdir -p "$build_dir" var_file="$build_dir/rs274ngc-api.var" cp "$linuxcnc_root/tests/halui/jogging/sim.var" "$var_file" "$cxx" -std=c++17 \ -DCNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND \ $(python3.13-config --includes 2>/dev/null || python3-config --includes) \ -I core/include \ -I core/src \ -I "$linuxcnc_root/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/include" \ core/src/canon_event_sink.cpp \ core/src/cnc_sim_api.cpp \ core/src/gcode_backend.cpp \ core/src/linuxcnc_canon_bridge.cpp \ core/src/linuxcnc_rs274_backend.cpp \ core/src/rtcp_kinematics.cpp \ core/src/simulator_gcode_controls.cpp \ core/src/smoke_gcode_parser.cpp \ core/tests/cnc_sim_api_linuxcnc_rs274_smoke.cpp \ -L "$linuxcnc_root/lib" \ -Wl,-rpath,"$linuxcnc_root/lib" \ -lrs274 \ -ltooldata \ -lpython3.13 \ -o "$build_dir/cnc_sim_api_linuxcnc_rs274_smoke" CNC_SIM_RS274_VAR="$var_file" "$build_dir/cnc_sim_api_linuxcnc_rs274_smoke" echo "linuxcnc rs274 API backend smoke passed"