diff options
-rw-r--r-- | config.lib | 45 | ||||
-rw-r--r-- | src/os/macosx/osx_stdafx.h | 3 | ||||
-rw-r--r-- | src/stdafx.h | 9 |
3 files changed, 48 insertions, 9 deletions
diff --git a/config.lib b/config.lib index 54bac073b..a72025098 100644 --- a/config.lib +++ b/config.lib @@ -2019,16 +2019,53 @@ detect_cocoa() { log 1 "checking whether to enable the Quartz window subdriver... no" fi + detect_quickdraw +} + +detect_quickdraw() { + # 0 means no, 1 is auto-detect, 2 is force + # 64 bits doesn't have quickdraw if [ "$cpu_type" = "64" ]; then enable_cocoa_quickdraw="0" + log 1 "checking Quickdraw window subdriver... disabled (64 bits)" + return 0 fi - if [ "$enable_cocoa_quickdraw" != "0" ]; then - log 1 "checking whether to enable the Quickdraw window subdriver... yes" - else - log 1 "checking whether to enable the Quickdraw window subdriver... no" + if [ "$enable_cocoa_quickdraw" = "0" ]; then + log 1 "checking Quickdraw window subdriver... disabled" + + return 0 + fi + +cat > tmp.osx.mm << EOF +#define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_3 +#define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_3 +#include <AvailabilityMacros.h> +#import <Cocoa/Cocoa.h> +int main(int argc, char *argv[]) { return 0; } +EOF + execute="$cxx_host $CFLAGS tmp.osx.mm -framework Cocoa -o tmp.osx 2>&1" + eval $execute > /dev/null + ret=$? + log 2 "executing $execute" + log 2 " exit code $ret" + rm -f tmp.osx.mm tmp.osx + if [ "$ret" != "0" ]; then + log 1 "checking Quickdraw window subdriver... not found" + + # It was forced, so it should be found. + if [ "$enable_cocoa_quickdraw" != "1" ]; then + log 1 "configure: error: Quickdraw window driver could not be found" + exit 1 + fi + + enable_cocoa_quickdraw=0 + return 0 fi + + enable_cocoa_quickdraw=1 + log 1 "checking Quickdraw window subdriver... found" } detect_library() { diff --git a/src/os/macosx/osx_stdafx.h b/src/os/macosx/osx_stdafx.h index ee150dd8b..963783c21 100644 --- a/src/os/macosx/osx_stdafx.h +++ b/src/os/macosx/osx_stdafx.h @@ -5,6 +5,9 @@ #ifndef MACOS_STDAFX_H #define MACOS_STDAFX_H +#define __STDC_LIMIT_MACROS +#include <stdint.h> + /* We need to include this first as that "depends" on the compiler's setting * of __LP64__. So before we define __LP64__ so it can be used. */ #include <sys/cdefs.h> diff --git a/src/stdafx.h b/src/stdafx.h index ca6504091..bbb25639e 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -22,11 +22,10 @@ /* It seems that we need to include stdint.h before anything else * We need INT64_MAX, which for most systems comes from stdint.h. However, MSVC * does not have stdint.h and apparently neither does MorphOS, so define - * INT64_MAX for them ourselves. - * Sometimes OSX headers manages to include stdint.h before this but without - * __STDC_LIMIT_MACROS so it will be without INT64_*. We need to define those - * too if this is the case. */ -#if !defined(_MSC_VER) && !defined( __MORPHOS__) && !defined(_STDINT_H_) + * INT64_MAX for them ourselves. */ +#if defined(__APPLE__) + /* Already done in osx_stdafx.h */ +#elif !defined(_MSC_VER) && !defined( __MORPHOS__) && !defined(_STDINT_H_) #if defined(SUNOS) /* SunOS/Solaris does not have stdint.h, but inttypes.h defines everything * stdint.h defines and we need. */ |