Why do we need to add uppercase `OS` for the `TARGET_{LINUX,FREEBSD,OSX}` define? No need for the macros to be all uppercase. I'd say this is getting close to overengineering. Let's just stick with what the OS reports.