I actually like the program xcal, but not only is it not in FreeBSD ports, the only place I can find a copy of the source is in Debian's source pools.
And the source won't build because clang doesn't translate ancient imake rules/macros right: X11.rules exists, but it's trying to include ' X11 .rules' (spurious spaces).
After hand-patching and creating a new diff comes getting it to compile in clang.
Because absolutely NOTHING I do to the Imakefile is creating Makefiles with "CC = gcc" in them. No matter what, they're all "CC = cc", which is clang's C compiler.
It built, it installed, and it works exactly on my new FreeBSD 11.1-RELEASE #Unix PC like it did on my old Debian Jessie #Linux PC!
Have the fruits of my labor: http://files.thornton2.com/packages/unix/xcal-4.1-patched-for-freebsd.tar.gz
Inside is the unpatched xcal 4.1 source tarball from Debian Sid (as of last week), my patch file, and my notes for applying the patch.
(Packages screenies & desc: https://screenshots.debian.net/package/xcal )
I don't expect it matters to too many other people, but I'm excited and happy. Anyway, a screenie (croppped) of xcal running and partly customized on my PC: https://computerfairi.es/media/W40bNZdWr2Bhudlybqw
(My window manager is x11-wm/wmx.)
Wow, it's been ages since I used diff and patch. Anyway, I'm making progress.
And finding that GCC is apparently happy with non-void C functions using `return;` without a value, while clang (rightly, IMO) throws an error.