From 391312641c47a52ddf2b0e81840929df6baa3c84 Mon Sep 17 00:00:00 2001 From: Soren Jorvang Date: Wed, 16 Jun 2010 00:07:52 +0000 Subject: [PATCH] Build GLEW, SDL and zlib as static libraries from Externals as with LZO/SFML/SOIL and subject to the same shared_foo exception options. This makes building a self-contained distribution package much easier. TBD: Cg and wxWidgets 2.9. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5712 8ced0084-cf51-0410-be5f-012b33b47a6e --- Externals/GLew/SConscript | 11 + Externals/SDL/SConscript | 76 +++++ Externals/SDL/SDL/SDL.h | 2 + Externals/SDL/SDL/SDL_config_linux.h | 311 ++++++++++++++++++ Externals/SDL/SDL/SDL_version.h | 1 + Externals/SDL/SDL_config.h | 17 + Externals/zlib/SConscript | 20 ++ Externals/zlib/inflate.c | 8 +- SConstruct | 121 ++++--- Source/Core/DolphinWX/Src/SConscript | 10 +- Source/Core/InputCommon/Src/SDL_Util.h | 2 - Source/Plugins/Plugin_VideoOGL/Src/SConscript | 2 +- .../Plugin_VideoSoftware/Src/SConscript | 2 +- Source/Plugins/Plugin_Wiimote/Src/SConscript | 2 +- .../Plugins/Plugin_WiimoteNew/Src/SConscript | 2 +- 15 files changed, 526 insertions(+), 61 deletions(-) create mode 100644 Externals/GLew/SConscript create mode 100644 Externals/SDL/SConscript create mode 100644 Externals/SDL/SDL/SDL.h create mode 100644 Externals/SDL/SDL/SDL_config_linux.h create mode 100644 Externals/SDL/SDL/SDL_version.h create mode 100644 Externals/SDL/SDL_config.h create mode 100644 Externals/zlib/SConscript diff --git a/Externals/GLew/SConscript b/Externals/GLew/SConscript new file mode 100644 index 0000000000..4ce77db4f5 --- /dev/null +++ b/Externals/GLew/SConscript @@ -0,0 +1,11 @@ +# -*- python -*- + +Import('env') + +files = [ + 'src/glew.c', + 'src/glewinfo.c', + 'src/visualinfo.c', + ] + +env.StaticLibrary(env['local_libs'] + "GLEW", files) diff --git a/Externals/SDL/SConscript b/Externals/SDL/SConscript new file mode 100644 index 0000000000..dfc5e66928 --- /dev/null +++ b/Externals/SDL/SConscript @@ -0,0 +1,76 @@ +# -*- python -*- + +import sys +Import('env') + +files = [ + 'src/SDL.c', + 'src/SDL_error.c', + 'src/SDL_fatal.c', + #'src/audio/SDL_audio.c', + #'src/audio/SDL_audiocvt.c', + #'src/audio/SDL_audiodev.c', + #'src/audio/SDL_mixer.c', + #'src/audio/SDL_mixer_MMX.c', + #'src/audio/SDL_mixer_MMX_VC.c', + #'src/audio/SDL_mixer_m68k.c', + #'src/audio/SDL_wave.c', + #'src/cdrom/SDL_cdrom.c', + #'src/cpuinfo/SDL_cpuinfo.c', + 'src/events/SDL_active.c', + 'src/events/SDL_events.c', + 'src/events/SDL_expose.c', + 'src/events/SDL_keyboard.c', + 'src/events/SDL_mouse.c', + 'src/events/SDL_quit.c', + 'src/events/SDL_resize.c', + #'src/file/SDL_rwops.c', + 'src/joystick/SDL_joystick.c', + #'src/stdlib/SDL_getenv.c', + #'src/stdlib/SDL_iconv.c', + #'src/stdlib/SDL_malloc.c', + #'src/stdlib/SDL_qsort.c', + #'src/stdlib/SDL_stdlib.c', + 'src/stdlib/SDL_string.c', + 'src/thread/SDL_thread.c', + 'src/timer/SDL_timer.c', + 'src/timer/unix/SDL_systimer.c', + #'src/video/SDL_RLEaccel.c', + #'src/video/SDL_blit.c', + #'src/video/SDL_blit_0.c', + #'src/video/SDL_blit_1.c', + #'src/video/SDL_blit_A.c', + #'src/video/SDL_blit_N.c', + #'src/video/SDL_bmp.c', + #'src/video/SDL_cursor.c', + #'src/video/SDL_gamma.c', + #'src/video/SDL_pixels.c', + #'src/video/SDL_stretch.c', + #'src/video/SDL_surface.c', + #'src/video/SDL_video.c', + #'src/video/SDL_yuv.c', + #'src/video/SDL_yuv_mmx.c', + #'src/video/SDL_yuv_sw.c', + ] + +files += [ + 'src/thread/generic/SDL_syscond.c', + 'src/thread/generic/SDL_sysmutex.c', + 'src/thread/generic/SDL_syssem.c', + 'src/thread/generic/SDL_systhread.c', + ] + +if sys.platform == 'darwin': + files += [ + 'src/joystick/darwin/SDL_sysjoystick.c', + ] +elif sys.platform == 'linux2': + files += [ + 'src/joystick/linux/SDL_sysjoystick.c', + ] +else: + files += [ + 'src/joystick/dummy/SDL_sysjoystick.c', + ] + +env.StaticLibrary(env['local_libs'] + "SDL", files) diff --git a/Externals/SDL/SDL/SDL.h b/Externals/SDL/SDL/SDL.h new file mode 100644 index 0000000000..9f5fdd4bb4 --- /dev/null +++ b/Externals/SDL/SDL/SDL.h @@ -0,0 +1,2 @@ +#include "SDL_config.h" +#include "include/SDL.h" diff --git a/Externals/SDL/SDL/SDL_config_linux.h b/Externals/SDL/SDL/SDL_config_linux.h new file mode 100644 index 0000000000..79571abb87 --- /dev/null +++ b/Externals/SDL/SDL/SDL_config_linux.h @@ -0,0 +1,311 @@ +/* include/SDL_config.h. Generated from SDL_config.h.in by configure. */ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2009 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ + +#ifndef _SDL_config_h +#define _SDL_config_h + +/* This is a set of defines to configure the SDL features */ + +/* General platform specific identifiers */ +#include "SDL_platform.h" + +/* 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 +#endif + +/* C language features */ +/* #undef const */ +/* #undef inline */ +/* #undef volatile */ + +/* C datatypes */ +/* #undef size_t */ +/* #undef int8_t */ +/* #undef uint8_t */ +/* #undef int16_t */ +/* #undef uint16_t */ +/* #undef int32_t */ +/* #undef uint32_t */ +/* #undef int64_t */ +/* #undef uint64_t */ +/* #undef uintptr_t */ +#define SDL_HAS_64BIT_TYPE 1 + +/* Endianness */ +#define SDL_BYTEORDER 1234 + +/* Comment this if you want to build without any C library requirements */ +#define HAVE_LIBC 1 +#if HAVE_LIBC + +/* Useful headers */ +#define HAVE_ALLOCA_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_ICONV_H 1 +#define HAVE_SIGNAL_H 1 +/* #undef HAVE_ALTIVEC_H */ + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#ifndef _WIN32 /* Don't use C runtime versions of these on Windows */ +#define HAVE_GETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#endif +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +/* #undef HAVE_STRLCPY */ +/* #undef HAVE_STRLCAT */ +#define HAVE_STRDUP 1 +/* #undef HAVE__STRREV */ +/* #undef HAVE__STRUPR */ +/* #undef HAVE__STRLWR */ +/* #undef HAVE_INDEX */ +/* #undef HAVE_RINDEX */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_ITOA */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__UITOA */ +/* #undef HAVE__ULTOA */ +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +/* #undef HAVE__I64TOA */ +/* #undef HAVE__UI64TOA */ +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +/* #undef HAVE__STRICMP */ +#define HAVE_STRCASECMP 1 +/* #undef HAVE__STRNICMP */ +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_ICONV 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +/* #undef HAVE_CLOCK_GETTIME */ +#define HAVE_GETPAGESIZE 1 +#define HAVE_MPROTECT 1 + +#else +/* We may need some replacement for stdarg.h here */ +#include +#endif /* HAVE_LIBC */ + +/* Allow disabling of core subsystems */ +/* #undef SDL_AUDIO_DISABLED */ +/* #undef SDL_CDROM_DISABLED */ +/* #undef SDL_CPUINFO_DISABLED */ +/* #undef SDL_EVENTS_DISABLED */ +/* #undef SDL_FILE_DISABLED */ +/* #undef SDL_JOYSTICK_DISABLED */ +/* #undef SDL_LOADSO_DISABLED */ +/* #undef SDL_THREADS_DISABLED */ +/* #undef SDL_TIMERS_DISABLED */ +/* #undef SDL_VIDEO_DISABLED */ + +/* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_ALSA 1 +#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC "libasound.so.2" +/* #undef SDL_AUDIO_DRIVER_ARTS */ +/* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */ +/* #undef SDL_AUDIO_DRIVER_BAUDIO */ +/* #undef SDL_AUDIO_DRIVER_BSD */ +/* #undef SDL_AUDIO_DRIVER_COREAUDIO */ +/* #undef SDL_AUDIO_DRIVER_DART */ +/* #undef SDL_AUDIO_DRIVER_DC */ +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 +/* #undef SDL_AUDIO_DRIVER_DMEDIA */ +/* #undef SDL_AUDIO_DRIVER_DSOUND */ +#define SDL_AUDIO_DRIVER_PULSE 1 +#define SDL_AUDIO_DRIVER_PULSE_DYNAMIC "libpulse-simple.so.0" +#define SDL_AUDIO_DRIVER_ESD 1 +#define SDL_AUDIO_DRIVER_ESD_DYNAMIC "libesd.so.0" +/* #undef SDL_AUDIO_DRIVER_MINT */ +/* #undef SDL_AUDIO_DRIVER_MMEAUDIO */ +#define SDL_AUDIO_DRIVER_NAS 1 +#define SDL_AUDIO_DRIVER_NAS_DYNAMIC "libaudio.so.2" +#define SDL_AUDIO_DRIVER_OSS 1 +/* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */ +/* #undef SDL_AUDIO_DRIVER_PAUD */ +/* #undef SDL_AUDIO_DRIVER_QNXNTO */ +/* #undef SDL_AUDIO_DRIVER_SNDMGR */ +/* #undef SDL_AUDIO_DRIVER_SUNAUDIO */ +/* #undef SDL_AUDIO_DRIVER_WAVEOUT */ + +/* Enable various cdrom drivers */ +/* #undef SDL_CDROM_AIX */ +/* #undef SDL_CDROM_BEOS */ +/* #undef SDL_CDROM_BSDI */ +/* #undef SDL_CDROM_DC */ +/* #undef SDL_CDROM_DUMMY */ +/* #undef SDL_CDROM_FREEBSD */ +#define SDL_CDROM_LINUX 1 +/* #undef SDL_CDROM_MACOS */ +/* #undef SDL_CDROM_MACOSX */ +/* #undef SDL_CDROM_MINT */ +/* #undef SDL_CDROM_OPENBSD */ +/* #undef SDL_CDROM_OS2 */ +/* #undef SDL_CDROM_OSF */ +/* #undef SDL_CDROM_QNX */ +/* #undef SDL_CDROM_WIN32 */ + +/* Enable various input drivers */ +#define SDL_INPUT_LINUXEV 1 +/* #undef SDL_INPUT_TSLIB */ +/* #undef SDL_JOYSTICK_BEOS */ +/* #undef SDL_JOYSTICK_DC */ +/* #undef SDL_JOYSTICK_DUMMY */ +/* #undef SDL_JOYSTICK_IOKIT */ +#define SDL_JOYSTICK_LINUX 1 +/* #undef SDL_JOYSTICK_MACOS */ +/* #undef SDL_JOYSTICK_MINT */ +/* #undef SDL_JOYSTICK_OS2 */ +/* #undef SDL_JOYSTICK_RISCOS */ +/* #undef SDL_JOYSTICK_WINMM */ +/* #undef SDL_JOYSTICK_USBHID */ +/* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */ + +/* Enable various shared object loading systems */ +/* #undef SDL_LOADSO_BEOS */ +/* #undef SDL_LOADSO_DLCOMPAT */ +#define SDL_LOADSO_DLOPEN 1 +/* #undef SDL_LOADSO_DUMMY */ +/* #undef SDL_LOADSO_LDG */ +/* #undef SDL_LOADSO_MACOS */ +/* #undef SDL_LOADSO_OS2 */ +/* #undef SDL_LOADSO_WIN32 */ + +/* Enable various threading systems */ +/* #undef SDL_THREAD_BEOS */ +/* #undef SDL_THREAD_DC */ +/* #undef SDL_THREAD_OS2 */ +/* #undef SDL_THREAD_PTH */ +#define SDL_THREAD_PTHREAD 1 +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 +/* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */ +/* #undef SDL_THREAD_SPROC */ +/* #undef SDL_THREAD_WIN32 */ + +/* Enable various timer systems */ +/* #undef SDL_TIMER_BEOS */ +/* #undef SDL_TIMER_DC */ +/* #undef SDL_TIMER_DUMMY */ +/* #undef SDL_TIMER_MACOS */ +/* #undef SDL_TIMER_MINT */ +/* #undef SDL_TIMER_OS2 */ +/* #undef SDL_TIMER_RISCOS */ +#define SDL_TIMER_UNIX 1 +/* #undef SDL_TIMER_WIN32 */ +/* #undef SDL_TIMER_WINCE */ + +/* Enable various video drivers */ +/* #undef SDL_VIDEO_DRIVER_AALIB */ +/* #undef SDL_VIDEO_DRIVER_BWINDOW */ +/* #undef SDL_VIDEO_DRIVER_CACA */ +/* #undef SDL_VIDEO_DRIVER_DC */ +/* #undef SDL_VIDEO_DRIVER_DDRAW */ +#define SDL_VIDEO_DRIVER_DGA 1 +#define SDL_VIDEO_DRIVER_DIRECTFB 1 +/* #undef SDL_VIDEO_DRIVER_DRAWSPROCKET */ +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_FBCON 1 +/* #undef SDL_VIDEO_DRIVER_GAPI */ +/* #undef SDL_VIDEO_DRIVER_GEM */ +/* #undef SDL_VIDEO_DRIVER_GGI */ +/* #undef SDL_VIDEO_DRIVER_IPOD */ +/* #undef SDL_VIDEO_DRIVER_NANOX */ +/* #undef SDL_VIDEO_DRIVER_OS2FS */ +/* #undef SDL_VIDEO_DRIVER_PHOTON */ +/* #undef SDL_VIDEO_DRIVER_PICOGUI */ +/* #undef SDL_VIDEO_DRIVER_PS2GS */ +/* #undef SDL_VIDEO_DRIVER_PS3 */ +/* #undef SDL_VIDEO_DRIVER_QTOPIA */ +/* #undef SDL_VIDEO_DRIVER_QUARTZ */ +/* #undef SDL_VIDEO_DRIVER_RISCOS */ +/* #undef SDL_VIDEO_DRIVER_SVGALIB */ +/* #undef SDL_VIDEO_DRIVER_TOOLBOX */ +/* #undef SDL_VIDEO_DRIVER_VGL */ +/* #undef SDL_VIDEO_DRIVER_WINDIB */ +/* #undef SDL_VIDEO_DRIVER_WSCONS */ +#define SDL_VIDEO_DRIVER_X11 1 +#define SDL_VIDEO_DRIVER_X11_DGAMOUSE 1 +#define SDL_VIDEO_DRIVER_X11_DYNAMIC "libX11.so.6" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "libXext.so.6" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "libXrandr.so.2" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER "libXrender.so.1" +#define SDL_VIDEO_DRIVER_X11_VIDMODE 1 +#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 +#define SDL_VIDEO_DRIVER_X11_XME 1 +#define SDL_VIDEO_DRIVER_X11_XRANDR 1 +#define SDL_VIDEO_DRIVER_X11_XV 1 +/* #undef SDL_VIDEO_DRIVER_XBIOS */ + +/* Enable OpenGL support */ +#define SDL_VIDEO_OPENGL 1 +#define SDL_VIDEO_OPENGL_GLX 1 +/* #undef SDL_VIDEO_OPENGL_WGL */ +/* #undef SDL_VIDEO_OPENGL_OSMESA */ +/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */ + +/* Disable screensaver */ +#define SDL_VIDEO_DISABLE_SCREENSAVER 1 + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 +/* #undef SDL_HERMES_BLITTERS */ +/* #undef SDL_ALTIVEC_BLITTERS */ + +#endif /* _SDL_config_h */ diff --git a/Externals/SDL/SDL/SDL_version.h b/Externals/SDL/SDL/SDL_version.h new file mode 100644 index 0000000000..4fe1f31514 --- /dev/null +++ b/Externals/SDL/SDL/SDL_version.h @@ -0,0 +1 @@ +#include "include/SDL_version.h" diff --git a/Externals/SDL/SDL_config.h b/Externals/SDL/SDL_config.h new file mode 100644 index 0000000000..bf0d72caa2 --- /dev/null +++ b/Externals/SDL/SDL_config.h @@ -0,0 +1,17 @@ +#if defined __APPLE__ +#include "include/SDL_config_macosx.h" +#elif defined __linux__ +#include "SDL/SDL_config_linux.h" +#endif + +#define SDL_AUDIO_DISABLED 1 +#define SDL_CDROM_DISABLED 1 +#define SDL_CPUINFO_DISABLED 1 +#define SDL_EVENTS_DISABLED 1 +#define SDL_FILE_DISABLED 1 +#undef SDL_JOYSTICK_DISABLED +#define SDL_LOADSO_DISABLED 1 +#define SDL_THREADS_DISABLED 1 +#define SDL_TIMERS_DISABLED 1 +#define SDL_VIDEO_DISABLED 1 + diff --git a/Externals/zlib/SConscript b/Externals/zlib/SConscript new file mode 100644 index 0000000000..e5bfe566b5 --- /dev/null +++ b/Externals/zlib/SConscript @@ -0,0 +1,20 @@ +# -*- python -*- + +Import('env') + +files = [ + 'adler32.c', + 'compress.c', + 'crc32.c', + 'deflate.c', + 'gzio.c', + 'infback.c', + 'inffast.c', + 'inflate.c', + 'inftrees.c', + 'trees.c', + 'uncompr.c', + 'zutil.c', + ] + +env.StaticLibrary(env['local_libs'] + "z", files) diff --git a/Externals/zlib/inflate.c b/Externals/zlib/inflate.c index a8431abeac..b6918a6587 100644 --- a/Externals/zlib/inflate.c +++ b/Externals/zlib/inflate.c @@ -1255,7 +1255,7 @@ const Bytef *dictionary; uInt dictLength; { struct inflate_state FAR *state; - unsigned long id; + unsigned long dictid; /* check state */ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; @@ -1265,9 +1265,9 @@ uInt dictLength; /* check for correct dictionary id */ if (state->mode == DICT) { - id = adler32(0L, Z_NULL, 0); - id = adler32(id, dictionary, dictLength); - if (id != state->check) + dictid = adler32(0L, Z_NULL, 0); + dictid = adler32(dictid, dictionary, dictLength); + if (dictid != state->check) return Z_DATA_ERROR; } diff --git a/SConstruct b/SConstruct index d3ea9801fb..65f6fa52df 100644 --- a/SConstruct +++ b/SConstruct @@ -102,9 +102,12 @@ vars.AddVariables( BoolVariable('wxgl', 'Set For Building with WX GL libs', False), BoolVariable('opencl', 'Build with OpenCL', False), BoolVariable('nojit', 'Remove entire jit cores', False), - BoolVariable('shared_soil', 'Use system shared libSOIL', False), + BoolVariable('shared_glew', 'Use system shared libGLEW', False), BoolVariable('shared_lzo', 'Use system shared liblzo2', False), + BoolVariable('shared_sdl', 'Use system shared libSDL', False), BoolVariable('shared_sfml', 'Use system shared libsfml-network', False), + BoolVariable('shared_soil', 'Use system shared libSOIL', False), + BoolVariable('shared_zlib', 'Use system shared libz', False), PathVariable('userdir', 'Set the name of the user data directory in home', '.dolphin-emu', PathVariable.PathAccept), EnumVariable('install', 'Choose a local or global installation', 'local', @@ -258,23 +261,20 @@ env['LIBPATH'].append(env['local_libs']) conf = env.Configure(custom_tests = tests, config_h="Source/Core/Common/Src/Config.h") -if not conf.CheckPKGConfig('0.15.0'): - print "Can't find pkg-config, some tests will fail" - -# Find MacPorts or Fink for library and include paths -if sys.platform == 'darwin': - # MacPorts usually has newer versions - conf.CheckMacports() - conf.CheckFink() - -if not conf.CheckSDL('1.0.0'): - print "SDL is required" - Exit(1) +if env['shared_glew'] or env['shared_lzo'] or env['shared_sdl'] or \ + env['shared_sfml'] or env['shared_soil'] or env['shared_zlib']: + if not conf.CheckPKGConfig('0.15.0'): + print "Can't find pkg-config, some tests will fail" + # Find MacPorts or Fink for library and include paths + if sys.platform == 'darwin': + # MacPorts usually has newer versions + conf.CheckMacports() + conf.CheckFink() # OS X specifics if sys.platform == 'darwin': compileFlags += ['-mmacosx-version-min=10.5'] - #compileFlags += ['-isysroot', '/Developer/SDKs/MacOSX10.5.sdk'] + compileFlags += ['-isysroot', '/Developer/SDKs/MacOSX10.5.sdk'] conf.Define('MAP_32BIT', 0) env['CC'] = "gcc-4.2" env['CFLAGS'] = ['-x', 'objective-c'] @@ -286,36 +286,21 @@ if sys.platform == 'darwin': env['FRAMEWORKS'] += ['IOBluetooth', 'IOKit', 'OpenGL'] env['FRAMEWORKS'] += ['AudioUnit', 'CoreAudio'] -# Bluetooth for wiimote support -env['HAVE_BLUEZ'] = conf.CheckPKG('bluez') - -env['HAVE_ALSA'] = 0 -env['HAVE_AO'] = 0 -env['HAVE_OPENAL'] = 0 -env['HAVE_PORTAUDIO'] = 0 -env['HAVE_PULSEAUDIO'] = 0 -if sys.platform != 'darwin': - env['HAVE_ALSA'] = conf.CheckPKG('alsa') - env['HAVE_AO'] = conf.CheckPKG('ao') - env['HAVE_OPENAL'] = conf.CheckPKG('openal') - env['HAVE_PORTAUDIO'] = conf.CheckPortaudio(1890) - env['HAVE_PULSEAUDIO'] = conf.CheckPKG('libpulse') - # OpenCL env['HAVE_OPENCL'] = 0 if env['opencl']: env['HAVE_OPENCL'] = conf.CheckPKG('OpenCL') -# SOIL -env['SHARED_SOIL'] = 0; -if env['shared_soil']: - env['SHARED_SOIL'] = conf.CheckPKG('SOIL') - if not env['SHARED_SOIL']: - print "shared SOIL library not detected" +# GLEW +env['SHARED_GLEW'] = 0; +if env['shared_glew']: + env['SHARED_GLEW'] = conf.CheckPKG('GLEW') + if not env['SHARED_GLEW']: + print "shared GLEW library not detected" print "falling back to the static library" -if not env['SHARED_SOIL']: - env['CPPPATH'] += [ basedir + 'Externals/SOIL' ] - dirs += ['Externals/SOIL'] +if not env['SHARED_GLEW']: + env['CPPPATH'] += [ basedir + 'Externals/GLew/include' ] + dirs += ['Externals/GLew'] # LZO env['SHARED_LZO'] = 0; @@ -328,6 +313,29 @@ if not env['SHARED_LZO']: env['CPPPATH'] += [ basedir + 'Externals/LZO' ] dirs += ['Externals/LZO'] +# SDL +env['SHARED_SDL'] = 0; +if env['shared_sdl']: + env['SHARED_SDL'] = conf.CheckPKG('SDL') + if not env['SHARED_SDL']: + print "shared SDL library not detected" + print "falling back to the static library" +if not env['SHARED_SDL']: + env['CPPPATH'] += [ basedir + 'Externals/SDL' ] + env['CPPPATH'] += [ basedir + 'Externals/SDL/include' ] + dirs += ['Externals/SDL'] + +# SOIL +env['SHARED_SOIL'] = 0; +if env['shared_soil']: + env['SHARED_SOIL'] = conf.CheckPKG('SOIL') + if not env['SHARED_SOIL']: + print "shared SOIL library not detected" + print "falling back to the static library" +if not env['SHARED_SOIL']: + env['CPPPATH'] += [ basedir + 'Externals/SOIL' ] + dirs += ['Externals/SOIL'] + # SFML env['SHARED_SFML'] = 0; if env['shared_sfml']: @@ -341,6 +349,17 @@ if not env['SHARED_SFML']: env['CPPPATH'] += [ basedir + 'Externals/SFML/include' ] dirs += ['Externals/SFML/src'] +# zlib +env['SHARED_ZLIB'] = 0; +if env['shared_zlib']: + env['SHARED_ZLIB'] = conf.CheckPKG('z') + if not env['SHARED_ZLIB']: + print "shared zlib library not detected" + print "falling back to the static library" +if not env['SHARED_ZLIB']: + env['CPPPATH'] += [ basedir + 'Externals/zlib' ] + dirs += ['Externals/zlib'] + wxmods = ['aui', 'adv', 'core', 'base'] if env['wxgl'] or sys.platform == 'win32' or sys.platform == 'darwin': env['USE_WX'] = 1 @@ -364,7 +383,7 @@ else: # which is not available for x86_64 and we don't use it anyway. # Strip it out to silence some harmless linker warnings. if env['FRAMEWORKS'].count('QuickTime'): - env['FRAMEWORKS'].remove('QuickTime') + env['FRAMEWORKS'].remove('QuickTime') # Make sure that the libraries claimed by wx-config are valid env['HAVE_WX'] = conf.CheckPKG('c') @@ -376,16 +395,28 @@ if not sys.platform == 'win32': if not conf.CheckPKG('Cg'): print "Must have Cg framework from NVidia to build" Exit(1) - if not conf.CheckPKG('GLEW'): - print "Must have GLEW to build" - Exit(1) +env['HAVE_BLUEZ'] = 0 +env['HAVE_ALSA'] = 0 +env['HAVE_AO'] = 0 +env['HAVE_OPENAL'] = 0 +env['HAVE_PORTAUDIO'] = 0 +env['HAVE_PULSEAUDIO'] = 0 env['HAVE_X11'] = 0 env['HAVE_XRANDR'] = 0 if not sys.platform == 'win32' and not sys.platform == 'darwin': + env['LINKFLAGS'] += ['-pthread'] + + env['HAVE_BLUEZ'] = conf.CheckPKG('bluez') + + env['HAVE_ALSA'] = conf.CheckPKG('alsa') + env['HAVE_AO'] = conf.CheckPKG('ao') + env['HAVE_OPENAL'] = conf.CheckPKG('openal') + env['HAVE_PORTAUDIO'] = conf.CheckPortaudio(1890) + env['HAVE_PULSEAUDIO'] = conf.CheckPKG('libpulse-simple') + env['HAVE_X11'] = conf.CheckPKG('x11') env['HAVE_XRANDR'] = env['HAVE_X11'] and conf.CheckPKG('xrandr') - env['LINKFLAGS'] += ['-pthread'] if not conf.CheckPKG('GL'): print "Must have OpenGL to build" Exit(1) @@ -396,10 +427,6 @@ if not sys.platform == 'win32' and not sys.platform == 'darwin': print "Must have CgGl to build" Exit(1) -if not conf.CheckPKG('z'): - print "zlib is required" - Exit(1) - # Check for GTK 2.0 or newer if sys.platform == 'linux2': if env['HAVE_WX'] and not conf.CheckPKG('gtk+-2.0'): diff --git a/Source/Core/DolphinWX/Src/SConscript b/Source/Core/DolphinWX/Src/SConscript index 759746aa5f..9a0cbb5b85 100644 --- a/Source/Core/DolphinWX/Src/SConscript +++ b/Source/Core/DolphinWX/Src/SConscript @@ -11,8 +11,9 @@ files = [ ] libs = [ - 'core', 'lzo2', 'discio', 'bdisasm', 'videocommon', - 'inputcommon', 'inputuicommon', 'common', 'lua', 'z', 'sfml-network' + 'core', 'lzo2', 'discio', 'bdisasm', 'videocommon', + 'inputcommon', 'inputuicommon', 'common', 'lua', 'z', 'sfml-network', + 'SDL' ] if wxenv['HAVE_WX']: @@ -60,7 +61,7 @@ if sys.platform == 'win32': files += [ "stdafx.cpp" ] if sys.platform == 'darwin': - files += [ 'cocoaApp.m', ] + files += [ 'cocoaApp.m' ] exeGUI = env['binary_dir'] + 'Dolphin.app/Contents/MacOS/Dolphin' exeNoGUI = env['binary_dir'] + 'DolphinNoGUI' @@ -74,8 +75,9 @@ if sys.platform == 'darwin': CFBundleName = 'Dolphin', CFBundlePackageType = 'APPL', CFBundleShortVersionString = - os.popen('svnversion -n ' + Dir('#').abspath).read(), + os.popen('svnversion -n ' + Dir('#').abspath).read(), CFBundleVersion = '2.0', + LSMinimumSystemVersion = '10.5.0', LSRequiresCarbon = True, )) ) diff --git a/Source/Core/InputCommon/Src/SDL_Util.h b/Source/Core/InputCommon/Src/SDL_Util.h index d7fba95da7..a1f5a2fd66 100644 --- a/Source/Core/InputCommon/Src/SDL_Util.h +++ b/Source/Core/InputCommon/Src/SDL_Util.h @@ -25,13 +25,11 @@ #ifdef _WIN32 #include // Externals -#include #if SDL_VERSION_ATLEAST(1, 3, 0) #include #endif #else #include -#include #if SDL_VERSION_ATLEAST(1, 3, 0) #include #endif diff --git a/Source/Plugins/Plugin_VideoOGL/Src/SConscript b/Source/Plugins/Plugin_VideoOGL/Src/SConscript index f8a0ca7e78..dbea190bee 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/SConscript +++ b/Source/Plugins/Plugin_VideoOGL/Src/SConscript @@ -28,7 +28,7 @@ files = [ linkFlags = [ ] libs = [ - 'videocommon', 'SOIL', 'common' + 'videocommon', 'GLEW', 'SDL', 'SOIL', 'common' ] gfxenv = env.Clone() diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SConscript b/Source/Plugins/Plugin_VideoSoftware/Src/SConscript index 4480ce7d6b..4294cee59d 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SConscript +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SConscript @@ -39,7 +39,7 @@ files = [ linkFlags = [ ] libs = [ - 'videocommon', 'SOIL', 'common' + 'videocommon', 'GLEW', 'SDL', 'SOIL', 'common' ] gfxenv = env.Clone() diff --git a/Source/Plugins/Plugin_Wiimote/Src/SConscript b/Source/Plugins/Plugin_Wiimote/Src/SConscript index 7f4cc11aa8..bcee1c2fa5 100644 --- a/Source/Plugins/Plugin_Wiimote/Src/SConscript +++ b/Source/Plugins/Plugin_Wiimote/Src/SConscript @@ -30,7 +30,7 @@ if wmenv['HAVE_WX']: "FillReport.cpp", ] -libs = [ 'common', 'inputcommon', 'inputuicommon' ] +libs = [ 'common', 'inputcommon', 'inputuicommon', 'SDL' ] cxxflags = [ ] diff --git a/Source/Plugins/Plugin_WiimoteNew/Src/SConscript b/Source/Plugins/Plugin_WiimoteNew/Src/SConscript index 97226b4441..325e90f82f 100644 --- a/Source/Plugins/Plugin_WiimoteNew/Src/SConscript +++ b/Source/Plugins/Plugin_WiimoteNew/Src/SConscript @@ -20,7 +20,7 @@ files = [ ] wiinewenv.Append( - LIBS = [ 'inputuicommon', 'inputcommon', 'common' ], + LIBS = [ 'inputuicommon', 'inputcommon', 'common', 'SDL' ], ) wiinewenv.SharedLibrary(env['plugin_dir']+name, files)