按规划持续工作

This commit is contained in:
2026-06-09 06:13:28 +08:00
parent 902c6ecaea
commit 2658ee3b72
255 changed files with 12487 additions and 150 deletions

View File

@@ -9,11 +9,116 @@ 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"
DO_WHILE_BREAK_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/do-while-break/test.ngc"
OWORD_BUG315_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/oword-bug315/test.ngc"
OWORD_BUG315_P2_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/oword-bug315-p2/test.ngc"
EXISTS_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/exists/test.ngc"
RETURN_VALUE_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/return-value/test.ngc"
SUBS_FOLLOW_MAIN_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/subs-follow-main/test.ngc"
FRACTIONAL_LINENUMBERS_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/fractional-linenumbers/test.ngc"
NAMEDPARAM_BUG424_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/namedparam-bug424/test.ngc"
G6164_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/g6164/test.ngc"
ROTATION_ABS_PTS_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/rotation/abs-pts/test.ngc"
ROTATION_G28_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/rotation/g28/g28.ngc"
ROTATION_G53_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/rotation/g53/g53.ngc"
INIPARAM_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/iniparam/test.ngc"
INIPARAM_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/iniparam/test.ini"
INIPARAM_FAILASSIGN_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/iniparam-failassign/test.ngc"
INIPARAM_FAILASSIGN_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/iniparam-failassign/test.ini"
SUB_CALL_FROM_SUB_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/sub-call-from-sub/test.ngc"
SUB_CALL_FROM_SUB_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/sub-call-from-sub/test.ini"
SEQUENCE_NUMBER_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/sequence-number/test.ngc"
SEQUENCE_NUMBER_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/sequence-number/test.ini"
NESTED_SUB_ERROR_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/nested-sub-error/test.ngc"
NESTED_SUB_ERROR_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/nested-sub-error/test.ini"
NESTED_SUB_IN_FILE_ERROR_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/nested-sub-in-file-error/test.ngc"
NESTED_SUB_IN_FILE_ERROR_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/nested-sub-in-file-error/test.ini"
OWORD_UNWIND_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/oword-unwind/test.ngc"
OWORD_UNWIND_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/oword-unwind/test.ini"
ABORT_HOT_COMMENT_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/abort-hot-comment/test.ngc"
ABORT_HOT_COMMENT_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/abort-hot-comment/test.ini"
M19_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m19/test.ngc"
M19_INI="$ROOT_DIR/vendor/linuxcnc/tests/interp/m19/test.ini"
MAGIC_COMMENTS_PARAM_FORMAT_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/magic_comments/param_format_printing/test.ngc"
M98M99_01_BASICS_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/01-basics/test.ngc"
M98M99_02_VARIABLES_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/02-variables/test.ngc"
M98M99_07_NESTED_SUBS_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/07-nested-subs/test.ngc"
M98M99_08_SUB_FOLLOWS_MAIN_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/08-sub-follows-main/test.ngc"
M98M99_10_M98_P001_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/10-M98-P001/test.ngc"
M98M99_13_NAMED_PROGRAM_NAMED_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/13-named-program/test-named.ngc"
M98M99_13_NAMED_PROGRAM_NUMBERED_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/13-named-program/test-numbered.ngc"
M98M99_14_O_EXPRESSION_CALL_FIXTURE="$ROOT_DIR/vendor/linuxcnc/tests/interp/m98m99/14-o-expression-call/test.ngc"
SIM_AXIS_FOAM_FIXTURE="$ROOT_DIR/../linuxcnc/configs/sim/axis/foam/foam.ngc"
SIM_AXIS_FOAM_INI="$ROOT_DIR/../linuxcnc/configs/sim/axis/foam/axis_foam.ini"
SIM_BRIDGEMILL_FIXTURE="$ROOT_DIR/../linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.ngc"
SIM_BRIDGEMILL_INI="$ROOT_DIR/../linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini"
SIM_GEOMETRY_XYZC_FIXTURE="$ROOT_DIR/../linuxcnc/configs/sim/axis/geometry/xyzc.ngc"
SIM_GEOMETRY_XYZC_INI="$ROOT_DIR/../linuxcnc/configs/sim/axis/geometry/xyzc.ini"
SIM_EXTERNAL_OFFSETS_DYN_FIXTURE="$ROOT_DIR/../linuxcnc/configs/sim/axis/external_offsets/dyn_demo.ngc"
SIM_EXTERNAL_OFFSETS_DYN_INI="$ROOT_DIR/../linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini"
NAMEDPARAM_INI_FIXTURE="$ROOT_DIR/tests/fixtures/ini/namedparams.ini"
CXX="${CXX:-g++}"
CC="${CC:-gcc}"
CACHE_KEY_FILE="$BUILD_DIR/native-probes.input.sha256"
CACHE_OK_FILE="$BUILD_DIR/native-probes.ok"
CACHE_OUTPUT_MANIFEST="$BUILD_DIR/native-probes.outputs"
NATIVE_PROBE_RUN_TIMEOUT_SECONDS="${NATIVE_PROBE_RUN_TIMEOUT_SECONDS:-60}"
mkdir -p "$BUILD_DIR"
hash_tree() {
find "$@" -type f -print0 | sort -z | xargs -0 -r sha256sum
}
native_input_fingerprint() {
{
printf 'CXX=%s\n' "$CXX"
"$CXX" --version 2>/dev/null | sed -n '1p' || true
printf 'CC=%s\n' "$CC"
"$CC" --version 2>/dev/null | sed -n '1p' || true
sha256sum \
"$ROOT_DIR/tools/build_native_probes.sh" \
"$ROOT_DIR/tools/source-manifest.txt"
hash_tree \
"$VENDOR_DIR" \
"$WRAP_DIR" \
"$SHIM_DIR" \
"$INCLUDE_DIR" \
"$ROOT_DIR/tests/fixtures"
} | sha256sum | awk '{ print $1 }'
}
cached_native_outputs_exist() {
[[ -f "$CACHE_OUTPUT_MANIFEST" ]] || return 1
[[ -s "$SOURCE_PROBE_MAP" ]] || return 1
local file
while IFS= read -r file; do
[[ -z "$file" ]] && continue
[[ -f "$file" ]] || return 1
done < "$CACHE_OUTPUT_MANIFEST"
}
write_native_cache_stamp() {
local key="$1"
printf '%s\n' "$key" > "$CACHE_KEY_FILE"
find "$BUILD_DIR" -maxdepth 1 -type f \
! -name 'native-probes.input.sha256' \
! -name 'native-probes.ok' \
! -name 'native-probes.outputs' \
-print | sort > "$CACHE_OUTPUT_MANIFEST"
printf '%s\n' "$key" > "$CACHE_OK_FILE"
}
NATIVE_INPUT_FINGERPRINT="$(native_input_fingerprint)"
if [[ -f "$CACHE_KEY_FILE" && -f "$CACHE_OK_FILE" ]] &&
[[ "$(tr -d '[:space:]' < "$CACHE_KEY_FILE")" == "$NATIVE_INPUT_FINGERPRINT" ]] &&
[[ "$(tr -d '[:space:]' < "$CACHE_OK_FILE")" == "$NATIVE_INPUT_FINGERPRINT" ]] &&
cached_native_outputs_exist; then
echo "native probes up to date"
exit 0
fi
: > "$SOURCE_PROBE_MAP"
COMMON_FLAGS=(
@@ -145,6 +250,21 @@ object_needs_rebuild() {
return 1
}
shared_object_path() {
local source="$1"
shift
local base key
base="$(basename "$source")"
key="$(
{
printf 'source=%q\n' "$source"
printf 'arg=%q\n' "$@"
} | sha256sum | awk '{ print $1 }'
)"
printf '%s/obj/shared/%s-%s.o\n' "$BUILD_DIR" "${base%.*}" "$key"
}
compile_object() {
local target="$1"
local source="$2"
@@ -255,15 +375,13 @@ compile_target_objects() {
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"
local obj
obj="$(shared_object_path "$source" "${flags[@]}")"
objs+=("$obj")
if ! compile_object "$target" "$source" "$obj" "${flags[@]}"; then
status=1
@@ -347,6 +465,65 @@ build_c_object_target() {
return "$status"
}
run_command_needs_update() {
local exitfile="$1"
local stdout_log="$2"
local stderr_log="$3"
local cmdfile="$4"
shift 4
[[ -f "$exitfile" && -f "$stdout_log" && -f "$stderr_log" ]] || return 0
command_matches "$cmdfile" "$@" || return 0
local arg
for arg in "$@"; do
if [[ -f "$arg" && "$arg" -nt "$exitfile" ]]; then
return 0
fi
done
return 1
}
run_logged_command() {
local label="$1"
shift
local exitfile="$BUILD_DIR/$label.run.exitcode"
local stdout_log="$BUILD_DIR/$label.run.stdout.log"
local stderr_log="$BUILD_DIR/$label.run.stderr.log"
local cmdfile="$BUILD_DIR/$label.run.cmd"
if ! run_command_needs_update "$exitfile" "$stdout_log" "$stderr_log" "$cmdfile" "$@"; then
return 0
fi
set +e
if command -v timeout >/dev/null 2>&1; then
timeout "$NATIVE_PROBE_RUN_TIMEOUT_SECONDS" "$@" >"$stdout_log" 2>"$stderr_log"
else
"$@" >"$stdout_log" 2>"$stderr_log"
fi
local run_rc=$?
set -e
if [[ "$run_rc" == "124" ]]; then
printf 'run timed out after %s seconds\n' "$NATIVE_PROBE_RUN_TIMEOUT_SECONDS" >>"$stderr_log"
fi
write_command_file "$cmdfile" "$@"
echo "$run_rc" > "$exitfile"
}
clear_logged_command() {
local label="$1"
rm -f \
"$BUILD_DIR/$label.run.exitcode" \
"$BUILD_DIR/$label.run.stdout.log" \
"$BUILD_DIR/$label.run.stderr.log" \
"$BUILD_DIR/$label.run.cmd"
}
NO_LINK_FLAGS=()
INI_PROBE_SOURCES=(
@@ -636,6 +813,7 @@ INTERP_CORE_SOURCES=(
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_emc_status_runtime.cpp"
"$WRAP_DIR/linuxcnc_interp_edge_stubs.cpp"
"$WRAP_DIR/linuxcnc_machine_config.cpp"
"$WRAP_DIR/linuxcnc_runtime_state_stubs.cpp"
"$WRAP_DIR/linuxcnc_tool_adapter.cpp"
"$WRAP_DIR/linuxcnc_interp_minimal_runtime.cpp"
@@ -690,6 +868,7 @@ REMAP_RUNTIME_CORE_SOURCES=(
"$WRAP_DIR/linuxcnc_hal_adapter.cpp"
"$WRAP_DIR/linuxcnc_emc_status_runtime.cpp"
"$WRAP_DIR/linuxcnc_interp_python_edge_stubs.cpp"
"$WRAP_DIR/linuxcnc_machine_config.cpp"
"$WRAP_DIR/linuxcnc_runtime_state_stubs.cpp"
"$WRAP_DIR/linuxcnc_tool_adapter.cpp"
"$WRAP_DIR/linuxcnc_interp_minimal_runtime.cpp"
@@ -711,6 +890,31 @@ FIVEAXIS_REMAP_EXECUTE_SOURCES=(
"$WRAP_DIR/linuxcnc_5axis_remap_execute_harness.cpp"
)
DUPLICATE_OWORD_REMAP_SOURCES=(
"${REMAP_RUNTIME_CORE_SOURCES[@]}"
"$WRAP_DIR/linuxcnc_duplicate_oword_remap_harness.cpp"
)
if [[ "${NATIVE_PROBE_ONLY:-}" == "linuxcnc_duplicate_oword_remap_harness" ]]; then
build_binary_target \
linuxcnc_duplicate_oword_remap_harness \
"$BUILD_DIR/linuxcnc_duplicate_oword_remap_harness" \
REMAP_RUNTIME_FLAGS \
DUPLICATE_OWORD_REMAP_SOURCES \
MINIMAL_LINK_FLAGS
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_duplicate_oword_remap_harness.exitcode")" == "0" ]]; then
run_logged_command \
linuxcnc_duplicate_oword_remap_harness \
"$BUILD_DIR/linuxcnc_duplicate_oword_remap_harness"
else
clear_logged_command linuxcnc_duplicate_oword_remap_harness
fi
echo "native probe target complete: linuxcnc_duplicate_oword_remap_harness"
exit 0
fi
build_binary_target \
linuxcnc_ini_probe \
"$BUILD_DIR/linuxcnc_ini_probe" \
@@ -1190,18 +1394,11 @@ build_binary_target \
-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"
run_logged_command \
linuxcnc_namedparam_harness \
"$BUILD_DIR/linuxcnc_namedparam_harness" "$NAMEDPARAM_INI_FIXTURE"
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"
clear_logged_command linuxcnc_namedparam_harness
fi
build_binary_target \
@@ -1213,20 +1410,90 @@ build_binary_target \
-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"
run_logged_command \
linuxcnc_interp_minimal_harness \
"$BUILD_DIR/linuxcnc_interp_minimal_harness" "$MINIMAL_GCODE_FIXTURE"
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"
clear_logged_command linuxcnc_interp_minimal_harness
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_interp_minimal_harness.exitcode")" == "0" ]]; then
run_logged_command \
linuxcnc_interp_minimal_harness.do_while_break \
"$BUILD_DIR/linuxcnc_interp_minimal_harness" "$DO_WHILE_BREAK_FIXTURE"
else
clear_logged_command linuxcnc_interp_minimal_harness.do_while_break
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_interp_minimal_harness.exitcode")" == "0" ]]; then
run_logged_command \
linuxcnc_interp_minimal_harness.oword_bug315 \
"$BUILD_DIR/linuxcnc_interp_minimal_harness" "$OWORD_BUG315_FIXTURE"
else
clear_logged_command linuxcnc_interp_minimal_harness.oword_bug315
fi
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_interp_minimal_harness.exitcode")" == "0" ]]; then
run_logged_command \
linuxcnc_interp_minimal_harness.oword_bug315_p2 \
"$BUILD_DIR/linuxcnc_interp_minimal_harness" "$OWORD_BUG315_P2_FIXTURE"
else
clear_logged_command linuxcnc_interp_minimal_harness.oword_bug315_p2
fi
run_interp_minimal_fixture() {
local label="$1"
local fixture="$2"
local ini="${3:-}"
local mode="${4:-}"
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_interp_minimal_harness.exitcode")" == "0" ]]; then
if [[ "$mode" == "continue_on_error" ]]; then
run_logged_command \
"linuxcnc_interp_minimal_harness.$label" \
"$BUILD_DIR/linuxcnc_interp_minimal_harness" --continue-on-error "$fixture" "$ini"
else
run_logged_command \
"linuxcnc_interp_minimal_harness.$label" \
"$BUILD_DIR/linuxcnc_interp_minimal_harness" "$fixture" "$ini"
fi
else
clear_logged_command "linuxcnc_interp_minimal_harness.$label"
fi
}
run_interp_minimal_fixture interp_exists "$EXISTS_FIXTURE"
run_interp_minimal_fixture return_value "$RETURN_VALUE_FIXTURE"
run_interp_minimal_fixture subs_follow_main "$SUBS_FOLLOW_MAIN_FIXTURE"
run_interp_minimal_fixture fractional_linenumbers "$FRACTIONAL_LINENUMBERS_FIXTURE"
run_interp_minimal_fixture namedparam_bug424 "$NAMEDPARAM_BUG424_FIXTURE"
run_interp_minimal_fixture g6164 "$G6164_FIXTURE"
run_interp_minimal_fixture rotation_abs_pts "$ROTATION_ABS_PTS_FIXTURE"
run_interp_minimal_fixture rotation_g28 "$ROTATION_G28_FIXTURE"
run_interp_minimal_fixture rotation_g53 "$ROTATION_G53_FIXTURE"
run_interp_minimal_fixture iniparam "$INIPARAM_FIXTURE" "$INIPARAM_INI" continue_on_error
run_interp_minimal_fixture iniparam_failassign "$INIPARAM_FAILASSIGN_FIXTURE" "$INIPARAM_FAILASSIGN_INI"
run_interp_minimal_fixture sub_call_from_sub "$SUB_CALL_FROM_SUB_FIXTURE" "$SUB_CALL_FROM_SUB_INI"
run_interp_minimal_fixture sequence_number "$SEQUENCE_NUMBER_FIXTURE" "$SEQUENCE_NUMBER_INI"
run_interp_minimal_fixture nested_sub_error "$NESTED_SUB_ERROR_FIXTURE" "$NESTED_SUB_ERROR_INI"
run_interp_minimal_fixture nested_sub_in_file_error "$NESTED_SUB_IN_FILE_ERROR_FIXTURE" "$NESTED_SUB_IN_FILE_ERROR_INI"
run_interp_minimal_fixture oword_unwind "$OWORD_UNWIND_FIXTURE" "$OWORD_UNWIND_INI" continue_on_error
run_interp_minimal_fixture abort_hot_comment "$ABORT_HOT_COMMENT_FIXTURE" "$ABORT_HOT_COMMENT_INI" continue_on_error
run_interp_minimal_fixture m19 "$M19_FIXTURE" "$M19_INI"
run_interp_minimal_fixture magic_comments_param_format "$MAGIC_COMMENTS_PARAM_FORMAT_FIXTURE"
run_interp_minimal_fixture m98m99_01_basics "$M98M99_01_BASICS_FIXTURE"
run_interp_minimal_fixture m98m99_02_variables "$M98M99_02_VARIABLES_FIXTURE"
run_interp_minimal_fixture m98m99_07_nested_subs "$M98M99_07_NESTED_SUBS_FIXTURE"
run_interp_minimal_fixture m98m99_08_sub_follows_main "$M98M99_08_SUB_FOLLOWS_MAIN_FIXTURE"
run_interp_minimal_fixture m98m99_10_m98_p001 "$M98M99_10_M98_P001_FIXTURE"
run_interp_minimal_fixture m98m99_13_named_program_named "$M98M99_13_NAMED_PROGRAM_NAMED_FIXTURE"
run_interp_minimal_fixture m98m99_13_named_program_numbered "$M98M99_13_NAMED_PROGRAM_NUMBERED_FIXTURE"
run_interp_minimal_fixture m98m99_14_o_expression_call "$M98M99_14_O_EXPRESSION_CALL_FIXTURE"
run_interp_minimal_fixture sim_axis_foam "$SIM_AXIS_FOAM_FIXTURE" "$SIM_AXIS_FOAM_INI" continue_on_error
run_interp_minimal_fixture sim_bridgemill "$SIM_BRIDGEMILL_FIXTURE" "$SIM_BRIDGEMILL_INI" continue_on_error
run_interp_minimal_fixture sim_geometry_xyzc "$SIM_GEOMETRY_XYZC_FIXTURE" "$SIM_GEOMETRY_XYZC_INI" continue_on_error
run_interp_minimal_fixture sim_external_offsets_dyn "$SIM_EXTERNAL_OFFSETS_DYN_FIXTURE" "$SIM_EXTERNAL_OFFSETS_DYN_INI" continue_on_error
build_binary_target \
linuxcnc_parameter_file_harness \
"$BUILD_DIR/linuxcnc_parameter_file_harness" \
@@ -1236,18 +1503,11 @@ build_binary_target \
-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"
run_logged_command \
linuxcnc_parameter_file_harness \
"$BUILD_DIR/linuxcnc_parameter_file_harness"
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"
clear_logged_command linuxcnc_parameter_file_harness
fi
build_binary_target \
@@ -1259,18 +1519,11 @@ build_binary_target \
-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"
run_logged_command \
linuxcnc_interp_init_harness \
"$BUILD_DIR/linuxcnc_interp_init_harness"
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"
clear_logged_command linuxcnc_interp_init_harness
fi
build_binary_target \
@@ -1282,18 +1535,11 @@ build_binary_target \
-lfmt
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_remap_parse_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_remap_parse_harness" \
>"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stderr.log"
REMAP_PARSE_RUN_RC=$?
set -e
echo "$REMAP_PARSE_RUN_RC" > "$BUILD_DIR/linuxcnc_remap_parse_harness.run.exitcode"
run_logged_command \
linuxcnc_remap_parse_harness \
"$BUILD_DIR/linuxcnc_remap_parse_harness"
else
rm -f \
"$BUILD_DIR/linuxcnc_remap_parse_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_remap_parse_harness.run.stderr.log"
clear_logged_command linuxcnc_remap_parse_harness
fi
build_binary_target \
@@ -1304,18 +1550,11 @@ build_binary_target \
MINIMAL_LINK_FLAGS
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_remap_hal_sync_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_remap_hal_sync_harness" \
>"$BUILD_DIR/linuxcnc_remap_hal_sync_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_remap_hal_sync_harness.run.stderr.log"
REMAP_HAL_SYNC_RUN_RC=$?
set -e
echo "$REMAP_HAL_SYNC_RUN_RC" > "$BUILD_DIR/linuxcnc_remap_hal_sync_harness.run.exitcode"
run_logged_command \
linuxcnc_remap_hal_sync_harness \
"$BUILD_DIR/linuxcnc_remap_hal_sync_harness"
else
rm -f \
"$BUILD_DIR/linuxcnc_remap_hal_sync_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_remap_hal_sync_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_remap_hal_sync_harness.run.stderr.log"
clear_logged_command linuxcnc_remap_hal_sync_harness
fi
build_binary_target \
@@ -1326,18 +1565,26 @@ build_binary_target \
MINIMAL_LINK_FLAGS
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_5axis_remap_execute_harness.exitcode")" == "0" ]]; then
set +e
"$BUILD_DIR/linuxcnc_5axis_remap_execute_harness" \
>"$BUILD_DIR/linuxcnc_5axis_remap_execute_harness.run.stdout.log" \
2>"$BUILD_DIR/linuxcnc_5axis_remap_execute_harness.run.stderr.log"
FIVEAXIS_REMAP_EXECUTE_RUN_RC=$?
set -e
echo "$FIVEAXIS_REMAP_EXECUTE_RUN_RC" > "$BUILD_DIR/linuxcnc_5axis_remap_execute_harness.run.exitcode"
run_logged_command \
linuxcnc_5axis_remap_execute_harness \
"$BUILD_DIR/linuxcnc_5axis_remap_execute_harness"
else
rm -f \
"$BUILD_DIR/linuxcnc_5axis_remap_execute_harness.run.exitcode" \
"$BUILD_DIR/linuxcnc_5axis_remap_execute_harness.run.stdout.log" \
"$BUILD_DIR/linuxcnc_5axis_remap_execute_harness.run.stderr.log"
clear_logged_command linuxcnc_5axis_remap_execute_harness
fi
build_binary_target \
linuxcnc_duplicate_oword_remap_harness \
"$BUILD_DIR/linuxcnc_duplicate_oword_remap_harness" \
REMAP_RUNTIME_FLAGS \
DUPLICATE_OWORD_REMAP_SOURCES \
MINIMAL_LINK_FLAGS
if [[ "$(tr -d '[:space:]' < "$BUILD_DIR/linuxcnc_duplicate_oword_remap_harness.exitcode")" == "0" ]]; then
run_logged_command \
linuxcnc_duplicate_oword_remap_harness \
"$BUILD_DIR/linuxcnc_duplicate_oword_remap_harness"
else
clear_logged_command linuxcnc_duplicate_oword_remap_harness
fi
build_binary_target \
@@ -1349,18 +1596,11 @@ build_binary_target \
-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"
run_logged_command \
linuxcnc_indexer_harness \
"$BUILD_DIR/linuxcnc_indexer_harness"
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"
clear_logged_command linuxcnc_indexer_harness
fi
build_object_target \
@@ -1639,4 +1879,5 @@ build_object_target \
"$VENDOR_DIR/src/emc/tooldata/tooldata_common.cc" \
MINIMAL_FLAGS
write_native_cache_stamp "$NATIVE_INPUT_FINGERPRINT"
echo "native probes complete"