From 179e44747a86fd2ce89bb0db0ed13b27ba8ed44b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 13 Jan 2010 08:06:32 +0000 Subject: [PATCH] Allow configure to override assertion settings, but by default this comes from the build optimization level. --- configure.in | 43 ++++++++++++++++----------------- include/SDL_assert.h | 6 +++-- include/SDL_config_iphoneos.h | 3 --- include/SDL_config_macosx.h | 3 --- include/SDL_config_minimal.h | 3 --- include/SDL_config_nintendods.h | 3 --- include/SDL_config_pandora.h | 3 --- include/SDL_config_win32.h | 3 --- include/SDL_config_wiz.h | 3 --- 9 files changed, 25 insertions(+), 45 deletions(-) diff --git a/configure.in b/configure.in index 83bbd375c..89bab3d29 100644 --- a/configure.in +++ b/configure.in @@ -137,28 +137,27 @@ AC_C_VOLATILE dnl See whether we want assertions for debugging/sanity checking SDL itself. AC_ARG_ENABLE(assertions, AC_HELP_STRING([--enable-assertions], - [Enable internal sanity checks (yes/no/release/paranoid) [[default=release]]]), - , enable_assertions=release) -sdl_valid_assertion_level=no -if test x$enable_assertions = xno; then - sdl_valid_assertion_level=yes - AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0) -fi -if test x$enable_assertions = xrelease; then - sdl_valid_assertion_level=yes - AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1) -fi -if test x$enable_assertions = xyes; then - sdl_valid_assertion_level=yes - AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2) -fi -if test x$enable_assertions = xparanoid; then - sdl_valid_assertion_level=yes - AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3) -fi -if test x$sdl_valid_assertion_level = xno; then - AC_MSG_ERROR([*** unknown assertion level. stop.]) -fi + [Enable internal sanity checks (auto/disabled/release/enabled/paranoid) [[default=auto]]]), + , enable_assertions=auto) +case "$enable_assertions" in + auto) # Use optimization settings to determine assertion level + ;; + disabled) + AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0) + ;; + release) + AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1) + ;; + enabled) + AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2) + ;; + paranoid) + AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3) + ;; + *) + AC_MSG_ERROR([*** unknown assertion level. stop.]) + ;; +esac dnl See whether we can use gcc style dependency tracking AC_ARG_ENABLE(dependency-tracking, diff --git a/include/SDL_assert.h b/include/SDL_assert.h index 9cff3dfe8..de4dd8640 100644 --- a/include/SDL_assert.h +++ b/include/SDL_assert.h @@ -25,8 +25,10 @@ #define _SDL_assert_h #ifndef SDL_ASSERT_LEVEL -#if defined(_DEBUG) || defined(DEBUG) || \ - (defined(__GNUC__) && !defined(__OPTIMIZE__)) +#ifdef SDL_DEFAULT_ASSERT_LEVEL +#define SDL_ASSERT_LEVEL SDL_DEFAULT_ASSERT_LEVEL +#elif defined(_DEBUG) || defined(DEBUG) || \ + (defined(__GNUC__) && !defined(__OPTIMIZE__)) #define SDL_ASSERT_LEVEL 2 #else #define SDL_ASSERT_LEVEL 1 diff --git a/include/SDL_config_iphoneos.h b/include/SDL_config_iphoneos.h index 288b18c8e..9248c3c1b 100644 --- a/include/SDL_config_iphoneos.h +++ b/include/SDL_config_iphoneos.h @@ -25,9 +25,6 @@ #include "SDL_platform.h" -/* SDL internal assertion support */ -#define SDL_DEFAULT_ASSERT_LEVEL 1 - #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) typedef signed char int8_t; typedef unsigned char uint8_t; diff --git a/include/SDL_config_macosx.h b/include/SDL_config_macosx.h index 194cbc830..be44f3325 100644 --- a/include/SDL_config_macosx.h +++ b/include/SDL_config_macosx.h @@ -28,9 +28,6 @@ /* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */ #include -/* SDL internal assertion support */ -#define SDL_DEFAULT_ASSERT_LEVEL 1 - /* This is a set of defines to configure the SDL features */ #ifdef __LP64__ diff --git a/include/SDL_config_minimal.h b/include/SDL_config_minimal.h index 9e5d43136..92c6a595b 100644 --- a/include/SDL_config_minimal.h +++ b/include/SDL_config_minimal.h @@ -33,9 +33,6 @@ #include -/* SDL internal assertion support */ -#define SDL_DEFAULT_ASSERT_LEVEL 1 - #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) typedef signed char int8_t; typedef unsigned char uint8_t; diff --git a/include/SDL_config_nintendods.h b/include/SDL_config_nintendods.h index a6bc07a61..5f71b98d5 100644 --- a/include/SDL_config_nintendods.h +++ b/include/SDL_config_nintendods.h @@ -27,9 +27,6 @@ /* This is a set of defines to configure the SDL features */ -/* SDL internal assertion support */ -#define SDL_DEFAULT_ASSERT_LEVEL 1 - #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) typedef signed char int8_t; typedef unsigned char uint8_t; diff --git a/include/SDL_config_pandora.h b/include/SDL_config_pandora.h index 88440d69e..da05654b8 100644 --- a/include/SDL_config_pandora.h +++ b/include/SDL_config_pandora.h @@ -28,9 +28,6 @@ /* General platform specific identifiers */ #include "SDL_platform.h" -/* SDL internal assertion support */ -#define SDL_DEFAULT_ASSERT_LEVEL 1 - #define SDL_HAS_64BIT_TYPE 1 #define SDL_BYTEORDER 1234 diff --git a/include/SDL_config_win32.h b/include/SDL_config_win32.h index 143371aa3..9dc1645b0 100644 --- a/include/SDL_config_win32.h +++ b/include/SDL_config_win32.h @@ -27,9 +27,6 @@ /* This is a set of defines to configure the SDL features */ -/* SDL internal assertion support */ -#define SDL_DEFAULT_ASSERT_LEVEL 1 - #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) #if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) #define HAVE_STDINT_H 1 diff --git a/include/SDL_config_wiz.h b/include/SDL_config_wiz.h index e0b35d87f..1b4b4ab33 100644 --- a/include/SDL_config_wiz.h +++ b/include/SDL_config_wiz.h @@ -28,9 +28,6 @@ /* General platform specific identifiers */ #include "SDL_platform.h" -/* SDL internal assertion support */ -#define SDL_DEFAULT_ASSERT_LEVEL 1 - /* Make sure that this isn't included by Visual C++ */ #ifdef _MSC_VER #error You should copy include/SDL_config.h.default to include/SDL_config.h