BSD detection
There is this piece of code in headers.h:
#ifdef WXMAC_OSX #define WXMAC 1 #define WXOSX 1 #define BSD 1 #endif #endif
In my testing it’s not caught on FreeBSD 8.1
I propose it be changed to:
#if (defined(unix) || defined(unix)) && !defined(USG) #include <sys/param.h> #endif
And then checks for BSD should be #ifdef BSD This is the recommended way of detecting BSD in the FreeBSD Porter’s Handbook.
This change is already done in my CMake tree.
Quote from: dkaparis on August 11, 2010, 11:00:16 PM
There is this piece of code in headers.h:
#ifdef WXMAC_OSX #define WXMAC 1 #define WXOSX 1 #define BSD 1 #endif #endif
That code was a bad idea anyway, I’m deleting it. Any Mac code should only use WXMAC_OSX, not WXMAC or WXOSX, and we should stop using BSD.
Quote #if (defined(unix) || defined(unix)) && !defined(USG) #include <sys/param.h> #endif
Will that definitely cause BSD to be defined on Mac?
Quote from: satoshi on August 12, 2010, 12:02:06 AM
Quote #if (defined(unix) || defined(unix)) && !defined(USG) #include #endif
Will that definitely cause BSD to be defined on Mac?
Don’t know if Mac OS X is technically a BSD and I don’t have access to a Mac, maybe someone else may test it. If there are other Mac (and not BSD) specialties, then we’d need to check both for WXMAC_OSX and BSD or detect these in some other way altogether.
This is in SVN rev 130. Check that it compiles right.
Code:#if (defined(unix) || defined(unix)) && !defined(USG) #include <sys/param.h> // to get BSD define #endif #ifdef WXMAC_OSX #ifndef BSD #define BSD 1 #endif #endif