Add our modified SDL sources under distrib/sdl-1.2.12
Fix distrib/make-distrib.sh script to work with git
Fix distrib/build-emulator.sh to accomodate for new SDL configure script
Handle Tiger SDK usage in SDL configure script
diff --git a/distrib/sdl-1.2.12/android-configure.sh b/distrib/sdl-1.2.12/android-configure.sh
new file mode 100755
index 0000000..c367ed3
--- /dev/null
+++ b/distrib/sdl-1.2.12/android-configure.sh
@@ -0,0 +1,564 @@
+#/bin/sh
+#
+# this script is used to rebuild SDL from sources in the current
+# directory. It depends on the Android emulator build scripts
+# that should normally be located in ../emulator/android/build
+# but you can also use ANDROID_QEMU_PATH in your environment
+# to point to the top of the Android emulator sources
+#
+#
+
+# first, let's see which system we're running this on
+cd `dirname $0`
+
+# try to find the Android build directory automatically
+if [ -z "$ANDROID_QEMU_PATH" ] ; then
+    if [ -f ../../android/build/common.sh ] ; then
+        ANDROID_QEMU_PATH=../..
+    else
+        echo "You must define ANDROID_QEMU_PATH in your environment to point"
+        echo "to the directory containing the Android emulator's sources."
+        exit 1
+    fi
+fi
+
+if [ ! -d $ANDROID_QEMU_PATH ] ; then
+    echo "Your ANDROID_QEMU_PATH does not point to a valid directory."
+    exit 1
+fi
+
+if [ ! -f $ANDROID_QEMU_PATH/android/build/common.sh ] ; then
+    echo "Your ANDROID_QEMU_PATH does not point to a directory that"
+    echo "contains the Android emulator build scripts."
+    exit 1
+fi
+
+# source common functions definitions
+. $ANDROID_QEMU_PATH/android/build/common.sh
+
+# Parse options
+OPTION_TRY_64=no
+OPTION_HELP=no
+OPTION_TARGETS=
+OPTION_FORCE_AUTODETECT=no
+OPTION_NO_TIGER=no
+
+if [ -z "$CC" ] ; then
+  CC=gcc
+fi
+
+for opt do
+  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
+  case "$opt" in
+  --help|-h|-\?) OPTION_HELP=yes
+  ;;
+  --verbose)
+    if [ "$VERBOSE" = "yes" ] ; then
+        VERBOSE2=yes
+    else
+        VERBOSE=yes
+    fi
+  ;;
+  --cc=*) CC="$optarg" ; HOSTCC=$CC
+  ;;
+  --try-64) OPTION_TRY_64=yes
+  ;;
+  --prefix=*) OPTION_TARGETS="$OPTION_TARGETS $optarg"
+  ;;
+  --force-autodetect) OPTION_FORCE_AUTODETECT=yes
+  ;;
+  --no-tiger) OPTION_NO_TIGER=yes
+  ;;
+  *)
+    echo "unknown option '$opt', use --help"
+    exit 1
+  esac
+done
+
+# Print the help message
+#
+if [ "$OPTION_HELP" = "yes" ] ; then
+    cat << EOF
+
+Usage: rebuild.sh [options]
+Options: [defaults in brackets after descriptions]
+EOF
+    echo "Standard options:"
+    echo "  --help                   print this message"
+    echo "  --cc=PATH                specify C compiler [$CC]"
+    echo "  --try-64                 try to build a 64-bit executable (may crash)"
+    echo "  --verbose                verbose configuration"
+    echo "  --force-autodetect       force feature auto-detection"
+    echo "  --no-tiger               do not generate Tiger-compatible binaries (OS X only)"
+    echo ""
+    exit 1
+fi
+
+# we only support generating 32-bit binaris on 64-bit systems.
+# And we may need to add a -Wa,--32 to CFLAGS to let the assembler
+# generate 32-bit binaries on Linux x86_64.
+#
+if [ "$OPTION_TRY_64" != "yes" ] ; then
+    force_32bit_binaries
+fi
+
+# default target
+if [ -z "$OPTION_TARGETS" ] ; then
+  OPTION_TARGETS=out/$OS
+fi
+
+# we can build SDL with Cygwin, so enable it
+enable_cygwin
+
+setup_toolchain
+
+###
+### Special compiler and linker flags
+###
+
+case "$OS" in
+    linux-*)
+        BUILD_CFLAGS="-D_GNU_SOURCE=1 -fvisibility=hidden -DXTHREADS -D_REENTRANT"
+        # prevent -fstack-protector or the generated binaries will not link
+        BUILD_CFLAGS="$BUILD_CFLAGS -fno-stack-protector"
+        ;;
+    darwin-*)
+        BUILD_CFLAGS="-D_GNU_SOURCE=1 -fvisibility=hidden -DTARGET_API_MAC_CARBON -DTARGET_API_MAC_OSX -D_THREAD_SAFE -force_cpusubtype_ALL -fpascal-strings"
+        # detect the 10.4 SDK and use it automatically
+        TIGER_SDK=/Developer/SDKs/MacOSX10.4u.sdk
+        if [ ! -d $TIGER_SDK -a $OPTION_NO_TIGER = no ] ; then
+            echo "Please install the 10.4 SDK at $TIGER_SDK to generate Tiger-compatible binaries."
+            echo "If you don't want compatibility, use --no-tiger option instead."
+            exit 1
+        fi
+        if [ -d $TIGER_SDK ] ; then
+            TIGER_OPTS="-isysroot $TIGER_SDK -mmacosx-version-min=10.4"
+            BUILD_CFLAGS="$BUILD_CFLAGS $TIGER_OPTS"
+            BUILD_LDFLAGS="$BUILD_LDFLAGS $TIGER_OPTS -Wl,-syslibroot,$(TIGER_SDK)"
+            echo "Using OS X 10.4 SDK to generate Tiger-compatible binaries."
+        else
+            echo "Warning: the generated binaries will not be compatible with Tiger."
+        fi
+        ;;
+    windows)
+        BUILD_CFLAGS="-D_GNU_SOURCE=1"
+        ;;
+    *)
+        BUILD_CFLAGS=
+esac
+
+# BUILD_CFLAGS are used to build SDL, but SDL_CFLAGS are used
+# when clients want to use its facilities
+#
+case "$HOST_OS" in
+    linux)
+        SDL_CFLAGS="-D_GNU_SOURCE=1 -D_REENTRANT"
+        SDL_STATIC_LIBS="-lm -ldl -lpthread -lrt"
+        ;;
+    darwin)
+        SDL_CFLAGS="-D_GNU_SOURCE=1 -D_THREAD_SAFE"
+        SDL_STATIC_LIBS="-Wl,-framework,OpenGL -Wl,-framework,Cocoa -Wl,-framework,QuickTime -Wl,-framework,ApplicationServices -Wl,-framework,Carbon -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,IOKit"
+        ;;
+    windows)
+        SDL_CFLAGS="-D_GNU_SOURCE=1 -Dmain=SDL_main"
+        SDL_STATIC_LIBS="-luser32 -lgdi32 -lwinmm"
+        ;;
+    *)
+        SDL_CFLAGS=
+        SDL_STATIC_LIBS=
+esac
+
+DOLLAR="$"
+SDL_STATIC_LIBS="$DOLLAR{libdir}/libSDLmain.a $DOLLAR{libdir}/libSDL.a $SDL_STATIC_LIBS"
+
+###
+### Features probes
+###
+
+CONFIG_LIBC=yes
+
+###
+### Configuration files generation
+###
+
+# create the objs directory that is going to contain all generated files
+# including the configuration ones
+#
+mkdir -p objs
+
+config_add ()
+{
+    echo "$1" >> $config_h
+}
+
+# used to add a macro define/undef line to the configuration
+# $1: macro name
+# $2: 1, 0, yes or no
+# $3: optional log prefix
+config_add_macro ()
+{
+    local logname
+    logname="${3:-CfgMacro   }"
+    case "$2" in
+        0|no|false)
+            config_add "/* #undef $1 */"
+            log "$logname: $1=0"
+            ;;
+        1|yes|true)
+            config_add "#define $1 1"
+            log "$logname: $1=1"
+            ;;
+    esac
+}
+
+# used to add host-os-specific driver macros to the config file
+# $1 : driver prefix, e.g. DRIVERS_AUDIO
+# $2 : macro prefix
+# this will look for DRIVERS_AUDIO_${HOST_OS}, and, if it is not
+# defined in DRIVERS_AUDIO_default
+#
+# then this will call 'config_add ${2}_${driver}' for each driver listed
+#
+config_add_driver_macros ()
+{
+    local  driver_list="`var_value ${1}_${HOST_OS}`"
+    local  driver_name
+    if [ -z "$driver_list" ] ; then
+        driver_list="`var_value ${1}_default`"
+    fi
+    for driver_name in $driver_list; do
+        config_add_macro "${2}_${driver_name}" yes
+    done
+}
+
+config_h=objs/SDL_config.h
+
+# a function used to check the availability of a given Standard C header
+# $1 : header name, without the .h suffix nor enclosing brackets (e.g. 'memory' for <memory.h>)
+# this will update the configuration with a relevant line
+sdl_check_header ()
+{
+    local result
+    local header
+    local macro
+    header="<$1.h>"
+    macro=`to_uppercase $1`
+    macro=`echo $macro | tr '/' '_'`
+    feature_check_header result "$header"
+    config_add_macro HAVE_${macro}_H $result "StdCHeader "
+}
+
+# call sdl_check_header with a list of header names
+sdl_check_headers ()
+{
+    for hh in $*; do
+        sdl_check_header "$hh"
+    done
+}
+
+# a function used to check that a given function is available in the C library
+# this will update the configuration with a relevant line
+# $1: function name
+# $2: optional, libraries to link against
+#
+sdl_check_func ()
+{
+    local result
+    local funcname
+    local macro
+    funcname="$1"
+    macro=`to_uppercase $1`
+    rm -f $TMPC
+    cat > $TMPC <<EOF
+#undef $funcname
+#define $funcname  _innocuous_$funcname
+#include <assert.h>
+#undef $funcname
+
+typedef void (*func_t)(void);
+extern void $funcname(void);
+func_t  _dummy = $funcname;
+int   main(void)
+{
+    return _dummy == $funcname;
+}
+EOF
+    EXTRA_LDFLAGS="$2"
+    feature_check_link result
+    config_add_macro HAVE_${macro} $result "StdCFunc   "
+}
+
+# call sdl_check_func with a list of functions
+sdl_check_funcs ()
+{
+    for ff in $*; do
+        sdl_check_func "$ff"
+    done
+}
+
+# check endianess of the host platform
+sdl_check_endianess ()
+{
+    cat > $TMPC <<EOF
+    int  main(void)
+    {
+        union {
+            unsigned short  v;
+            unsigned char   b[2];
+        } u;
+
+        u.v = 0x1234;
+        return (u.b[0] == 0x12);
+    }
+EOF
+    feature_run_exec test_e
+    if [ "$test_e" = "1" ] ; then
+        eval $1=4321
+    else
+        eval $1=1234
+    fi
+}
+
+
+generate_SDL_config_h ()
+{
+    echo "/* This file was autogenerated by '$PROGNAME' - do not edit */" > $config_h
+
+    config_add "#ifndef _SDL_config_h"
+    config_add "#define _SDL_config_h"
+    config_add ""
+    config_add "#include \"SDL_platform.h\""
+    config_add ""
+    
+    # true for all architectures these days
+    config_add_macro SDL_HAS_64BIT_TYPE  1
+
+    sdl_check_endianess ENDIANESS
+    config_add "#define SDL_BYTEORDER $ENDIANESS"
+    config_add ""
+
+    config_add_macro HAVE_LIBC $CONFIG_LIBC
+
+    config_add "#if HAVE_LIBC"
+    config_add ""
+    config_add "/* Useful headers */"
+
+    sdl_check_headers  alloca sys/types stdio
+
+    # just like configure - force it to 1
+    config_add "#define STDC_HEADERS  1"
+
+    sdl_check_headers  stdlib stdarg malloc memory string strings inttypes stdint ctype math iconv signal altivec
+
+    config_add "/* C library functions */"
+
+    sdl_check_funcs  malloc calloc realloc free alloc
+
+    config_add "#ifndef _WIN32 /* Don't use on Windows */"
+
+    sdl_check_funcs  getenv putenv unsetenv
+
+    config_add "#endif"
+    sdl_check_funcs qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat
+    sdl_check_funcs strdup _strrev _strupr _strlwr index rindex strchr strrchr itoa _ltoa
+    sdl_check_funcs _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull
+    sdl_check_funcs strtod atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp
+    sdl_check_funcs vsnprintf iconv sigaction setjmp nanosleep
+
+    sdl_check_func clock_gettime -lrt
+    sdl_check_func dlvsym -ldl
+
+    sdl_check_funcs getpagesize
+
+    config_add "#else"
+    config_add "/* We may need some replacement for stdarg.h here */"
+    config_add "#include <stdarg.h>"
+    config_add "#endif /* HAVE_LIBC */"
+    config_add ""
+
+    config_add "/* Allow disabling of core subsystems */"
+
+    config_add_macro SDL_AUDIO_DISABLED no
+    config_add_macro SDL_CDROM_DISABLED yes
+    config_add_macro SDL_CPUINFO_DISABLED no
+    config_add_macro SDL_EVENTS_DISABLED no
+    config_add_macro SDL_FILE_DISABLED yes
+    config_add_macro SDL_JOYSTICK_DISABLED yes
+    config_add_macro SDL_LOADSO_DISABLED no
+    config_add_macro SDL_THREADS_DISABLED no
+    config_add_macro SDL_TIMERS_DISABLED no
+    config_add_macro SDL_VIDEO_DISABLED no
+
+    config_add ""
+    config_add "/* Enable various audio drivers */"
+
+    config_add_driver_macros DRIVERS_AUDIO SDL_AUDIO_DRIVER
+
+    config_add ""
+    config_add "/* Enable various shared object loading systems */"
+
+    config_add_driver_macros DRIVERS_LOADSO SDL_LOADSO
+
+    config_add ""
+    config_add "/* Enable various threading systems */"
+
+    config_add_driver_macros DRIVERS_THREAD SDL_THREAD
+
+    config_add ""
+    config_add "/* Enable various timer systems */"
+
+    config_add_driver_macros DRIVERS_TIMER SDL_TIMER
+
+    config_add ""
+    config_add "/* Enable various video drivers */"
+
+    config_add_driver_macros DRIVERS_VIDEO SDL_VIDEO_DRIVER
+
+    config_add_driver_macros DRIVERS_MAIN SDL_MAIN
+
+    # the following defines are good enough for all recent Unix distributions
+    config_add "#define SDL_VIDEO_DRIVER_X11_DYNAMIC \"libX11.so.6\""
+    config_add "#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT \"libXext.so.6\""
+    config_add "#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR \"libXrandr.so.2\""
+    config_add "#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER \"libXrender.so.1\""
+
+    # todo: OpenGL support ?
+    # todo: Assembly routines support ?
+
+    config_add "#endif /* _SDL_config_h */"
+}
+
+### Build the config sub-makefile
+###
+
+make_add ()
+{
+    echo "$1" >> $config_mk
+}
+
+make_add_driver_macros ()
+{
+    local driver_list="`var_value ${1}_${HOST_OS}`"
+    local driver_name
+    if [ -z "$driver_list" ] ; then
+        driver_list="`var_value ${1}_default`"
+    fi
+    for driver_name in $driver_list; do
+        make_add "$2_${driver_name} := yes"
+    done
+}
+
+generate_sdl_config_mk ()
+{
+    CFLAGS="$CFLAGS $BUILD_CFLAGS"
+    LDFLAGS="$LDFLAGS $BUILD_LDFLAGS"
+    create_config_mk
+
+    make_add ""
+    PWD=`pwd`
+    make_add "SRC_PATH=$PWD"
+    make_add "BUILD_SYSTEM=$ANDROID_QEMU_PATH/android/build"
+
+    make_add "CONFIG_LIBC := $CONFIG_LIBC"
+    make_add "CONFIG_CPUINFO := yes"
+
+    make_add_driver_macros DRIVERS_AUDIO  CONFIG_AUDIO
+    make_add_driver_macros DRIVERS_LOADSO CONFIG_LOADSO
+    make_add_driver_macros DRIVERS_THREAD CONFIG_THREAD
+    make_add_driver_macros DRIVERS_TIMER  CONFIG_TIMER
+    make_add_driver_macros DRIVERS_VIDEO  CONFIG_VIDEO
+
+    make_add_driver_macros DRIVERS_MAIN   CONFIG_MAIN
+
+    make_add "INSTALL_TARGETS := $OPTION_TARGETS"
+}
+
+### Build the final sdl-config script from the template
+###
+
+generate_sdl_config ()
+{
+    # build a sed script that will replace all @VARIABLES@ in the template
+    # with appropriate values
+    rm -f $TMPC
+
+    # replace @exec_prefix@ with "{prefix}", and @libdir@ with "{libdir}"
+    cat > $TMPC <<EOF
+s!@exec_prefix@!\$\{prefix\}!g
+s!@libdir@!\$\{exec_prefix\}/lib!g
+s!@includedir@!\$\{prefix\}/include!g
+EOF
+
+    # we want to enable static linking, do @ENABLE_STATIC_FALSE@ and @ENABLE_STATIC_TRUE@
+    cat >> $TMPC <<EOF
+s!@ENABLE_STATIC_FALSE@!\#!g
+s!@ENABLE_STATIC_TRUE@!!g
+s!@ENABLE_SHARED_TRUE@!\#!g
+s!@ENABLE_SHARED_FALSE@!!g
+EOF
+
+    # set the version to 1.2.12
+    cat >> $TMPC <<EOF
+s!@SDL_VERSION@!1.2.12!g
+EOF
+
+    #
+    cat >> $TMPC <<EOF
+s!@SDL_CFLAGS@!$SDL_CFLAGS!g
+s!@SDL_STATIC_LIBS@!$SDL_STATIC_LIBS!g
+EOF
+
+    cat sdl-config.in | sed -f $TMPC > objs/sdl-config
+    chmod +x objs/sdl-config
+}
+
+# copy a configuration file or perform auto-detection if one is not available
+# or the --force-autodetect option was used
+# $1: basename of config file
+# $2: command to run to perform auto-detection/generation
+#
+copy_or_autodetect ()
+{
+    if [ "$OPTION_FORCE_AUTODETECT" != "yes" -a -f android/build/$OS/$1 ] ; then
+        log "Setup      : Copying $1 from android/build/$OS"
+        cp -f android/build/$OS/$1 objs/$1
+    else
+        log "Setup      : Auto-generating $1"
+        eval $2
+    fi
+}
+
+generate_all ()
+{
+  copy_or_autodetect SDL_config.h generate_SDL_config_h
+  generate_sdl_config_mk
+  copy_or_autodetect sdl-config generate_sdl_config
+}
+
+DRIVERS_AUDIO_default="OSS"
+DRIVERS_AUDIO_linux="ALSA ALSA_DYNAMIC OSS ESD_DYNAMIC ESD"
+DRIVERS_AUDIO_darwin="COREAUDIO"
+DRIVERS_AUDIO_windows="WAVEOUT"
+
+DRIVERS_LOADSO_default=DLOPEN
+DRIVERS_LOADSO_darwin=DLCOMPAT
+DRIVERS_LOADSO_windows=WIN32
+
+# TODO: determine if PTHREAD_RECURSIVE or PTHREAD_RECURSIVE_NP is valid for the platform
+DRIVERS_THREAD_default="PTHREAD PTHREAD_RECURSIVE_MUTEX"
+DRIVERS_THREAD_linux="PTHREAD PTHREAD_RECURSIVE_MUTEX_NP"
+DRIVERS_THREAD_windows=WIN32
+
+DRIVERS_TIMER_default=UNIX
+DRIVERS_TIMER_windows=WIN32
+
+# TODO: actually compute this properly for X11 and dynamic loading !!
+DRIVERS_VIDEO_default="X11 X11_DPMS X11_XINERAMA X11_XME"
+DRIVERS_VIDEO_darwin="QUARTZ"
+DRIVERS_VIDEO_windows="WINDIB"
+
+DRIVERS_MAIN_default=DUMMY
+DRIVERS_MAIN_darwin=MACOSX
+DRIVERS_MAIN_windows=WIN32
+
+generate_all