• src/ssh/CMakeLists.txt src/syncterm/GNUmakefile

    From Deuc¨@VERT to Git commit to main/sbbs/master on Thu Apr 30 10:38:25 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4e2d5d8a30773c960d5168b4
    Modified Files:
    src/ssh/CMakeLists.txt src/syncterm/GNUmakefile
    Log Message:
    SyncTERM: tolerate trimmed source dist + half-finished DeuceSSH configure

    Source-dist tarball ships ssh/CMakeLists.txt without ssh/examples/, so DeuceSSH's add_executable(client/server) targets fail at configure
    ("Cannot find source file"). cmake's failure mode is "Configuring
    done Ä Generate step failed", which leaves deucessh.pc on disk (the configure_file ran) but no Makefile/build.ninja (generation aborted).
    The next gmake then sees deucessh.pc, skips configure, and runs
    `cmake --build` against a Makefile-less directory Ä "No rule to make
    target 'Makefile'", with no breadcrumb pointing back at the original
    cmake error.

    Two fixes:

    src/ssh/CMakeLists.txt: gate the example targets on EXISTS so a
    trimmed source tree doesn't fail configure. The examples are
    EXCLUDE_FROM_ALL anyway and never built as part of a normal target.

    src/syncterm/GNUmakefile: replace the deucessh.pc-only sentinel with
    a DSSH_BUILD_READY check that requires both deucessh.pc AND a
    build-system file (Makefile or build.ninja). A half-finished configure
    no longer looks succeeded. Same check applied to the build recipe's
    `if [ ! -f $(DEUCESSH_PC) ]` short-circuit.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net