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
This commit is contained in:
Oystein Eftevaag 2006-03-14 12:18:04 +00:00
parent c822f49676
commit c3d8674a26
5 changed files with 38 additions and 5 deletions

View file

@ -84,8 +84,8 @@ int MidiDriver_QT::open() {
goto bail; goto bail;
simpleNoteRequest.info.flags = 0; simpleNoteRequest.info.flags = 0;
simpleNoteRequest.info.polyphony = 11; // simultaneous tones WRITE_BE_UINT16(& simpleNoteRequest.info.polyphony, 11); // simultaneous tones
simpleNoteRequest.info.typicalPolyphony = 0x00010000; WRITE_BE_UINT16(& simpleNoteRequest.info.typicalPolyphony, 0x00010000);
qtErr = NAStuffToneDescription(qtNoteAllocator, 1, &simpleNoteRequest.tone); qtErr = NAStuffToneDescription(qtNoteAllocator, 1, &simpleNoteRequest.tone);
if (qtErr != noErr) if (qtErr != noErr)

33
configure vendored
View file

@ -62,6 +62,7 @@ _build_cine=no
_need_memalign=no _need_memalign=no
_build_plugins=no _build_plugins=no
_nasm=auto _nasm=auto
_altivec=auto
_build_hq_scalers=yes _build_hq_scalers=yes
_build_scalers=yes _build_scalers=yes
# more defaults # more defaults
@ -248,6 +249,9 @@ CheckNASM()
mingw* | cygwin*) mingw* | cygwin*)
NASMFLAGS="-f win32" NASMFLAGS="-f win32"
;; ;;
darwin*)
NASMFLAGS="-f macho"
;;
*) *)
NASMFLAGS="-f elf" NASMFLAGS="-f elf"
;; ;;
@ -343,6 +347,7 @@ Optional Libraries:
--with-nasm-prefix=DIR Prefix where nasm executable is installed (optional) --with-nasm-prefix=DIR Prefix where nasm executable is installed (optional)
--disable-nasm disable assembly language optimizations [autodetect] --disable-nasm disable assembly language optimizations [autodetect]
--disable-altivec disable altivec optimizations [autodetect]
Some influential environment variables: Some influential environment variables:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a 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-plugins) _build_plugins=yes ;;
--enable-mt32emu) _mt32emu=yes ;; --enable-mt32emu) _mt32emu=yes ;;
--disable-mt32emu) _mt32emu=no ;; --disable-mt32emu) _mt32emu=no ;;
--disable-altivec) _altivec=no ;;
--with-fluidsynth-prefix=*) --with-fluidsynth-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2` arg=`echo $ac_option | cut -d '=' -f 2`
FLUIDSYNTH_CFLAGS="-I$arg/include" FLUIDSYNTH_CFLAGS="-I$arg/include"
@ -782,9 +788,6 @@ else
darwin*) darwin*)
DEFINES="$DEFINES -DUNIX -DMACOSX" DEFINES="$DEFINES -DUNIX -DMACOSX"
LIBS="$LIBS -framework QuickTime -framework AudioUnit -framework AudioToolbox -framework Carbon -framework CoreMIDI" 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*) mingw*)
DEFINES="$DEFINES -DWIN32" DEFINES="$DEFINES -DWIN32"
@ -1229,6 +1232,30 @@ fi
test -z "$_bindir" && _bindir="$_prefix/bin" test -z "$_bindir" && _bindir="$_prefix/bin"
test -z "$_mandir" && _mandir="$_prefix/man" 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 # Check which engines ("frontends") are to be built
# #

View file

@ -37,9 +37,11 @@ extern "C" {
// condition here // condition here
#ifndef _WIN32 #ifndef _WIN32
#ifndef MACOSX
#define RGBtoYUV _RGBtoYUV #define RGBtoYUV _RGBtoYUV
#define LUT16to32 _LUT16to32 #define LUT16to32 _LUT16to32
#endif #endif
#endif
#endif #endif

View file

@ -29,8 +29,10 @@
extern "C" { extern "C" {
#ifndef _WIN32 #ifndef _WIN32
#ifndef MACOSX
#define hq2x_16 _hq2x_16 #define hq2x_16 _hq2x_16
#endif #endif
#endif
void hq2x_16(const byte *, byte *, uint32, uint32, uint32, uint32); void hq2x_16(const byte *, byte *, uint32, uint32, uint32, uint32);

View file

@ -29,8 +29,10 @@
extern "C" { extern "C" {
#ifndef _WIN32 #ifndef _WIN32
#ifndef MACOSX
#define hq3x_16 _hq3x_16 #define hq3x_16 _hq3x_16
#endif #endif
#endif
void hq3x_16(const byte *, byte *, uint32, uint32, uint32, uint32); void hq3x_16(const byte *, byte *, uint32, uint32, uint32, uint32);