aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOystein Eftevaag2006-03-14 12:18:04 +0000
committerOystein Eftevaag2006-03-14 12:18:04 +0000
commitc3d8674a26b55ca656f1d7922b799d5907c4beda (patch)
tree17392c6d617254419d58d72e02f29e2251763b43
parentc822f496762f083e6d31b3f902af31019887ea26 (diff)
downloadscummvm-rg350-c3d8674a26b55ca656f1d7922b799d5907c4beda.tar.gz
scummvm-rg350-c3d8674a26b55ca656f1d7922b799d5907c4beda.tar.bz2
scummvm-rg350-c3d8674a26b55ca656f1d7922b799d5907c4beda.zip
Adds support for building on Intel Macs, using a modified
version of patch 1448395 by Aubin and some of my own changes. Notably: * Two elements of a struct in backends/midi/quicktime.cpp needed to be forced to BE. * NASM set to build Mach-O binaries * configure now checks for Altivec support on Darwin hosts, instead of assuming it. Altivec support can also be disabled (not 100% sure if t his is actually needed, but might be handy for crosscompiling). * The aliasing of the symbols contained in the .asm files done on Windows were also needed on MacOS. Note that while the asm code is properly compiled and linked in, HQ2/3x support will still not work properly on Intel macs if NASM is enabled. svn-id: r21280
-rw-r--r--backends/midi/quicktime.cpp4
-rwxr-xr-xconfigure33
-rw-r--r--graphics/scaler.cpp2
-rw-r--r--graphics/scaler/hq2x.cpp2
-rw-r--r--graphics/scaler/hq3x.cpp2
5 files changed, 38 insertions, 5 deletions
diff --git a/backends/midi/quicktime.cpp b/backends/midi/quicktime.cpp
index 07d184331e..afd6eeb539 100644
--- a/backends/midi/quicktime.cpp
+++ b/backends/midi/quicktime.cpp
@@ -84,8 +84,8 @@ int MidiDriver_QT::open() {
goto bail;
simpleNoteRequest.info.flags = 0;
- simpleNoteRequest.info.polyphony = 11; // simultaneous tones
- simpleNoteRequest.info.typicalPolyphony = 0x00010000;
+ WRITE_BE_UINT16(& simpleNoteRequest.info.polyphony, 11); // simultaneous tones
+ WRITE_BE_UINT16(& simpleNoteRequest.info.typicalPolyphony, 0x00010000);
qtErr = NAStuffToneDescription(qtNoteAllocator, 1, &simpleNoteRequest.tone);
if (qtErr != noErr)
diff --git a/configure b/configure
index 32a0c2075a..8dfe200647 100755
--- a/configure
+++ b/configure
@@ -62,6 +62,7 @@ _build_cine=no
_need_memalign=no
_build_plugins=no
_nasm=auto
+_altivec=auto
_build_hq_scalers=yes
_build_scalers=yes
# more defaults
@@ -248,6 +249,9 @@ CheckNASM()
mingw* | cygwin*)
NASMFLAGS="-f win32"
;;
+ darwin*)
+ NASMFLAGS="-f macho"
+ ;;
*)
NASMFLAGS="-f elf"
;;
@@ -343,6 +347,7 @@ Optional Libraries:
--with-nasm-prefix=DIR Prefix where nasm executable is installed (optional)
--disable-nasm disable assembly language optimizations [autodetect]
+ --disable-altivec disable altivec optimizations [autodetect]
Some influential environment variables:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
@@ -395,6 +400,7 @@ for ac_option in $@; do
--enable-plugins) _build_plugins=yes ;;
--enable-mt32emu) _mt32emu=yes ;;
--disable-mt32emu) _mt32emu=no ;;
+ --disable-altivec) _altivec=no ;;
--with-fluidsynth-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
FLUIDSYNTH_CFLAGS="-I$arg/include"
@@ -782,9 +788,6 @@ else
darwin*)
DEFINES="$DEFINES -DUNIX -DMACOSX"
LIBS="$LIBS -framework QuickTime -framework AudioUnit -framework AudioToolbox -framework Carbon -framework CoreMIDI"
- # TODO: Add proper check for Altivec support in the compiler...
- DEFINES="$DEFINES -DHAS_ALTIVEC"
- CXXFLAGS="$CXXFLAGS -faltivec"
;;
mingw*)
DEFINES="$DEFINES -DWIN32"
@@ -1230,6 +1233,30 @@ test -z "$_bindir" && _bindir="$_prefix/bin"
test -z "$_mandir" && _mandir="$_prefix/man"
#
+# Check for Altivec, if on MacOS X
+#
+case $_host_os in
+ darwin*)
+ echocheck "Altivec"
+ if test "$_altivec" = auto ; then
+ _altivec=no
+ cat > $TMPC << EOF
+int main(void) { return 0; }
+EOF
+ cc_check $LDFLAGS $CXXFLAGS -maltivec && _altivec=yes
+ fi
+ if test "$_altivec" = yes ; then
+ DEFINES="$DEFINES -DHAS_ALTIVEC"
+ CXXFLAGS="$CXXFLAGS -faltivec"
+ CFLAGS="$CFLAGS -faltivec"
+ fi
+ echo "$_altivec"
+ rm -f $TMPC $TMPO$EXEEXT
+ ;;
+esac
+
+
+#
# Check which engines ("frontends") are to be built
#
echo
diff --git a/graphics/scaler.cpp b/graphics/scaler.cpp
index 5364e39a2f..025fe0bd62 100644
--- a/graphics/scaler.cpp
+++ b/graphics/scaler.cpp
@@ -37,9 +37,11 @@ extern "C" {
// condition here
#ifndef _WIN32
+#ifndef MACOSX
#define RGBtoYUV _RGBtoYUV
#define LUT16to32 _LUT16to32
#endif
+#endif
#endif
diff --git a/graphics/scaler/hq2x.cpp b/graphics/scaler/hq2x.cpp
index ba89b4f9cf..f8863c0781 100644
--- a/graphics/scaler/hq2x.cpp
+++ b/graphics/scaler/hq2x.cpp
@@ -29,8 +29,10 @@
extern "C" {
#ifndef _WIN32
+#ifndef MACOSX
#define hq2x_16 _hq2x_16
#endif
+#endif
void hq2x_16(const byte *, byte *, uint32, uint32, uint32, uint32);
diff --git a/graphics/scaler/hq3x.cpp b/graphics/scaler/hq3x.cpp
index 0c33c23ab2..7960dd3b74 100644
--- a/graphics/scaler/hq3x.cpp
+++ b/graphics/scaler/hq3x.cpp
@@ -29,8 +29,10 @@
extern "C" {
#ifndef _WIN32
+#ifndef MACOSX
#define hq3x_16 _hq3x_16
#endif
+#endif
void hq3x_16(const byte *, byte *, uint32, uint32, uint32, uint32);