test/gcc-fat.sh
author Sam Lantinga <slouken@libsdl.org>
Thu, 25 Apr 2013 00:26:17 -0700
changeset 7110 2a98852fd58d
parent 1797 783b9409baa0
child 4127 6cb18cf1777e
permissions -rwxr-xr-x
Fixed bug 1582 - Allow disabling SDL_VIDEO_DRIVER_WINDOWS

Marcus von Appen

Trying to build SDL 2.x (HG) on Win32 platforms with either VS.NET or MinGW requires one to have the video subsystem and SDL_VIDEO_DRIVER_WINDOWS flag enabled due to the helper window creation routines.

The attached patch changes the helper window creation behaviour, so that one can build SDL2 without the video subsystem or Windows video drivers on Win32 platforms.
     1 #!/bin/sh
     2 #
     3 # Build Universal binaries on Mac OS X, thanks Ryan!
     4 #
     5 # Usage: ./configure CC="sh gcc-fat.sh" && make && rm -rf ppc x86
     6 
     7 # PowerPC compiler flags (10.2 runtime compatibility)
     8 GCC_COMPILE_PPC="gcc-3.3 -arch ppc \
     9 -DMAC_OS_X_VERSION_MIN_REQUIRED=1020 \
    10 -nostdinc \
    11 -F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \
    12 -I/Developer/SDKs/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3 \
    13 -isystem /Developer/SDKs/MacOSX10.2.8.sdk/usr/include"
    14 
    15 GCC_LINK_PPC="\
    16 -L/Developer/SDKs/MacOSX10.2.8.sdk/usr/lib/gcc/darwin/3.3 \
    17 -F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \
    18 -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk"
    19 
    20 # Intel compiler flags (10.4 runtime compatibility)
    21 GCC_COMPILE_X86="gcc-4.0 -arch i386 -mmacosx-version-min=10.4 \
    22 -DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \
    23 -nostdinc \
    24 -F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks \
    25 -I/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1/include \
    26 -isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include"
    27 
    28 GCC_LINK_X86="\
    29 -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.0 \
    30 -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
    31 
    32 # Output both PowerPC and Intel object files
    33 args="$*"
    34 compile=yes
    35 link=yes
    36 while test x$1 != x; do
    37     case $1 in
    38         --version) exec gcc $1;;
    39         -v) exec gcc $1;;
    40         -V) exec gcc $1;;
    41         -print-prog-name=*) exec gcc $1;;
    42         -print-search-dirs) exec gcc $1;;
    43         -E) GCC_COMPILE_PPC="$GCC_COMPILE_PPC -E"
    44             GCC_COMPILE_X86="$GCC_COMPILE_X86 -E"
    45             compile=no; link=no;;
    46         -c) link=no;;
    47         -o) output=$2;;
    48         *.c|*.cc|*.cpp|*.S) source=$1;;
    49     esac
    50     shift
    51 done
    52 if test x$link = xyes; then
    53     GCC_COMPILE_PPC="$GCC_COMPILE_PPC $GCC_LINK_PPC"
    54     GCC_COMPILE_X86="$GCC_COMPILE_X86 $GCC_LINK_X86"
    55 fi
    56 if test x"$output" = x; then
    57     if test x$link = xyes; then
    58         output=a.out
    59     elif test x$compile = xyes; then
    60         output=`echo $source | sed -e 's|.*/||' -e 's|\(.*\)\.[^\.]*|\1|'`.o
    61     fi
    62 fi
    63 
    64 if test x"$output" != x; then
    65     dir=ppc/`dirname $output`
    66     if test -d $dir; then
    67         :
    68     else
    69         mkdir -p $dir
    70     fi
    71 fi
    72 set -- $args
    73 while test x$1 != x; do
    74     if test -f "ppc/$1" && test "$1" != "$output"; then
    75         ppc_args="$ppc_args ppc/$1"
    76     else
    77         ppc_args="$ppc_args $1"
    78     fi
    79     shift
    80 done
    81 $GCC_COMPILE_PPC $ppc_args || exit $?
    82 if test x"$output" != x; then
    83     cp $output ppc/$output
    84 fi
    85 
    86 if test x"$output" != x; then
    87     dir=x86/`dirname $output`
    88     if test -d $dir; then
    89         :
    90     else
    91         mkdir -p $dir
    92     fi
    93 fi
    94 set -- $args
    95 while test x$1 != x; do
    96     if test -f "x86/$1" && test "$1" != "$output"; then
    97         x86_args="$x86_args x86/$1"
    98     else
    99         x86_args="$x86_args $1"
   100     fi
   101     shift
   102 done
   103 $GCC_COMPILE_X86 $x86_args || exit $?
   104 if test x"$output" != x; then
   105     cp $output x86/$output
   106 fi
   107 
   108 if test x"$output" != x; then
   109     lipo -create -o $output ppc/$output x86/$output
   110 fi