aboutsummaryrefslogtreecommitdiffstats
path: root/multimedia/libxine
diff options
context:
space:
mode:
authornox <nox@FreeBSD.org>2013-09-05 00:45:13 +0800
committernox <nox@FreeBSD.org>2013-09-05 00:45:13 +0800
commite125b712f04f79c94413bb261673b104d4f227cd (patch)
tree1071d364bb8a51429ba72533989fc096b1aded5c /multimedia/libxine
parentcb974f281be8726b303403edce3c1c385ba6d14d (diff)
downloadfreebsd-ports-gnome-e125b712f04f79c94413bb261673b104d4f227cd.tar.gz
freebsd-ports-gnome-e125b712f04f79c94413bb261673b104d4f227cd.tar.zst
freebsd-ports-gnome-e125b712f04f79c94413bb261673b104d4f227cd.zip
- Convert to USES=gmake perl5.
- Fix register allocation problems with clang on i386: * Remove the q modifier from inline asm such that clang no longer uses a 64 bit register. Instead cast the operand to register_t which is 32 bit on i386 and 64 bit on amd64. * Add -fomit-frame-pointer to CFLAGS to free up an extra register. - Fix the issue with WITH_DEBUG by adding --disable-real-codecs which apparently never really worked anyway. - Patch configure so it no longer adds -mtune=i386 to CFLAGS. - Bump PORTREVISION. PR: ports/181786 Submitted by: tijl
Diffstat (limited to 'multimedia/libxine')
-rw-r--r--multimedia/libxine/Makefile31
-rw-r--r--multimedia/libxine/files/patch-configure11
-rw-r--r--multimedia/libxine/files/patch-src-post-deinterlace-plugins-greedy2frame_template_sse2.c28
-rw-r--r--multimedia/libxine/files/patch-src_libreal_real_common.c10
-rw-r--r--multimedia/libxine/files/patch-src_libreal_xine_real_audio_decoder.c22
-rw-r--r--multimedia/libxine/pkg-plist1
6 files changed, 43 insertions, 60 deletions
diff --git a/multimedia/libxine/Makefile b/multimedia/libxine/Makefile
index b235b102db8c..6c2a100ff18d 100644
--- a/multimedia/libxine/Makefile
+++ b/multimedia/libxine/Makefile
@@ -3,7 +3,7 @@
PORTNAME= xine
PORTVERSION= 1.2.2
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= multimedia ipv6
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-lib/${PORTVERSION}
PKGNAMEPREFIX= lib
@@ -37,14 +37,13 @@ BUILD_DEPENDS+= v4l_compat>=1.0.20100321:${PORTSDIR}/multimedia/v4l_compat
LIB_DEPENDS+= dvdcss.${DVDCSS_LIBVERSION}:${PORTSDIR}/multimedia/libdvdcss
.endif
-USES= pathfix pkgconfig iconv
+USES= gmake iconv pathfix perl5 pkgconfig
USE_XZ= yes
GNU_CONFIGURE= yes
WANT_GNOME= yes
-USE_GMAKE= yes
USE_XORG= sm x11 xv xinerama
USE_GL= gl glu
-USE_PERL5_BUILD=yes
+USE_PERL5= build
USE_SDL= sdl
USE_LDCONFIG= yes
CONFIGURE_ENV= THREAD_CFLAGS="${PTHREAD_CFLAGS}" \
@@ -60,6 +59,7 @@ CONFIGURE_ARGS= --with-w32-path=${LOCALBASE}/lib/win32 \
--with-libflac \
--with-external-ffmpeg \
--with-external-libfaad \
+ --disable-real-codecs \
--disable-v4l \
--without-alsa \
--disable-musepack \
@@ -82,29 +82,8 @@ PATCH_DIST_ARGS= -d ${WRKSRC} -p1 --forward --quiet
.include <bsd.port.options.mk>
-# clang/i386 doesn't like
-# src/post/deinterlace/plugins/greedy2frame_template_sse2.c :
-# [...]
-# ./greedy2frame_template_sse2.c:175:38: error: register %rax is only available in 64-bit mode
-# "movdqa (%3), %%xmm0 \n\t" /* xmm0 = T0 */
-# ^
-#<inline asm>:3:11: note: instantiated into assembly here
-# movdqa (%rax,%esi), %xmm3
-# ^~~~
-# [...]
.if ${ARCH} == "i386"
-USE_GCC= any
-.endif
-
-# Fix build WITH_DEBUG
-.if defined(WITH_DEBUG)
-DEBUG_FLAGS= -g -O1
-.endif
-
-# Check for forced -O0 (or no -O)
-.if ${CFLAGS:M-O0} == "-O0" || (${CFLAGS:M-O} == "" && \
- ${CFLAGS:M-O[1-9a-z]*} == "")
-IGNORE= only builds with -O1 or higher, check CFLAGS
+CFLAGS+= -fomit-frame-pointer
.endif
.if ${PORT_OPTIONS:MNLS}
diff --git a/multimedia/libxine/files/patch-configure b/multimedia/libxine/files/patch-configure
index 75aef21bea66..db9a5b876cc6 100644
--- a/multimedia/libxine/files/patch-configure
+++ b/multimedia/libxine/files/patch-configure
@@ -9,7 +9,16 @@
arch_x86=64
$as_echo "#define ARCH_X86_64 /**/" >>confdefs.h
-@@ -26197,7 +26197,7 @@ fi
+@@ -20685,7 +20685,7 @@ fi
+
+ if test "$sarchopt" != "no"; then
+ case "$host_or_hostalias" in
+- i386-*) archopt_val="i386" ;;
++ i386-*) ;;
+ i486-*) archopt_val="i486" ;;
+ i586-*) archopt_val="pentium" ;;
+ pentium-mmx-*) archopt_val="pentium-mmx" ;;
+@@ -26280,7 +26280,7 @@ fi
if test x"$enable_dvb" != x"no"; then
case "$host_os" in
diff --git a/multimedia/libxine/files/patch-src-post-deinterlace-plugins-greedy2frame_template_sse2.c b/multimedia/libxine/files/patch-src-post-deinterlace-plugins-greedy2frame_template_sse2.c
new file mode 100644
index 000000000000..c794b5771091
--- /dev/null
+++ b/multimedia/libxine/files/patch-src-post-deinterlace-plugins-greedy2frame_template_sse2.c
@@ -0,0 +1,28 @@
+--- src/post/deinterlace/plugins/greedy2frame_template_sse2.c.orig 2013-09-03 20:12:37.000000000 +0200
++++ src/post/deinterlace/plugins/greedy2frame_template_sse2.c 2013-09-03 20:22:34.000000000 +0200
+@@ -173,8 +173,8 @@
+ */
+ "movdqa (%3), %%xmm1 \n\t" /* xmm1 = T1 */
+ "movdqa (%4), %%xmm0 \n\t" /* xmm0 = T0 */
+- "movdqa (%q5,%3), %%xmm3 \n\t" /* xmm3 = B1 */
+- "movdqa (%q5,%4), %%xmm2 \n\t" /* xmm2 = B0 */
++ "movdqa (%3,%5), %%xmm3 \n\t" /* xmm3 = B1 */
++ "movdqa (%4,%5), %%xmm2 \n\t" /* xmm2 = B0 */
+
+ /* calculate |T1-T0| keep T1 put result in xmm5 */
+ "movdqa %%xmm1, %%xmm5 \n\t"
+@@ -192,11 +192,11 @@
+ "pcmpgtb %1, %%xmm5 \n\t"
+ "pcmpeqd %%xmm7, %%xmm5 \n\t"
+
+- "prefetcht0 64(%q5,%3) \n\t"
+- "prefetcht0 64(%q5,%4) \n\t"
++ "prefetcht0 64(%3,%5) \n\t"
++ "prefetcht0 64(%4,%5) \n\t"
+ :
+ : "r" (M1), "m" (GreedyTwoFrameThreshold128),
+- "m" (*Destc), "r" (T1), "r" (T0), "r" (Pitch) );
++ "m" (*Destc), "r" (T1), "r" (T0), "r" ((register_t)Pitch) );
+
+ asm volatile (
+ /* calculate |B1-B0| keep B1 put result in xmm4 */
diff --git a/multimedia/libxine/files/patch-src_libreal_real_common.c b/multimedia/libxine/files/patch-src_libreal_real_common.c
deleted file mode 100644
index 0cfd757c2e69..000000000000
--- a/multimedia/libxine/files/patch-src_libreal_real_common.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/libreal/real_common.c.orig 2008-01-01 22:30:08.000000000 +0900
-+++ src/libreal/real_common.c 2008-01-13 04:05:14.000000000 +0900
-@@ -97,6 +97,7 @@
- { O | UL, "codecs" },
- { O | UL | UL64, "real" },
- { O, "real/RealPlayer/codecs" },
-+ { OL | OL64 | UL | UL64, "RealPlayer/codecs" },
- { OL | OL64 | UL | UL64, "RealPlayer10GOLD/codecs" },
- { OL | OL64 | UL | UL64, "RealPlayer10/codecs" },
- { OL | OL64 | UL | UL64, "RealPlayer9/users/Real/Codecs" },
diff --git a/multimedia/libxine/files/patch-src_libreal_xine_real_audio_decoder.c b/multimedia/libxine/files/patch-src_libreal_xine_real_audio_decoder.c
deleted file mode 100644
index 67de5aee5d1a..000000000000
--- a/multimedia/libxine/files/patch-src_libreal_xine_real_audio_decoder.c
+++ /dev/null
@@ -1,22 +0,0 @@
---- src/libreal/xine_real_audio_decoder.c.orig 2008-01-01 22:30:08.000000000 +0900
-+++ src/libreal/xine_real_audio_decoder.c 2008-01-20 01:44:15.000000000 +0900
-@@ -45,6 +45,19 @@
-
- #include "real_common.h"
-
-+#if defined(__FreeBSD__)
-+void ___brk_addr(void) {exit(0);}
-+void __ctype_b(void) {exit(0);}
-+void __strtod_internal(void) {exit(0);}
-+void __strtold_internal(void) {exit(0);}
-+void __strtof_internal(void) {exit(0);}
-+void __errno_location(void) {exit(0);}
-+void dl_iterate_phdr(void) {exit(0);}
-+char **__environ={NULL};
-+#undef stderr
-+FILE *stderr=NULL;
-+#endif
-+
- typedef struct {
- audio_decoder_class_t decoder_class;
-
diff --git a/multimedia/libxine/pkg-plist b/multimedia/libxine/pkg-plist
index 338c470a5f86..6ecf40121f4f 100644
--- a/multimedia/libxine/pkg-plist
+++ b/multimedia/libxine/pkg-plist
@@ -108,7 +108,6 @@ share/xine-lib/fonts/serif-64.xinefont.gz
%%PLUGINSDIR%%/xineplug_decode_mad.so
%%PLUGINSDIR%%/xineplug_decode_mpeg2.so
%%WITH_VIDIX%%%%PLUGINSDIR%%/xineplug_decode_qt.so
-%%PLUGINSDIR%%/xineplug_decode_real.so
%%PLUGINSDIR%%/xineplug_decode_rgb.so
%%PLUGINSDIR%%/xineplug_decode_spu.so
%%PLUGINSDIR%%/xineplug_decode_spucc.so