- Fix build with clang and modern gcc

- Support staging
- Add support for ALSA sound

PR:		ports/183599
Submitted by:	Vladimir Kondratiev <wulf@mail.mipt.ru>
Approved by:	maintainer timeout (11 weeks)
This commit is contained in:
Bernhard Froehlich 2014-01-30 15:34:30 +00:00
parent 577384f181
commit b6c2184780
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=341848
2 changed files with 45 additions and 46 deletions

View File

@ -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 <bsd.port.options.mk>
.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 <bsd.port.options.mk>
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 <bsd.port.mk>

View File

@ -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;
}
}