Files
cnc_wams/wasm-port/tools/build_native_probes.sh
wangdequan a16f3605fa 按规划继续工作
结论:接入 vendored LinuxCNC tooldata_common.cc 负责刀具表解析与保存,WASM/SDK/OPFS/UI 仅做运行时边界搬运;native、WASM、OPFS 和浏览器 smoke 验证已通过。
2026-06-08 08:31:10 +08:00

1482 lines
46 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
VENDOR_DIR="$ROOT_DIR/vendor/linuxcnc"
BUILD_DIR="$ROOT_DIR/build/native"
WRAP_DIR="$ROOT_DIR/runtime/core/linuxcnc_wrap"
SHIM_DIR="$ROOT_DIR/runtime/core/shims"
INCLUDE_DIR="$ROOT_DIR/runtime/core/include"
SOURCE_PROBE_MAP="$BUILD_DIR/source-probes.tsv"
MINIMAL_GCODE_FIXTURE="$ROOT_DIR/tests/fixtures/gcode/minimal_linear.ngc"
NAMEDPARAM_INI_FIXTURE="$ROOT_DIR/tests/fixtures/ini/namedparams.ini"
CXX="${CXX:-g++}"
CC="${CC:-gcc}"
mkdir -p "$BUILD_DIR"
: > "$SOURCE_PROBE_MAP"
COMMON_FLAGS=(
-std=c++20
-O2
-D_GNU_SOURCE
-DM_PI=3.14159265358979323846
-DOBJECT_FWD_DWA2002724_HPP
-I"$WRAP_DIR"
-I"$SHIM_DIR"
-I"$INCLUDE_DIR"
-I"$VENDOR_DIR/src"
-I"$VENDOR_DIR/src/rtapi"
-I"$VENDOR_DIR/src/emc"
-I"$VENDOR_DIR/src/emc/nml_intf"
-I"$VENDOR_DIR/src/emc/motion"
-I"$VENDOR_DIR/src/emc/tp"
-I"$VENDOR_DIR/src/emc/kinematics"
-I"$VENDOR_DIR/src/libnml/posemath"
)
COMMON_INI_FLAGS=(
"${COMMON_FLAGS[@]}"
-I"$VENDOR_DIR/src/emc/ini"
)
MINIMAL_FLAGS=(
"${COMMON_INI_FLAGS[@]}"
-ffunction-sections
-fdata-sections
-DUNIT_TEST
-DLINUXCNC_STANDALONE_USE_RS274_PRE_STATE
)
INTERP_BASE_FLAGS=(
"${MINIMAL_FLAGS[@]}"
-DEMC2_HOME=\"/standalone\"
)
MINIMAL_LINK_FLAGS=(
-Wl,--gc-sections
)
TP_FLAGS=(
"${COMMON_FLAGS[@]}"
-fpermissive
)
C_FLAGS=(
-std=gnu11
-O2
-D_GNU_SOURCE
-DM_PI=3.14159265358979323846
-I"$WRAP_DIR"
-I"$SHIM_DIR"
-I"$INCLUDE_DIR"
-I"$VENDOR_DIR/src"
-I"$VENDOR_DIR/src/rtapi"
-I"$VENDOR_DIR/src/emc"
-I"$VENDOR_DIR/src/emc/nml_intf"
-I"$VENDOR_DIR/src/emc/motion"
-I"$VENDOR_DIR/src/emc/tp"
-I"$VENDOR_DIR/src/emc/kinematics"
-I"$VENDOR_DIR/src/libnml/posemath"
)
write_command_file() {
local file="$1"
shift
printf '%q\n' "$@" > "$file"
}
command_matches() {
local file="$1"
shift
local tmp
tmp="$(mktemp)"
write_command_file "$tmp" "$@"
if [[ -f "$file" ]] && cmp -s "$tmp" "$file"; then
rm -f "$tmp"
return 0
fi
rm -f "$tmp"
return 1
}
depfile_newer_than() {
local depfile="$1"
local output="$2"
[[ -f "$depfile" ]] || return 0
local deps
deps="$(tr '\\\n' ' ' < "$depfile" | sed -e 's/^[^:]*://')"
local dep
for dep in $deps; do
if [[ -f "$dep" && "$dep" -nt "$output" ]]; then
return 0
fi
done
return 1
}
object_needs_rebuild() {
local obj="$1"
local depfile="$2"
local cmdfile="$3"
shift 3
[[ -f "$obj" ]] || return 0
command_matches "$cmdfile" "$@" || return 0
depfile_newer_than "$depfile" "$obj" && return 0
return 1
}
compile_object() {
local target="$1"
local source="$2"
local obj="$3"
shift 3
local stdout_log="$BUILD_DIR/$target.stdout.log"
local stderr_log="$BUILD_DIR/$target.stderr.log"
local depfile="$obj.d"
local cmdfile="$obj.cmd"
local cmd=("$CXX" "$@" -MMD -MP -MF "$depfile" -c "$source" -o "$obj")
mkdir -p "$(dirname "$obj")"
if ! object_needs_rebuild "$obj" "$depfile" "$cmdfile" "${cmd[@]}"; then
printf 'up to date: %s\n' "$source" >> "$stdout_log"
return 0
fi
printf 'compile: %s\n' "$source" >> "$stdout_log"
if "${cmd[@]}" >> "$stdout_log" 2>> "$stderr_log"; then
write_command_file "$cmdfile" "${cmd[@]}"
return 0
fi
return 1
}
compile_c_object() {
local target="$1"
local source="$2"
local obj="$3"
shift 3
local stdout_log="$BUILD_DIR/$target.stdout.log"
local stderr_log="$BUILD_DIR/$target.stderr.log"
local depfile="$obj.d"
local cmdfile="$obj.cmd"
local cmd=("$CC" "$@" -MMD -MP -MF "$depfile" -c "$source" -o "$obj")
mkdir -p "$(dirname "$obj")"
if ! object_needs_rebuild "$obj" "$depfile" "$cmdfile" "${cmd[@]}"; then
printf 'up to date: %s\n' "$source" >> "$stdout_log"
return 0
fi
printf 'compile-c: %s\n' "$source" >> "$stdout_log"
if "${cmd[@]}" >> "$stdout_log" 2>> "$stderr_log"; then
write_command_file "$cmdfile" "${cmd[@]}"
return 0
fi
return 1
}
record_source_probe() {
local target="$1"
local source="$2"
[[ "$target" == *_source_probe ]] || return 0
[[ "$source" == "$VENDOR_DIR/"* ]] || return 0
printf '%s\t%s\n' "${source#"$VENDOR_DIR"/}" "$target" >> "$SOURCE_PROBE_MAP"
}
link_needs_rebuild() {
local output="$1"
local cmdfile="$2"
shift 2
[[ -f "$output" ]] || return 0
command_matches "$cmdfile" "$@" || return 0
local arg
for arg in "$@"; do
if [[ -f "$arg" && "$arg" -nt "$output" ]]; then
return 0
fi
done
return 1
}
link_binary() {
local target="$1"
local output="$2"
shift 2
local stdout_log="$BUILD_DIR/$target.stdout.log"
local stderr_log="$BUILD_DIR/$target.stderr.log"
local cmdfile="$output.cmd"
local cmd=("$CXX" "$@" -o "$output")
if ! link_needs_rebuild "$output" "$cmdfile" "${cmd[@]}"; then
printf 'up to date: %s\n' "$output" >> "$stdout_log"
return 0
fi
printf 'link: %s\n' "$output" >> "$stdout_log"
if "${cmd[@]}" >> "$stdout_log" 2>> "$stderr_log"; then
write_command_file "$cmdfile" "${cmd[@]}"
return 0
fi
return 1
}
compile_target_objects() {
local target="$1"
local flags_name="$2"
local sources_name="$3"
local objs_name="$4"
local -n flags="$flags_name"
local -n sources="$sources_name"
local -n objs="$objs_name"
local obj_dir="$BUILD_DIR/obj/$target"
local status=0
objs=()
local source
for source in "${sources[@]}"; do
local base
base="$(basename "$source")"
local obj="$obj_dir/${base%.*}.o"
objs+=("$obj")
if ! compile_object "$target" "$source" "$obj" "${flags[@]}"; then
status=1
fi
done
return "$status"
}
build_binary_target() {
local target="$1"
local output="$2"
local flags_name="$3"
local sources_name="$4"
local link_flags_name="$5"
shift 5
local stdout_log="$BUILD_DIR/$target.stdout.log"
local stderr_log="$BUILD_DIR/$target.stderr.log"
: > "$stdout_log"
: > "$stderr_log"
local target_objs=()
local status=0
if ! compile_target_objects "$target" "$flags_name" "$sources_name" target_objs; then
status=1
fi
if [[ "$status" -eq 0 ]]; then
local -n link_flags="$link_flags_name"
if ! link_binary "$target" "$output" "${link_flags[@]}" "${target_objs[@]}" "$@"; then
status=1
fi
fi
echo "$status" > "$BUILD_DIR/$target.exitcode"
return "$status"
}
build_object_target() {
local target="$1"
local output="$2"
local source="$3"
local flags_name="$4"
local stdout_log="$BUILD_DIR/$target.stdout.log"
local stderr_log="$BUILD_DIR/$target.stderr.log"
: > "$stdout_log"
: > "$stderr_log"
local -n flags="$flags_name"
local status=0
if ! compile_object "$target" "$source" "$output" "${flags[@]}"; then
status=1
fi
record_source_probe "$target" "$source"
echo "$status" > "$BUILD_DIR/$target.exitcode"
return "$status"
}
build_c_object_target() {
local target="$1"
local output="$2"
local source="$3"
local flags_name="$4"
local stdout_log="$BUILD_DIR/$target.stdout.log"
local stderr_log="$BUILD_DIR/$target.stderr.log"
: > "$stdout_log"
: > "$stderr_log"
local -n flags="$flags_name"
local status=0
if ! compile_c_object "$target" "$source" "$output" "${flags[@]}"; then
status=1
fi
record_source_probe "$target" "$source"
echo "$status" > "$BUILD_DIR/$target.exitcode"
return "$status"
}
NO_LINK_FLAGS=()
INI_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/ini/inifile.cc"
"$WRAP_DIR/linuxcnc_ini_probe.cpp"
)
STATE_PROBE_SOURCES=(
"$WRAP_DIR/linuxcnc_interp_state_probe.cpp"
)
EMC_STATUS_PROBE_SOURCES=(
"$WRAP_DIR/linuxcnc_emc_status_runtime.cpp"
"$WRAP_DIR/linuxcnc_emc_status_probe.cpp"
)
TP_API_PROBE_SOURCES=(
"$WRAP_DIR/linuxcnc_tp_api_probe.cpp"
)
KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/trivkins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_kinematics_probe.cpp"
)
FIVEAXIS_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/switchkins.c"
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/5axiskins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_5axis_kinematics_probe.cpp"
)
XYZAC_TRT_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/switchkins.c"
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/trtfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/xyzac-trt-kins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_xyzac_trt_kinematics_probe.cpp"
)
XYZBC_TRT_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/switchkins.c"
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/trtfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/xyzbc-trt-kins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_xyzbc_trt_kinematics_probe.cpp"
)
COREXY_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/corexykins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_corexy_kinematics_probe.cpp"
)
ROTATE_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/rotatekins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_rotate_kinematics_probe.cpp"
)
ROSE_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/rosekins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_rose_kinematics_probe.cpp"
)
MAX_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/maxkins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_max_kinematics_probe.cpp"
)
LINEARDELTA_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/lineardeltakins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_lineardelta_kinematics_probe.cpp"
)
ROTARYDELTA_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/rotarydeltakins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_rotarydelta_kinematics_probe.cpp"
)
SCORBOT_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/scorbot-kins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_scorbot_kinematics_probe.cpp"
)
TRIPOD_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/tripodkins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_tripod_kinematics_probe.cpp"
)
SCARA_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/switchkins.c"
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/scarakins.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_scara_kinematics_probe.cpp"
)
PUMA_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/switchkins.c"
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/pumakins.c"
"$VENDOR_DIR/src/libnml/posemath/posemath.cc"
"$VENDOR_DIR/src/libnml/posemath/_posemath.c"
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_puma_kinematics_probe.cpp"
)
GENSER_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/switchkins.c"
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/genserfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/genserkins.c"
"$WRAP_DIR/linuxcnc_gomath_cxx.cpp"
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_genser_kinematics_probe.cpp"
)
GENHEX_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/kins_util.c"
"$VENDOR_DIR/src/emc/kinematics/switchkins.c"
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c"
"$VENDOR_DIR/src/emc/kinematics/genhexkins.c"
"$VENDOR_DIR/src/libnml/posemath/posemath.cc"
"$VENDOR_DIR/src/libnml/posemath/_posemath.c"
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_genhex_kinematics_probe.cpp"
)
PENTAKINS_KINEMATICS_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/kinematics/pentakins.c"
"$VENDOR_DIR/src/libnml/posemath/posemath.cc"
"$VENDOR_DIR/src/libnml/posemath/_posemath.c"
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_pentakins_kinematics_probe.cpp"
)
TP_CORE_SOURCES=(
"$VENDOR_DIR/src/emc/tp/tp.c"
"$VENDOR_DIR/src/emc/tp/tc.c"
"$VENDOR_DIR/src/emc/tp/tcq.c"
"$VENDOR_DIR/src/emc/tp/spherical_arc.c"
"$VENDOR_DIR/src/emc/tp/blendmath.c"
"$VENDOR_DIR/src/emc/tp/sp_scurve.c"
"$VENDOR_DIR/src/emc/tp/ruckig_wrapper.c"
"$VENDOR_DIR/src/emc/tp/cruckig/block.c"
"$VENDOR_DIR/src/emc/tp/cruckig/brake.c"
"$VENDOR_DIR/src/emc/tp/cruckig/calculator.c"
"$VENDOR_DIR/src/emc/tp/cruckig/cruckig.c"
"$VENDOR_DIR/src/emc/tp/cruckig/input_parameter.c"
"$VENDOR_DIR/src/emc/tp/cruckig/output_parameter.c"
"$VENDOR_DIR/src/emc/tp/cruckig/profile.c"
"$VENDOR_DIR/src/emc/tp/cruckig/roots.c"
"$VENDOR_DIR/src/emc/tp/cruckig/trajectory.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step2.c"
"$VENDOR_DIR/src/emc/nml_intf/emcpose.c"
"$VENDOR_DIR/src/libnml/posemath/posemath.cc"
"$VENDOR_DIR/src/libnml/posemath/_posemath.c"
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
)
TP_RUNTIME_PROBE_SOURCES=(
"${TP_CORE_SOURCES[@]}"
"$WRAP_DIR/linuxcnc_tp_api_probe.cpp"
)
TP_SOURCE_PROBE_NAMES=(
linuxcnc_tp_tp_source_probe
linuxcnc_tp_tc_source_probe
linuxcnc_tp_tcq_source_probe
linuxcnc_tp_spherical_arc_source_probe
linuxcnc_tp_blendmath_source_probe
linuxcnc_tp_sp_scurve_source_probe
linuxcnc_tp_ruckig_wrapper_source_probe
linuxcnc_cruckig_block_source_probe
linuxcnc_cruckig_brake_source_probe
linuxcnc_cruckig_calculator_source_probe
linuxcnc_cruckig_cruckig_source_probe
linuxcnc_cruckig_input_parameter_source_probe
linuxcnc_cruckig_output_parameter_source_probe
linuxcnc_cruckig_profile_source_probe
linuxcnc_cruckig_roots_source_probe
linuxcnc_cruckig_trajectory_source_probe
linuxcnc_cruckig_position_first_step1_source_probe
linuxcnc_cruckig_position_first_step2_source_probe
linuxcnc_cruckig_position_second_step1_source_probe
linuxcnc_cruckig_position_second_step2_source_probe
linuxcnc_cruckig_position_third_step1_source_probe
linuxcnc_cruckig_position_third_step2_source_probe
linuxcnc_cruckig_velocity_second_step1_source_probe
linuxcnc_cruckig_velocity_second_step2_source_probe
linuxcnc_cruckig_velocity_third_step1_source_probe
linuxcnc_cruckig_velocity_third_step2_source_probe
linuxcnc_emcpose_source_probe
linuxcnc_posemath_source_probe
linuxcnc_posemath_c_source_probe
linuxcnc_sincos_source_probe
)
TP_SOURCE_PROBE_SOURCES=(
"$VENDOR_DIR/src/emc/tp/tp.c"
"$VENDOR_DIR/src/emc/tp/tc.c"
"$VENDOR_DIR/src/emc/tp/tcq.c"
"$VENDOR_DIR/src/emc/tp/spherical_arc.c"
"$VENDOR_DIR/src/emc/tp/blendmath.c"
"$VENDOR_DIR/src/emc/tp/sp_scurve.c"
"$VENDOR_DIR/src/emc/tp/ruckig_wrapper.c"
"$VENDOR_DIR/src/emc/tp/cruckig/block.c"
"$VENDOR_DIR/src/emc/tp/cruckig/brake.c"
"$VENDOR_DIR/src/emc/tp/cruckig/calculator.c"
"$VENDOR_DIR/src/emc/tp/cruckig/cruckig.c"
"$VENDOR_DIR/src/emc/tp/cruckig/input_parameter.c"
"$VENDOR_DIR/src/emc/tp/cruckig/output_parameter.c"
"$VENDOR_DIR/src/emc/tp/cruckig/profile.c"
"$VENDOR_DIR/src/emc/tp/cruckig/roots.c"
"$VENDOR_DIR/src/emc/tp/cruckig/trajectory.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step2.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step1.c"
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step2.c"
"$VENDOR_DIR/src/emc/nml_intf/emcpose.c"
"$VENDOR_DIR/src/libnml/posemath/posemath.cc"
"$VENDOR_DIR/src/libnml/posemath/_posemath.c"
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
)
INTERP_CORE_SOURCES=(
"$VENDOR_DIR/src/emc/rs274ngc/modal_state.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_array.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_internal.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_read.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_check.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_arc.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_inverse.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_execute.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_convert.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_cycles.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_g7x.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_queue.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_find.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_namedparams.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_write.cc"
"$VENDOR_DIR/src/emc/rs274ngc/interp_o_word.cc"
"$VENDOR_DIR/src/emc/rs274ngc/rs274ngc_pre.cc"
"$VENDOR_DIR/src/emc/tooldata/tooldata_common.cc"
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_emc_status_runtime.cpp"
"$WRAP_DIR/linuxcnc_interp_edge_stubs.cpp"
"$WRAP_DIR/linuxcnc_runtime_state_stubs.cpp"
"$WRAP_DIR/linuxcnc_tool_adapter.cpp"
"$WRAP_DIR/linuxcnc_interp_minimal_runtime.cpp"
"$VENDOR_DIR/src/emc/ini/inifile.cc"
)
NAMEDPARAM_SOURCES=(
"${INTERP_CORE_SOURCES[@]}"
"$WRAP_DIR/linuxcnc_namedparam_harness.cpp"
)
MINIMAL_SOURCES=(
"${INTERP_CORE_SOURCES[@]}"
"$WRAP_DIR/linuxcnc_interp_minimal_harness.cpp"
)
PARAMETER_FILE_SOURCES=(
"${INTERP_CORE_SOURCES[@]}"
"$WRAP_DIR/linuxcnc_parameter_file_harness.cpp"
)
INIT_HARNESS_SOURCES=(
"${INTERP_CORE_SOURCES[@]}"
"$WRAP_DIR/linuxcnc_interp_init_harness.cpp"
)
INDEXER_HARNESS_SOURCES=(
"${INTERP_CORE_SOURCES[@]}"
"$WRAP_DIR/linuxcnc_indexer_harness.cpp"
)
build_binary_target \
linuxcnc_ini_probe \
"$BUILD_DIR/linuxcnc_ini_probe" \
COMMON_FLAGS \
INI_PROBE_SOURCES \
NO_LINK_FLAGS \
-lfmt
build_object_target \
linuxcnc_inifile_source_probe \
"$BUILD_DIR/linuxcnc_inifile_source_probe.o" \
"$VENDOR_DIR/src/emc/ini/inifile.cc" \
COMMON_INI_FLAGS
build_binary_target \
linuxcnc_interp_state_probe \
"$BUILD_DIR/linuxcnc_interp_state_probe" \
COMMON_FLAGS \
STATE_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_emc_status_probe \
"$BUILD_DIR/linuxcnc_emc_status_probe" \
COMMON_FLAGS \
EMC_STATUS_PROBE_SOURCES \
NO_LINK_FLAGS
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_emc_status_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_emc_status_probe" \
>"$BUILD_DIR/linuxcnc_emc_status_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_emc_status_probe.run.stderr.log"
EMC_STATUS_RUN_RC=$?
set -e
echo "$EMC_STATUS_RUN_RC" > "$BUILD_DIR/linuxcnc_emc_status_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_emc_status_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_emc_status_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_emc_status_probe.run.stderr.log"
fi
build_binary_target \
linuxcnc_tp_api_probe \
"$BUILD_DIR/linuxcnc_tp_api_probe" \
TP_FLAGS \
TP_RUNTIME_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_kinematics_probe \
"$BUILD_DIR/linuxcnc_kinematics_probe" \
TP_FLAGS \
KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_5axis_kinematics_probe \
"$BUILD_DIR/linuxcnc_5axis_kinematics_probe" \
TP_FLAGS \
FIVEAXIS_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_xyzac_trt_kinematics_probe \
"$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe" \
TP_FLAGS \
XYZAC_TRT_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_xyzbc_trt_kinematics_probe \
"$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe" \
TP_FLAGS \
XYZBC_TRT_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_corexy_kinematics_probe \
"$BUILD_DIR/linuxcnc_corexy_kinematics_probe" \
TP_FLAGS \
COREXY_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_rotate_kinematics_probe \
"$BUILD_DIR/linuxcnc_rotate_kinematics_probe" \
TP_FLAGS \
ROTATE_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_rose_kinematics_probe \
"$BUILD_DIR/linuxcnc_rose_kinematics_probe" \
TP_FLAGS \
ROSE_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_max_kinematics_probe \
"$BUILD_DIR/linuxcnc_max_kinematics_probe" \
TP_FLAGS \
MAX_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_lineardelta_kinematics_probe \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe" \
TP_FLAGS \
LINEARDELTA_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_rotarydelta_kinematics_probe \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe" \
TP_FLAGS \
ROTARYDELTA_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_scorbot_kinematics_probe \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe" \
TP_FLAGS \
SCORBOT_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_tripod_kinematics_probe \
"$BUILD_DIR/linuxcnc_tripod_kinematics_probe" \
TP_FLAGS \
TRIPOD_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_scara_kinematics_probe \
"$BUILD_DIR/linuxcnc_scara_kinematics_probe" \
TP_FLAGS \
SCARA_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_puma_kinematics_probe \
"$BUILD_DIR/linuxcnc_puma_kinematics_probe" \
TP_FLAGS \
PUMA_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_genser_kinematics_probe \
"$BUILD_DIR/linuxcnc_genser_kinematics_probe" \
TP_FLAGS \
GENSER_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_genhex_kinematics_probe \
"$BUILD_DIR/linuxcnc_genhex_kinematics_probe" \
TP_FLAGS \
GENHEX_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
build_binary_target \
linuxcnc_pentakins_kinematics_probe \
"$BUILD_DIR/linuxcnc_pentakins_kinematics_probe" \
TP_FLAGS \
PENTAKINS_KINEMATICS_PROBE_SOURCES \
NO_LINK_FLAGS
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_kinematics_probe.run.stderr.log"
KINEMATICS_RUN_RC=$?
set -e
echo "$KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_5axis_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_5axis_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_5axis_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_5axis_kinematics_probe.run.stderr.log"
FIVEAXIS_KINEMATICS_RUN_RC=$?
set -e
echo "$FIVEAXIS_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_5axis_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_5axis_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_5axis_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_5axis_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe.run.stderr.log"
XYZAC_TRT_KINEMATICS_RUN_RC=$?
set -e
echo "$XYZAC_TRT_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_xyzac_trt_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe.run.stderr.log"
XYZBC_TRT_KINEMATICS_RUN_RC=$?
set -e
echo "$XYZBC_TRT_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_xyzbc_trt_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_corexy_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_corexy_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_corexy_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_corexy_kinematics_probe.run.stderr.log"
COREXY_KINEMATICS_RUN_RC=$?
set -e
echo "$COREXY_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_corexy_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_corexy_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_corexy_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_corexy_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_rotate_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_rotate_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_rotate_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_rotate_kinematics_probe.run.stderr.log"
ROTATE_KINEMATICS_RUN_RC=$?
set -e
echo "$ROTATE_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_rotate_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_rotate_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_rotate_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_rotate_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_rose_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_rose_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_rose_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_rose_kinematics_probe.run.stderr.log"
ROSE_KINEMATICS_RUN_RC=$?
set -e
echo "$ROSE_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_rose_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_rose_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_rose_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_rose_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_max_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_max_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_max_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_max_kinematics_probe.run.stderr.log"
MAX_KINEMATICS_RUN_RC=$?
set -e
echo "$MAX_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_max_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_max_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_max_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_max_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stderr.log"
LINEARDELTA_KINEMATICS_RUN_RC=$?
set -e
echo "$LINEARDELTA_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_lineardelta_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stderr.log"
ROTARYDELTA_KINEMATICS_RUN_RC=$?
set -e
echo "$ROTARYDELTA_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_rotarydelta_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stderr.log"
SCORBOT_KINEMATICS_RUN_RC=$?
set -e
echo "$SCORBOT_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_scorbot_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_tripod_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_tripod_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_tripod_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_tripod_kinematics_probe.run.stderr.log"
TRIPOD_KINEMATICS_RUN_RC=$?
set -e
echo "$TRIPOD_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_tripod_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_tripod_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_tripod_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_tripod_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_scara_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_scara_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_scara_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_scara_kinematics_probe.run.stderr.log"
SCARA_KINEMATICS_RUN_RC=$?
set -e
echo "$SCARA_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_scara_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_scara_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_scara_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_scara_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_puma_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_puma_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_puma_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_puma_kinematics_probe.run.stderr.log"
PUMA_KINEMATICS_RUN_RC=$?
set -e
echo "$PUMA_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_puma_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_puma_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_puma_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_puma_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_genser_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_genser_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_genser_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_genser_kinematics_probe.run.stderr.log"
GENSER_KINEMATICS_RUN_RC=$?
set -e
echo "$GENSER_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_genser_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_genser_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_genser_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_genser_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_genhex_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_genhex_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_genhex_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_genhex_kinematics_probe.run.stderr.log"
GENHEX_KINEMATICS_RUN_RC=$?
set -e
echo "$GENHEX_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_genhex_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_genhex_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_genhex_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_genhex_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_pentakins_kinematics_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_pentakins_kinematics_probe" \
>"$BUILD_DIR/linuxcnc_pentakins_kinematics_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_pentakins_kinematics_probe.run.stderr.log"
PENTAKINS_KINEMATICS_RUN_RC=$?
set -e
echo "$PENTAKINS_KINEMATICS_RUN_RC" > "$BUILD_DIR/linuxcnc_pentakins_kinematics_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_pentakins_kinematics_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_pentakins_kinematics_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_pentakins_kinematics_probe.run.stderr.log"
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_tp_api_probe.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_tp_api_probe" \
>"$BUILD_DIR/linuxcnc_tp_api_probe.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_tp_api_probe.run.stderr.log"
TP_API_RUN_RC=$?
set -e
echo "$TP_API_RUN_RC" > "$BUILD_DIR/linuxcnc_tp_api_probe.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_tp_api_probe.run.exitcode" \
"$BUILD_DIR/linuxcnc_tp_api_probe.run.stdout.log" \
"$BUILD_DIR/linuxcnc_tp_api_probe.run.stderr.log"
fi
for index in "${!TP_SOURCE_PROBE_NAMES[@]}"; do
build_object_target \
"${TP_SOURCE_PROBE_NAMES[$index]}" \
"$BUILD_DIR/${TP_SOURCE_PROBE_NAMES[$index]}.o" \
"${TP_SOURCE_PROBE_SOURCES[$index]}" \
TP_FLAGS
done
build_binary_target \
linuxcnc_namedparam_harness \
"$BUILD_DIR/linuxcnc_namedparam_harness" \
MINIMAL_FLAGS \
NAMEDPARAM_SOURCES \
MINIMAL_LINK_FLAGS \
-lfmt
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_namedparam_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_namedparam_harness" "$NAMEDPARAM_INI_FIXTURE" \
>"$BUILD_DIR/linuxcnc_namedparam_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_namedparam_harness.run.stderr.log"
NAMEDPARAM_RUN_RC=$?
set -e
echo "$NAMEDPARAM_RUN_RC" > "$BUILD_DIR/linuxcnc_namedparam_harness.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_namedparam_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_namedparam_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_namedparam_harness.run.stderr.log"
fi
build_binary_target \
linuxcnc_interp_minimal_harness \
"$BUILD_DIR/linuxcnc_interp_minimal_harness" \
MINIMAL_FLAGS \
MINIMAL_SOURCES \
MINIMAL_LINK_FLAGS \
-lfmt
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_interp_minimal_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_interp_minimal_harness" "$MINIMAL_GCODE_FIXTURE" \
>"$BUILD_DIR/linuxcnc_interp_minimal_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_interp_minimal_harness.run.stderr.log"
INTERP_MIN_RUN_RC=$?
set -e
echo "$INTERP_MIN_RUN_RC" > "$BUILD_DIR/linuxcnc_interp_minimal_harness.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_interp_minimal_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_interp_minimal_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_interp_minimal_harness.run.stderr.log"
fi
build_binary_target \
linuxcnc_parameter_file_harness \
"$BUILD_DIR/linuxcnc_parameter_file_harness" \
MINIMAL_FLAGS \
PARAMETER_FILE_SOURCES \
MINIMAL_LINK_FLAGS \
-lfmt
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_parameter_file_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_parameter_file_harness" \
>"$BUILD_DIR/linuxcnc_parameter_file_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_parameter_file_harness.run.stderr.log"
PARAMETER_FILE_RUN_RC=$?
set -e
echo "$PARAMETER_FILE_RUN_RC" > "$BUILD_DIR/linuxcnc_parameter_file_harness.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_parameter_file_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_parameter_file_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_parameter_file_harness.run.stderr.log"
fi
build_binary_target \
linuxcnc_interp_init_harness \
"$BUILD_DIR/linuxcnc_interp_init_harness" \
MINIMAL_FLAGS \
INIT_HARNESS_SOURCES \
MINIMAL_LINK_FLAGS \
-lfmt
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_interp_init_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_interp_init_harness" \
>"$BUILD_DIR/linuxcnc_interp_init_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_interp_init_harness.run.stderr.log"
INTERP_INIT_RUN_RC=$?
set -e
echo "$INTERP_INIT_RUN_RC" > "$BUILD_DIR/linuxcnc_interp_init_harness.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_interp_init_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_interp_init_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_interp_init_harness.run.stderr.log"
fi
build_binary_target \
linuxcnc_indexer_harness \
"$BUILD_DIR/linuxcnc_indexer_harness" \
MINIMAL_FLAGS \
INDEXER_HARNESS_SOURCES \
MINIMAL_LINK_FLAGS \
-lfmt
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_indexer_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_indexer_harness" \
>"$BUILD_DIR/linuxcnc_indexer_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_indexer_harness.run.stderr.log"
INDEXER_RUN_RC=$?
set -e
echo "$INDEXER_RUN_RC" > "$BUILD_DIR/linuxcnc_indexer_harness.run.exitcode"
else
rm -f \
"$BUILD_DIR/linuxcnc_indexer_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_indexer_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_indexer_harness.run.stderr.log"
fi
build_object_target \
linuxcnc_rs274_compile_probe \
"$BUILD_DIR/linuxcnc_rs274_compile_probe.o" \
"$WRAP_DIR/linuxcnc_rs274_compile_probe.cpp" \
COMMON_FLAGS
build_object_target \
linuxcnc_kins_util_source_probe \
"$BUILD_DIR/linuxcnc_kins_util_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/kins_util.c" \
TP_FLAGS
build_object_target \
linuxcnc_cubic_source_probe \
"$BUILD_DIR/linuxcnc_cubic_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/cubic.c" \
TP_FLAGS
build_object_target \
linuxcnc_trivkins_source_probe \
"$BUILD_DIR/linuxcnc_trivkins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/trivkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_switchkins_source_probe \
"$BUILD_DIR/linuxcnc_switchkins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/switchkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_userkfuncs_source_probe \
"$BUILD_DIR/linuxcnc_userkfuncs_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/userkfuncs.c" \
TP_FLAGS
build_object_target \
linuxcnc_5axiskins_source_probe \
"$BUILD_DIR/linuxcnc_5axiskins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/5axiskins.c" \
TP_FLAGS
build_object_target \
linuxcnc_trtfuncs_source_probe \
"$BUILD_DIR/linuxcnc_trtfuncs_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/trtfuncs.c" \
TP_FLAGS
build_object_target \
linuxcnc_xyzac_trt_kins_source_probe \
"$BUILD_DIR/linuxcnc_xyzac_trt_kins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/xyzac-trt-kins.c" \
TP_FLAGS
build_object_target \
linuxcnc_xyzbc_trt_kins_source_probe \
"$BUILD_DIR/linuxcnc_xyzbc_trt_kins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/xyzbc-trt-kins.c" \
TP_FLAGS
build_object_target \
linuxcnc_corexykins_source_probe \
"$BUILD_DIR/linuxcnc_corexykins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/corexykins.c" \
TP_FLAGS
build_object_target \
linuxcnc_rotatekins_source_probe \
"$BUILD_DIR/linuxcnc_rotatekins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/rotatekins.c" \
TP_FLAGS
build_object_target \
linuxcnc_rosekins_source_probe \
"$BUILD_DIR/linuxcnc_rosekins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/rosekins.c" \
TP_FLAGS
build_object_target \
linuxcnc_maxkins_source_probe \
"$BUILD_DIR/linuxcnc_maxkins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/maxkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_lineardeltakins_source_probe \
"$BUILD_DIR/linuxcnc_lineardeltakins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/lineardeltakins.c" \
TP_FLAGS
build_object_target \
linuxcnc_rotarydeltakins_source_probe \
"$BUILD_DIR/linuxcnc_rotarydeltakins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/rotarydeltakins.c" \
TP_FLAGS
build_object_target \
linuxcnc_scorbot_kins_source_probe \
"$BUILD_DIR/linuxcnc_scorbot_kins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/scorbot-kins.c" \
TP_FLAGS
build_object_target \
linuxcnc_tripodkins_source_probe \
"$BUILD_DIR/linuxcnc_tripodkins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/tripodkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_scarakins_source_probe \
"$BUILD_DIR/linuxcnc_scarakins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/scarakins.c" \
TP_FLAGS
build_object_target \
linuxcnc_pumakins_source_probe \
"$BUILD_DIR/linuxcnc_pumakins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/pumakins.c" \
TP_FLAGS
build_object_target \
linuxcnc_genhexkins_source_probe \
"$BUILD_DIR/linuxcnc_genhexkins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/genhexkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_genserfuncs_source_probe \
"$BUILD_DIR/linuxcnc_genserfuncs_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/genserfuncs.c" \
TP_FLAGS
build_object_target \
linuxcnc_genserkins_source_probe \
"$BUILD_DIR/linuxcnc_genserkins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/genserkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_ugenserkins_source_probe \
"$BUILD_DIR/linuxcnc_ugenserkins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/ugenserkins.c" \
TP_FLAGS
build_object_target \
linuxcnc_pentakins_source_probe \
"$BUILD_DIR/linuxcnc_pentakins_source_probe.o" \
"$VENDOR_DIR/src/emc/kinematics/pentakins.c" \
TP_FLAGS
build_object_target \
linuxcnc_interp_convert_source_probe \
"$BUILD_DIR/linuxcnc_interp_convert_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_convert.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_read_source_probe \
"$BUILD_DIR/linuxcnc_interp_read_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_read.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_check_source_probe \
"$BUILD_DIR/linuxcnc_interp_check_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_check.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_execute_source_probe \
"$BUILD_DIR/linuxcnc_interp_execute_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_execute.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_modal_state_source_probe \
"$BUILD_DIR/linuxcnc_modal_state_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/modal_state.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_array_source_probe \
"$BUILD_DIR/linuxcnc_interp_array_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_array.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_internal_source_probe \
"$BUILD_DIR/linuxcnc_interp_internal_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_internal.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_arc_source_probe \
"$BUILD_DIR/linuxcnc_interp_arc_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_arc.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_inverse_source_probe \
"$BUILD_DIR/linuxcnc_interp_inverse_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_inverse.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_cycles_source_probe \
"$BUILD_DIR/linuxcnc_interp_cycles_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_cycles.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_g7x_source_probe \
"$BUILD_DIR/linuxcnc_interp_g7x_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_g7x.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_queue_source_probe \
"$BUILD_DIR/linuxcnc_interp_queue_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_queue.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_find_source_probe \
"$BUILD_DIR/linuxcnc_interp_find_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_find.cc" \
COMMON_FLAGS
build_object_target \
linuxcnc_interp_namedparams_source_probe \
"$BUILD_DIR/linuxcnc_interp_namedparams_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_namedparams.cc" \
COMMON_INI_FLAGS
build_object_target \
linuxcnc_interp_write_source_probe \
"$BUILD_DIR/linuxcnc_interp_write_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_write.cc" \
COMMON_INI_FLAGS
build_object_target \
linuxcnc_interp_o_word_source_probe \
"$BUILD_DIR/linuxcnc_interp_o_word_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_o_word.cc" \
COMMON_INI_FLAGS
build_object_target \
linuxcnc_rs274ngc_pre_source_probe \
"$BUILD_DIR/linuxcnc_rs274ngc_pre_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/rs274ngc_pre.cc" \
MINIMAL_FLAGS
build_object_target \
linuxcnc_interp_base_source_probe \
"$BUILD_DIR/linuxcnc_interp_base_source_probe.o" \
"$VENDOR_DIR/src/emc/rs274ngc/interp_base.cc" \
INTERP_BASE_FLAGS
build_c_object_target \
linuxcnc_gomath_source_probe \
"$BUILD_DIR/linuxcnc_gomath_source_probe.o" \
"$VENDOR_DIR/src/libnml/posemath/gomath.c" \
C_FLAGS
build_object_target \
linuxcnc_tooldata_common_source_probe \
"$BUILD_DIR/linuxcnc_tooldata_common_source_probe.o" \
"$VENDOR_DIR/src/emc/tooldata/tooldata_common.cc" \
MINIMAL_FLAGS
echo "native probes complete"