Unfortunately, that isn't true. One of the current build systems is a portable
Makefile, however it restricts itself to the portable stuff in Make (and
therefore works with BSD and GNU make, and at least used to work with Solaris
Make, although I've not tested it for a while), and so can't use inclusions or
conditionals.
Because it can't use conditionals, it can't optionally provide flags that are
required on some platforms and not others. It is also restricted to only being
able to build the runtime in a single configuration. It is also slow and takes
about twice as long to compile as the Makefiles generated from CMake (for this
project, ninja is about the same speed as make, because it doesn't have any
recursive make invocations, but it does maintain a more accurate dependency
graph, so I still prefer it).
gnu-make ... is more portable than cmake (and is installed as standard in many
more places, and *all* GNUstep systems), and has none of the limitations listed
for posix make ... so simply using gnu-make would be a good solution.
As far as performance is concerned ... of course cmake is bound to be slower
than make (since cmake builds make files and then executes them, it can't
possibly be as fast), but that's not relevant for a small project like libobjc2
... almost any build system would be fast enough on any modern machine.