Skip to content

Simplify build system to avoid cmake#45

Merged
shikokuchuo merged 4 commits into
mainfrom
simplify-configure
Jun 22, 2026
Merged

Simplify build system to avoid cmake#45
shikokuchuo merged 4 commits into
mainfrom
simplify-configure

Conversation

@shikokuchuo

@shikokuchuo shikokuchuo commented Jun 22, 2026

Copy link
Copy Markdown
Member

Closes #44.

Replace the cmake-based bundled build with direct compilation of the libfswatch sources into the package shared object via explicit per-object Makevars rules. No cmake, no static archive, no install step, and no GNU make dependency.

  • Hand-maintained libfswatch_config.h selects features from compiler platform macros (no install-time probing).
  • configure keeps only system-libfswatch detection, the -latomic probe and the macOS -framework CoreServices flag; emits @cppflags@ / libs@ / @fsw_objects@.
  • Static Makevars.win/.ucrt; configure.win/.ucrt removed (Biarch kept).
  • Self-guard fsevents/inotify/fanotify monitors so one POSIX object list works across all POSIX OSes (wrong-OS monitors compile to empty objects).
  • Neuter libfswatch's diagnostic logging so the compiled package writes nothing to stdout/stderr (keeps R CMD check 'compiled code' clean now that libfswatch is linked into watcher.so rather than a separate, deleted lib).
  • All source patches live in an idempotent tools/patch_libfswatch.sh, called by tools/update_libfswatch.sh, which also regenerates the Makevars and the POSIX object list.

Replace the cmake-based bundled build with direct compilation of the
libfswatch sources into the package shared object via explicit per-object
Makevars rules. No cmake, no static archive, no install step, and no GNU
make dependency.

- Hand-maintained libfswatch_config.h selects features from compiler
  platform macros (no install-time probing).
- configure keeps only system-libfswatch detection, the -latomic probe and
  the macOS -framework CoreServices flag; emits @cppflags@/@libs@/@fsw_objects@.
- Static Makevars.win/.ucrt; configure.win/.ucrt removed (Biarch kept).
- Self-guard fsevents/inotify/fanotify monitors so one POSIX object list
  works across all POSIX OSes (wrong-OS monitors compile to empty objects).
- Neuter libfswatch's diagnostic logging so the compiled package writes
  nothing to stdout/stderr (keeps R CMD check 'compiled code' clean now that
  libfswatch is linked into watcher.so rather than a separate, deleted lib).
- All source patches live in an idempotent tools/patch_libfswatch.sh, called
  by tools/update_libfswatch.sh, which also regenerates the Makevars and the
  POSIX object list.
@shikokuchuo shikokuchuo merged commit 984b12c into main Jun 22, 2026
11 checks passed
@shikokuchuo shikokuchuo deleted the simplify-configure branch June 22, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Simplify build system

1 participant