From b6c2184780dec39d6de0517958a34e4e108ffbdb Mon Sep 17 00:00:00 2001 From: Bernhard Froehlich Date: Thu, 30 Jan 2014 15:34:30 +0000 Subject: [PATCH] - Fix build with clang and modern gcc - Support staging - Add support for ALSA sound PR: ports/183599 Submitted by: Vladimir Kondratiev Approved by: maintainer timeout (11 weeks) --- audio/openal/Makefile | 63 +++++-------------- .../files/patch-src-arch-i386-x86_floatmul.c | 28 +++++++++ 2 files changed, 45 insertions(+), 46 deletions(-) diff --git a/audio/openal/Makefile b/audio/openal/Makefile index 9e15ccbfb9b4..0cd2fdb7ce1e 100644 --- a/audio/openal/Makefile +++ b/audio/openal/Makefile @@ -5,16 +5,17 @@ PORTNAME= openal PORTVERSION= 20060211 PORTREVISION= 12 CATEGORIES= audio -MASTER_SITES= http://openal.org/openal_webstf/downloads/ +MASTER_SITES= GENTOO/distfiles DISTVERSION= 0.0.8 MAINTAINER= erik@bz.bzflag.bz COMMENT= A 3D positional spatialized sound library +LICENSE= GPLv2 + CONFLICTS= openal-soft-[0-9]* USE_AUTOTOOLS= libtool -NO_STAGE= yes GNU_CONFIGURE= yes CPPFLAGS+= -I${LOCALBASE}/include CFLAGS+= -Wno-return-type @@ -22,57 +23,30 @@ LDFLAGS+= -L${LOCALBASE}/lib CONFIGURE_ARGS= --enable-capture \ --disable-arts USES= pathfix pkgconfig gmake -WANT_SDL= yes USE_LDCONFIG= yes -OPTIONS_DEFINE= ESOUND SDL VORBIS SMPEG +OPTIONS_DEFINE= ESOUND SDL VORBIS SMPEG ALSA OPTIONS_DEFINE_i386= ASM OPTIONS_DEFAULT_i386= ASM SMPEG_DESC= smpeg support -.include - -.if ${PORT_OPTIONS:MSMPEG} -WITH_SDL= yes # smpeg requires SDL -.endif - -.if ${PORT_OPTIONS:MESD} -USE_GNOME+= esound -CONFIGURE_ARGS+=--enable-esd -.else -CONFIGURE_ARGS+=--disable-esd -.endif - -.if ${PORT_OPTIONS:MSDL} -USE_SDL+= sdl -CONFIGURE_ENV+= HAVESDL="${SDL_CONFIG}" -CONFIGURE_ARGS+=--enable-sdl -.else -CONFIGURE_ARGS+=--disable-sdl -.endif - -.if ${PORT_OPTIONS:MVORBIS} -LIB_DEPENDS+= libvorbisfile.so:${PORTSDIR}/audio/libvorbis -CONFIGURE_ARGS+=--enable-vorbis -.else -CONFIGURE_ARGS+=--disable-vorbis -.endif - -.if ${PORT_OPTIONS:MSMPEG} -LIB_DEPENDS+= libsmpeg.so:${PORTSDIR}/multimedia/smpeg -CONFIGURE_ARGS+=--enable-smpeg -.else -CONFIGURE_ARGS+=--disable-smpeg -.endif - -.if ${PORT_OPTIONS:MASM} -BUILD_DEPENDS+= nasm:${PORTSDIR}/devel/nasm -.endif - +ESOUND_USE= GNOME=esound +ESOUND_CONFIGURE_ENABLE=esd +SDL_USE= SDL=sdl +SDL_CONFIGURE_ENABLE= sdl +VORBIS_LIB_DEPENDS= libvorbisfile.so:${PORTSDIR}/audio/libvorbis +VORBIS_CONFIGURE_ENABLE=vorbis +SMPEG_LIB_DEPENDS= libsmpeg.so:${PORTSDIR}/multimedia/smpeg +SMPEG_CONFIGURE_ENABLE= mp3 +ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib +ALSA_CONFIGURE_ENABLE= alsa +ASM_BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm NOT_FOR_ARCHS= ia64 NOT_FOR_ARCHS_REASON_ia64= does not compile +.include + post-patch: @${REINPLACE_CMD} -e 's/-pthread/${PTHREAD_LIBS}/; \ s/x86_64\*/amd64\* | \*ia64\*/g; \ @@ -89,7 +63,4 @@ post-patch: @${REINPLACE_CMD} -e '/^NASM=/ s|=.*|=no|' ${WRKSRC}/configure .endif -post-install: - @${CAT} ${PKGMESSAGE} - .include diff --git a/audio/openal/files/patch-src-arch-i386-x86_floatmul.c b/audio/openal/files/patch-src-arch-i386-x86_floatmul.c index 7bc3a81c262a..871ccc6a40c1 100644 --- a/audio/openal/files/patch-src-arch-i386-x86_floatmul.c +++ b/audio/openal/files/patch-src-arch-i386-x86_floatmul.c @@ -9,3 +9,31 @@ samples_pre /= sizeof(ALshort); samples_main = len - samples_pre; samples_post = samples_main % 8; +@@ -82,11 +82,27 @@ void _alFloatMul(ALshort *bpt, ALfloat s + v_sa.s[3] = v_sa.s[0]; + + while (samples_main--) { ++ union { ++ short s[4]; ++ v4hi v; ++ } ALIGN16(v_one); ++ v_one.s[0] = 1; ++ v_one.s[1] = 0; ++ v_one.s[2] = 0; ++ v_one.s[3] = 0; + temp = __builtin_ia32_pmulhw(*(v4hi*)bpt, v_sa.v); ++#if defined(__GNUC__) && defined(__GNUC_MINOR__) && (__GNUC__ <= 3 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 2)) && !defined(__clang__) + *(v4hi*)bpt = __builtin_ia32_psllw(temp, 1LL); ++#else ++ *(v4hi*)bpt = __builtin_ia32_psllw(temp, v_one.v); ++#endif + bpt += 4; + temp = __builtin_ia32_pmulhw(*(v4hi*)bpt, v_sa.v); ++#if defined(__GNUC__) && defined(__GNUC_MINOR__) && (__GNUC__ <= 3 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 2)) && !defined(__clang__) + *(v4hi*)bpt = __builtin_ia32_psllw(temp, 1LL); ++#else ++ *(v4hi*)bpt = __builtin_ia32_psllw(temp, v_one.v); ++#endif + bpt += 4; + } + }