aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile5
-rw-r--r--Makefile.android50
-rwxr-xr-xandroid-configure.sh152
-rw-r--r--android/build/common.sh18
-rw-r--r--android/config/darwin-x86/SDL_config.h (renamed from distrib/sdl-1.2.12/android/build/darwin-x86/SDL_config.h)0
-rw-r--r--android/config/freebsd-x86/SDL_config.h (renamed from distrib/sdl-1.2.12/android/build/freebsd-x86/SDL_config.h)0
-rw-r--r--android/config/linux-x86/SDL_config.h (renamed from distrib/sdl-1.2.12/android/build/linux-x86/SDL_config.h)0
-rw-r--r--android/config/windows/SDL_config.h (renamed from distrib/sdl-1.2.12/android/build/windows/SDL_config.h)0
-rw-r--r--android/main.c3
-rwxr-xr-xdistrib/build-emulator.sh7
-rwxr-xr-xdistrib/make-distrib.sh5
-rw-r--r--distrib/sdl-1.2.12/Makefile.android216
-rwxr-xr-xdistrib/sdl-1.2.12/android-configure.sh8
-rw-r--r--distrib/sdl-1.2.12/sources.make244
15 files changed, 377 insertions, 332 deletions
diff --git a/.gitignore b/.gitignore
index e31aaec..db1f286 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
images/android_icon.o
objs/*
*.*~
-distrib
diff --git a/Makefile b/Makefile
index f39a14c..7b23968 100644
--- a/Makefile
+++ b/Makefile
@@ -46,11 +46,12 @@ all: libraries executables
EXECUTABLES :=
LIBRARIES :=
-SDL_CONFIG ?= $(PREBUILT)/sdl/bin/sdl-config
+ifneq ($(SDL_CONFIG),)
SDL_LIBS := $(filter %.a,$(shell $(SDL_CONFIG) --static-libs))
$(foreach lib,$(SDL_LIBS), \
$(eval $(call copy-prebuilt-lib,$(lib))) \
)
+endif
clean: clean-intermediates
@@ -70,4 +71,4 @@ clean-config:
# include dependency information
DEPENDENCY_DIRS := $(sort $(DEPENDENCY_DIRS))
--include $(wildcard $(DEPENDENCY_DIRS:%=%/*.d)) \ No newline at end of file
+-include $(wildcard $(DEPENDENCY_DIRS:%=%/*.d))
diff --git a/Makefile.android b/Makefile.android
index 87da191..5519896 100644
--- a/Makefile.android
+++ b/Makefile.android
@@ -1,11 +1,21 @@
ifeq ($(TARGET_ARCH),arm)
LOCAL_PATH:= $(call my-dir)
+# determine the host tag to use
+QEMU_HOST_TAG := $(HOST_PREBUILT_TAG)
+ifneq ($(USE_MINGW),)
+ QEMU_HOST_TAG := windows
+endif
+
# determine the location of platform-specific directories
#
CONFIG_DIRS := \
$(LOCAL_PATH)/android/config \
- $(LOCAL_PATH)/android/config/$(HOST_PREBUILT_TAG)
+ $(LOCAL_PATH)/android/config/$(QEMU_HOST_TAG)
+
+ifeq ($(BUILD_STANDALONE_EMULATOR),true)
+ CONFIG_DIRS := $(LOCAL_PATH)/objs $(CONFIG_DIRS)
+endif
CONFIG_INCLUDES := $(CONFIG_DIRS:%=-I%)
@@ -307,7 +317,20 @@ include $(BUILD_HOST_STATIC_LIBRARY)
# SDL-related definitions
#
-SDL_CONFIG ?= prebuilt/$(HOST_PREBUILT_TAG)/sdl/bin/sdl-config
+# Build SDL from sources except on linux-x86, to avoid installing all
+# the X11 development packages on our build servers.
+#
+BUILD_SDL_FROM_SOURCES := true
+ifeq ($(QEMU_HOST_TAG),linux-x86)
+ BUILD_SDL_FROM_SOURCES := false
+endif
+ifneq ($(SDL_CONFIG),)
+ BUILD_SDL_FROM_SOURCES := false
+endif
+
+ifneq ($(BUILD_SDL_FROM_SOURCES),true)
+
+SDL_CONFIG ?= prebuilt/$(QEMU_HOST_TAG)/sdl/bin/sdl-config
SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags)
# We need to filter out the _GNU_SOURCE variable because it breaks recent
@@ -316,6 +339,16 @@ SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags)
SDL_CFLAGS := $(filter-out -D_GNU_SOURCE=1,$(SDL_CFLAGS))
SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(SDL_CONFIG) --static-libs))
+# Circular dependencies between libSDL and libSDLmain;
+# We repeat the libraries in the final link to work around it.
+SDL_STATIC_LIBRARIES := libSDL libSDLmain libSDL libSDLmain
+
+else # !BUILD_STANDALONE_EMULATOR
+
+SDL_DIR := distrib/sdl-1.2.12
+include $(LOCAL_PATH)/$(SDL_DIR)/sources.make
+
+endif # !BUILD_STANDALONE_EMULATOR
##############################################################################
# determine audio sources, build the prebuilt audio-library if needed
@@ -386,7 +419,7 @@ QEMU_AUDIO_LIB :=
ifneq ($(BUILD_STANDALONE_EMULATOR),true)
QEMU_AUDIO_LIB := $(wildcard \
- prebuilt/$(HOST_PREBUILT_TAG)/emulator/libqemu-audio.a)
+ prebuilt/$(QEMU_HOST_TAG)/emulator/libqemu-audio.a)
endif
ifeq ($(BUILD_QEMU_AUDIO_LIB),true)
@@ -463,6 +496,12 @@ LOCAL_CFLAGS += $(ZLIB_CFLAGS) -I$(LOCAL_PATH)/$(ZLIB_DIR)
LOCAL_SRC_FILES += $(LIBPNG_SOURCES)
LOCAL_CFLAGS += $(LIBPNG_CFLAGS) -I$(LOCAL_PATH)/$(LIBPNG_DIR)
+# include the SDL sources
+#
+LOCAL_SRC_FILES += $(SDL_SOURCES) $(SDLMAIN_SOURCES)
+LOCAL_CFLAGS += $(SDL_CFLAGS) -I$(LOCAL_PATH)/$(SDL_DIR)/include
+
+#
LOCAL_CFLAGS += -I$(LOCAL_PATH)/ \
-I$(LOCAL_PATH)/target-arm \
-I$(LOCAL_PATH)/fpu \
@@ -671,10 +710,7 @@ endif
#
LOCAL_CFLAGS += $(SDL_CFLAGS)
LOCAL_LDLIBS += $(SDL_LDLIBS)
-# Circular dependencies between libSDL and libSDLmain;
-# We repeat the libraries in the final link to work around it.
-LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
-LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
+LOCAL_STATIC_LIBRARIES += $(SDL_STATIC_LIBRARIES)
# add ELFF-specific flags
#
diff --git a/android-configure.sh b/android-configure.sh
index 0e95e04..1cf5008 100755
--- a/android-configure.sh
+++ b/android-configure.sh
@@ -4,11 +4,6 @@
# in the current directory. It also contains logic to speed up the
# rebuild if it detects that you're using the Android build system
#
-# in this case, it will use prebuilt binaries for the compiler,
-# the audio library and the SDL library. You can disable this
-# by using the --no-prebuilt-libs and --cc=<compiler> options
-#
-#
# here's the list of environment variables you can define before
# calling this script to control it (besides options):
#
@@ -139,13 +134,6 @@ if [ "$IN_ANDROID_BUILD" = "yes" ] ; then
log "Prebuilt : CCACHE=$CCACHE"
fi
- # if the user didn't specify an sdl-config script, get the prebuilt one
- if [ -z "$SDL_CONFIG" -a "$OPTION_NO_PREBUILTS" = "no" ] ; then
- # always use our own static libSDL by default
- SDL_CONFIG=$ANDROID_PREBUILT/sdl/bin/sdl-config
- log "Prebuilt : SDL_CONFIG=$SDL_CONFIG"
- fi
-
# finally ensure that our new binary is copied to the 'out'
# subdirectory as 'emulator'
HOST_BIN=$(get_android_abs_build_var HOST_OUT_EXECUTABLES)
@@ -174,106 +162,83 @@ setup_toolchain
### SDL Probe
###
-# if the user didn't specify a sdl-config script, get the prebuilt one
-if [ -z "$SDL_CONFIG" -a "$OPTION_NO_PREBUILTS" = "no" ] ; then
- # try to find one from our git repository
- SDL_CONFIG=../sdl/out/$OS/bin/sdl-config
- if [ -f $SDL_CONFIG ] ; then
- log "Prebuilt : SDL_CONFIG=$SDL_CONFIG"
- else
- echo "WARNING: YOU SHOULD USE THE --sdl-config OPTION"
- SDL_CONFIG=
- fi
-fi
+if [ -n "$SDL_CONFIG" ] ; then
-# For now, we require an external libSDL library, if SDL_CONFIG is not
-# defined, try to grab it from the environment
-#
-if [ -z "$SDL_CONFIG" ] ; then
- SDL_CONFIG=`which sdl-config`
- if [ $? != 0 ] ; then
- echo "Please ensure that you have the emulator's patched libSDL"
- echo "built somewhere and point to its sdl-config script either"
- echo "with the SDL_CONFIG env. variable, or the --sdl-config=<script>"
- echo "option."
- clean_exit
- fi
-fi
+ # check that we can link statically with the library.
+ #
+ SDL_CFLAGS=`$SDL_CONFIG --cflags`
+ SDL_LIBS=`$SDL_CONFIG --static-libs`
-# check that we can link statically with the library.
-#
-SDL_CFLAGS=`$SDL_CONFIG --cflags`
-SDL_LIBS=`$SDL_CONFIG --static-libs`
+ # quick hack, remove the -D_GNU_SOURCE=1 of some SDL Cflags
+ # since they break recent Mingw releases
+ SDL_CFLAGS=`echo $SDL_CFLAGS | sed -e s/-D_GNU_SOURCE=1//g`
-# quick hack, remove the -D_GNU_SOURCE=1 of some SDL Cflags
-# since they break recent Mingw releases
-SDL_CFLAGS=`echo $SDL_CFLAGS | sed -e s/-D_GNU_SOURCE=1//g`
+ log "SDL-probe : SDL_CFLAGS = $SDL_CFLAGS"
+ log "SDL-probe : SDL_LIBS = $SDL_LIBS"
-log "SDL-probe : SDL_CFLAGS = $SDL_CFLAGS"
-log "SDL-probe : SDL_LIBS = $SDL_LIBS"
+ EXTRA_CFLAGS="$SDL_CFLAGS"
+ EXTRA_LDFLAGS="$SDL_LIBS"
-EXTRA_CFLAGS="$SDL_CFLAGS"
-EXTRA_LDFLAGS="$SDL_LIBS"
+ case "$OS" in
+ freebsd-*)
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -lpthread"
+ ;;
+ esac
-case "$OS" in
- freebsd-*)
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -lpthread"
- ;;
-esac
-
-cat > $TMPC << EOF
+ cat > $TMPC << EOF
#include <SDL.h>
#undef main
int main( int argc, char** argv ) {
return SDL_Init (SDL_INIT_VIDEO);
}
EOF
-feature_check_link SDL_LINKING
-
-if [ $SDL_LINKING != "yes" ] ; then
- echo "You provided an explicit sdl-config script, but the corresponding library"
- echo "cannot be statically linked with the Android emulator directly."
- echo "Error message:"
- cat $TMPL
- clean_exit
-fi
-log "SDL-probe : static linking ok"
-
-# now, let's check that the SDL library has the special functions
-# we added to our own sources
-#
-cat > $TMPC << EOF
+ feature_check_link SDL_LINKING
+
+ if [ $SDL_LINKING != "yes" ] ; then
+ echo "You provided an explicit sdl-config script, but the corresponding library"
+ echo "cannot be statically linked with the Android emulator directly."
+ echo "Error message:"
+ cat $TMPL
+ clean_exit
+ fi
+ log "SDL-probe : static linking ok"
+
+ # now, let's check that the SDL library has the special functions
+ # we added to our own sources
+ #
+ cat > $TMPC << EOF
#include <SDL.h>
#undef main
int main( int argc, char** argv ) {
- int x, y;
- SDL_Rect r;
- SDL_WM_GetPos(&x, &y);
- SDL_WM_SetPos(x, y);
- SDL_WM_GetMonitorDPI(&x, &y);
- SDL_WM_GetMonitorRect(&r);
- return SDL_Init (SDL_INIT_VIDEO);
+ int x, y;
+ SDL_Rect r;
+ SDL_WM_GetPos(&x, &y);
+ SDL_WM_SetPos(x, y);
+ SDL_WM_GetMonitorDPI(&x, &y);
+ SDL_WM_GetMonitorRect(&r);
+ return SDL_Init (SDL_INIT_VIDEO);
}
EOF
-feature_check_link SDL_LINKING
-
-if [ $SDL_LINKING != "yes" ] ; then
- echo "You provided an explicit sdl-config script in SDL_CONFIG, but the"
- echo "corresponding library doesn't have the patches required to link"
- echo "with the Android emulator. Unsetting SDL_CONFIG will use the"
- echo "sources bundled with the emulator instead"
- echo "Error:"
- cat $TMPL
- clean_exit
+ feature_check_link SDL_LINKING
+
+ if [ $SDL_LINKING != "yes" ] ; then
+ echo "You provided an explicit sdl-config script in SDL_CONFIG, but the"
+ echo "corresponding library doesn't have the patches required to link"
+ echo "with the Android emulator. Unsetting SDL_CONFIG will use the"
+ echo "sources bundled with the emulator instead"
+ echo "Error:"
+ cat $TMPL
+ clean_exit
+ fi
+
+ log "SDL-probe : extra features ok"
+ clean_temp
+
+ EXTRA_CFLAGS=
+ EXTRA_LDFLAGS=
fi
-log "SDL-probe : extra features ok"
-clean_temp
-
-EXTRA_CFLAGS=
-EXTRA_LDFLAGS=
-
###
### Audio subsystems probes
###
@@ -384,11 +349,14 @@ feature_check_header HAVE_BYTESWAP_H "<byteswap.h>"
#
create_config_mk
+add_android_config_mk
PWD=`pwd`
echo "TARGET_ARCH := arm" >> $config_mk
echo "SRC_PATH := $PWD" >> $config_mk
+if [ -n "$SDL_CONFIG" ] ; then
echo "SDL_CONFIG := $SDL_CONFIG" >> $config_mk
+fi
echo "CONFIG_COREAUDIO := $PROBE_COREAUDIO" >> $config_mk
echo "CONFIG_WINAUDIO := $PROBE_WINAUDIO" >> $config_mk
echo "CONFIG_ESD := $PROBE_ESD" >> $config_mk
diff --git a/android/build/common.sh b/android/build/common.sh
index 93ffba7..289e74a 100644
--- a/android/build/common.sh
+++ b/android/build/common.sh
@@ -134,6 +134,21 @@ esac
# define HOST_ARCH as the $CPU
HOST_ARCH=$CPU
+# define HOST_TAG
+# special case: windows-x86 => windows
+compute_host_tag ()
+{
+ case $HOST_OS-$HOST_ARCH in
+ cygwin-x86|windows-x86)
+ HOST_TAG=windows
+ ;;
+ *)
+ HOST_TAG=$HOST_OS-$HOST_ARCH
+ ;;
+ esac
+}
+compute_host_tag
+
#### Toolchain support
####
@@ -170,6 +185,7 @@ force_32bit_binaries ()
esac
HOST_ARCH=x86
CPU=x86
+ compute_host_tag
log "Check32Bits: Forcing generation of 32-bit binaries (--try-64 to disable)"
fi
}
@@ -504,6 +520,6 @@ add_android_config_mk ()
{
echo "" >> $config_mk
echo "TARGET_ARCH := arm" >> $config_mk
- echo "HOST_PREBUILT_TAG := $ANDROID_PREBUILT_HOST_TAG" >> $config_mk
+ echo "HOST_PREBUILT_TAG := $HOST_TAG" >> $config_mk
echo "PREBUILT := $ANDROID_PREBUILT" >> $config_mk
}
diff --git a/distrib/sdl-1.2.12/android/build/darwin-x86/SDL_config.h b/android/config/darwin-x86/SDL_config.h
index f2d3b68..f2d3b68 100644
--- a/distrib/sdl-1.2.12/android/build/darwin-x86/SDL_config.h
+++ b/android/config/darwin-x86/SDL_config.h
diff --git a/distrib/sdl-1.2.12/android/build/freebsd-x86/SDL_config.h b/android/config/freebsd-x86/SDL_config.h
index 1186322..1186322 100644
--- a/distrib/sdl-1.2.12/android/build/freebsd-x86/SDL_config.h
+++ b/android/config/freebsd-x86/SDL_config.h
diff --git a/distrib/sdl-1.2.12/android/build/linux-x86/SDL_config.h b/android/config/linux-x86/SDL_config.h
index 637a42d..637a42d 100644
--- a/distrib/sdl-1.2.12/android/build/linux-x86/SDL_config.h
+++ b/android/config/linux-x86/SDL_config.h
diff --git a/distrib/sdl-1.2.12/android/build/windows/SDL_config.h b/android/config/windows/SDL_config.h
index 06cbe6c..06cbe6c 100644
--- a/distrib/sdl-1.2.12/android/build/windows/SDL_config.h
+++ b/android/config/windows/SDL_config.h
diff --git a/android/main.c b/android/main.c
index bf3feec..c4e94c3 100644
--- a/android/main.c
+++ b/android/main.c
@@ -1301,9 +1301,6 @@ _adjustPartitionSize( const char* description,
return convertMBToBytes(imageMB);
}
-#ifdef _WIN32
-#undef main /* we don't want SDL to define main */
-#endif
int main(int argc, char **argv)
{
diff --git a/distrib/build-emulator.sh b/distrib/build-emulator.sh
index dad3dd1..e8d1749 100755
--- a/distrib/build-emulator.sh
+++ b/distrib/build-emulator.sh
@@ -26,13 +26,8 @@ fi
# directory where we'll place the temporary SDL binaries
LOCAL=$CURDIR/local
-cd $CURDIR/sdl
-if ! (ANDROID_QEMU_PATH=$CURDIR/qemu ./android-configure.sh --prefix=$LOCAL && make && make install); then
- echo "ERROR: could not build SDL library, please check their sources"
-fi
-
cd $CURDIR/qemu
-if ! (./android-rebuild.sh --sdl-config=$LOCAL/bin/sdl-config); then
+if ! (./android-rebuild.sh); then
echo "ERROR: could not build the emulator, please check the sources"
fi
diff --git a/distrib/make-distrib.sh b/distrib/make-distrib.sh
index 2580837..e05117f 100755
--- a/distrib/make-distrib.sh
+++ b/distrib/make-distrib.sh
@@ -29,11 +29,6 @@ if [ $? != 0 ] ; then
echo "Could not clone sources"
fi
-# move the SDL sources
-SDLDIR=$TMPDIR/sdl
-echo "Moving SDL sources to $SDLDIR"
-mv $TMPDIR/qemu/distrib/sdl-1.2.12 $SDLDIR
-
echo "copying control scripts"
mv $QEMUDIR/distrib/build-emulator.sh $TMPDIR/build-emulator.sh
mv $QEMUDIR/distrib/README $TMPDIR/README
diff --git a/distrib/sdl-1.2.12/Makefile.android b/distrib/sdl-1.2.12/Makefile.android
index ab743e2..4e89fc7 100644
--- a/distrib/sdl-1.2.12/Makefile.android
+++ b/distrib/sdl-1.2.12/Makefile.android
@@ -1,5 +1,8 @@
LOCAL_PATH:= $(call my-dir)
+SDL_DIR := $(LOCAL_PATH)
+include $(SDL_DIR)/sources.make
+
CONFIG_DIRS := \
$(LOCAL_PATH)/objs \
$(LOCAL_PATH)/include \
@@ -21,202 +24,7 @@ LOCAL_LDFLAGS := $(MY_LDFLAGS) $(LOCAL_LDFLAGS)
LOCAL_MODULE := libSDL
-LOCAL_SRC_FILES :=
-
-# the main src/ sources
-#
-SRCS := SDL.c \
- SDL_error.c \
- SDL_fatal.c \
-
-SRCS += events/SDL_active.c \
- events/SDL_events.c \
- events/SDL_expose.c \
- events/SDL_keyboard.c \
- events/SDL_mouse.c \
- events/SDL_quit.c \
- events/SDL_resize.c \
-
-SRCS += file/SDL_rwops.c
-
-ifeq ($(CONFIG_LIBC),yes)
- SRCS += stdlib/SDL_getenv.c \
- stdlib/SDL_iconv.c \
- stdlib/SDL_malloc.c \
- stdlib/SDL_qsort.c \
- stdlib/SDL_stdlib.c \
- stdlib/SDL_string.c
-endif
-
-ifeq ($(CONFIG_CPUINFO),yes)
- SRCS += cpuinfo/SDL_cpuinfo.c
-endif
-
-LOCAL_SRC_FILES += $(SRCS:%=src/%)
-
-# the Audio sources
-#
-SRCS := SDL_audio.c \
- SDL_audiocvt.c \
- SDL_audiodev.c \
- SDL_mixer.c \
- SDL_mixer_MMX.c \
- dummy/SDL_dummyaudio.c \
-
-ifeq ($(CONFIG_AUDIO_ALSA),yes)
- SRCS += alsa/SDL_alsa_audio.c
-endif
-
-ifeq ($(CONFIG_AUDIO_ESD),yes)
- SRCS += esd/SDL_esdaudio.c
-endif
-
-ifeq ($(CONFIG_AUDIO_OSS),yes)
- SRCS += dsp/SDL_dspaudio.c \
- dma/SDL_dmaaudio.c
-endif
-
-ifeq ($(CONFIG_AUDIO_COREAUDIO),yes)
- SRCS += macosx/SDL_coreaudio.c
-endif
-
-ifeq ($(CONFIG_AUDIO_WAVEOUT),yes)
- SRCS += windib/SDL_dibaudio.c
-endif
-
-LOCAL_SRC_FILES += $(SRCS:%=src/audio/%)
-
-# the LoadSO sources
-#
-
-SRCS :=
-
-ifeq ($(CONFIG_LOADSO_DLOPEN),yes)
- SRCS += dlopen/SDL_sysloadso.c
-endif
-
-ifeq ($(CONFIG_LOADSO_DLCOMPAT),yes)
- SRCS += macosx/SDL_dlcompat.c
-endif
-
-ifeq ($(CONFIG_LOADSO_WIN32),yes)
- SRCS += win32/SDL_sysloadso.c
-endif
-
-LOCAL_SRC_FILES += $(SRCS:%=src/loadso/%)
-
-# the Thread sources
-#
-
-SRCS := SDL_thread.c
-
-ifeq ($(CONFIG_THREAD_PTHREAD),yes)
- SRCS += pthread/SDL_syscond.c \
- pthread/SDL_sysmutex.c \
- pthread/SDL_syssem.c \
- pthread/SDL_systhread.c
-endif
-
-ifeq ($(CONFIG_THREAD_WIN32),yes)
- SRCS += win32/SDL_sysmutex.c \
- win32/SDL_syssem.c \
- win32/SDL_systhread.c
-endif
-
-LOCAL_SRC_FILES += $(SRCS:%=src/thread/%)
-
-# the Timer sources
-#
-
-SRCS := SDL_timer.c
-
-ifeq ($(CONFIG_TIMER_UNIX),yes)
- SRCS += unix/SDL_systimer.c
-endif
-
-ifeq ($(CONFIG_TIMER_WIN32),yes)
- SRCS += win32/SDL_systimer.c
-endif
-
-LOCAL_SRC_FILES += $(SRCS:%=src/timer/%)
-
-# the Video sources
-#
-
-SRCS := SDL_RLEaccel.c \
- SDL_blit.c \
- SDL_blit_0.c \
- SDL_blit_1.c \
- SDL_blit_A.c \
- SDL_blit_N.c \
- SDL_bmp.c \
- SDL_cursor.c \
- SDL_gamma.c \
- SDL_pixels.c \
- SDL_stretch.c \
- SDL_surface.c \
- SDL_video.c \
- SDL_yuv.c \
- SDL_yuv_mmx.c \
- SDL_yuv_sw.c \
-
-SRCS += dummy/SDL_nullevents.c \
- dummy/SDL_nullmouse.c \
- dummy/SDL_nullvideo.c
-
-ifeq ($(CONFIG_VIDEO_WINDIB),yes)
- SRCS += windib/SDL_dibevents.c \
- windib/SDL_dibvideo.c \
- wincommon/SDL_sysevents.c \
- wincommon/SDL_sysmouse.c \
- wincommon/SDL_syswm.c \
- wincommon/SDL_wingl.c
-endif
-
-ifeq ($(CONFIG_VIDEO_QUARTZ),yes)
- SRCS += quartz/SDL_QuartzGL.m \
- quartz/SDL_QuartzVideo.m \
- quartz/SDL_QuartzWM.m \
- quartz/SDL_QuartzWindow.m \
- quartz/SDL_QuartzYUV.m \
- quartz/SDL_QuartzEvents.m \
- maccommon/SDL_macevents.c \
- maccommon/SDL_macgl.c \
- maccommon/SDL_macmouse.c \
- maccommon/SDL_macwm.c
-endif
-
-ifeq ($(CONFIG_VIDEO_X11),yes)
- SRCS += x11/SDL_x11dyn.c \
- x11/SDL_x11dga.c \
- x11/SDL_x11events.c \
- x11/SDL_x11gamma.c \
- x11/SDL_x11gl.c \
- x11/SDL_x11image.c \
- x11/SDL_x11modes.c \
- x11/SDL_x11mouse.c \
- x11/SDL_x11video.c \
- x11/SDL_x11wm.c \
- x11/SDL_x11yuv.c
-endif
-
-ifeq ($(CONFIG_VIDEO_X11_DGAMOUSE),yes)
- SRCS += x11/SDL_x11dga.c
-endif
-
-ifeq ($(CONFIG_VIDEO_X11_XME),yes)
- SRCS += Xext/XME/xme.c
-endif
-
-ifeq ($(CONFIG_VIDEO_X11_XINERAMA),yes)
- SRCS += Xext/Xinerama/Xinerama.c
-endif
-
-ifeq ($(CONFIG_VIDEO_X11_XV),yes)
- SRCS += Xext/Xv/Xv.c
-endif
-
-LOCAL_SRC_FILES += $(SRCS:%=src/video/%)
+LOCAL_SRC_FILES := $(SDL_SOURCES)
include $(BUILD_HOST_STATIC_LIBRARY)
@@ -232,21 +40,7 @@ LOCAL_LDFLAGS := $(MY_LDFLAGS) $(LOCAL_LDFLAGS)
LOCAL_MODULE := libSDLmain
-SRCS :=
-
-ifeq ($(CONFIG_MAIN_DUMMY),yes)
- SRCS += dummy/SDL_dummy_main.c
-endif
-
-ifeq ($(CONFIG_MAIN_MACOSX),yes)
- SRCS += macosx/SDLMain.m
-endif
-
-ifeq ($(HOST_OS),windows)
- SRCS += win32/SDL_win32_main.c
-endif
-
-LOCAL_SRC_FILES := $(SRCS:%=src/main/%)
+LOCAL_SRC_FILES := $(SDLMAIN_SOURCES)
include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/distrib/sdl-1.2.12/android-configure.sh b/distrib/sdl-1.2.12/android-configure.sh
index a61ad78..133daf4 100755
--- a/distrib/sdl-1.2.12/android-configure.sh
+++ b/distrib/sdl-1.2.12/android-configure.sh
@@ -157,7 +157,7 @@ case "$HOST_OS" in
;;
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"
+ SDL_STATIC_LIBS="-Wl,-framework,OpenGL -Wl,-framework,Cocoa -Wl,-framework,QuickTime -Wl,-framework,ApplicationServices -Wl,-framework,Carbon -Wl,-framework,IOKit"
;;
windows)
SDL_CFLAGS="-D_GNU_SOURCE=1 -Dmain=SDL_main"
@@ -439,7 +439,7 @@ make_add_driver_macros ()
driver_list="`var_value ${1}_default`"
fi
for driver_name in $driver_list; do
- make_add "$2_${driver_name} := yes"
+ make_add "SDL_$2_${driver_name} := yes"
done
}
@@ -454,8 +454,8 @@ generate_sdl_config_mk ()
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 "SDL_CONFIG_LIBC := $CONFIG_LIBC"
+ make_add "SDL_CONFIG_CPUINFO := yes"
make_add_driver_macros DRIVERS_LOADSO CONFIG_LOADSO
make_add_driver_macros DRIVERS_THREAD CONFIG_THREAD
diff --git a/distrib/sdl-1.2.12/sources.make b/distrib/sdl-1.2.12/sources.make
new file mode 100644
index 0000000..dadcb3f
--- /dev/null
+++ b/distrib/sdl-1.2.12/sources.make
@@ -0,0 +1,244 @@
+# This is included from the main Android emulator build script
+# to declare the SDL-related sources, compiler flags and libraries
+#
+
+SDL_CFLAGS :=
+SDL_LDLIBS :=
+SDL_STATIC_LIBRARIES :=
+
+SDL_SOURCES :=
+
+ifeq ($(HOST_OS),linux)
+ SDL_CONFIG_LOADSO_DLOPEN := yes
+ SDL_CONFIG_THREAD_PTHREAD := yes
+ SDL_CONFIG_THREAD_PTHREAD_RECURSIVE_MUTEX_NP := yes
+ SDL_CONFIG_TIMER_UNIX := yes
+ SDL_CONFIG_VIDEO_X11 := yes
+ SDL_CONFIG_VIDEO_X11_DPMS := yes
+ SDL_CONFIG_VIDEO_X11_XINERAMA := yes
+ SDL_CONFIG_VIDEO_X11_XME := yes
+ SDL_CONFIG_MAIN_DUMMY := yes
+
+ SDL_CFLAGS += -D_GNU_SOURCE=1 -D_REENTRANT
+ SDL_LDLIBS += -lm -ldl -lpthread -lrt
+endif
+
+ifeq ($(HOST_OS),freebsd)
+ SDL_CONFIG_LOADSO_DLOPEN := yes
+ SDL_CONFIG_THREAD_PTHREAD := yes
+ SDL_CONFIG_THREAD_PTHREAD_RECURSIVE_MUTEX := yes
+ SDL_CONFIG_TIMER_UNIX := yes
+ SDL_CONFIG_VIDEO_X11 := yes
+ SDL_CONFIG_VIDEO_X11_DPMS := yes
+ SDL_CONFIG_VIDEO_X11_XINERAMA := yes
+ SDL_CONFIG_VIDEO_X11_XME := yes
+ SDL_CONFIG_MAIN_DUMMY := yes
+
+ SDL_CFLAGS += -D_GNU_SOURCE=1 -D_REENTRANT
+ SDL_LDLIBS += -lm -ldl -lpthread
+endif
+
+ifeq ($(HOST_OS),darwin)
+ SDL_CONFIG_LOADSO_DLCOMPAT := yes
+ SDL_CONFIG_THREAD_PTHREAD := yes
+ SDL_CONFIG_THREAD_PTHREAD_RECURSIVE_MUTEX := yes
+ SDL_CONFIG_TIMER_UNIX := yes
+ SDL_CONFIG_VIDEO_QUARTZ := yes
+ SDL_CONFIG_MAIN_MACOSX := yes
+
+ SDL_CFLAGS += -D_GNU_SOURCE=1 -DTHREAD_SAFE
+ FRAMEWORKS := OpenGL Cocoa QuickTime ApplicationServices Carbon IOKit
+ SDL_LDLIBS += $(FRAMEWORKS:%=-Wl,-framework,%)
+endif
+
+ifeq ($(HOST_OS),windows)
+ SDL_CONFIG_LOADSO_WIN32 := yes
+ SDL_CONFIG_THREAD_WIN32 := yes
+ SDL_CONFIG_TIMER_WIN32 := yes
+ SDL_CONFIG_VIDEO_WINDIB := yes
+ SDL_CONFIG_MAIN_WIN32 := yes
+
+ SDL_CFLAGS += -D_GNU_SOURCE=1 -Dmain=SDL_main -DNO_STDIO_REDIRECT=1
+ SDL_LDLIBS += -luser32 -lgdi32 -lwinmm
+endif
+
+
+# the main src/ sources
+#
+SRCS := SDL.c \
+ SDL_error.c \
+ SDL_fatal.c \
+
+SRCS += events/SDL_active.c \
+ events/SDL_events.c \
+ events/SDL_expose.c \
+ events/SDL_keyboard.c \
+ events/SDL_mouse.c \
+ events/SDL_quit.c \
+ events/SDL_resize.c \
+
+SRCS += file/SDL_rwops.c
+
+SRCS += stdlib/SDL_getenv.c \
+ stdlib/SDL_iconv.c \
+ stdlib/SDL_malloc.c \
+ stdlib/SDL_qsort.c \
+ stdlib/SDL_stdlib.c \
+ stdlib/SDL_string.c
+
+SRCS += cpuinfo/SDL_cpuinfo.c
+
+SDL_SOURCES += $(SRCS:%=$(SDL_DIR)/src/%)
+
+# the LoadSO sources
+#
+
+SRCS :=
+
+ifeq ($(SDL_CONFIG_LOADSO_DLOPEN),yes)
+ SRCS += dlopen/SDL_sysloadso.c
+ SDL_LDLIBS += -ldl
+endif
+
+ifeq ($(SDL_CONFIG_LOADSO_DLCOMPAT),yes)
+ SRCS += macosx/SDL_dlcompat.c
+endif
+
+ifeq ($(SDL_CONFIG_LOADSO_WIN32),yes)
+ SRCS += win32/SDL_sysloadso.c
+endif
+
+SDL_SOURCES += $(SRCS:%=$(SDL_DIR)/src/loadso/%)
+
+# the Thread sources
+#
+
+SRCS := SDL_thread.c
+
+ifeq ($(SDL_CONFIG_THREAD_PTHREAD),yes)
+ SRCS += pthread/SDL_syscond.c \
+ pthread/SDL_sysmutex.c \
+ pthread/SDL_syssem.c \
+ pthread/SDL_systhread.c
+endif
+
+ifeq ($(SDL_CONFIG_THREAD_WIN32),yes)
+ SRCS += win32/SDL_sysmutex.c \
+ win32/SDL_syssem.c \
+ win32/SDL_systhread.c
+endif
+
+SDL_SOURCES += $(SRCS:%=$(SDL_DIR)/src/thread/%)
+
+# the Timer sources
+#
+
+SRCS := SDL_timer.c
+
+ifeq ($(SDL_CONFIG_TIMER_UNIX),yes)
+ SRCS += unix/SDL_systimer.c
+endif
+
+ifeq ($(SDL_CONFIG_TIMER_WIN32),yes)
+ SRCS += win32/SDL_systimer.c
+endif
+
+SDL_SOURCES += $(SRCS:%=$(SDL_DIR)/src/timer/%)
+
+# the Video sources
+#
+
+SRCS := SDL_RLEaccel.c \
+ SDL_blit.c \
+ SDL_blit_0.c \
+ SDL_blit_1.c \
+ SDL_blit_A.c \
+ SDL_blit_N.c \
+ SDL_bmp.c \
+ SDL_cursor.c \
+ SDL_gamma.c \
+ SDL_pixels.c \
+ SDL_stretch.c \
+ SDL_surface.c \
+ SDL_video.c \
+ SDL_yuv.c \
+ SDL_yuv_mmx.c \
+ SDL_yuv_sw.c \
+
+SRCS += dummy/SDL_nullevents.c \
+ dummy/SDL_nullmouse.c \
+ dummy/SDL_nullvideo.c
+
+ifeq ($(SDL_CONFIG_VIDEO_WINDIB),yes)
+ SRCS += windib/SDL_dibevents.c \
+ windib/SDL_dibvideo.c \
+ wincommon/SDL_sysevents.c \
+ wincommon/SDL_sysmouse.c \
+ wincommon/SDL_syswm.c \
+ wincommon/SDL_wingl.c
+endif
+
+ifeq ($(SDL_CONFIG_VIDEO_QUARTZ),yes)
+ SRCS += quartz/SDL_QuartzGL.m \
+ quartz/SDL_QuartzVideo.m \
+ quartz/SDL_QuartzWM.m \
+ quartz/SDL_QuartzWindow.m \
+ quartz/SDL_QuartzYUV.m \
+ quartz/SDL_QuartzEvents.m \
+ maccommon/SDL_macevents.c \
+ maccommon/SDL_macgl.c \
+ maccommon/SDL_macmouse.c \
+ maccommon/SDL_macwm.c
+
+endif
+
+ifeq ($(SDL_CONFIG_VIDEO_X11),yes)
+ SRCS += x11/SDL_x11dyn.c \
+ x11/SDL_x11dga.c \
+ x11/SDL_x11events.c \
+ x11/SDL_x11gamma.c \
+ x11/SDL_x11gl.c \
+ x11/SDL_x11image.c \
+ x11/SDL_x11modes.c \
+ x11/SDL_x11mouse.c \
+ x11/SDL_x11video.c \
+ x11/SDL_x11wm.c \
+ x11/SDL_x11yuv.c
+endif
+
+ifeq ($(SDL_CONFIG_VIDEO_X11_DGAMOUSE),yes)
+ SRCS += x11/SDL_x11dga.c
+endif
+
+ifeq ($(SDL_CONFIG_VIDEO_X11_XME),yes)
+ SRCS += Xext/XME/xme.c
+endif
+
+ifeq ($(SDL_CONFIG_VIDEO_X11_XINERAMA),yes)
+ SRCS += Xext/Xinerama/Xinerama.c
+endif
+
+ifeq ($(SDL_CONFIG_VIDEO_X11_XV),yes)
+ SRCS += Xext/Xv/Xv.c
+endif
+
+SDL_SOURCES += $(SRCS:%=$(SDL_DIR)/src/video/%)
+
+## Build libSDLmain
+##
+
+SRCS :=
+
+ifeq ($(SDL_CONFIG_MAIN_DUMMY),yes)
+ SRCS += dummy/SDL_dummy_main.c
+endif
+
+ifeq ($(SDL_CONFIG_MAIN_MACOSX),yes)
+ SRCS += macosx/SDLMain.m
+endif
+
+ifeq ($(SDL_CONFIG_MAIN_WIN32),yes)
+ SRCS += win32/SDL_win32_main.c
+endif
+
+SDLMAIN_SOURCES := $(SRCS:%=$(SDL_DIR)/src/main/%)