I don't know why my sibling comment is dead, but windows is the only non POSIX and UNIX-like still relevant. May be there is a niche non-UNIX OS that I don't know about?
OS X is POSIX certified, and Linux and BSD are obviously UNIX-like and mostly compliant.
Apart from the precise meaning of POSIX, windows is the only OS in widespread use not part of the UNIX-like family.
There are the embedded and mainframe OSes, but I guess they might be considered niche.
Not so niche are iOS and Android, which aren't fully POSIX compliant.
Then being POSIX compliant is only half of the story, because each OS tends to be certified to specific versions and there is room for implementation specific behaviours.
For example, Aix used to have Windows like model for dynamic libraries. OS X and its derivatives have Frameworks and so on.
Finally POSIX only applications are constrained to CLI and daemons only, as everything else falls outside POSIX.
> Finally POSIX only applications are constrained to CLI and daemons only, as everything else falls outside POSIX.
That is not a small group, especially as it includes your build environment. In Windows, many times I had a problem that I cannot run ./configure (or worse: the package used a home grown build system that assumed unix-y environment; py2cairo, I'm looking at you), not only because of bash/sed/m4/awk/etc, but also not counting with cl.exe (VS compiler).
Side note: OSX has not only frameworks, but also dylibs. You can treat existing framework as dylib, it will link fine.
> That is not a small group, especially as it includes your build environment.
Assuming the build environment is about CLI and daemons as I mentioned.
Anything else isn't guaranteed to work. To pick on your example, Cairo needs more than just POSIX to compile. X11 isn't part of POSIX.
Have you experience with big UNIXes like Aix, Solaris, HP-UX, Tru64 and DG-UX?
It been awhile since I used most of them (1994 - 2006), but I clearly remember surprises with those scripts (autotools and friends) when running them outside GNU/Linux.
Maybe the situation has improved there, since like many of us, my UNIX like experience is nowadays constrained to GNU/Linux distributions and Mac OS X.
Build environment usually is about CLI. Without daemons, abstracting from distcc and similar tools.
X11 for Cairo is optional. As is OpenGL or Win32 GDI. But yes, POSIX as it is, is a very limited API and for practical purposes, you need other APIs.
Yes, I have past experience with DX-UG/Tru64 and Solaris. At the time when Alpha AXP was a current chip, it was a little wonder to get to compile the same source code with different compilers, as they had different ideas about what a valid C code is. For Solaris, the easiest way to build anything was to get gcc instead of sun studio compiler. I think that Sun's GNU packages were built using gcc too.
Nowadays, I don't know about all other unices, because I'm using only Linux and OSX too. From the commonly used OSes, the most annoying to build something on is Windows.
OS X is POSIX certified, and Linux and BSD are obviously UNIX-like and mostly compliant.
Apart from the precise meaning of POSIX, windows is the only OS in widespread use not part of the UNIX-like family.