On Thu, Jul 01 2021, Jeff Hostetler via GitGitGadget wrote: > From: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx> > > Stub in empty backend for fsmonitor--daemon on Windows. > > Signed-off-by: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx> > --- > Makefile | 13 ++++++ > compat/fsmonitor/fsmonitor-fs-listen-win32.c | 21 +++++++++ > compat/fsmonitor/fsmonitor-fs-listen.h | 49 ++++++++++++++++++++ > config.mak.uname | 2 + > contrib/buildsystems/CMakeLists.txt | 5 ++ > 5 files changed, 90 insertions(+) > create mode 100644 compat/fsmonitor/fsmonitor-fs-listen-win32.c > create mode 100644 compat/fsmonitor/fsmonitor-fs-listen.h > > diff --git a/Makefile b/Makefile > index c45caacf2c3..a2a6e1f20f6 100644 > --- a/Makefile > +++ b/Makefile > @@ -467,6 +467,11 @@ all:: > # directory, and the JSON compilation database 'compile_commands.json' will be > # created at the root of the repository. > # > +# If your platform supports a built-in fsmonitor backend, set > +# FSMONITOR_DAEMON_BACKEND to the "<name>" of the corresponding > +# `compat/fsmonitor/fsmonitor-fs-listen-<name>.c` that implements the > +# `fsmonitor_fs_listen__*()` routines. > +# > # Define DEVELOPER to enable more compiler warnings. Compiler version > # and family are auto detected, but could be overridden by defining > # COMPILER_FEATURES (see config.mak.dev). You can still set > @@ -1929,6 +1934,11 @@ ifdef NEED_ACCESS_ROOT_HANDLER > COMPAT_OBJS += compat/access.o > endif > > +ifdef FSMONITOR_DAEMON_BACKEND > + COMPAT_CFLAGS += -DHAVE_FSMONITOR_DAEMON_BACKEND > + COMPAT_OBJS += compat/fsmonitor/fsmonitor-fs-listen-$(FSMONITOR_DAEMON_BACKEND).o > +endif > + > ifeq ($(TCLTK_PATH),) > NO_TCLTK = NoThanks > endif > @@ -2793,6 +2803,9 @@ GIT-BUILD-OPTIONS: FORCE > @echo PAGER_ENV=\''$(subst ','\'',$(subst ','\'',$(PAGER_ENV)))'\' >>$@+ > @echo DC_SHA1=\''$(subst ','\'',$(subst ','\'',$(DC_SHA1)))'\' >>$@+ > @echo X=\'$(X)\' >>$@+ > +ifdef FSMONITOR_DAEMON_BACKEND > + @echo FSMONITOR_DAEMON_BACKEND=\''$(subst ','\'',$(subst ','\'',$(FSMONITOR_DAEMON_BACKEND)))'\' >>$@+ > +endif Why put this in an ifdef? In 342e9ef2d9e (Introduce a performance testing framework, 2012-02-17) we started doing that for some perf/test options (which b.t.w., I don't really see the reason for, maybe it's some subtlety in how test-lib.sh picks those up). But for all the other compile-time stuff we don't ifdef it, we just define it, and then you get an empty value or not. This would AFAICT be the first build-time-for-the-C-program option we ifdef for writing a line to GIT-BUILD-OPTIONS.