I am working through the steps of compiling lsyncd on Mac OS X (10.7.3 to be exact).
Finally managed to it get it compiled despite a couple minor syntax errors in the lysncd source code; and I understand from Axel Kittenberger (the developer managing lsyncd) that the compilation requires XNU.
References:-
The configure step was done this way:-
./configure --without-inotify --with-fsevents CFLAGS="-I /Users/calvin/xnu-1699.24.23/" LUA_CFLAGS="-I /opt/local/include" LUA_LIBS="/opt/local/lib/liblua.a"
followed by some minor changes to the newly created Makefile (relating changing the path to asciidoc to my macports asciidoc location) and running
make
So all goes well and I finally have the resulting lsyncd
binary.
My question is: why was xnu required in this process? (am curious to know)
Via Axel Kittenberger, author/maintainer of lsyncd, this is because:-
Lsyncd accesses /dev/fsevents on a level that apple considers internal. Lsyncds event source on OSX was based on this code: Link