BareGit

Fix NetHack engine sysconf path

Patch both Makefiles generated by NetHack setup so the engine library uses
the worker-relative sysconf path. The engine is compiled from src/Makefile,
not the top-level Makefile alone.
Author: MetroWind <chris.corsair@gmail.com>
Date: Thu Sep 24 19:47:09 2026 -0700
Commit: bfcf67b9a65abe96de13e077a0f74c7aafb6ea12

Changes

diff --git a/cmake/build_nethack.cmake b/cmake/build_nethack.cmake
index a308acc..c8328ec 100644
--- a/cmake/build_nethack.cmake
+++ b/cmake/build_nethack.cmake
@@ -50,19 +50,24 @@ endif()
 
 # NetHack's Linux hint embeds HACKDIR in SYSCF_FILE. MCP workers run from
 # private game directories and link sysconf there, so keep this path relative.
-set(NETHACK_MAKEFILE "${NETHACK_SOURCE_DIR}/Makefile")
-file(READ "${NETHACK_MAKEFILE}" NETHACK_MAKEFILE_CONTENT)
-string(FIND "${NETHACK_MAKEFILE_CONTENT}"
-    "$(HACKDIR)/sysconf" NETHACK_SYSCF_PATH_POSITION)
-if(NETHACK_SYSCF_PATH_POSITION EQUAL -1)
-    message(FATAL_ERROR "Could not find NetHack's compiled SYSCF_FILE path")
-endif()
-string(REPLACE
-    "$(HACKDIR)/sysconf"
-    "sysconf"
-    NETHACK_MAKEFILE_CONTENT
-    "${NETHACK_MAKEFILE_CONTENT}")
-file(WRITE "${NETHACK_MAKEFILE}" "${NETHACK_MAKEFILE_CONTENT}")
+foreach(NETHACK_MAKEFILE IN ITEMS
+    "${NETHACK_SOURCE_DIR}/Makefile"
+    "${NETHACK_SOURCE_DIR}/src/Makefile")
+    file(READ "${NETHACK_MAKEFILE}" NETHACK_MAKEFILE_CONTENT)
+    string(FIND "${NETHACK_MAKEFILE_CONTENT}"
+        "$(HACKDIR)/sysconf" NETHACK_SYSCF_PATH_POSITION)
+    if(NETHACK_SYSCF_PATH_POSITION EQUAL -1)
+        message(FATAL_ERROR
+            "Could not find NetHack's compiled SYSCF_FILE path in "
+            "${NETHACK_MAKEFILE}")
+    endif()
+    string(REPLACE
+        "$(HACKDIR)/sysconf"
+        "sysconf"
+        NETHACK_MAKEFILE_CONTENT
+        "${NETHACK_MAKEFILE_CONTENT}")
+    file(WRITE "${NETHACK_MAKEFILE}" "${NETHACK_MAKEFILE_CONTENT}")
+endforeach()
 
 # Publish NetHack's native end condition before the engine tears itself down.
 set(NETHACK_END_SOURCE "${NETHACK_SOURCE_DIR}/src/end.c")