summaryrefslogtreecommitdiff
path: root/packages/libxine
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2005-06-30 08:19:37 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-06-30 08:19:37 +0000
commitc8e5702127e507e82e6f68a4b8c546803accea9d (patch)
tree00583491f40ecc640f2b28452af995e3a63a09d7 /packages/libxine
parent87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff)
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/libxine')
-rw-r--r--packages/libxine/.mtn2git_empty0
-rw-r--r--packages/libxine/files/.mtn2git_empty0
-rw-r--r--packages/libxine/files/configure-1.0.patch177
-rw-r--r--packages/libxine/files/cpu-1.0.patch112
-rw-r--r--packages/libxine/files/libxine-cut-memusage.patch71
-rw-r--r--packages/libxine/files/libxine-ffmpeg-enable-arm.patch20
-rw-r--r--packages/libxine/files/libxine-libavcodec.patch926
-rw-r--r--packages/libxine/files/libxine-libvorbis.patch39
-rw-r--r--packages/libxine/files/libxine-tremor-autoconf.patch16
-rw-r--r--packages/libxine/files/mpegvideo-static-inlinine.patch16
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/.mtn2git_empty0
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/configure.ac.patch152
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/demux_ogg.patch11
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/fftscope-static-inlining.patch11
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/fix-oss-plugin.patch29
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/fix-syntax-xine-vorbis-decoder.patch11
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/full.patch5601
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libvorbis.patch11
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libxine-autoconf.patch180
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libxine-cut-memusage.patch52
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libxine-ffmpeg-enable-arm-modules.patch19
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libxine-libavcodec.patch941
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libxine-libvorbis.patch37
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libxine-ogg-demux.patch22
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/libxine-tremor-autoconf.patch14
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/mpegvideo-static-inlining.patch11
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/oss.patch15
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/uclibc.patch55
-rw-r--r--packages/libxine/libxine-1.0.0-beta12/vo_scale.patch11
-rw-r--r--packages/libxine/libxine-1.0.0-rc5/.mtn2git_empty0
-rw-r--r--packages/libxine/libxine-1.0.0-rc5/configure.patch95
-rw-r--r--packages/libxine/libxine-1.0.0-rc5/cpu.patch75
-rw-r--r--packages/libxine/libxine-1.0.0-rc5/libxine-libvorbis.patch39
-rw-r--r--packages/libxine/libxine-1.0.0-rc5/libxine-tremor-autoconf.patch16
-rw-r--r--packages/libxine/libxine-1.0.0-rc5/no-caca-no-aalib.patch24
-rw-r--r--packages/libxine/libxine-1.0/.mtn2git_empty0
-rw-r--r--packages/libxine/libxine-1.0/dont-have-xv.patch16
-rw-r--r--packages/libxine/libxine-1.0/fix-syntax-xine-vorbis-decoder.patch11
-rw-r--r--packages/libxine/libxine-1.0/no-caca-no-aalib.patch24
-rw-r--r--packages/libxine/libxine-1.0/restore-esd.patch15
-rw-r--r--packages/libxine/libxine-opie-1.0/.mtn2git_empty0
-rw-r--r--packages/libxine/libxine-opie-1.0/configure-1.0.patch187
-rw-r--r--packages/libxine/libxine-opie-1.0/demuxogg.patch26
-rw-r--r--packages/libxine/libxine-opie-1.0/fix-syntax.patch16
-rw-r--r--packages/libxine/libxine-opie-1.0/libxine-arm-configure.patch18
-rw-r--r--packages/libxine/libxine-opie-1.0/no-caca.patch16
46 files changed, 9138 insertions, 0 deletions
diff --git a/packages/libxine/.mtn2git_empty b/packages/libxine/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libxine/.mtn2git_empty
diff --git a/packages/libxine/files/.mtn2git_empty b/packages/libxine/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libxine/files/.mtn2git_empty
diff --git a/packages/libxine/files/configure-1.0.patch b/packages/libxine/files/configure-1.0.patch
index e69de29bb2..c25d41988d 100644
--- a/packages/libxine/files/configure-1.0.patch
+++ b/packages/libxine/files/configure-1.0.patch
@@ -0,0 +1,177 @@
+--- xine-lib-1-rc6a/configure.ac.orig 2004-09-16 22:28:33.762843408 -0400
++++ xine-lib-1-rc6a/configure.ac 2004-09-16 22:29:00.969707336 -0400
+@@ -622,7 +622,7 @@
+ dnl ---------------------------------------------
+
+ AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_AA, test x$no_aalib != "xyes")
++AM_CONDITIONAL(HAVE_AA, [test x"$enable_aalib" = "xyes" && test x$no_aalib != "xyes"])
+
+
+ dnl ---------------------------------------------
+@@ -735,10 +735,7 @@
+ dnl check for SDL
+ dnl ---------------------------------------------
+
+-AM_PATH_SDL(1.1.5,
+- AC_DEFINE(HAVE_SDL,1,[Define this if you have SDL library installed]),
+- [])
+-AM_CONDITIONAL(HAVE_SDL, [test x"$no_sdl" != x"yes"])
++AM_CONDITIONAL(HAVE_SDL, 0)
+
+
+ dnl ---------------------------------------------
+@@ -868,61 +865,29 @@
+ dnl Ogg/Theora libs.
+ dnl ---------------------------------------------
+
+-AM_PATH_OGG(
+- [ AM_PATH_THEORA(AC_DEFINE(HAVE_THEORA,1,[Define this if you have theora]),
+- AC_MSG_RESULT([*** All OGG/THEORA dependent parts will be disabled ***]))
+- ],
+- AC_MSG_RESULT([*** All of OGG/Theora dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_THEORA, [test x"$no_ogg" != "xyes" -a x"$no_theora" != "xyes"])
++AM_CONDITIONAL(HAVE_THEORA, 0)
+
+
+ dnl ---------------------------------------------
+ dnl Ogg/Speex libs.
+ dnl ---------------------------------------------
+
+-PKG_CHECK_MODULES(SPEEX, speex, no_speex="no", no_speex="yes")
+-
+-if test "x$no_speex" = "xyes" ; then
+- AM_PATH_OGG([ AM_PATH_SPEEX(no_speex="no")])
+-fi
+-
+-if test "x$no_speex" = "xyes" ; then
+- AC_MSG_RESULT([*** All OGG/SPEEX dependent parts will be disabled ***])
+-else
+- AC_DEFINE(HAVE_SPEEX,1,[Define this if you have speex])
+-
+- dnl Test whether Speex headers are eg. <speex.h> or <speex/speex.h>
+- dnl Speex headers were moved in mid-2004; 1.0.x has backwards compatible headers, 1.1.x does not
+- AC_CHECK_HEADER([speex/speex.h],
+- AC_DEFINE(HAVE_SPEEX_SUBDIR, [1], [Define to 1 if speex headers are eg. <speex/speex.h>])
+- )
+-
+- AC_SUBST(SPEEX_CFLAGS)
+- AC_SUBST(SPEEX_LIBS)
+-fi
+-AM_CONDITIONAL(HAVE_SPEEX, [test x"$no_ogg" != "xyes" -a x"$no_speex" != "xyes"])
++AM_CONDITIONAL(HAVE_SPEEX, 0)
+
+
+ dnl ---------------------------------------------
+ dnl check for libFLAC
+ dnl ---------------------------------------------
+
+-AM_PATH_LIBFLAC([],
+- AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
++AM_CONDITIONAL(HAVE_FLAC, 0)
+
+
+ dnl ---------------------------------------------
+ dnl MNG libs.
+ dnl ---------------------------------------------
+
+-AC_CHECK_LIB(mng, mng_initialize,
+- [ AC_CHECK_HEADER(libmng.h,
+- [ have_libmng=yes
+- MNG_LIBS="-lmng" ],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_LIBMNG, test x"$have_libmng" = "xyes")
++MNG_LIBS=""
++AM_CONDITIONAL(HAVE_LIBMNG, 0)
+ AC_SUBST(MNG_LIBS)
+
+
+@@ -952,7 +917,7 @@
+ dnl freetype2 lib.
+ dnl ---------------------------------------------
+
+-AM_PATH_FREETYPE2()
++AM_CONDITIONAL(HAVE_FT2, 0)
+
+
+ dnl ---------------------------------------------
+@@ -995,37 +960,21 @@
+ dnl ESD support
+ dnl ---------------------------------------------
+
+-AM_PATH_ESD(0.2.8,
+- AC_DEFINE(HAVE_ESD,1,[Define this if you have ESD (libesd) installed]),
+- AC_MSG_RESULT(*** All of ESD dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ESD, test x"$no_esd" != "xyes")
++AM_CONDITIONAL(HAVE_ESD, 0)
+
+
+ dnl ---------------------------------------------
+ dnl ARTS support
+ dnl ---------------------------------------------
+
+-AM_PATH_ARTS(0.9.5,
+- AC_DEFINE(HAVE_ARTS,1,[Define this if you have ARTS (libartsc) installed]),
+- AC_MSG_RESULT(*** All of ARTS dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ARTS, test x"$no_arts" != "xyes")
++AM_CONDITIONAL(HAVE_ARTS, 0)
+
+
+ dnl ---------------------------------------------
+ dnl gnome-vfs support
+ dnl ---------------------------------------------
+
+-PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0,
+- no_gnome_vfs=no,
+- no_gnome_vfs=yes)
+-AC_SUBST(GNOME_VFS_CFLAGS)
+-AC_SUBST(GNOME_VFS_LIBS)
+-if test x"$no_gnome_vfs" != "xyes"; then
+-AC_DEFINE(HAVE_GNOME_VFS,1,[Define this if you have gnome-vfs installed])
+-else
+-AC_MSG_RESULT(*** All of the gnome-vfs dependent parts will be disabled ***)
+-fi
+-AM_CONDITIONAL(HAVE_GNOME_VFS, test x"$no_gnome_vfs" != "xyes")
++AM_CONDITIONAL(HAVE_GNOME_VFS, 0)
+
+
+ dnl ---------------------------------------------
+@@ -1188,35 +1137,7 @@
+ ],ISOC99_PRAGMA=no)
+ AC_MSG_RESULT($ISOC99_PRAGMA)
+
+- dnl bitfield order
+- AC_MSG_CHECKING(bitfield ordering in structs)
+- AC_TRY_RUN([
+-int
+- main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0x4b; }
+-], bf_lsbf=1, AC_TRY_RUN([
+-int
+-main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0xa5; }
+-], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
+- if test "x$bf_lsbf" = "x1"; then
+- AC_MSG_RESULT(LSBF)
+- AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+- else
+- AC_MSG_RESULT(MSBF)
+- fi
++ AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+
+ AC_HAVE_HEADERS( errno.h fcntl.h \
+ stdbool.h stdlib.h stdint.h stdio.h string.h \
diff --git a/packages/libxine/files/cpu-1.0.patch b/packages/libxine/files/cpu-1.0.patch
index e69de29bb2..a7ccdbbfa9 100644
--- a/packages/libxine/files/cpu-1.0.patch
+++ b/packages/libxine/files/cpu-1.0.patch
@@ -0,0 +1,112 @@
+--- xine-lib-1-rc6a/src/post/goom/xmmx.c.orig 2004-09-16 21:53:34.040049792 -0400
++++ xine-lib-1-rc6a/src/post/goom/xmmx.c 2004-09-16 21:59:24.407785800 -0400
+@@ -112,23 +112,23 @@
+ * post : mm3 & mm4 : coefs for this position
+ * mm1 : X vector [0|X]
+ *
+- * modif : eax,ebx
++ * modif : eax,ecx
+ */
+ __asm__ __volatile__ (
+- "movd %%mm0,%%ebx\n"
++ "movd %%mm0,%%ecx\n"
+ "movq %%mm0,%%mm1\n"
+
+- "andl $15,%%ebx\n"
++ "andl $15,%%ecx\n"
+ "psrlq $32,%%mm1\n"
+
+- "shll $6,%%ebx\n"
++ "shll $6,%%ecx\n"
+ "movd %%mm1,%%eax\n"
+
+- "addl %0,%%ebx\n"
++ "addl %0,%%ecx\n"
+ "andl $15,%%eax\n"
+
+- "movd (%%ebx,%%eax,4),%%mm3\n"
+- ::"g"(precalCoef):"eax","ebx");
++ "movd (%%ecx,%%eax,4),%%mm3\n"
++ ::"g"(precalCoef):"eax","ecx");
+
+ /*
+ * extraction des coefficients...
+@@ -158,7 +158,7 @@
+ * post : mm0 : expix1[position]
+ * mm2 : expix1[position+largeur]
+ *
+- * modif : eax,ebx
++ * modif : eax,ecx
+ */
+ psrld_i2r (PERTEDEC,mm0);
+ psrld_i2r (PERTEDEC,mm1);
+@@ -167,23 +167,23 @@
+ /*^*/ "movq %%mm3,%%mm5\n" /*^*/
+
+ "mull %1\n"
+- "movd %%mm0,%%ebx\n"
++ "movd %%mm0,%%ecx\n"
+ /*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/
+
+- "addl %%ebx,%%eax\n"
++ "addl %%ecx,%%eax\n"
+ /*^*/ "movq %%mm3,%%mm4\n" /*^*/
+ /*^*/ "movq %%mm3,%%mm5\n" /*^*/
+
+- "movl %0,%%ebx\n"
++ "movl %0,%%ecx\n"
+ /*^*/ "punpcklbw %%mm5,%%mm3\n" /*^*/
+
+- "movq (%%ebx,%%eax,4),%%mm0\n"
++ "movq (%%ecx,%%eax,4),%%mm0\n"
+ /*^*/ "punpckhbw %%mm5,%%mm4\n" /*^*/
+
+ "addl %1,%%eax\n"
+- "movq (%%ebx,%%eax,4),%%mm2\n"
++ "movq (%%ecx,%%eax,4),%%mm2\n"
+
+- : : "X"(expix1), "X"(prevX):"eax","ebx"
++ : : "X"(expix1), "X"(prevX):"eax","ecx"
+ );
+
+ /*
+--- xine-lib-1-rc7/src/post/goom/mmx.h 2004-09-12 05:17:26.000000000 -0700
++++ xine-lib-1-rc7.new/src/post/goom/mmx.h 2004-11-09 16:08:17.777667856 -0700
+@@ -71,13 +71,15 @@
+ */
+ register int rval = 0;
+
++ /* Maybe if I yell it will help: DON'T CLOBBER EBX! */
++
+ __asm__ __volatile__ (
+ /* See if CPUID instruction is supported ... */
+ /* ... Get copies of EFLAGS into eax and ecx */
+ "pushf\n\t"
+ "popl %%eax\n\t"
+ "movl %%eax, %%ecx\n\t"
+-
++
+ /* ... Toggle the ID bit in one copy and store */
+ /* to the EFLAGS reg */
+ "xorl $0x200000, %%eax\n\t"
+@@ -97,6 +99,8 @@
+ /* Get standard CPUID information, and
+ go to a specific vendor section */
+ "movl $0, %%eax\n\t"
++
++ "pushl %%ebx\n\t"
+ "cpuid\n\t"
+
+ /* Check for Intel */
+@@ -214,9 +218,10 @@
+ "movl $0, %0\n\n\t"
+
+ "Return:\n\t"
++ "popl %%ebx\n\t"
+ : "=X" (rval)
+ : /* no input */
+- : "eax", "ebx", "ecx", "edx"
++ : "eax", "ecx", "edx"
+ );
+
+ /* Return */
diff --git a/packages/libxine/files/libxine-cut-memusage.patch b/packages/libxine/files/libxine-cut-memusage.patch
index e69de29bb2..696b479db2 100644
--- a/packages/libxine/files/libxine-cut-memusage.patch
+++ b/packages/libxine/files/libxine-cut-memusage.patch
@@ -0,0 +1,71 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+Index: xine-lib-1.0/src/xine-engine/audio_out.c
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/audio_out.c 2004-12-19 21:24:30.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/audio_out.c 2005-02-16 22:19:25.836765770 +0100
+@@ -95,10 +95,10 @@
+ #include "metronom.h"
+
+
+-#define NUM_AUDIO_BUFFERS 32
+-#define AUDIO_BUF_SIZE 32768
++#define NUM_AUDIO_BUFFERS 16
++#define AUDIO_BUF_SIZE 8192
+
+-#define ZERO_BUF_SIZE 5000
++#define ZERO_BUF_SIZE 2048
+
+ /* By adding gap errors (difference between reported and expected
+ * sound card clock) into metronom's vpts_offset we can use its
+Index: xine-lib-1.0/src/xine-engine/video_decoder.c
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/video_decoder.c 2004-12-16 14:59:06.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/video_decoder.c 2005-02-16 22:20:47.104487350 +0100
+@@ -479,7 +479,7 @@
+
+ num_buffers = stream->xine->config->register_num (stream->xine->config,
+ "engine.buffers.video_num_buffers",
+- 500,
++ 250,
+ _("number of video buffers"),
+ _("The number of video buffers (each is 8k in size) "
+ "xine uses in its internal queue. Higher values "
+@@ -487,7 +487,7 @@
+ "also increased latency and memory consumption."),
+ 20, NULL, NULL);
+
+- stream->video_fifo = _x_fifo_buffer_new (num_buffers, 8192);
++ stream->video_fifo = _x_fifo_buffer_new (num_buffers, 4096);
+ stream->spu_track_map_entries = 0;
+
+ pthread_attr_init(&pth_attrs);
+Index: xine-lib-1.0/src/xine-engine/video_overlay.h
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/video_overlay.h 2004-12-08 19:18:24.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/video_overlay.h 2005-02-16 22:19:25.837765631 +0100
+@@ -36,7 +36,7 @@
+ #define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) { (_cb), (_cr), (_y) }
+ #endif
+
+-#define MAX_OBJECTS 50
++#define MAX_OBJECTS 5
+ #define MAX_EVENTS 50
+ #define MAX_SHOWING 16
+
+Index: xine-lib-1.0/src/xine-engine/audio_decoder.c
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/audio_decoder.c 2004-12-16 14:59:06.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/audio_decoder.c 2005-02-16 22:21:42.846730591 +0100
+@@ -462,7 +462,7 @@
+
+ num_buffers = stream->xine->config->register_num (stream->xine->config,
+ "engine.buffers.audio_num_buffers",
+- 230,
++ 100,
+ _("number of audio buffers"),
+ _("The number of audio buffers (each is 8k in size) "
+ "xine uses in its internal queue. Higher values "
diff --git a/packages/libxine/files/libxine-ffmpeg-enable-arm.patch b/packages/libxine/files/libxine-ffmpeg-enable-arm.patch
index e69de29bb2..f89d2baa4e 100644
--- a/packages/libxine/files/libxine-ffmpeg-enable-arm.patch
+++ b/packages/libxine/files/libxine-ffmpeg-enable-arm.patch
@@ -0,0 +1,20 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/Makefile.am~libxine-ffmpeg-enable-arm
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/Makefile.am
+@@ -9,9 +9,8 @@
+ libavcodec_armv4l_dummy = libavcodec_armv4l_dummy.c
+ EXTRA_DIST = $(libavcodec_armv4l_src) $(libavcodec_armv4l_dummy)
+
+-#if HAVE_ARMV4L
+-#armv4l_modules = $(libavcodec_armv4l_src)
+-#endif
+-armv4l_modules =
++if HAVE_ARMV4L
++armv4l_modules = $(libavcodec_armv4l_src)
++endif
+
+ libavcodec_armv4l_la_SOURCES = $(armv4l_modules) $(libavcodec_armv4l_dummy)
diff --git a/packages/libxine/files/libxine-libavcodec.patch b/packages/libxine/files/libxine-libavcodec.patch
index e69de29bb2..6dde9913c8 100644
--- a/packages/libxine/files/libxine-libavcodec.patch
+++ b/packages/libxine/files/libxine-libavcodec.patch
@@ -0,0 +1,926 @@
+TO be MERGED!!!
+
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/Makefile.am~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/Makefile.am
+@@ -9,9 +9,14 @@
+ # we need to compile everything in debug mode, including the encoders,
+ # otherwise we get unresolved symbols, because some unsatisfied function calls
+ # are not optimized away with debug optimization
+-AM_CFLAGS = $(LIBFFMPEG_CFLAGS) `test "$(CFLAGS)" = "$(DEBUG_CFLAGS)" && echo -DCONFIG_ENCODERS`
++#AM_CFLAGS = $(LIBFFMPEG_CFLAGS) `test "$(CFLAGS)" = "$(DEBUG_CFLAGS)" && echo -DCONFIG_ENCODERS`
+ ASFLAGS =
+
++if HAVE_ARMV4L
++AM_CFLAGS = -DARCH_ARMV4L $(LIBFFMPEG_CFLAGS)
++else
++AM_CFLAGS = $(LIBFFMPEG_CFLAGS)
++endif
+ noinst_LTLIBRARIES = libavcodec.la
+
+ libavcodec_la_SOURCES = \
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/dsputil.h~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/dsputil.h
+@@ -45,6 +45,7 @@
+ void ff_fdct248_islow (DCTELEM *data);
+
+ void j_rev_dct (DCTELEM *data);
++void j_rev_dct_ARM ( DCTELEM *data );
+
+ void ff_fdct_mmx(DCTELEM *block);
+ void ff_fdct_mmx2(DCTELEM *block);
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/mpegvideo.c~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/mpegvideo.c
+@@ -218,6 +218,25 @@
+ }
+ #endif //CONFIG_ENCODERS
+
++
++#ifdef ARCH_ARMV4L
++
++static void ff_jref_idct_put_armv4l(UINT8 *dest, int line_size, DCTELEM *block)
++{
++// fprintf(stderr, "src/libffmpeg/libavcodec/mpegvideo.c : ff_jref_idct_put_armv4l utilisant l'iDCT ARMv4l en ASM\n");
++ j_rev_dct_ARM (block);
++ ff_put_pixels_clamped(block, dest, line_size);
++}
++static void ff_jref_idct_add_armv4l(UINT8 *dest, int line_size, DCTELEM *block)
++{
++// fprintf(stderr, "src/libffmpeg/libavcodec/mpegvideo.c : ff_jref_idct_add_armv4l utilisant l'iDCT ARMv4l en ASM\n");
++ j_rev_dct_ARM (block);
++ ff_add_pixels_clamped(block, dest, line_size);
++}
++
++#endif
++
++
+ /* init common dct for both encoder and decoder */
+ int DCT_common_init(MpegEncContext *s)
+ {
+@@ -246,7 +265,11 @@
+ MPV_common_init_mmi(s);
+ #endif
+ #ifdef ARCH_ARMV4L
+- MPV_common_init_armv4l(s);
++/* MPV_common_init_armv4l(s); */
++/* Methode bourrine, mais bon, c'est pour pas trop se prendre la tete a tout changer ce soir, a ameliorer plus tard*/
++ s->idct_put= ff_jref_idct_put_armv4l;
++ s->idct_add= ff_jref_idct_add_armv4l;
++ s->idct_permutation_type= FF_NO_IDCT_PERM;
+ #endif
+ #ifdef ARCH_POWERPC
+ MPV_common_init_ppc(s);
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/jrevdct_arm.S~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/jrevdct_arm.S
+@@ -1,386 +1,491 @@
+ /*
+- C-like prototype :
+- void j_rev_dct_ARM(DCTBLOCK data)
++ * jrevdct_arm.S
++ * Copyright (C) 2002 Frederic 'dilb' Boulay.
++ * All Rights Reserved.
++ *
++ * Author: Frederic Boulay <dilb@handhelds.org>
++ *
++ * you can redistribute this file and/or modify
++ * it under the terms of the GNU General Public License (version 2)
++ * as published by the Free Software Foundation.
++ *
++ * This file is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ *
++ * The function defined in this file, is derived from the simple_idct function from
++ * the libavcodec library part of the ffmpeg project.
++ */
+
+- With DCTBLOCK being a pointer to an array of 64 'signed shorts'
+
+- Copyright (c) 2001 Lionel Ulmer (lionel.ulmer@free.fr / bbrox@bbrox.org)
+
+- Permission is hereby granted, free of charge, to any person obtaining a copy
+- of this software and associated documentation files (the "Software"), to deal
+- in the Software without restriction, including without limitation the rights
+- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+- copies of the Software, and to permit persons to whom the Software is
+- furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in
+- all copies or substantial portions of the Software.
++/* useful constants for the algorithm, they are save in __constant_ptr__ at the end of the source code.*/
++#define W1 22725
++#define W2 21407
++#define W3 19266
++#define W4 16383
++#define W5 12873
++#define W6 8867
++#define W7 4520
++#define MASK_MSHW 0xFFFF0000
++
++/* offsets of the constants in the vector*/
++#define offW1 0
++#define offW2 4
++#define offW3 8
++#define offW4 12
++#define offW5 16
++#define offW6 20
++#define offW7 24
++#define offMASK_MSHW 28
++
++#define ROW_SHIFT 11
++#define ROW_SHIFT2MSHW (16-11)
++#define COL_SHIFT 20
++#define ROW_SHIFTED_1 1024 /* 1<< (ROW_SHIFT-1)*/
++#define COL_SHIFTED_1 524288 /* 1<< (COL_SHIFT-1)*/
++
+
+- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-
+-*/
+-#define FIX_0_298631336 2446
+-#define FIX_0_541196100 4433
+-#define FIX_0_765366865 6270
+-#define FIX_1_175875602 9633
+-#define FIX_1_501321110 12299
+-#define FIX_2_053119869 16819
+-#define FIX_3_072711026 25172
+-#define FIX_M_0_390180644 -3196
+-#define FIX_M_0_899976223 -7373
+-#define FIX_M_1_847759065 -15137
+-#define FIX_M_1_961570560 -16069
+-#define FIX_M_2_562915447 -20995
+-#define FIX_0xFFFF 0xFFFF
+-
+-#define FIX_0_298631336_ID 0
+-#define FIX_0_541196100_ID 4
+-#define FIX_0_765366865_ID 8
+-#define FIX_1_175875602_ID 12
+-#define FIX_1_501321110_ID 16
+-#define FIX_2_053119869_ID 20
+-#define FIX_3_072711026_ID 24
+-#define FIX_M_0_390180644_ID 28
+-#define FIX_M_0_899976223_ID 32
+-#define FIX_M_1_847759065_ID 36
+-#define FIX_M_1_961570560_ID 40
+-#define FIX_M_2_562915447_ID 44
+-#define FIX_0xFFFF_ID 48
+ .text
+ .align
+-
+ .global j_rev_dct_ARM
++
+ j_rev_dct_ARM:
+- stmdb sp!, { r4 - r12, lr } @ all callee saved regs
++simple_idct3:
++simple_idct_ARM:
++ @@ void simple_idct_ARM(int16_t *block)
++ @@ save stack for reg needed (take all of them),
++ @@ R0-R3 are scratch regs, so no need to save them, but R0 contains the pointer to block
++ @@ so it must not be overwritten, if it is not saved!!
++ @@ R12 is another scratch register, so it should not be saved too
++ @@ save all registers
++ stmfd sp!, {r4-r11, r14} @ R14 is also called LR
++ @@ at this point, R0=block, other registers are free.
++ add r14, r0, #112 @ R14=&block[8*7], better start from the last row, and decrease the value until row=0, i.e. R12=block.
++ add r12, pc, #(__constant_ptr__-.-8) @ R12=__constant_ptr__, the vector containing the constants, probably not necessary to reserve a register for it
++ @@ add 2 temporary variables in the stack: R0 and R14
++ sub sp, sp, #8 @ allow 2 local variables
++ str r0, [sp, #0] @ save block in sp[0]
++ @@ stack status
++ @@ sp+4 free
++ @@ sp+0 R0 (block)
+
+- sub sp, sp, #4 @ reserve some space on the stack
+- str r0, [ sp ] @ save the DCT pointer to the stack
+
+- mov lr, r0 @ lr = pointer to the current row
+- mov r12, #8 @ r12 = row-counter
+- add r11, pc, #(const_array-.-8) @ r11 = base pointer to the constants array
+-row_loop:
+- ldrsh r0, [lr, # 0] @ r0 = 'd0'
+- ldrsh r1, [lr, # 8] @ r1 = 'd1'
++ @@ at this point, R0=block, R14=&block[56], R12=__const_ptr_, R1-R11 free
+
+- @ Optimization for row that have all items except the first set to 0
+- @ (this works as the DCTELEMS are always 4-byte aligned)
+- ldr r5, [lr, # 0]
+- ldr r2, [lr, # 4]
+- ldr r3, [lr, # 8]
+- ldr r4, [lr, #12]
+- orr r3, r3, r4
+- orr r3, r3, r2
+- orrs r5, r3, r5
+- beq end_of_row_loop @ nothing to be done as ALL of them are '0'
+- orrs r2, r3, r1
+- beq empty_row
+-
+- ldrsh r2, [lr, # 2] @ r2 = 'd2'
+- ldrsh r4, [lr, # 4] @ r4 = 'd4'
+- ldrsh r6, [lr, # 6] @ r6 = 'd6'
+-
+- ldr r3, [r11, #FIX_0_541196100_ID]
+- add r7, r2, r6
+- ldr r5, [r11, #FIX_M_1_847759065_ID]
+- mul r7, r3, r7 @ r7 = z1
+- ldr r3, [r11, #FIX_0_765366865_ID]
+- mla r6, r5, r6, r7 @ r6 = tmp2
+- add r5, r0, r4 @ r5 = tmp0
+- mla r2, r3, r2, r7 @ r2 = tmp3
+- sub r3, r0, r4 @ r3 = tmp1
+
+- add r0, r2, r5, lsl #13 @ r0 = tmp10
+- rsb r2, r2, r5, lsl #13 @ r2 = tmp13
+- add r4, r6, r3, lsl #13 @ r4 = tmp11
+- rsb r3, r6, r3, lsl #13 @ r3 = tmp12
++__row_loop:
++ @@ read the row and check if it is null, almost null, or not, according to strongarm specs, it is not necessary to optimise ldr accesses (i.e. split 32bits in 2 16bits words), at least it gives more usable registers :)
++ ldr r1, [r14, #0] @ R1=(int32)(R12)[0]=ROWr32[0] (relative row cast to a 32b pointer)
++ ldr r2, [r14, #4] @ R2=(int32)(R12)[1]=ROWr32[1]
++ ldr r3, [r14, #8] @ R3=ROWr32[2]
++ ldr r4, [r14, #12] @ R4=ROWr32[3]
++ @@ check if the words are null, if all of them are null, then proceed with next row (branch __end_row_loop),
++ @@ if ROWr16[0] is the only one not null, then proceed with this special case (branch __almost_empty_row)
++ @@ else follow the complete algorithm.
++ @@ at this point, R0=block, R14=&block[n], R12=__const_ptr_, R1=ROWr32[0], R2=ROWr32[1],
++ @@ R3=ROWr32[2], R4=ROWr32[3], R5-R11 free
++ orr r5, r4, r3 @ R5=R4 | R3
++ orr r5, r5, r2 @ R5=R4 | R3 | R2
++ orrs r6, r5, r1 @ Test R5 | R1 (the aim is to check if everything is null)
++ beq __end_row_loop
++ mov r7, r1, asr #16 @ R7=R1>>16=ROWr16[1] (evaluate it now, as it could be useful later)
++ ldrsh r6, [r14, #0] @ R6=ROWr16[0]
++ orrs r5, r5, r7 @ R5=R4 | R3 | R2 | R7
++ beq __almost_empty_row
+
+- stmdb sp!, { r0, r2, r3, r4 } @ save on the stack tmp10, tmp13, tmp12, tmp11
+-
+- ldrsh r3, [lr, #10] @ r3 = 'd3'
+- ldrsh r5, [lr, #12] @ r5 = 'd5'
+- ldrsh r7, [lr, #14] @ r7 = 'd7'
++__b_evaluation:
++ @@ at this point, R0=block (temp), R1(free), R2=ROWr32[1], R3=ROWr32[2], R4=ROWr32[3],
++ @@ R5=(temp), R6=ROWr16[0], R7=ROWr16[1], R8-R11 free,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ to save some registers/calls, proceed with b0-b3 first, followed by a0-a3
+
+- add r0, r3, r5 @ r0 = 'z2'
+- add r2, r1, r7 @ r2 = 'z1'
+- add r4, r3, r7 @ r4 = 'z3'
+- add r6, r1, r5 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_1_175875602_ID]
+- add r8, r4, r6 @ r8 = z3 + z4
+- ldr r10, [r11, #FIX_M_0_899976223_ID]
+- mul r8, r9, r8 @ r8 = 'z5'
+- ldr r9, [r11, #FIX_M_2_562915447_ID]
+- mul r2, r10, r2 @ r2 = 'z1'
+- ldr r10, [r11, #FIX_M_1_961570560_ID]
+- mul r0, r9, r0 @ r0 = 'z2'
+- ldr r9, [r11, #FIX_M_0_390180644_ID]
+- mla r4, r10, r4, r8 @ r4 = 'z3'
+- ldr r10, [r11, #FIX_0_298631336_ID]
+- mla r6, r9, r6, r8 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_2_053119869_ID]
+- mla r7, r10, r7, r2 @ r7 = tmp0 + z1
+- ldr r10, [r11, #FIX_3_072711026_ID]
+- mla r5, r9, r5, r0 @ r5 = tmp1 + z2
+- ldr r9, [r11, #FIX_1_501321110_ID]
+- mla r3, r10, r3, r0 @ r3 = tmp2 + z2
+- add r7, r7, r4 @ r7 = tmp0
+- mla r1, r9, r1, r2 @ r1 = tmp3 + z1
+- add r5, r5, r6 @ r5 = tmp1
+- add r3, r3, r4 @ r3 = tmp2
+- add r1, r1, r6 @ r1 = tmp3
++ @@ MUL16(b0, W1, row[1]);
++ @@ MUL16(b1, W3, row[1]);
++ @@ MUL16(b2, W5, row[1]);
++ @@ MUL16(b3, W7, row[1]);
++ @@ MAC16(b0, W3, row[3]);
++ @@ MAC16(b1, -W7, row[3]);
++ @@ MAC16(b2, -W1, row[3]);
++ @@ MAC16(b3, -W5, row[3]);
++ ldr r8, [r12, #offW1] @ R8=W1
++ mov r2, r2, asr #16 @ R2=ROWr16[3]
++ mul r0, r8, r7 @ R0=W1*ROWr16[1]=b0 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r9, [r12, #offW3] @ R9=W3
++ ldr r10, [r12, #offW5] @ R10=W5
++ mul r1, r9, r7 @ R1=W3*ROWr16[1]=b1 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r11, [r12, #offW7] @ R11=W7
++ mul r5, r10, r7 @ R5=W5*ROWr16[1]=b2 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ mul r7, r11, r7 @ R7=W7*ROWr16[1]=b3 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ teq r2, #0 @ if null avoid muls
++ mlane r0, r9, r2, r0 @ R0+=W3*ROWr16[3]=b0 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ rsbne r2, r2, #0 @ R2=-ROWr16[3]
++ mlane r1, r11, r2, r1 @ R1-=W7*ROWr16[3]=b1 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r5, r8, r2, r5 @ R5-=W1*ROWr16[3]=b2 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r7, r10, r2, r7 @ R7-=W5*ROWr16[3]=b3 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
+
+- ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp12 / r6 = tmp11
+- @ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
+-
+- @ Compute DESCALE(tmp10 + tmp3, CONST_BITS-PASS1_BITS)
+- add r8, r0, r1
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 0]
+-
+- @ Compute DESCALE(tmp10 - tmp3, CONST_BITS-PASS1_BITS)
+- sub r8, r0, r1
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, #14]
+-
+- @ Compute DESCALE(tmp11 + tmp2, CONST_BITS-PASS1_BITS)
+- add r8, r6, r3
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 2]
+-
+- @ Compute DESCALE(tmp11 - tmp2, CONST_BITS-PASS1_BITS)
+- sub r8, r6, r3
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, #12]
+-
+- @ Compute DESCALE(tmp12 + tmp1, CONST_BITS-PASS1_BITS)
+- add r8, r4, r5
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 4]
+-
+- @ Compute DESCALE(tmp12 - tmp1, CONST_BITS-PASS1_BITS)
+- sub r8, r4, r5
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, #10]
+-
+- @ Compute DESCALE(tmp13 + tmp0, CONST_BITS-PASS1_BITS)
+- add r8, r2, r7
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 6]
+-
+- @ Compute DESCALE(tmp13 - tmp0, CONST_BITS-PASS1_BITS)
+- sub r8, r2, r7
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 8]
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3=ROWr32[2], R4=ROWr32[3],
++ @@ R5=b2, R6=ROWr16[0], R7=b3, R8=W1, R9=W3, R10=W5, R11=W7,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ temp = ((uint32_t*)row)[2] | ((uint32_t*)row)[3];
++ @@ if (temp != 0) {}
++ orrs r2, r3, r4 @ R2=ROWr32[2] | ROWr32[3]
++ beq __end_b_evaluation
+
+- @ End of row loop
+- add lr, lr, #16
+- subs r12, r12, #1
+- bne row_loop
+- beq start_column_loop
+-
+-empty_row:
+- ldr r1, [r11, #FIX_0xFFFF_ID]
+- mov r0, r0, lsl #2
+- and r0, r0, r1
+- add r0, r0, r0, lsl #16
+- str r0, [lr, # 0]
+- str r0, [lr, # 4]
+- str r0, [lr, # 8]
+- str r0, [lr, #12]
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3=ROWr32[2], R4=ROWr32[3],
++ @@ R5=b2, R6=ROWr16[0], R7=b3, R8=W1, R9=W3, R10=W5, R11=W7,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ MAC16(b0, W5, row[5]);
++ @@ MAC16(b2, W7, row[5]);
++ @@ MAC16(b3, W3, row[5]);
++ @@ MAC16(b1, -W1, row[5]);
++ @@ MAC16(b0, W7, row[7]);
++ @@ MAC16(b2, W3, row[7]);
++ @@ MAC16(b3, -W1, row[7]);
++ @@ MAC16(b1, -W5, row[7]);
++ mov r3, r3, asr #16 @ R3=ROWr16[5]
++ teq r3, #0 @ if null avoid muls
++ mlane r0, r10, r3, r0 @ R0+=W5*ROWr16[5]=b0
++ mov r4, r4, asr #16 @ R4=ROWr16[7]
++ mlane r5, r11, r3, r5 @ R5+=W7*ROWr16[5]=b2
++ mlane r7, r9, r3, r7 @ R7+=W3*ROWr16[5]=b3
++ rsbne r3, r3, #0 @ R3=-ROWr16[5]
++ mlane r1, r8, r3, r1 @ R7-=W1*ROWr16[5]=b1
++ @@ R3 is free now
++ teq r4, #0 @ if null avoid muls
++ mlane r0, r11, r4, r0 @ R0+=W7*ROWr16[7]=b0
++ mlane r5, r9, r4, r5 @ R5+=W3*ROWr16[7]=b2
++ rsbne r4, r4, #0 @ R4=-ROWr16[7]
++ mlane r7, r8, r4, r7 @ R7-=W1*ROWr16[7]=b3
++ mlane r1, r10, r4, r1 @ R1-=W5*ROWr16[7]=b1
++ @@ R4 is free now
++__end_b_evaluation:
++ @@ at this point, R0=b0, R1=b1, R2=ROWr32[2] | ROWr32[3] (tmp), R3 (free), R4 (free),
++ @@ R5=b2, R6=ROWr16[0], R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
+
+-end_of_row_loop:
+- @ End of loop
+- add lr, lr, #16
+- subs r12, r12, #1
+- bne row_loop
++__a_evaluation:
++ @@ a0 = (W4 * row[0]) + (1 << (ROW_SHIFT - 1));
++ @@ a1 = a0 + W6 * row[2];
++ @@ a2 = a0 - W6 * row[2];
++ @@ a3 = a0 - W2 * row[2];
++ @@ a0 = a0 + W2 * row[2];
++ ldr r9, [r12, #offW4] @ R9=W4
++ mul r6, r9, r6 @ R6=W4*ROWr16[0]
++ ldr r10, [r12, #offW6] @ R10=W6
++ ldrsh r4, [r14, #4] @ R4=ROWr16[2] (a3 not defined yet)
++ add r6, r6, #ROW_SHIFTED_1 @ R6=W4*ROWr16[0] + 1<<(ROW_SHIFT-1) (a0)
+
+-start_column_loop:
+- @ Start of column loop
+- ldr lr, [ sp ]
+- mov r12, #8
+-column_loop:
+- ldrsh r0, [lr, #( 0*8)] @ r0 = 'd0'
+- ldrsh r2, [lr, #( 4*8)] @ r2 = 'd2'
+- ldrsh r4, [lr, #( 8*8)] @ r4 = 'd4'
+- ldrsh r6, [lr, #(12*8)] @ r6 = 'd6'
++ mul r11, r10, r4 @ R11=W6*ROWr16[2]
++ ldr r8, [r12, #offW2] @ R8=W2
++ sub r3, r6, r11 @ R3=a0-W6*ROWr16[2] (a2)
++ @@ temp = ((uint32_t*)row)[2] | ((uint32_t*)row)[3];
++ @@ if (temp != 0) {}
++ teq r2, #0
++ beq __end_bef_a_evaluation
+
+- ldr r3, [r11, #FIX_0_541196100_ID]
+- add r1, r2, r6
+- ldr r5, [r11, #FIX_M_1_847759065_ID]
+- mul r1, r3, r1 @ r1 = z1
+- ldr r3, [r11, #FIX_0_765366865_ID]
+- mla r6, r5, r6, r1 @ r6 = tmp2
+- add r5, r0, r4 @ r5 = tmp0
+- mla r2, r3, r2, r1 @ r2 = tmp3
+- sub r3, r0, r4 @ r3 = tmp1
++ add r2, r6, r11 @ R2=a0+W6*ROWr16[2] (a1)
++ mul r11, r8, r4 @ R11=W2*ROWr16[2]
++ sub r4, r6, r11 @ R4=a0-W2*ROWr16[2] (a3)
++ add r6, r6, r11 @ R6=a0+W2*ROWr16[2] (a0)
+
+- add r0, r2, r5, lsl #13 @ r0 = tmp10
+- rsb r2, r2, r5, lsl #13 @ r2 = tmp13
+- add r4, r6, r3, lsl #13 @ r4 = tmp11
+- rsb r6, r6, r3, lsl #13 @ r6 = tmp12
+
+- ldrsh r1, [lr, #( 2*8)] @ r1 = 'd1'
+- ldrsh r3, [lr, #( 6*8)] @ r3 = 'd3'
+- ldrsh r5, [lr, #(10*8)] @ r5 = 'd5'
+- ldrsh r7, [lr, #(14*8)] @ r7 = 'd7'
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8=W2, R9=W4, R10=W6, R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
+
+- @ Check for empty odd column (happens about 20 to 25 % of the time according to my stats)
+- orr r9, r1, r3
+- orr r10, r5, r7
+- orrs r10, r9, r10
+- beq empty_odd_column
+
+- stmdb sp!, { r0, r2, r4, r6 } @ save on the stack tmp10, tmp13, tmp12, tmp11
+-
+- add r0, r3, r5 @ r0 = 'z2'
+- add r2, r1, r7 @ r2 = 'z1'
+- add r4, r3, r7 @ r4 = 'z3'
+- add r6, r1, r5 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_1_175875602_ID]
+- add r8, r4, r6
+- ldr r10, [r11, #FIX_M_0_899976223_ID]
+- mul r8, r9, r8 @ r8 = 'z5'
+- ldr r9, [r11, #FIX_M_2_562915447_ID]
+- mul r2, r10, r2 @ r2 = 'z1'
+- ldr r10, [r11, #FIX_M_1_961570560_ID]
+- mul r0, r9, r0 @ r0 = 'z2'
+- ldr r9, [r11, #FIX_M_0_390180644_ID]
+- mla r4, r10, r4, r8 @ r4 = 'z3'
+- ldr r10, [r11, #FIX_0_298631336_ID]
+- mla r6, r9, r6, r8 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_2_053119869_ID]
+- mla r7, r10, r7, r2 @ r7 = tmp0 + z1
+- ldr r10, [r11, #FIX_3_072711026_ID]
+- mla r5, r9, r5, r0 @ r5 = tmp1 + z2
+- ldr r9, [r11, #FIX_1_501321110_ID]
+- mla r3, r10, r3, r0 @ r3 = tmp2 + z2
+- add r7, r7, r4 @ r7 = tmp0
+- mla r1, r9, r1, r2 @ r1 = tmp3 + z1
+- add r5, r5, r6 @ r5 = tmp1
+- add r3, r3, r4 @ r3 = tmp2
+- add r1, r1, r6 @ r1 = tmp3
+-
+- ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp11 / r6 = tmp12
+- @ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
++ @@ a0 += W4*row[4]
++ @@ a1 -= W4*row[4]
++ @@ a2 -= W4*row[4]
++ @@ a3 += W4*row[4]
++ ldrsh r11, [r14, #8] @ R11=ROWr16[4]
++ teq r11, #0 @ if null avoid muls
++ mulne r11, r9, r11 @ R11=W4*ROWr16[4]
++ @@ R9 is free now
++ ldrsh r9, [r14, #12] @ R9=ROWr16[6]
++ addne r6, r6, r11 @ R6+=W4*ROWr16[4] (a0)
++ subne r2, r2, r11 @ R2-=W4*ROWr16[4] (a1)
++ subne r3, r3, r11 @ R3-=W4*ROWr16[4] (a2)
++ addne r4, r4, r11 @ R4+=W4*ROWr16[4] (a3)
++ @@ W6 alone is no more useful, save W2*ROWr16[6] in it instead
++ teq r9, #0 @ if null avoid muls
++ mulne r11, r10, r9 @ R11=W6*ROWr16[6]
++ addne r6, r6, r11 @ R6+=W6*ROWr16[6] (a0)
++ mulne r10, r8, r9 @ R10=W2*ROWr16[6]
++ @@ a0 += W6*row[6];
++ @@ a3 -= W6*row[6];
++ @@ a1 -= W2*row[6];
++ @@ a2 += W2*row[6];
++ subne r4, r4, r11 @ R4-=W6*ROWr16[6] (a3)
++ subne r2, r2, r10 @ R2-=W2*ROWr16[6] (a1)
++ addne r3, r3, r10 @ R3+=W2*ROWr16[6] (a2)
+
+- @ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
+- add r8, r0, r1
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 0*8)]
+-
+- @ Compute DESCALE(tmp10 - tmp3, CONST_BITS+PASS1_BITS+3)
+- sub r8, r0, r1
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #(14*8)]
+-
+- @ Compute DESCALE(tmp11 + tmp2, CONST_BITS+PASS1_BITS+3)
+- add r8, r4, r3
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 2*8)]
+-
+- @ Compute DESCALE(tmp11 - tmp2, CONST_BITS+PASS1_BITS+3)
+- sub r8, r4, r3
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #(12*8)]
+-
+- @ Compute DESCALE(tmp12 + tmp1, CONST_BITS+PASS1_BITS+3)
+- add r8, r6, r5
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 4*8)]
+-
+- @ Compute DESCALE(tmp12 - tmp1, CONST_BITS+PASS1_BITS+3)
+- sub r8, r6, r5
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #(10*8)]
+-
+- @ Compute DESCALE(tmp13 + tmp0, CONST_BITS+PASS1_BITS+3)
+- add r8, r2, r7
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 6*8)]
+-
+- @ Compute DESCALE(tmp13 - tmp0, CONST_BITS+PASS1_BITS+3)
+- sub r8, r2, r7
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 8*8)]
++__end_a_evaluation:
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ row[0] = (a0 + b0) >> ROW_SHIFT;
++ @@ row[1] = (a1 + b1) >> ROW_SHIFT;
++ @@ row[2] = (a2 + b2) >> ROW_SHIFT;
++ @@ row[3] = (a3 + b3) >> ROW_SHIFT;
++ @@ row[4] = (a3 - b3) >> ROW_SHIFT;
++ @@ row[5] = (a2 - b2) >> ROW_SHIFT;
++ @@ row[6] = (a1 - b1) >> ROW_SHIFT;
++ @@ row[7] = (a0 - b0) >> ROW_SHIFT;
++ add r8, r6, r0 @ R8=a0+b0
++ add r9, r2, r1 @ R9=a1+b1
++ @@ put 2 16 bits half-words in a 32bits word
++ @@ ROWr32[0]=ROWr16[0] | (ROWr16[1]<<16) (only Little Endian compliant then!!!)
++ ldr r10, [r12, #offMASK_MSHW] @ R10=0xFFFF0000
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a1+b1)<<5)
++ mvn r11, r10 @ R11= NOT R10= 0x0000FFFF
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a0+b0)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #0]
+
+- @ End of row loop
+- add lr, lr, #2
+- subs r12, r12, #1
+- bne column_loop
+- beq the_end
+-
+-empty_odd_column:
+- @ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp10 - tmp3, CONST_BITS+PASS1_BITS+3)
+- add r0, r0, #(1<<17)
+- mov r0, r0, asr #18
+- strh r0, [lr, #( 0*8)]
+- strh r0, [lr, #(14*8)]
+-
+- @ Compute DESCALE(tmp11 + tmp2, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp11 - tmp2, CONST_BITS+PASS1_BITS+3)
+- add r4, r4, #(1<<17)
+- mov r4, r4, asr #18
+- strh r4, [lr, #( 2*8)]
+- strh r4, [lr, #(12*8)]
+-
+- @ Compute DESCALE(tmp12 + tmp1, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp12 - tmp1, CONST_BITS+PASS1_BITS+3)
+- add r6, r6, #(1<<17)
+- mov r6, r6, asr #18
+- strh r6, [lr, #( 4*8)]
+- strh r6, [lr, #(10*8)]
+-
+- @ Compute DESCALE(tmp13 + tmp0, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp13 - tmp0, CONST_BITS+PASS1_BITS+3)
+- add r2, r2, #(1<<17)
+- mov r2, r2, asr #18
+- strh r2, [lr, #( 6*8)]
+- strh r2, [lr, #( 8*8)]
++ add r8, r3, r5 @ R8=a2+b2
++ add r9, r4, r7 @ R9=a3+b3
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a3+b3)<<5)
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a2+b2)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #4]
+
+- @ End of row loop
+- add lr, lr, #2
+- subs r12, r12, #1
+- bne column_loop
+-
+-the_end:
+- @ The end....
+- add sp, sp, #4
+- ldmia sp!, { r4 - r12, pc } @ restore callee saved regs and return
++ sub r8, r4, r7 @ R8=a3-b3
++ sub r9, r3, r5 @ R9=a2-b2
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a2-b2)<<5)
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a3-b3)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #8]
+
+-const_array:
++ sub r8, r2, r1 @ R8=a1-b1
++ sub r9, r6, r0 @ R9=a0-b0
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a0-b0)<<5)
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a1-b1)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #12]
++
++ bal __end_row_loop
++
++__almost_empty_row:
++ @@ the row was empty, except ROWr16[0], now, management of this special case
++ @@ at this point, R0=block, R14=&block[n], R12=__const_ptr_, R1=ROWr32[0], R2=ROWr32[1],
++ @@ R3=ROWr32[2], R4=ROWr32[3], R5=(temp), R6=ROWr16[0], R7=ROWr16[1],
++ @@ R8=0xFFFF (temp), R9-R11 free
++ mov r8, #0x10000 @ R8=0xFFFF (2 steps needed!) it saves a ldr call (because of delay run).
++ sub r8, r8, #1 @ R8 is now ready.
++ and r5, r8, r6, lsl #3 @ R5=R8 & (R6<<3)= (ROWr16[0]<<3) & 0xFFFF
++ orr r5, r5, r5, lsl #16 @ R5=R5 | (R5<<16)
++ str r5, [r14, #0] @ R14[0]=ROWr32[0]=R5
++ str r5, [r14, #4] @ R14[4]=ROWr32[1]=R5
++ str r5, [r14, #8] @ R14[8]=ROWr32[2]=R5
++ str r5, [r14, #12] @ R14[12]=ROWr32[3]=R5
++
++__end_row_loop:
++ @@ at this point, R0-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ ldr r0, [sp, #0] @ R0=block
++ teq r0, r14 @ compare current &block[8*n] to block, when block is reached, the loop is finished.
++ sub r14, r14, #16
++ bne __row_loop
++
++
++
++ @@ at this point, R0=block, R1-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ add r14, r0, #14 @ R14=&block[7], better start from the last col, and decrease the value until col=0, i.e. R14=block.
++__col_loop:
++
++__b_evaluation2:
++ @@ at this point, R0=block (temp), R1-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ proceed with b0-b3 first, followed by a0-a3
++ @@ MUL16(b0, W1, col[8x1]);
++ @@ MUL16(b1, W3, col[8x1]);
++ @@ MUL16(b2, W5, col[8x1]);
++ @@ MUL16(b3, W7, col[8x1]);
++ @@ MAC16(b0, W3, col[8x3]);
++ @@ MAC16(b1, -W7, col[8x3]);
++ @@ MAC16(b2, -W1, col[8x3]);
++ @@ MAC16(b3, -W5, col[8x3]);
++ ldr r8, [r12, #offW1] @ R8=W1
++ ldrsh r7, [r14, #16]
++ mul r0, r8, r7 @ R0=W1*ROWr16[1]=b0 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r9, [r12, #offW3] @ R9=W3
++ ldr r10, [r12, #offW5] @ R10=W5
++ mul r1, r9, r7 @ R1=W3*ROWr16[1]=b1 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r11, [r12, #offW7] @ R11=W7
++ mul r5, r10, r7 @ R5=W5*ROWr16[1]=b2 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldrsh r2, [r14, #48]
++ mul r7, r11, r7 @ R7=W7*ROWr16[1]=b3 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ teq r2, #0 @ if 0, then avoid muls
++ mlane r0, r9, r2, r0 @ R0+=W3*ROWr16[3]=b0 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ rsbne r2, r2, #0 @ R2=-ROWr16[3]
++ mlane r1, r11, r2, r1 @ R1-=W7*ROWr16[3]=b1 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r5, r8, r2, r5 @ R5-=W1*ROWr16[3]=b2 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r7, r10, r2, r7 @ R7-=W5*ROWr16[3]=b3 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3 (free), R4 (free),
++ @@ R5=b2, R6 (free), R7=b3, R8=W1, R9=W3, R10=W5, R11=W7,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ MAC16(b0, W5, col[5x8]);
++ @@ MAC16(b2, W7, col[5x8]);
++ @@ MAC16(b3, W3, col[5x8]);
++ @@ MAC16(b1, -W1, col[5x8]);
++ @@ MAC16(b0, W7, col[7x8]);
++ @@ MAC16(b2, W3, col[7x8]);
++ @@ MAC16(b3, -W1, col[7x8]);
++ @@ MAC16(b1, -W5, col[7x8]);
++ ldrsh r3, [r14, #80] @ R3=COLr16[5x8]
++ teq r3, #0 @ if 0 then avoid muls
++ mlane r0, r10, r3, r0 @ R0+=W5*ROWr16[5x8]=b0
++ mlane r5, r11, r3, r5 @ R5+=W7*ROWr16[5x8]=b2
++ mlane r7, r9, r3, r7 @ R7+=W3*ROWr16[5x8]=b3
++ rsbne r3, r3, #0 @ R3=-ROWr16[5x8]
++ ldrsh r4, [r14, #112] @ R4=COLr16[7x8]
++ mlane r1, r8, r3, r1 @ R7-=W1*ROWr16[5x8]=b1
++ @@ R3 is free now
++ teq r4, #0 @ if 0 then avoid muls
++ mlane r0, r11, r4, r0 @ R0+=W7*ROWr16[7x8]=b0
++ mlane r5, r9, r4, r5 @ R5+=W3*ROWr16[7x8]=b2
++ rsbne r4, r4, #0 @ R4=-ROWr16[7x8]
++ mlane r7, r8, r4, r7 @ R7-=W1*ROWr16[7x8]=b3
++ mlane r1, r10, r4, r1 @ R1-=W5*ROWr16[7x8]=b1
++ @@ R4 is free now
++__end_b_evaluation2:
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3 (free), R4 (free),
++ @@ R5=b2, R6 (free), R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++
++__a_evaluation2:
++ @@ a0 = (W4 * col[8x0]) + (1 << (COL_SHIFT - 1));
++ @@ a1 = a0 + W6 * row[2];
++ @@ a2 = a0 - W6 * row[2];
++ @@ a3 = a0 - W2 * row[2];
++ @@ a0 = a0 + W2 * row[2];
++ ldrsh r6, [r14, #0]
++ ldr r9, [r12, #offW4] @ R9=W4
++ mul r6, r9, r6 @ R6=W4*ROWr16[0]
++ ldr r10, [r12, #offW6] @ R10=W6
++ ldrsh r4, [r14, #32] @ R4=ROWr16[2] (a3 not defined yet)
++ add r6, r6, #COL_SHIFTED_1 @ R6=W4*ROWr16[0] + 1<<(COL_SHIFT-1) (a0)
++ mul r11, r10, r4 @ R11=W6*ROWr16[2]
++ ldr r8, [r12, #offW2] @ R8=W2
++ add r2, r6, r11 @ R2=a0+W6*ROWr16[2] (a1)
++ sub r3, r6, r11 @ R3=a0-W6*ROWr16[2] (a2)
++ mul r11, r8, r4 @ R11=W2*ROWr16[2]
++ sub r4, r6, r11 @ R4=a0-W2*ROWr16[2] (a3)
++ add r6, r6, r11 @ R6=a0+W2*ROWr16[2] (a0)
++
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8=W2, R9=W4, R10=W6, R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ a0 += W4*row[4]
++ @@ a1 -= W4*row[4]
++ @@ a2 -= W4*row[4]
++ @@ a3 += W4*row[4]
++ ldrsh r11, [r14, #64] @ R11=ROWr16[4]
++ teq r11, #0 @ if null avoid muls
++ mulne r11, r9, r11 @ R11=W4*ROWr16[4]
++ @@ R9 is free now
++ addne r6, r6, r11 @ R6+=W4*ROWr16[4] (a0)
++ subne r2, r2, r11 @ R2-=W4*ROWr16[4] (a1)
++ subne r3, r3, r11 @ R3-=W4*ROWr16[4] (a2)
++ ldrsh r9, [r14, #96] @ R9=ROWr16[6]
++ addne r4, r4, r11 @ R4+=W4*ROWr16[4] (a3)
++ @@ W6 alone is no more useful, save W2*ROWr16[6] in it instead
++ teq r9, #0 @ if null avoid muls
++ mulne r11, r10, r9 @ R11=W6*ROWr16[6]
++ addne r6, r6, r11 @ R6+=W6*ROWr16[6] (a0)
++ mulne r10, r8, r9 @ R10=W2*ROWr16[6]
++ @@ a0 += W6*row[6];
++ @@ a3 -= W6*row[6];
++ @@ a1 -= W2*row[6];
++ @@ a2 += W2*row[6];
++ subne r4, r4, r11 @ R4-=W6*ROWr16[6] (a3)
++ subne r2, r2, r10 @ R2-=W2*ROWr16[6] (a1)
++ addne r3, r3, r10 @ R3+=W2*ROWr16[6] (a2)
++__end_a_evaluation2:
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ col[0 ] = ((a0 + b0) >> COL_SHIFT);
++ @@ col[8 ] = ((a1 + b1) >> COL_SHIFT);
++ @@ col[16] = ((a2 + b2) >> COL_SHIFT);
++ @@ col[24] = ((a3 + b3) >> COL_SHIFT);
++ @@ col[32] = ((a3 - b3) >> COL_SHIFT);
++ @@ col[40] = ((a2 - b2) >> COL_SHIFT);
++ @@ col[48] = ((a1 - b1) >> COL_SHIFT);
++ @@ col[56] = ((a0 - b0) >> COL_SHIFT);
++ @@@@@ no optimisation here @@@@@
++ add r8, r6, r0 @ R8=a0+b0
++ add r9, r2, r1 @ R9=a1+b1
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #0]
++ strh r9, [r14, #16]
++ add r8, r3, r5 @ R8=a2+b2
++ add r9, r4, r7 @ R9=a3+b3
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #32]
++ strh r9, [r14, #48]
++ sub r8, r4, r7 @ R8=a3-b3
++ sub r9, r3, r5 @ R9=a2-b2
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #64]
++ strh r9, [r14, #80]
++ sub r8, r2, r1 @ R8=a1-b1
++ sub r9, r6, r0 @ R9=a0-b0
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #96]
++ strh r9, [r14, #112]
++
++__end_col_loop:
++ @@ at this point, R0-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ ldr r0, [sp, #0] @ R0=block
++ teq r0, r14 @ compare current &block[n] to block, when block is reached, the loop is finished.
++ sub r14, r14, #2
++ bne __col_loop
++
++
++
++
++__end_simple_idct_ARM:
++ @@ restore registers to previous status!
++ add sp, sp, #8 @@ the local variables!
++ ldmfd sp!, {r4-r11, r15} @@ update PC with LR content.
++
++
++
++@@ kind of sub-function, here not to overload the common case.
++__end_bef_a_evaluation:
++ add r2, r6, r11 @ R2=a0+W6*ROWr16[2] (a1)
++ mul r11, r8, r4 @ R11=W2*ROWr16[2]
++ sub r4, r6, r11 @ R4=a0-W2*ROWr16[2] (a3)
++ add r6, r6, r11 @ R6=a0+W2*ROWr16[2] (a0)
++ bal __end_a_evaluation
++
++
++__constant_ptr__: @@ see #defines at the beginning of the source code for values.
+ .align
+- .word FIX_0_298631336
+- .word FIX_0_541196100
+- .word FIX_0_765366865
+- .word FIX_1_175875602
+- .word FIX_1_501321110
+- .word FIX_2_053119869
+- .word FIX_3_072711026
+- .word FIX_M_0_390180644
+- .word FIX_M_0_899976223
+- .word FIX_M_1_847759065
+- .word FIX_M_1_961570560
+- .word FIX_M_2_562915447
+- .word FIX_0xFFFF
++ .word W1
++ .word W2
++ .word W3
++ .word W4
++ .word W5
++ .word W6
++ .word W7
++ .word MASK_MSHW
++
++
diff --git a/packages/libxine/files/libxine-libvorbis.patch b/packages/libxine/files/libxine-libvorbis.patch
index e69de29bb2..81bcbd5468 100644
--- a/packages/libxine/files/libxine-libvorbis.patch
+++ b/packages/libxine/files/libxine-libvorbis.patch
@@ -0,0 +1,39 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+Index: xine-lib-1.0/src/libvorbis/xine_decoder.c
+===================================================================
+--- xine-lib-1.0.orig/src/libvorbis/xine_decoder.c 2005-02-20 18:21:57.924625900 +0100
++++ xine-lib-1.0/src/libvorbis/xine_decoder.c 2005-02-20 18:52:02.016033646 +0100
+@@ -40,7 +40,7 @@
+ #include "buffer.h"
+
+ #include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+
+ #define MAX_NUM_SAMPLES 4096
+
+@@ -216,7 +216,7 @@
+
+ } else if (this->output_open) {
+
+- float **pcm;
++ int **pcm;
+ int samples;
+
+ if(vorbis_synthesis(&this->vb,&this->op,1)==0)
+@@ -245,9 +245,9 @@
+ interleave */
+ for(i=0;i<this->vi.channels;i++){
+ ogg_int16_t *ptr=audio_buffer->mem+i;
+- float *mono=pcm[i];
++ int *mono=pcm[i];
+ for(j=0;j<bout;j++){
+- int val=mono[j]*32767.f;
++ int val=mono[j]>>9;
+ /* might as well guard against clipping */
+ if(val>32767){
+ val=32767;
diff --git a/packages/libxine/files/libxine-tremor-autoconf.patch b/packages/libxine/files/libxine-tremor-autoconf.patch
index e69de29bb2..bbedc81de3 100644
--- a/packages/libxine/files/libxine-tremor-autoconf.patch
+++ b/packages/libxine/files/libxine-tremor-autoconf.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/m4/vorbis.m4~libxine-tremor-autoconf
++++ xine-lib-1-rc7/m4/vorbis.m4
+@@ -18,7 +18,7 @@
+ VORBIS_LIBDIR="-L$vorbis_prefix/$XINE_LIBNAME"
+ fi
+
+- VORBIS_LIBS="$VORBIS_LIBDIR -lvorbis -lm"
++ VORBIS_LIBS="$VORBIS_LIBDIR -lvorbisidec -lm"
+ VORBISFILE_LIBS="-lvorbisfile"
+ VORBISENC_LIBS="-lvorbisenc"
+
diff --git a/packages/libxine/files/mpegvideo-static-inlinine.patch b/packages/libxine/files/mpegvideo-static-inlinine.patch
index e69de29bb2..81160b1c81 100644
--- a/packages/libxine/files/mpegvideo-static-inlinine.patch
+++ b/packages/libxine/files/mpegvideo-static-inlinine.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/mpegvideo.c~mpegvideo-static-inlininf.patch
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/mpegvideo.c
+@@ -2757,7 +2757,7 @@
+ }
+ }
+
+-inline int ff_h263_round_chroma(int x){
++static inline int ff_h263_round_chroma(int x){
+ if (x >= 0)
+ return (h263_chroma_roundtab[x & 0xf] + ((x >> 3) & ~1));
+ else {
diff --git a/packages/libxine/libxine-1.0.0-beta12/.mtn2git_empty b/packages/libxine/libxine-1.0.0-beta12/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libxine/libxine-1.0.0-beta12/.mtn2git_empty
diff --git a/packages/libxine/libxine-1.0.0-beta12/configure.ac.patch b/packages/libxine/libxine-1.0.0-beta12/configure.ac.patch
index e69de29bb2..7eda48ab25 100644
--- a/packages/libxine/libxine-1.0.0-beta12/configure.ac.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/configure.ac.patch
@@ -0,0 +1,152 @@
+--- xine-lib/configure.ac 2003-08-10 15:20:01.000000000 +0200
++++ xine-lib/configure.ac.patched 2003-08-10 15:23:42.000000000 +0200
+@@ -506,10 +506,10 @@
+ dnl ---------------------------------------------
+ dnl check for SDL
+ dnl ---------------------------------------------
+-AM_PATH_SDL(1.1.5,
+- AC_DEFINE(HAVE_SDL,1,[Define this if you have SDL library installed]),
+- [])
+-AM_CONDITIONAL(HAVE_SDL, [test x"$no_sdl" != x"yes"])
++dnl AM_PATH_SDL(1.1.5,
++dnl AC_DEFINE(HAVE_SDL,1,[Define this if you have SDL library installed]),
++dnl [])
++dnl AM_CONDITIONAL(HAVE_SDL, [test x"$no_sdl" != x"yes"])
+
+
+ dnl ---------------------------------------------
+@@ -608,19 +608,19 @@
+ dnl Ogg/Theora libs.
+ dnl ---------------------------------------------
+
+-AM_PATH_OGG(
+- [ AM_PATH_THEORA(AC_DEFINE(HAVE_THEORA,1,[Define this if you have theora]),
+- AC_MSG_RESULT([*** All OGG/THEORA dependent parts will be disabled ***]))
+- ],
+- AC_MSG_RESULT([*** All of OGG/Theora dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_THEORA, [test x"$no_ogg" != "xyes" -a x"$no_theora" != "xyes"])
++dnl AM_PATH_OGG(
++dnl [ AM_PATH_THEORA(AC_DEFINE(HAVE_THEORA,1,[Define this if you have theora]),
++dnl AC_MSG_RESULT([*** All OGG/THEORA dependent parts will be disabled ***]))
++dnl ],
++dnl AC_MSG_RESULT([*** All of OGG/Theora dependent parts will be disabled ***]))
++dnl AM_CONDITIONAL(HAVE_THEORA, [test x"$no_ogg" != "xyes" -a x"$no_theora" != "xyes"])
+
+ dnl ---------------------------------------------
+ dnl check for libFLAC
+ dnl ---------------------------------------------
+-AM_PATH_LIBFLAC([],
+- AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
++dnl AM_PATH_LIBFLAC([],
++dnl AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
++dnl AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
+
+ dnl ---------------------------------------------
+ dnl XviD libs.
+@@ -668,90 +668,7 @@
+ AC_SUBST(PNG_LIBS)
+
+ dnl ---------------------------------------------
+-dnl freetype2 lib.
+-dnl ---------------------------------------------
+-AC_PATH_PROG(FREETYPE_CONFIG, moooooooooooo_putain_de_script_freetype-config, no)
+-if test "$FREETYPE_CONFIG" = "no" ; then
+- AC_MSG_RESULT([*** freetype-config not found, freetype2 support disabled ***])
+-else
+- FT2_CFLAGS=`$FREETYPE_CONFIG --cflags`
+- FT2_LIBS=`$FREETYPE_CONFIG --libs`
+- have_ft2="yes"
+- AC_DEFINE(HAVE_FT2,1,[Define this if you have freetype2 library])
+-fi
+-
+-AM_CONDITIONAL(HAVE_FT2, test x"$have_ft2" = "xyes" )
+-AC_SUBST(FT2_CFLAGS)
+-AC_SUBST(FT2_LIBS)
+-
+-dnl ---------------------------------------------
+-dnl OSS style audio interface
+-dnl ---------------------------------------------
+-AC_MSG_CHECKING(for OSS audio support)
+-have_ossaudio=no
+-AC_TRY_COMPILE([
+- #ifdef __NetBSD__
+- #include <soundcard.h>
+- #else
+- #include <sys/soundcard.h>
+- #endif
+- ],[
+- int arg = SNDCTL_DSP_SETFRAGMENT;
+- ],[
+- have_ossaudio=yes
+- ])
+-AC_MSG_RESULT($have_ossaudio)
+-AM_CONDITIONAL(HAVE_OSS, test x"$have_ossaudio" = "xyes")
+-
+-
+-dnl ---------------------------------------------
+-dnl Alsa support
+-dnl ---------------------------------------------
+-AM_PATH_ALSA(0.9.0,
+- [ AC_DEFINE(HAVE_ALSA,1,[Define this if you have Alsa (libasound) installed])
+- if test x"$have_alsa09" = "xyes"; then
+- AC_DEFINE(HAVE_ALSA09,1,[Define this if you have alsa 0.9.x and more installed])
+- fi
+- ],
+- AC_MSG_RESULT(*** All of ALSA dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ALSA, test x"$no_alsa" != "xyes")
+-AM_CONDITIONAL(HAVE_ALSA09, test x"$have_alsa09" = "xyes")
+-
+-
+-dnl ---------------------------------------------
+-dnl ESD support
+-dnl ---------------------------------------------
+-AM_PATH_ESD(0.2.8,
+- AC_DEFINE(HAVE_ESD,1,[Define this if you have ESD (libesd) installed]),
+- AC_MSG_RESULT(*** All of ESD dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ESD, test x"$no_esd" != "xyes")
+-
+-dnl ---------------------------------------------
+-dnl ARTS support
+-dnl ---------------------------------------------
+-AM_PATH_ARTS(0.9.5,
+- AC_DEFINE(HAVE_ARTS,1,[Define this if you have ARTS (libartsc) installed]),
+- AC_MSG_RESULT(*** All of ARTS dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ARTS, test x"$no_arts" != "xyes")
+-
+-dnl ---------------------------------------------
+-dnl gnome-vfs support
+-dnl ---------------------------------------------
+-PKG_CHECK_MODULES(GNOME_VFS, putain_de_module_gnome-vfs-2.0,
+- no_gnome_vfs=no,
+- no_gnome_vfs=yes)
+-AC_SUBST(GNOME_VFS_CFLAGS)
+-AC_SUBST(GNOME_VFS_LIBS)
+-if test x"$no_gnome_vfs" != "xyes"; then
+-AC_DEFINE(HAVE_GNOME_VFS,1,[Define this if you have gnome-vfs installed])
+-else
+-AC_MSG_RESULT(*** All of the gnome-vfs dependent parts will be disabled ***)
+-fi
+-AM_CONDITIONAL(HAVE_GNOME_VFS, test x"$no_gnome_vfs" != "xyes")
+-
+-
+-dnl ---------------------------------------------
+-dnl SUN style audio interface
++dnl freetype2 lib.snterface
+ dnl ---------------------------------------------
+ AC_MSG_CHECKING(for Sun audio support)
+ have_sunaudio=no
+--- xine-lib/configure.ac Sat Aug 23 21:22:05 2003
++++ xine-lib/configure.ac.aalib Sat Aug 23 21:22:31 2003
+@@ -456,8 +456,10 @@
+ dnl ---------------------------------------------
+ dnl Checks for Ascii-Art library
+ dnl ---------------------------------------------
++AC_ARG_ENABLE(aalib, [ --disable-aalib Disable AAlib support],
++ enable_aalib=no, enable_aalib=yes)
+ AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_AA, test x$no_aalib != "xyes")
++AM_CONDITIONAL(HAVE_AA, [test x"$enable_aalib" = "xyes" && test x"$no_aalib" != "xyes" ])
+
+ dnl ---------------------------------------------
+ dnl Check solaris framebuffer device support
diff --git a/packages/libxine/libxine-1.0.0-beta12/demux_ogg.patch b/packages/libxine/libxine-1.0.0-beta12/demux_ogg.patch
index e69de29bb2..9faa3ba06d 100644
--- a/packages/libxine/libxine-1.0.0-beta12/demux_ogg.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/demux_ogg.patch
@@ -0,0 +1,11 @@
+--- xine-lib/src/demuxers/demux_ogg.c 2003-08-10 13:55:26.000000000 +0200
++++ xine-lib/src/demuxers/demux_ogg.c.patched 2003-08-10 02:20:10.000000000 +0200
+@@ -36,7 +36,7 @@
+ #include <stdlib.h>
+
+ #include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+
+ #ifdef HAVE_THEORA
+ #include <theora/theora.h>
diff --git a/packages/libxine/libxine-1.0.0-beta12/fftscope-static-inlining.patch b/packages/libxine/libxine-1.0.0-beta12/fftscope-static-inlining.patch
index e69de29bb2..42b3caead2 100644
--- a/packages/libxine/libxine-1.0.0-beta12/fftscope-static-inlining.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/fftscope-static-inlining.patch
@@ -0,0 +1,11 @@
+--- ../libxine-1.0.0-beta12-r0/xine-lib/src/post/visualizations/fftscope.c 2003-04-30 07:58:51.000000000 +0100
++++ xine-lib/src/post/visualizations/fftscope.c 2004-08-17 17:40:56.000000000 +0100
+@@ -103,7 +103,7 @@
+ * Bit reverser for unsigned ints
+ * Reverses 'bits' bits.
+ */
+-inline const unsigned int
++static inline const unsigned int
+ reverse (unsigned int val, int bits)
+ {
+ unsigned int retn = 0;
diff --git a/packages/libxine/libxine-1.0.0-beta12/fix-oss-plugin.patch b/packages/libxine/libxine-1.0.0-beta12/fix-oss-plugin.patch
index e69de29bb2..be44ad3486 100644
--- a/packages/libxine/libxine-1.0.0-beta12/fix-oss-plugin.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/fix-oss-plugin.patch
@@ -0,0 +1,29 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-beta12/src/audio_out/audio_oss_out.c~fix-oss-plugin
++++ xine-lib-1-beta12/src/audio_out/audio_oss_out.c
+@@ -46,20 +46,7 @@
+ #include <fcntl.h>
+ #include <math.h>
+ #include <unistd.h>
+-#if defined(__OpenBSD__)
+-# include <soundcard.h>
+-#elif defined (__FreeBSD__)
+-# if __FreeBSD__ < 4
+-# include <machine/soundcard.h>
+-# else
+-# include <sys/soundcard.h>
+-# endif
+-#else
+-# if defined(__linux__)
+-# include <linux/config.h> /* Check for DEVFS */
+-# endif
+-# include <sys/soundcard.h>
+-#endif
++#include <sys/soundcard.h>
+ #include <sys/ioctl.h>
+ #include <inttypes.h>
+
diff --git a/packages/libxine/libxine-1.0.0-beta12/fix-syntax-xine-vorbis-decoder.patch b/packages/libxine/libxine-1.0.0-beta12/fix-syntax-xine-vorbis-decoder.patch
index e69de29bb2..6803d82e05 100644
--- a/packages/libxine/libxine-1.0.0-beta12/fix-syntax-xine-vorbis-decoder.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/fix-syntax-xine-vorbis-decoder.patch
@@ -0,0 +1,11 @@
+--- ../libxine-1.0.0-beta12-r0/xine-lib/src/libvorbis/xine_decoder.c 2004-08-17 16:07:31.000000000 +0100
++++ xine-lib/src/libvorbis/xine_decoder.c 2004-08-17 17:08:21.000000000 +0100
+@@ -208,7 +208,7 @@
+ int **pcm;
+ int samples;
+
+- if(vorbis_synthesis(&this->vb,op)==0)
++ if(vorbis_synthesis(&this->vb,op,1)==0)
+ vorbis_synthesis_blockin(&this->vd,&this->vb);
+
+ if (buf->pts!=0)
diff --git a/packages/libxine/libxine-1.0.0-beta12/full.patch b/packages/libxine/libxine-1.0.0-beta12/full.patch
index e69de29bb2..d36dc39417 100644
--- a/packages/libxine/libxine-1.0.0-beta12/full.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/full.patch
@@ -0,0 +1,5601 @@
+Copyright (C) 2003, Fred Boulay <dilb@handhelds.org>
+Licensed under GPL v2
+
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/autogen.sh xine-lib-1-beta12/autogen.sh
+*** xine-lib-1-beta12_orig/autogen.sh Sun Mar 2 06:47:39 2003
+--- xine-lib-1-beta12/autogen.sh Sun May 18 13:32:51 2003
+***************
+*** 140,145 ****
+--- 140,149 ----
+ echo $_echo_n " + Running libtoolize: $_echo_c";
+ libtoolize --force --copy >/dev/null 2>&1;
+ echo "done."
++ echo $_echo_n " + copying patched ltmain.sh solving DESTDIR issues: $_echo_c";
++ cp -f ltmain_patched.sh ltmain.sh;
++ echo "done."
++
+ }
+
+ #--------------------
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/configure.ac xine-lib-1-beta12/configure.ac
+*** xine-lib-1-beta12_orig/configure.ac Sun May 11 13:11:06 2003
+--- xine-lib-1-beta12/configure.ac Sun May 18 15:59:50 2003
+***************
+*** 670,676 ****
+ dnl ---------------------------------------------
+ dnl freetype2 lib.
+ dnl ---------------------------------------------
+! AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+ if test "$FREETYPE_CONFIG" = "no" ; then
+ AC_MSG_RESULT([*** freetype-config not found, freetype2 support disabled ***])
+ else
+--- 670,676 ----
+ dnl ---------------------------------------------
+ dnl freetype2 lib.
+ dnl ---------------------------------------------
+! AC_PATH_PROG(FREETYPE_CONFIG, moooooooooooo_putain_de_script_freetype-config, no)
+ if test "$FREETYPE_CONFIG" = "no" ; then
+ AC_MSG_RESULT([*** freetype-config not found, freetype2 support disabled ***])
+ else
+***************
+*** 737,743 ****
+ dnl ---------------------------------------------
+ dnl gnome-vfs support
+ dnl ---------------------------------------------
+! PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0,
+ no_gnome_vfs=no,
+ no_gnome_vfs=yes)
+ AC_SUBST(GNOME_VFS_CFLAGS)
+--- 737,743 ----
+ dnl ---------------------------------------------
+ dnl gnome-vfs support
+ dnl ---------------------------------------------
+! PKG_CHECK_MODULES(GNOME_VFS, putain_de_module_gnome-vfs-2.0,
+ no_gnome_vfs=no,
+ no_gnome_vfs=yes)
+ AC_SUBST(GNOME_VFS_CFLAGS)
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/ltmain_patched.sh xine-lib-1-beta12/ltmain_patched.sh
+*** xine-lib-1-beta12_orig/ltmain_patched.sh Wed Dec 31 19:00:00 1969
+--- xine-lib-1-beta12/ltmain_patched.sh Sun May 18 13:31:34 2003
+***************
+*** 0 ****
+--- 1,5044 ----
++ # ltmain.sh - Provide generalized library-building support services.
++ # NOTE: Changing this file will not affect anything until you rerun configure.
++ #
++ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
++ # Free Software Foundation, Inc.
++ # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
++ #
++ # This program is free software; you can redistribute it and/or modify
++ # it under the terms of the GNU General Public License as published by
++ # the Free Software Foundation; either version 2 of the License, or
++ # (at your option) any later version.
++ #
++ # This program is distributed in the hope that it will be useful, but
++ # WITHOUT ANY WARRANTY; without even the implied warranty of
++ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ # General Public License for more details.
++ #
++ # You should have received a copy of the GNU General Public License
++ # along with this program; if not, write to the Free Software
++ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ #
++ # As a special exception to the GNU General Public License, if you
++ # distribute this file as part of a program that contains a
++ # configuration script generated by Autoconf, you may include it under
++ # the same distribution terms that you use for the rest of that program.
++
++ # Check that we have a working $echo.
++ if test "X$1" = X--no-reexec; then
++ # Discard the --no-reexec flag, and continue.
++ shift
++ elif test "X$1" = X--fallback-echo; then
++ # Avoid inline document here, it may be left over
++ :
++ elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
++ # Yippee, $echo works!
++ :
++ else
++ # Restart under the correct shell, and then maybe $echo will work.
++ exec $SHELL "$0" --no-reexec ${1+"$@"}
++ fi
++
++ if test "X$1" = X--fallback-echo; then
++ # used as fallback echo
++ shift
++ cat <<EOF
++ $*
++ EOF
++ exit 0
++ fi
++
++ # The name of this program.
++ progname=`$echo "$0" | sed 's%^.*/%%'`
++ modename="$progname"
++
++ # Constants.
++ PROGRAM=ltmain.sh
++ PACKAGE=libtool
++ VERSION=1.4.2a
++ TIMESTAMP=" (1.922.2.79 2001/11/28 21:50:31)"
++
++ default_mode=
++ help="Try \`$progname --help' for more information."
++ magic="%%%MAGIC variable%%%"
++ mkdir="mkdir"
++ mv="mv -f"
++ rm="rm -f"
++
++ # Sed substitution that helps us do robust quoting. It backslashifies
++ # metacharacters that are still active within double-quoted strings.
++ Xsed='sed -e 1s/^X//'
++ sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
++ SP2NL='tr \040 \012'
++ NL2SP='tr \015\012 \040\040'
++
++ # NLS nuisances.
++ # Only set LANG and LC_ALL to C if already set.
++ # These must not be set unconditionally because not all systems understand
++ # e.g. LANG=C (notably SCO).
++ # We save the old values to restore during execute mode.
++ if test "${LC_ALL+set}" = set; then
++ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
++ fi
++ if test "${LANG+set}" = set; then
++ save_LANG="$LANG"; LANG=C; export LANG
++ fi
++
++ # Make sure IFS has a sensible default
++ : ${IFS=" "}
++
++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
++ echo "$modename: not configured to build any kind of library" 1>&2
++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
++ exit 1
++ fi
++
++ # Global variables.
++ mode=$default_mode
++ nonopt=
++ prev=
++ prevopt=
++ run=
++ show="$echo"
++ show_help=
++ execute_dlfiles=
++ lo2o="s/\\.lo\$/.${objext}/"
++ o2lo="s/\\.${objext}\$/.lo/"
++
++ # Parse our command line options once, thoroughly.
++ while test $# -gt 0
++ do
++ arg="$1"
++ shift
++
++ case $arg in
++ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
++ *) optarg= ;;
++ esac
++
++ # If the previous option needs an argument, assign it.
++ if test -n "$prev"; then
++ case $prev in
++ execute_dlfiles)
++ execute_dlfiles="$execute_dlfiles $arg"
++ ;;
++ *)
++ eval "$prev=\$arg"
++ ;;
++ esac
++
++ prev=
++ prevopt=
++ continue
++ fi
++
++ # Have we seen a non-optional argument yet?
++ case $arg in
++ --help)
++ show_help=yes
++ ;;
++
++ --version)
++ echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
++ exit 0
++ ;;
++
++ --config)
++ sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
++ exit 0
++ ;;
++
++ --debug)
++ echo "$progname: enabling shell trace mode"
++ set -x
++ ;;
++
++ --dry-run | -n)
++ run=:
++ ;;
++
++ --features)
++ echo "host: $host"
++ if test "$build_libtool_libs" = yes; then
++ echo "enable shared libraries"
++ else
++ echo "disable shared libraries"
++ fi
++ if test "$build_old_libs" = yes; then
++ echo "enable static libraries"
++ else
++ echo "disable static libraries"
++ fi
++ exit 0
++ ;;
++
++ --finish) mode="finish" ;;
++
++ --mode) prevopt="--mode" prev=mode ;;
++ --mode=*) mode="$optarg" ;;
++
++ --preserve-dup-deps) duplicate_deps="yes" ;;
++
++ --quiet | --silent)
++ show=:
++ ;;
++
++ -dlopen)
++ prevopt="-dlopen"
++ prev=execute_dlfiles
++ ;;
++
++ -*)
++ $echo "$modename: unrecognized option \`$arg'" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ ;;
++
++ *)
++ nonopt="$arg"
++ break
++ ;;
++ esac
++ done
++
++ if test -n "$prevopt"; then
++ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ # If this variable is set in any of the actions, the command in it
++ # will be execed at the end. This prevents here-documents from being
++ # left over by shells.
++ exec_cmd=
++
++ if test -z "$show_help"; then
++
++ # Infer the operation mode.
++ if test -z "$mode"; then
++ case $nonopt in
++ *cc | *++ | gcc* | *-gcc*)
++ mode=link
++ for arg
++ do
++ case $arg in
++ -c)
++ mode=compile
++ break
++ ;;
++ esac
++ done
++ ;;
++ *db | *dbx | *strace | *truss)
++ mode=execute
++ ;;
++ *install*|cp|mv)
++ mode=install
++ ;;
++ *rm)
++ mode=uninstall
++ ;;
++ *)
++ # If we have no mode, but dlfiles were specified, then do execute mode.
++ test -n "$execute_dlfiles" && mode=execute
++
++ # Just use the default operation mode.
++ if test -z "$mode"; then
++ if test -n "$nonopt"; then
++ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
++ else
++ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
++ fi
++ fi
++ ;;
++ esac
++ fi
++
++ # Only execute mode is allowed to have -dlopen flags.
++ if test -n "$execute_dlfiles" && test "$mode" != execute; then
++ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ # Change the help message to a mode-specific one.
++ generic_help="$help"
++ help="Try \`$modename --help --mode=$mode' for more information."
++
++ # These modes are in order of execution frequency so that they run quickly.
++ case $mode in
++ # libtool compile mode
++ compile)
++ modename="$modename: compile"
++ # Get the compilation command and the source file.
++ base_compile=
++ prev=
++ lastarg=
++ srcfile="$nonopt"
++ suppress_output=
++
++ user_target=no
++ for arg
++ do
++ case $prev in
++ "") ;;
++ xcompiler)
++ # Aesthetically quote the previous argument.
++ prev=
++ lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
++
++ case $arg in
++ # Double-quote args containing other shell metacharacters.
++ # Many Bourne shells cannot handle close brackets correctly
++ # in scan sets, so we specify it separately.
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++
++ # Add the previous argument to base_compile.
++ if test -z "$base_compile"; then
++ base_compile="$lastarg"
++ else
++ base_compile="$base_compile $lastarg"
++ fi
++ continue
++ ;;
++ esac
++
++ # Accept any command-line options.
++ case $arg in
++ -o)
++ if test "$user_target" != "no"; then
++ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
++ exit 1
++ fi
++ user_target=next
++ ;;
++
++ -static)
++ build_old_libs=yes
++ continue
++ ;;
++
++ -prefer-pic)
++ pic_mode=yes
++ continue
++ ;;
++
++ -prefer-non-pic)
++ pic_mode=no
++ continue
++ ;;
++
++ -Xcompiler)
++ prev=xcompiler
++ continue
++ ;;
++
++ -Wc,*)
++ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
++ lastarg=
++ save_ifs="$IFS"; IFS=','
++ for arg in $args; do
++ IFS="$save_ifs"
++
++ # Double-quote args containing other shell metacharacters.
++ # Many Bourne shells cannot handle close brackets correctly
++ # in scan sets, so we specify it separately.
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ lastarg="$lastarg $arg"
++ done
++ IFS="$save_ifs"
++ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
++
++ # Add the arguments to base_compile.
++ if test -z "$base_compile"; then
++ base_compile="$lastarg"
++ else
++ base_compile="$base_compile $lastarg"
++ fi
++ continue
++ ;;
++ esac
++
++ case $user_target in
++ next)
++ # The next one is the -o target name
++ user_target=yes
++ continue
++ ;;
++ yes)
++ # We got the output file
++ user_target=set
++ libobj="$arg"
++ continue
++ ;;
++ esac
++
++ # Accept the current argument as the source file.
++ lastarg="$srcfile"
++ srcfile="$arg"
++
++ # Aesthetically quote the previous argument.
++
++ # Backslashify any backslashes, double quotes, and dollar signs.
++ # These are the only characters that are still specially
++ # interpreted inside of double-quoted scrings.
++ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
++
++ # Double-quote args containing other shell metacharacters.
++ # Many Bourne shells cannot handle close brackets correctly
++ # in scan sets, so we specify it separately.
++ case $lastarg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ lastarg="\"$lastarg\""
++ ;;
++ esac
++
++ # Add the previous argument to base_compile.
++ if test -z "$base_compile"; then
++ base_compile="$lastarg"
++ else
++ base_compile="$base_compile $lastarg"
++ fi
++ done
++
++ case $user_target in
++ set)
++ ;;
++ no)
++ # Get the name of the library object.
++ libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
++ ;;
++ *)
++ $echo "$modename: you must specify a target with \`-o'" 1>&2
++ exit 1
++ ;;
++ esac
++
++ # Recognize several different file suffixes.
++ # If the user specifies -o file.o, it is replaced with file.lo
++ xform='[cCFSfmso]'
++ case $libobj in
++ *.ada) xform=ada ;;
++ *.adb) xform=adb ;;
++ *.ads) xform=ads ;;
++ *.asm) xform=asm ;;
++ *.c++) xform=c++ ;;
++ *.cc) xform=cc ;;
++ *.cpp) xform=cpp ;;
++ *.cxx) xform=cxx ;;
++ *.f90) xform=f90 ;;
++ *.for) xform=for ;;
++ esac
++
++ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
++
++ case $libobj in
++ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
++ *)
++ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
++ exit 1
++ ;;
++ esac
++
++ if test -z "$base_compile"; then
++ $echo "$modename: you must specify a compilation command" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ # Delete any leftover library objects.
++ if test "$build_old_libs" = yes; then
++ removelist="$obj $libobj"
++ else
++ removelist="$libobj"
++ fi
++
++ $run $rm $removelist
++ trap "$run $rm $removelist; exit 1" 1 2 15
++
++ # On Cygwin there's no "real" PIC flag so we must build both object types
++ case $host_os in
++ cygwin* | mingw* | pw32* | os2*)
++ pic_mode=default
++ ;;
++ esac
++ if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
++ # non-PIC code in shared libraries is not supported
++ pic_mode=default
++ fi
++
++ # Calculate the filename of the output object if compiler does
++ # not support -o with -c
++ if test "$compiler_c_o" = no; then
++ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
++ lockfile="$output_obj.lock"
++ removelist="$removelist $output_obj $lockfile"
++ trap "$run $rm $removelist; exit 1" 1 2 15
++ else
++ need_locks=no
++ lockfile=
++ fi
++
++ # Lock this critical section if it is needed
++ # We use this script file to make the link, it avoids creating a new file
++ if test "$need_locks" = yes; then
++ until $run ln "$0" "$lockfile" 2>/dev/null; do
++ $show "Waiting for $lockfile to be removed"
++ sleep 2
++ done
++ elif test "$need_locks" = warn; then
++ if test -f "$lockfile"; then
++ echo "\
++ *** ERROR, $lockfile exists and contains:
++ `cat $lockfile 2>/dev/null`
++
++ This indicates that another process is trying to use the same
++ temporary object file, and libtool could not work around it because
++ your compiler does not support \`-c' and \`-o' together. If you
++ repeat this compilation, it may succeed, by chance, but you had better
++ avoid parallel builds (make -j) in this platform, or get a better
++ compiler."
++
++ $run $rm $removelist
++ exit 1
++ fi
++ echo $srcfile > "$lockfile"
++ fi
++
++ if test -n "$fix_srcfile_path"; then
++ eval srcfile=\"$fix_srcfile_path\"
++ fi
++
++ # Only build a PIC object if we are building libtool libraries.
++ if test "$build_libtool_libs" = yes; then
++ # Without this assignment, base_compile gets emptied.
++ fbsd_hideous_sh_bug=$base_compile
++
++ if test "$pic_mode" != no; then
++ # All platforms use -DPIC, to notify preprocessed assembler code.
++ command="$base_compile $srcfile $pic_flag -DPIC"
++ else
++ # Don't build PIC code
++ command="$base_compile $srcfile"
++ fi
++ if test "$build_old_libs" = yes; then
++ lo_libobj="$libobj"
++ dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$dir" = "X$libobj"; then
++ dir="$objdir"
++ else
++ dir="$dir/$objdir"
++ fi
++ libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
++
++ if test -d "$dir"; then
++ $show "$rm $libobj"
++ $run $rm $libobj
++ else
++ $show "$mkdir $dir"
++ $run $mkdir $dir
++ status=$?
++ if test $status -ne 0 && test ! -d $dir; then
++ exit $status
++ fi
++ fi
++ fi
++ if test "$compiler_o_lo" = yes; then
++ output_obj="$libobj"
++ command="$command -o $output_obj"
++ elif test "$compiler_c_o" = yes; then
++ output_obj="$obj"
++ command="$command -o $output_obj"
++ fi
++
++ $run $rm "$output_obj"
++ $show "$command"
++ if $run eval "$command"; then :
++ else
++ test -n "$output_obj" && $run $rm $removelist
++ exit 1
++ fi
++
++ if test "$need_locks" = warn &&
++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
++ echo "\
++ *** ERROR, $lockfile contains:
++ `cat $lockfile 2>/dev/null`
++
++ but it should contain:
++ $srcfile
++
++ This indicates that another process is trying to use the same
++ temporary object file, and libtool could not work around it because
++ your compiler does not support \`-c' and \`-o' together. If you
++ repeat this compilation, it may succeed, by chance, but you had better
++ avoid parallel builds (make -j) in this platform, or get a better
++ compiler."
++
++ $run $rm $removelist
++ exit 1
++ fi
++
++ # Just move the object if needed, then go on to compile the next one
++ if test x"$output_obj" != x"$libobj"; then
++ $show "$mv $output_obj $libobj"
++ if $run $mv $output_obj $libobj; then :
++ else
++ error=$?
++ $run $rm $removelist
++ exit $error
++ fi
++ fi
++
++ # If we have no pic_flag, then copy the object into place and finish.
++ if (test -z "$pic_flag" || test "$pic_mode" != default) &&
++ test "$build_old_libs" = yes; then
++ # Rename the .lo from within objdir to obj
++ if test -f $obj; then
++ $show $rm $obj
++ $run $rm $obj
++ fi
++
++ $show "$mv $libobj $obj"
++ if $run $mv $libobj $obj; then :
++ else
++ error=$?
++ $run $rm $removelist
++ exit $error
++ fi
++
++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$obj"; then
++ xdir="."
++ else
++ xdir="$xdir"
++ fi
++ baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
++ libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
++ # Now arrange that obj and lo_libobj become the same file
++ $show "(cd $xdir && $LN_S $baseobj $libobj)"
++ if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
++ # Unlock the critical section if it was locked
++ if test "$need_locks" != no; then
++ $run $rm "$lockfile"
++ fi
++ exit 0
++ else
++ error=$?
++ $run $rm $removelist
++ exit $error
++ fi
++ fi
++
++ # Allow error messages only from the first compilation.
++ suppress_output=' >/dev/null 2>&1'
++ fi
++
++ # Only build a position-dependent object if we build old libraries.
++ if test "$build_old_libs" = yes; then
++ if test "$pic_mode" != yes; then
++ # Don't build PIC code
++ command="$base_compile $srcfile"
++ else
++ # All platforms use -DPIC, to notify preprocessed assembler code.
++ command="$base_compile $srcfile $pic_flag -DPIC"
++ fi
++ if test "$compiler_c_o" = yes; then
++ command="$command -o $obj"
++ output_obj="$obj"
++ fi
++
++ # Suppress compiler output if we already did a PIC compilation.
++ command="$command$suppress_output"
++ $run $rm "$output_obj"
++ $show "$command"
++ if $run eval "$command"; then :
++ else
++ $run $rm $removelist
++ exit 1
++ fi
++
++ if test "$need_locks" = warn &&
++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
++ echo "\
++ *** ERROR, $lockfile contains:
++ `cat $lockfile 2>/dev/null`
++
++ but it should contain:
++ $srcfile
++
++ This indicates that another process is trying to use the same
++ temporary object file, and libtool could not work around it because
++ your compiler does not support \`-c' and \`-o' together. If you
++ repeat this compilation, it may succeed, by chance, but you had better
++ avoid parallel builds (make -j) in this platform, or get a better
++ compiler."
++
++ $run $rm $removelist
++ exit 1
++ fi
++
++ # Just move the object if needed
++ if test x"$output_obj" != x"$obj"; then
++ $show "$mv $output_obj $obj"
++ if $run $mv $output_obj $obj; then :
++ else
++ error=$?
++ $run $rm $removelist
++ exit $error
++ fi
++ fi
++
++ # Create an invalid libtool object if no PIC, so that we do not
++ # accidentally link it into a program.
++ if test "$build_libtool_libs" != yes; then
++ $show "echo timestamp > $libobj"
++ $run eval "echo timestamp > \$libobj" || exit $?
++ else
++ # Move the .lo from within objdir
++ $show "$mv $libobj $lo_libobj"
++ if $run $mv $libobj $lo_libobj; then :
++ else
++ error=$?
++ $run $rm $removelist
++ exit $error
++ fi
++ fi
++ fi
++
++ # Unlock the critical section if it was locked
++ if test "$need_locks" != no; then
++ $run $rm "$lockfile"
++ fi
++
++ exit 0
++ ;;
++
++ # libtool link mode
++ link | relink)
++ modename="$modename: link"
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ # It is impossible to link a dll without this setting, and
++ # we shouldn't force the makefile maintainer to figure out
++ # which system we are compiling for in order to pass an extra
++ # flag for every libtool invokation.
++ # allow_undefined=no
++
++ # FIXME: Unfortunately, there are problems with the above when trying
++ # to make a dll which has undefined symbols, in which case not
++ # even a static library is built. For now, we need to specify
++ # -no-undefined on the libtool link line when we can be certain
++ # that all symbols are satisfied, otherwise we get a static library.
++ allow_undefined=yes
++ ;;
++ *)
++ allow_undefined=yes
++ ;;
++ esac
++ libtool_args="$nonopt"
++ compile_command="$nonopt"
++ finalize_command="$nonopt"
++
++ compile_rpath=
++ finalize_rpath=
++ compile_shlibpath=
++ finalize_shlibpath=
++ convenience=
++ old_convenience=
++ deplibs=
++ old_deplibs=
++ compiler_flags=
++ linker_flags=
++ dllsearchpath=
++ lib_search_path=`pwd`
++
++ avoid_version=no
++ dlfiles=
++ dlprefiles=
++ dlself=no
++ export_dynamic=no
++ export_symbols=
++ export_symbols_regex=
++ generated=
++ libobjs=
++ ltlibs=
++ module=no
++ no_install=no
++ objs=
++ prefer_static_libs=no
++ preload=no
++ prev=
++ prevarg=
++ release=
++ rpath=
++ xrpath=
++ perm_rpath=
++ temp_rpath=
++ thread_safe=no
++ vinfo=
++
++ # We need to know -static, to get the right output filenames.
++ for arg
++ do
++ case $arg in
++ -all-static | -static)
++ if test "X$arg" = "X-all-static"; then
++ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
++ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
++ fi
++ if test -n "$link_static_flag"; then
++ dlopen_self=$dlopen_self_static
++ fi
++ else
++ if test -z "$pic_flag" && test -n "$link_static_flag"; then
++ dlopen_self=$dlopen_self_static
++ fi
++ fi
++ build_libtool_libs=no
++ build_old_libs=yes
++ prefer_static_libs=yes
++ break
++ ;;
++ esac
++ done
++
++ # See if our shared archives depend on static archives.
++ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
++
++ # Go through the arguments, transforming them on the way.
++ while test $# -gt 0; do
++ arg="$1"
++ shift
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
++ ;;
++ *) qarg=$arg ;;
++ esac
++ libtool_args="$libtool_args $qarg"
++
++ # If the previous option needs an argument, assign it.
++ if test -n "$prev"; then
++ case $prev in
++ output)
++ compile_command="$compile_command @OUTPUT@"
++ finalize_command="$finalize_command @OUTPUT@"
++ ;;
++ esac
++
++ case $prev in
++ dlfiles|dlprefiles)
++ if test "$preload" = no; then
++ # Add the symbol object into the linking commands.
++ compile_command="$compile_command @SYMFILE@"
++ finalize_command="$finalize_command @SYMFILE@"
++ preload=yes
++ fi
++ case $arg in
++ *.la | *.lo) ;; # We handle these cases below.
++ force)
++ if test "$dlself" = no; then
++ dlself=needless
++ export_dynamic=yes
++ fi
++ prev=
++ continue
++ ;;
++ self)
++ if test "$prev" = dlprefiles; then
++ dlself=yes
++ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
++ dlself=yes
++ else
++ dlself=needless
++ export_dynamic=yes
++ fi
++ prev=
++ continue
++ ;;
++ *)
++ if test "$prev" = dlfiles; then
++ dlfiles="$dlfiles $arg"
++ else
++ dlprefiles="$dlprefiles $arg"
++ fi
++ prev=
++ continue
++ ;;
++ esac
++ ;;
++ expsyms)
++ export_symbols="$arg"
++ if test ! -f "$arg"; then
++ $echo "$modename: symbol file \`$arg' does not exist"
++ exit 1
++ fi
++ prev=
++ continue
++ ;;
++ expsyms_regex)
++ export_symbols_regex="$arg"
++ prev=
++ continue
++ ;;
++ release)
++ release="-$arg"
++ prev=
++ continue
++ ;;
++ rpath | xrpath)
++ # We need an absolute path.
++ case $arg in
++ [\\/]* | [A-Za-z]:[\\/]*) ;;
++ *)
++ $echo "$modename: only absolute run-paths are allowed" 1>&2
++ exit 1
++ ;;
++ esac
++ if test "$prev" = rpath; then
++ case "$rpath " in
++ *" $arg "*) ;;
++ *) rpath="$rpath $arg" ;;
++ esac
++ else
++ case "$xrpath " in
++ *" $arg "*) ;;
++ *) xrpath="$xrpath $arg" ;;
++ esac
++ fi
++ prev=
++ continue
++ ;;
++ xcompiler)
++ compiler_flags="$compiler_flags $qarg"
++ prev=
++ compile_command="$compile_command $qarg"
++ finalize_command="$finalize_command $qarg"
++ continue
++ ;;
++ xlinker)
++ linker_flags="$linker_flags $qarg"
++ compiler_flags="$compiler_flags $wl$qarg"
++ prev=
++ compile_command="$compile_command $wl$qarg"
++ finalize_command="$finalize_command $wl$qarg"
++ continue
++ ;;
++ *)
++ eval "$prev=\"\$arg\""
++ prev=
++ continue
++ ;;
++ esac
++ fi # test -n $prev
++
++ prevarg="$arg"
++
++ case $arg in
++ -all-static)
++ if test -n "$link_static_flag"; then
++ compile_command="$compile_command $link_static_flag"
++ finalize_command="$finalize_command $link_static_flag"
++ fi
++ continue
++ ;;
++
++ -allow-undefined)
++ # FIXME: remove this flag sometime in the future.
++ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
++ continue
++ ;;
++
++ -avoid-version)
++ avoid_version=yes
++ continue
++ ;;
++
++ -dlopen)
++ prev=dlfiles
++ continue
++ ;;
++
++ -dlpreopen)
++ prev=dlprefiles
++ continue
++ ;;
++
++ -export-dynamic)
++ export_dynamic=yes
++ continue
++ ;;
++
++ -export-symbols | -export-symbols-regex)
++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
++ $echo "$modename: more than one -exported-symbols argument is not allowed"
++ exit 1
++ fi
++ if test "X$arg" = "X-export-symbols"; then
++ prev=expsyms
++ else
++ prev=expsyms_regex
++ fi
++ continue
++ ;;
++
++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
++ # so, if we see these flags be careful not to treat them like -L
++ -L[A-Z][A-Z]*:*)
++ case $with_gcc/$host in
++ no/*-*-irix* | no/*-*-nonstopux*)
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ ;;
++ esac
++ continue
++ ;;
++
++ -L*)
++ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
++ # We need an absolute path.
++ case $dir in
++ [\\/]* | [A-Za-z]:[\\/]*) ;;
++ *)
++ absdir=`cd "$dir" && pwd`
++ if test -z "$absdir"; then
++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
++ exit 1
++ fi
++ dir="$absdir"
++ ;;
++ esac
++ case "$deplibs " in
++ *" -L$dir "*) ;;
++ *)
++ deplibs="$deplibs -L$dir"
++ lib_search_path="$lib_search_path $dir"
++ ;;
++ esac
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ case :$dllsearchpath: in
++ *":$dir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$dir";;
++ esac
++ ;;
++ esac
++ continue
++ ;;
++
++ -l*)
++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
++ case $host in
++ *-*-cygwin* | *-*-pw32* | *-*-beos*)
++ # These systems don't actually have a C or math library (as such)
++ continue
++ ;;
++ *-*-mingw* | *-*-os2*)
++ # These systems don't actually have a C library (as such)
++ test "X$arg" = "X-lc" && continue
++ ;;
++ *-*-openbsd* | *-*-freebsd*)
++ # Do not include libc due to us having libc/libc_r.
++ test "X$arg" = "X-lc" && continue
++ ;;
++ esac
++ elif test "X$arg" = "X-lc_r"; then
++ case $host in
++ *-*-openbsd* | *-*-freebsd*)
++ # Do not include libc_r directly, use -pthread flag.
++ continue
++ ;;
++ esac
++ fi
++ deplibs="$deplibs $arg"
++ continue
++ ;;
++
++ -module)
++ module=yes
++ continue
++ ;;
++
++ -no-fast-install)
++ fast_install=no
++ continue
++ ;;
++
++ -no-install)
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ # The PATH hackery in wrapper scripts is required on Windows
++ # in order for the loader to find any dlls it needs.
++ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
++ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
++ fast_install=no
++ ;;
++ *) no_install=yes ;;
++ esac
++ continue
++ ;;
++
++ -no-undefined)
++ allow_undefined=no
++ continue
++ ;;
++
++ -o) prev=output ;;
++
++ -release)
++ prev=release
++ continue
++ ;;
++
++ -rpath)
++ prev=rpath
++ continue
++ ;;
++
++ -R)
++ prev=xrpath
++ continue
++ ;;
++
++ -R*)
++ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
++ # We need an absolute path.
++ case $dir in
++ [\\/]* | [A-Za-z]:[\\/]*) ;;
++ *)
++ $echo "$modename: only absolute run-paths are allowed" 1>&2
++ exit 1
++ ;;
++ esac
++ case "$xrpath " in
++ *" $dir "*) ;;
++ *) xrpath="$xrpath $dir" ;;
++ esac
++ continue
++ ;;
++
++ -static)
++ # The effects of -static are defined in a previous loop.
++ # We used to do the same as -all-static on platforms that
++ # didn't have a PIC flag, but the assumption that the effects
++ # would be equivalent was wrong. It would break on at least
++ # Digital Unix and AIX.
++ continue
++ ;;
++
++ -thread-safe)
++ thread_safe=yes
++ continue
++ ;;
++
++ -version-info)
++ prev=vinfo
++ continue
++ ;;
++
++ -Wc,*)
++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
++ arg=
++ save_ifs="$IFS"; IFS=','
++ for flag in $args; do
++ IFS="$save_ifs"
++ case $flag in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ flag="\"$flag\""
++ ;;
++ esac
++ arg="$arg $wl$flag"
++ compiler_flags="$compiler_flags $flag"
++ done
++ IFS="$save_ifs"
++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
++ ;;
++
++ -Wl,*)
++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
++ arg=
++ save_ifs="$IFS"; IFS=','
++ for flag in $args; do
++ IFS="$save_ifs"
++ case $flag in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ flag="\"$flag\""
++ ;;
++ esac
++ arg="$arg $wl$flag"
++ compiler_flags="$compiler_flags $wl$flag"
++ linker_flags="$linker_flags $flag"
++ done
++ IFS="$save_ifs"
++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
++ ;;
++
++ -Xcompiler)
++ prev=xcompiler
++ continue
++ ;;
++
++ -Xlinker)
++ prev=xlinker
++ continue
++ ;;
++
++ # Some other compiler flag.
++ -* | +*)
++ # Unknown arguments in both finalize_command and compile_command need
++ # to be aesthetically quoted because they are evaled later.
++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ ;;
++
++ *.lo | *.$objext)
++ # A library or standard object.
++ if test "$prev" = dlfiles; then
++ # This file was specified with -dlopen.
++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
++ dlfiles="$dlfiles $arg"
++ prev=
++ continue
++ else
++ # If libtool objects are unsupported, then we need to preload.
++ prev=dlprefiles
++ fi
++ fi
++
++ if test "$prev" = dlprefiles; then
++ # Preload the old-style object.
++ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
++ prev=
++ else
++ case $arg in
++ *.lo) libobjs="$libobjs $arg" ;;
++ *) objs="$objs $arg" ;;
++ esac
++ fi
++ ;;
++
++ *.$libext)
++ # An archive.
++ deplibs="$deplibs $arg"
++ old_deplibs="$old_deplibs $arg"
++ continue
++ ;;
++
++ *.la)
++ # A libtool-controlled library.
++
++ if test "$prev" = dlfiles; then
++ # This library was specified with -dlopen.
++ dlfiles="$dlfiles $arg"
++ prev=
++ elif test "$prev" = dlprefiles; then
++ # The library was specified with -dlpreopen.
++ dlprefiles="$dlprefiles $arg"
++ prev=
++ else
++ deplibs="$deplibs $arg"
++ fi
++ continue
++ ;;
++
++ # Some other compiler argument.
++ *)
++ # Unknown arguments in both finalize_command and compile_command need
++ # to be aesthetically quoted because they are evaled later.
++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ ;;
++ esac # arg
++
++ # Now actually substitute the argument into the commands.
++ if test -n "$arg"; then
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ fi
++ done # argument parsing loop
++
++ if test -n "$prev"; then
++ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
++ eval arg=\"$export_dynamic_flag_spec\"
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ fi
++
++ # calculate the name of the file, without its directory
++ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
++ libobjs_save="$libobjs"
++
++ if test -n "$shlibpath_var"; then
++ # get the directories listed in $shlibpath_var
++ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
++ else
++ shlib_search_path=
++ fi
++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
++
++ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$output_objdir" = "X$output"; then
++ output_objdir="$objdir"
++ else
++ output_objdir="$output_objdir/$objdir"
++ fi
++ # Create the object directory.
++ if test ! -d $output_objdir; then
++ $show "$mkdir $output_objdir"
++ $run $mkdir $output_objdir
++ status=$?
++ if test $status -ne 0 && test ! -d $output_objdir; then
++ exit $status
++ fi
++ fi
++
++ # Determine the type of output
++ case $output in
++ "")
++ $echo "$modename: you must specify an output file" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ ;;
++ *.$libext) linkmode=oldlib ;;
++ *.lo | *.$objext) linkmode=obj ;;
++ *.la) linkmode=lib ;;
++ *) linkmode=prog ;; # Anything else should be a program.
++ esac
++
++ specialdeplibs=
++ libs=
++ # Find all interdependent deplibs by searching for libraries
++ # that are linked more than once (e.g. -la -lb -la)
++ for deplib in $deplibs; do
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ libs="$libs $deplib"
++ done
++ deplibs=
++ newdependency_libs=
++ newlib_search_path=
++ need_relink=no # whether we're linking any uninstalled libtool libraries
++ notinst_deplibs= # not-installed libtool libraries
++ notinst_path= # paths that contain not-installed libtool libraries
++ case $linkmode in
++ lib)
++ passes="conv link"
++ for file in $dlfiles $dlprefiles; do
++ case $file in
++ *.la) ;;
++ *)
++ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
++ exit 1
++ ;;
++ esac
++ done
++ ;;
++ prog)
++ compile_deplibs=
++ finalize_deplibs=
++ alldeplibs=no
++ newdlfiles=
++ newdlprefiles=
++ passes="conv scan dlopen dlpreopen link"
++ ;;
++ *) passes="conv"
++ ;;
++ esac
++ for pass in $passes; do
++ if test $linkmode = prog; then
++ # Determine which files to process
++ case $pass in
++ dlopen)
++ libs="$dlfiles"
++ save_deplibs="$deplibs" # Collect dlpreopened libraries
++ deplibs=
++ ;;
++ dlpreopen) libs="$dlprefiles" ;;
++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
++ esac
++ fi
++ for deplib in $libs; do
++ lib=
++ found=no
++ case $deplib in
++ -l*)
++ if test $linkmode = oldlib && test $linkmode = obj; then
++ $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
++ continue
++ fi
++ if test $pass = conv; then
++ deplibs="$deplib $deplibs"
++ continue
++ fi
++ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
++ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
++ # Search the libtool library
++ lib="$searchdir/lib${name}.la"
++ if test -f "$lib"; then
++ found=yes
++ break
++ fi
++ done
++ if test "$found" != yes; then
++ # deplib doesn't seem to be a libtool library
++ if test "$linkmode,$pass" = "prog,link"; then
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ else
++ deplibs="$deplib $deplibs"
++ test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
++ fi
++ continue
++ fi
++ ;; # -l
++ -L*)
++ case $linkmode in
++ lib)
++ deplibs="$deplib $deplibs"
++ test $pass = conv && continue
++ newdependency_libs="$deplib $newdependency_libs"
++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
++ ;;
++ prog)
++ if test $pass = conv; then
++ deplibs="$deplib $deplibs"
++ continue
++ fi
++ if test $pass = scan; then
++ deplibs="$deplib $deplibs"
++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
++ else
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ fi
++ ;;
++ *)
++ $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
++ ;;
++ esac # linkmode
++ continue
++ ;; # -L
++ -R*)
++ if test $pass = link; then
++ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
++ # Make sure the xrpath contains only unique directories.
++ case "$xrpath " in
++ *" $dir "*) ;;
++ *) xrpath="$xrpath $dir" ;;
++ esac
++ fi
++ deplibs="$deplib $deplibs"
++ continue
++ ;;
++ *.la) lib="$deplib" ;;
++ *.$libext)
++ if test $pass = conv; then
++ deplibs="$deplib $deplibs"
++ continue
++ fi
++ case $linkmode in
++ lib)
++ if test "$deplibs_check_method" != pass_all; then
++ echo
++ echo "*** Warning: Trying to link with static lib archive $deplib."
++ echo "*** I have the capability to make that library automatically link in when"
++ echo "*** you link to this library. But I can only do this if you have a"
++ echo "*** shared version of the library, which you do not appear to have"
++ echo "*** because the file extensions .$libext of this argument makes me believe"
++ echo "*** that it is just a static archive that I should not used here."
++ else
++ echo
++ echo "*** Warning: Linking the shared library $output against the"
++ echo "*** static library $deplib is not portable!"
++ deplibs="$deplib $deplibs"
++ fi
++ continue
++ ;;
++ prog)
++ if test $pass != link; then
++ deplibs="$deplib $deplibs"
++ else
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ fi
++ continue
++ ;;
++ esac # linkmode
++ ;; # *.$libext
++ *.lo | *.$objext)
++ if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
++ # If there is no dlopen support or we're linking statically,
++ # we need to preload.
++ newdlprefiles="$newdlprefiles $deplib"
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ else
++ newdlfiles="$newdlfiles $deplib"
++ fi
++ continue
++ ;;
++ %DEPLIBS%)
++ alldeplibs=yes
++ continue
++ ;;
++ esac # case $deplib
++ if test $found = yes || test -f "$lib"; then :
++ else
++ $echo "$modename: cannot find the library \`$lib'" 1>&2
++ exit 1
++ fi
++
++ # Check to see that this really is a libtool archive.
++ if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++ else
++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++ exit 1
++ fi
++
++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$ladir" = "X$lib" && ladir="."
++
++ dlname=
++ dlopen=
++ dlpreopen=
++ libdir=
++ library_names=
++ old_library=
++ # If the library was installed with an old release of libtool,
++ # it will not redefine variable installed.
++ installed=yes
++
++ # Read the .la file
++ case $lib in
++ */* | *\\*) . $lib ;;
++ *) . ./$lib ;;
++ esac
++
++ if test "$linkmode,$pass" = "lib,link" ||
++ test "$linkmode,$pass" = "prog,scan" ||
++ { test $linkmode = oldlib && test $linkmode = obj; }; then
++ # Add dl[pre]opened files of deplib
++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
++ fi
++
++ if test $pass = conv; then
++ # Only check for convenience libraries
++ deplibs="$lib $deplibs"
++ if test -z "$libdir"; then
++ if test -z "$old_library"; then
++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
++ exit 1
++ fi
++ # It is a libtool convenience library, so add in its objects.
++ convenience="$convenience $ladir/$objdir/$old_library"
++ old_convenience="$old_convenience $ladir/$objdir/$old_library"
++ tmp_libs=
++ for deplib in $dependency_libs; do
++ deplibs="$deplib $deplibs"
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$tmp_libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ tmp_libs="$tmp_libs $deplib"
++ done
++ elif test $linkmode != prog && test $linkmode != lib; then
++ $echo "$modename: \`$lib' is not a convenience library" 1>&2
++ exit 1
++ fi
++ continue
++ fi # $pass = conv
++
++ # Get the name of the library we link against.
++ linklib=
++ for l in $old_library $library_names; do
++ linklib="$l"
++ done
++ if test -z "$linklib"; then
++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
++ exit 1
++ fi
++
++ # This library was specified with -dlopen.
++ if test $pass = dlopen; then
++ if test -z "$libdir"; then
++ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
++ exit 1
++ fi
++ if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
++ # If there is no dlname, no dlopen support or we're linking
++ # statically, we need to preload.
++ dlprefiles="$dlprefiles $lib"
++ else
++ newdlfiles="$newdlfiles $lib"
++ fi
++ continue
++ fi # $pass = dlopen
++
++ # We need an absolute path.
++ case $ladir in
++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
++ *)
++ abs_ladir=`cd "$ladir" && pwd`
++ if test -z "$abs_ladir"; then
++ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
++ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
++ abs_ladir="$ladir"
++ fi
++ ;;
++ esac
++ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
++
++ # Find the relevant object directory and library name.
++ if test "X$installed" = Xyes; then
++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
++ $echo "$modename: warning: library \`$lib' was moved." 1>&2
++ dir="$ladir"
++ absdir="$abs_ladir"
++ libdir="$abs_ladir"
++ else
++ dir="$libdir"
++ absdir="$libdir"
++ fi
++ else
++ dir="$ladir/$objdir"
++ absdir="$abs_ladir/$objdir"
++ # Remove this search path later
++ notinst_path="$notinst_path $abs_ladir"
++ fi # $installed = yes
++ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
++
++ # This library was specified with -dlpreopen.
++ if test $pass = dlpreopen; then
++ if test -z "$libdir"; then
++ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
++ exit 1
++ fi
++ # Prefer using a static library (so that no silly _DYNAMIC symbols
++ # are required to link).
++ if test -n "$old_library"; then
++ newdlprefiles="$newdlprefiles $dir/$old_library"
++ # Otherwise, use the dlname, so that lt_dlopen finds it.
++ elif test -n "$dlname"; then
++ newdlprefiles="$newdlprefiles $dir/$dlname"
++ else
++ newdlprefiles="$newdlprefiles $dir/$linklib"
++ fi
++ fi # $pass = dlpreopen
++
++ if test -z "$libdir"; then
++ # Link the convenience library
++ if test $linkmode = lib; then
++ deplibs="$dir/$old_library $deplibs"
++ elif test "$linkmode,$pass" = "prog,link"; then
++ compile_deplibs="$dir/$old_library $compile_deplibs"
++ finalize_deplibs="$dir/$old_library $finalize_deplibs"
++ else
++ deplibs="$lib $deplibs"
++ fi
++ continue
++ fi
++
++ if test $linkmode = prog && test $pass != link; then
++ newlib_search_path="$newlib_search_path $ladir"
++ deplibs="$lib $deplibs"
++
++ linkalldeplibs=no
++ if test "$link_all_deplibs" != no || test -z "$library_names" ||
++ test "$build_libtool_libs" = no; then
++ linkalldeplibs=yes
++ fi
++
++ tmp_libs=
++ for deplib in $dependency_libs; do
++ case $deplib in
++ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
++ esac
++ # Need to link against all dependency_libs?
++ if test $linkalldeplibs = yes; then
++ deplibs="$deplib $deplibs"
++ else
++ # Need to hardcode shared library paths
++ # or/and link against static libraries
++ newdependency_libs="$deplib $newdependency_libs"
++ fi
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$tmp_libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ tmp_libs="$tmp_libs $deplib"
++ done # for deplib
++ continue
++ fi # $linkmode = prog...
++
++ link_static=no # Whether the deplib will be linked statically
++ if test -n "$library_names" &&
++ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
++ # Link against this shared library
++
++ if test "$linkmode,$pass" = "prog,link" ||
++ { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
++ # Hardcode the library path.
++ # Skip directories that are in the system default run-time
++ # search path.
++ case " $sys_lib_dlsearch_path " in
++ *" $absdir "*) ;;
++ *)
++ case "$compile_rpath " in
++ *" $absdir "*) ;;
++ *) compile_rpath="$compile_rpath $absdir"
++ esac
++ ;;
++ esac
++ case " $sys_lib_dlsearch_path " in
++ *" $libdir "*) ;;
++ *)
++ case "$finalize_rpath " in
++ *" $libdir "*) ;;
++ *) finalize_rpath="$finalize_rpath $libdir"
++ esac
++ ;;
++ esac
++ if test $linkmode = prog; then
++ # We need to hardcode the library path
++ if test -n "$shlibpath_var"; then
++ # Make sure the rpath contains only unique directories.
++ case "$temp_rpath " in
++ *" $dir "*) ;;
++ *" $absdir "*) ;;
++ *) temp_rpath="$temp_rpath $dir" ;;
++ esac
++ fi
++ fi
++ fi # $linkmode,$pass = prog,link...
++
++ if test "$alldeplibs" = yes &&
++ { test "$deplibs_check_method" = pass_all ||
++ { test "$build_libtool_libs" = yes &&
++ test -n "$library_names"; }; }; then
++ # We only need to search for static libraries
++ continue
++ fi
++
++ if test "$installed" = no; then
++ notinst_deplibs="$notinst_deplibs $lib"
++ need_relink=yes
++ fi
++
++ if test -n "$old_archive_from_expsyms_cmds"; then
++ # figure out the soname
++ set dummy $library_names
++ realname="$2"
++ shift; shift
++ libname=`eval \\$echo \"$libname_spec\"`
++ # use dlname if we got it. it's perfectly good, no?
++ if test -n "$dlname"; then
++ soname="$dlname"
++ elif test -n "$soname_spec"; then
++ # bleh windows
++ case $host in
++ *cygwin*)
++ major=`expr $current - $age`
++ versuffix="-$major"
++ ;;
++ esac
++ eval soname=\"$soname_spec\"
++ else
++ soname="$realname"
++ fi
++
++ # Make a new name for the extract_expsyms_cmds to use
++ soroot="$soname"
++ soname=`echo $soroot | sed -e 's/^.*\///'`
++ newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
++
++ # If the library has no export list, then create one now
++ if test -f "$output_objdir/$soname-def"; then :
++ else
++ $show "extracting exported symbol list from \`$soname'"
++ save_ifs="$IFS"; IFS='~'
++ eval cmds=\"$extract_expsyms_cmds\"
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ fi
++
++ # Create $newlib
++ if test -f "$output_objdir/$newlib"; then :; else
++ $show "generating import library for \`$soname'"
++ save_ifs="$IFS"; IFS='~'
++ eval cmds=\"$old_archive_from_expsyms_cmds\"
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ fi
++ # make sure the library variables are pointing to the new library
++ dir=$output_objdir
++ linklib=$newlib
++ fi # test -n $old_archive_from_expsyms_cmds
++
++ if test $linkmode = prog || test "$mode" != relink; then
++ add_shlibpath=
++ add_dir=
++ add=
++ lib_linked=yes
++ case $hardcode_action in
++ immediate | unsupported)
++ if test "$hardcode_direct" = no; then
++ add="$dir/$linklib"
++ elif test "$hardcode_minus_L" = no; then
++ case $host in
++ *-*-sunos*) add_shlibpath="$dir" ;;
++ esac
++ add_dir="-L$dir"
++ add="-l$name"
++ elif test "$hardcode_shlibpath_var" = no; then
++ add_shlibpath="$dir"
++ add="-l$name"
++ else
++ lib_linked=no
++ fi
++ ;;
++ relink)
++ if test "$hardcode_direct" = yes; then
++ add="$dir/$linklib"
++ elif test "$hardcode_minus_L" = yes; then
++ add_dir="-L$dir"
++ add="-l$name"
++ elif test "$hardcode_shlibpath_var" = yes; then
++ add_shlibpath="$dir"
++ add="-l$name"
++ else
++ lib_linked=no
++ fi
++ ;;
++ *) lib_linked=no ;;
++ esac
++
++ if test "$lib_linked" != yes; then
++ $echo "$modename: configuration error: unsupported hardcode properties"
++ exit 1
++ fi
++
++ if test -n "$add_shlibpath"; then
++ case :$compile_shlibpath: in
++ *":$add_shlibpath:"*) ;;
++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
++ esac
++ fi
++ if test $linkmode = prog; then
++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
++ test -n "$add" && compile_deplibs="$add $compile_deplibs"
++ else
++ test -n "$add_dir" && deplibs="$add_dir $deplibs"
++ test -n "$add" && deplibs="$add $deplibs"
++ if test "$hardcode_direct" != yes && \
++ test "$hardcode_minus_L" != yes && \
++ test "$hardcode_shlibpath_var" = yes; then
++ case :$finalize_shlibpath: in
++ *":$libdir:"*) ;;
++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
++ esac
++ fi
++ fi
++ fi
++
++ if test $linkmode = prog || test "$mode" = relink; then
++ add_shlibpath=
++ add_dir=
++ add=
++ # Finalize command for both is simple: just hardcode it.
++ if test "$hardcode_direct" = yes; then
++ add="$libdir/$linklib"
++ elif test "$hardcode_minus_L" = yes; then
++ add_dir="-L$libdir"
++ add="-l$name"
++ elif test "$hardcode_shlibpath_var" = yes; then
++ case :$finalize_shlibpath: in
++ *":$libdir:"*) ;;
++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
++ esac
++ add="-l$name"
++ else
++ # We cannot seem to hardcode it, guess we'll fake it.
++ if test "X$installed" = Xyes; then
++ add_dir="-L$libdir"
++ else
++ add_dir="-L$DESTDIR$libdir"
++ fi
++ add="-l$name"
++ fi
++
++ if test $linkmode = prog; then
++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
++ else
++ test -n "$add_dir" && deplibs="$add_dir $deplibs"
++ test -n "$add" && deplibs="$add $deplibs"
++ fi
++ fi
++ elif test $linkmode = prog; then
++ if test "$alldeplibs" = yes &&
++ { test "$deplibs_check_method" = pass_all ||
++ { test "$build_libtool_libs" = yes &&
++ test -n "$library_names"; }; }; then
++ # We only need to search for static libraries
++ continue
++ fi
++
++ # Try to link the static library
++ # Here we assume that one of hardcode_direct or hardcode_minus_L
++ # is not unsupported. This is valid on all known static and
++ # shared platforms.
++ if test "$hardcode_direct" != unsupported; then
++ test -n "$old_library" && linklib="$old_library"
++ compile_deplibs="$dir/$linklib $compile_deplibs"
++ finalize_deplibs="$dir/$linklib $finalize_deplibs"
++ else
++ compile_deplibs="-l$name -L$dir $compile_deplibs"
++ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
++ fi
++ elif test "$build_libtool_libs" = yes; then
++ # Not a shared library
++ if test "$deplibs_check_method" != pass_all; then
++ # We're trying link a shared library against a static one
++ # but the system doesn't support it.
++
++ # Just print a warning and add the library to dependency_libs so
++ # that the program can be linked against the static library.
++ echo
++ echo "*** Warning: This system can not link to static lib archive $lib."
++ echo "*** I have the capability to make that library automatically link in when"
++ echo "*** you link to this library. But I can only do this if you have a"
++ echo "*** shared version of the library, which you do not appear to have."
++ if test "$module" = yes; then
++ echo "*** But as you try to build a module library, libtool will still create "
++ echo "*** a static module, that should work as long as the dlopening application"
++ echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
++ if test -z "$global_symbol_pipe"; then
++ echo
++ echo "*** However, this would only work if libtool was able to extract symbol"
++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
++ echo "*** not find such a program. So, this module is probably useless."
++ echo "*** \`nm' from GNU binutils and a full rebuild may help."
++ fi
++ if test "$build_old_libs" = no; then
++ build_libtool_libs=module
++ build_old_libs=yes
++ else
++ build_libtool_libs=no
++ fi
++ fi
++ else
++ convenience="$convenience $dir/$old_library"
++ old_convenience="$old_convenience $dir/$old_library"
++ deplibs="$dir/$old_library $deplibs"
++ link_static=yes
++ fi
++ fi # link shared/static library?
++
++ if test $linkmode = lib; then
++ if test -n "$dependency_libs" &&
++ { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
++ test $link_static = yes; }; then
++ # Extract -R from dependency_libs
++ temp_deplibs=
++ for libdir in $dependency_libs; do
++ case $libdir in
++ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
++ case " $xrpath " in
++ *" $temp_xrpath "*) ;;
++ *) xrpath="$xrpath $temp_xrpath";;
++ esac;;
++ *) temp_deplibs="$temp_deplibs $libdir";;
++ esac
++ done
++ dependency_libs="$temp_deplibs"
++ fi
++
++ newlib_search_path="$newlib_search_path $absdir"
++ # Link against this library
++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
++ # ... and its dependency_libs
++ tmp_libs=
++ for deplib in $dependency_libs; do
++ newdependency_libs="$deplib $newdependency_libs"
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$tmp_libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ tmp_libs="$tmp_libs $deplib"
++ done
++
++ if test $link_all_deplibs != no; then
++ # Add the search paths of all dependency libraries
++ for deplib in $dependency_libs; do
++ case $deplib in
++ -L*) path="$deplib" ;;
++ *.la)
++ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$dir" = "X$deplib" && dir="."
++ # We need an absolute path.
++ case $dir in
++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
++ *)
++ absdir=`cd "$dir" && pwd`
++ if test -z "$absdir"; then
++ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
++ absdir="$dir"
++ fi
++ ;;
++ esac
++ if grep "^installed=no" $deplib > /dev/null; then
++ path="-L$absdir/$objdir"
++ else
++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
++ exit 1
++ fi
++ if test "$absdir" != "$libdir"; then
++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
++ fi
++ path="-L$absdir"
++ fi
++ ;;
++ *) continue ;;
++ esac
++ case " $deplibs " in
++ *" $path "*) ;;
++ *) deplibs="$deplibs $path" ;;
++ esac
++ done
++ fi # link_all_deplibs != no
++ fi # linkmode = lib
++ done # for deplib in $libs
++ if test $pass = dlpreopen; then
++ # Link the dlpreopened libraries before other libraries
++ for deplib in $save_deplibs; do
++ deplibs="$deplib $deplibs"
++ done
++ fi
++ if test $pass != dlopen; then
++ test $pass != scan && dependency_libs="$newdependency_libs"
++ if test $pass != conv; then
++ # Make sure lib_search_path contains only unique directories.
++ lib_search_path=
++ for dir in $newlib_search_path; do
++ case "$lib_search_path " in
++ *" $dir "*) ;;
++ *) lib_search_path="$lib_search_path $dir" ;;
++ esac
++ done
++ newlib_search_path=
++ fi
++
++ if test "$linkmode,$pass" != "prog,link"; then
++ vars="deplibs"
++ else
++ vars="compile_deplibs finalize_deplibs"
++ fi
++ for var in $vars dependency_libs; do
++ # Add libraries to $var in reverse order
++ eval tmp_libs=\"\$$var\"
++ new_libs=
++ for deplib in $tmp_libs; do
++ case $deplib in
++ -L*) new_libs="$deplib $new_libs" ;;
++ *)
++ case " $specialdeplibs " in
++ *" $deplib "*) new_libs="$deplib $new_libs" ;;
++ *)
++ case " $new_libs " in
++ *" $deplib "*) ;;
++ *) new_libs="$deplib $new_libs" ;;
++ esac
++ ;;
++ esac
++ ;;
++ esac
++ done
++ tmp_libs=
++ for deplib in $new_libs; do
++ case $deplib in
++ -L*)
++ case " $tmp_libs " in
++ *" $deplib "*) ;;
++ *) tmp_libs="$tmp_libs $deplib" ;;
++ esac
++ ;;
++ *) tmp_libs="$tmp_libs $deplib" ;;
++ esac
++ done
++ eval $var=\"$tmp_libs\"
++ done # for var
++ fi
++ if test "$pass" = "conv" &&
++ { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
++ libs="$deplibs" # reset libs
++ deplibs=
++ fi
++ done # for pass
++ if test $linkmode = prog; then
++ dlfiles="$newdlfiles"
++ dlprefiles="$newdlprefiles"
++ fi
++
++ case $linkmode in
++ oldlib)
++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
++ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
++ fi
++
++ if test -n "$rpath"; then
++ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
++ fi
++
++ if test -n "$xrpath"; then
++ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
++ fi
++
++ if test -n "$vinfo"; then
++ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
++ fi
++
++ if test -n "$release"; then
++ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
++ fi
++
++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
++ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
++ fi
++
++ # Now set the variables for building old libraries.
++ build_libtool_libs=no
++ oldlibs="$output"
++ objs="$objs$old_deplibs"
++ ;;
++
++ lib)
++ # Make sure we only generate libraries of the form `libNAME.la'.
++ case $outputname in
++ lib*)
++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
++ eval libname=\"$libname_spec\"
++ ;;
++ *)
++ if test "$module" = no; then
++ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++ if test "$need_lib_prefix" != no; then
++ # Add the "lib" prefix for modules if required
++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
++ eval libname=\"$libname_spec\"
++ else
++ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
++ fi
++ ;;
++ esac
++
++ if test -n "$objs"; then
++ if test "$deplibs_check_method" != pass_all; then
++ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
++ exit 1
++ else
++ echo
++ echo "*** Warning: Linking the shared library $output against the non-libtool"
++ echo "*** objects $objs is not portable!"
++ libobjs="$libobjs $objs"
++ fi
++ fi
++
++ if test "$dlself" != no; then
++ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
++ fi
++
++ set dummy $rpath
++ if test $# -gt 2; then
++ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
++ fi
++ install_libdir="$2"
++
++ oldlibs=
++ if test -z "$rpath"; then
++ if test "$build_libtool_libs" = yes; then
++ # Building a libtool convenience library.
++ libext=al
++ oldlibs="$output_objdir/$libname.$libext $oldlibs"
++ build_libtool_libs=convenience
++ build_old_libs=yes
++ fi
++
++ if test -n "$vinfo"; then
++ $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
++ fi
++
++ if test -n "$release"; then
++ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
++ fi
++ else
++
++ # Parse the version information argument.
++ save_ifs="$IFS"; IFS=':'
++ set dummy $vinfo 0 0 0
++ IFS="$save_ifs"
++
++ if test -n "$8"; then
++ $echo "$modename: too many parameters to \`-version-info'" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ current="$2"
++ revision="$3"
++ age="$4"
++
++ # Check that each of the things are valid numbers.
++ case $current in
++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
++ *)
++ $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
++ exit 1
++ ;;
++ esac
++
++ case $revision in
++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
++ *)
++ $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
++ exit 1
++ ;;
++ esac
++
++ case $age in
++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
++ *)
++ $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
++ exit 1
++ ;;
++ esac
++
++ if test $age -gt $current; then
++ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
++ exit 1
++ fi
++
++ # Calculate the version variables.
++ major=
++ versuffix=
++ verstring=
++ case $version_type in
++ none) ;;
++
++ darwin)
++ # Like Linux, but with the current version available in
++ # verstring for coding it into the library header
++ major=.`expr $current - $age`
++ versuffix="$major.$age.$revision"
++ # Darwin ld doesn't like 0 for these options...
++ minor_current=`expr $current + 1`
++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
++ ;;
++
++ freebsd-aout)
++ major=".$current"
++ versuffix=".$current.$revision";
++ ;;
++
++ freebsd-elf)
++ major=".$current"
++ versuffix=".$current";
++ ;;
++
++ irix | nonstopux)
++ case $version_type in
++ nonstopux) verstring_prefix=nonstopux ;;
++ *) verstring_prefix=sgi ;;
++ esac
++ verstring="$verstring_prefix$major.$revision"
++
++ major=`expr $current - $age + 1`
++
++ # Add in all the interfaces that we are compatible with.
++ loop=$revision
++ while test $loop != 0; do
++ iface=`expr $revision - $loop`
++ loop=`expr $loop - 1`
++ verstring="$verstring_prefix$major.$iface:$verstring"
++ done
++
++ # Before this point, $major must not contain `.'.
++ major=.$major
++ versuffix="$major.$revision"
++ ;;
++
++ linux)
++ major=.`expr $current - $age`
++ versuffix="$major.$age.$revision"
++ ;;
++
++ osf)
++ major=`expr $current - $age`
++ versuffix=".$current.$age.$revision"
++ verstring="$current.$age.$revision"
++
++ # Add in all the interfaces that we are compatible with.
++ loop=$age
++ while test $loop != 0; do
++ iface=`expr $current - $loop`
++ loop=`expr $loop - 1`
++ verstring="$verstring:${iface}.0"
++ done
++
++ # Make executables depend on our current version.
++ verstring="$verstring:${current}.0"
++ ;;
++
++ sunos)
++ major=".$current"
++ versuffix=".$current.$revision"
++ ;;
++
++ windows)
++ # Use '-' rather than '.', since we only want one
++ # extension on DOS 8.3 filesystems.
++ major=`expr $current - $age`
++ versuffix="-$major"
++ ;;
++
++ *)
++ $echo "$modename: unknown library version type \`$version_type'" 1>&2
++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
++ exit 1
++ ;;
++ esac
++
++ # Clear the version info if we defaulted, and they specified a release.
++ if test -z "$vinfo" && test -n "$release"; then
++ major=
++ verstring="0.0"
++ case $version_type in
++ darwin)
++ # we can't check for "0.0" in archive_cmds due to quoting
++ # problems, so we reset it completely
++ verstring=""
++ ;;
++ *)
++ verstring="0.0"
++ ;;
++ esac
++ if test "$need_version" = no; then
++ versuffix=
++ else
++ versuffix=".0.0"
++ fi
++ fi
++
++ # Remove version info from name if versioning should be avoided
++ if test "$avoid_version" = yes && test "$need_version" = no; then
++ major=
++ versuffix=
++ verstring=""
++ fi
++
++ # Check to see if the archive will have undefined symbols.
++ if test "$allow_undefined" = yes; then
++ if test "$allow_undefined_flag" = unsupported; then
++ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
++ build_libtool_libs=no
++ build_old_libs=yes
++ fi
++ else
++ # Don't allow undefined symbols.
++ allow_undefined_flag="$no_undefined_flag"
++ fi
++ fi
++
++ if test "$mode" != relink; then
++ # Remove our outputs.
++ $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
++ $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
++ fi
++
++ # Now set the variables for building old libraries.
++ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
++ oldlibs="$oldlibs $output_objdir/$libname.$libext"
++
++ # Transform .lo files to .o files.
++ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
++ fi
++
++ # Eliminate all temporary directories.
++ for path in $notinst_path; do
++ lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
++ deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
++ dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
++ done
++
++ if test -n "$xrpath"; then
++ # If the user specified any rpath flags, then add them.
++ temp_xrpath=
++ for libdir in $xrpath; do
++ temp_xrpath="$temp_xrpath -R$libdir"
++ case "$finalize_rpath " in
++ *" $libdir "*) ;;
++ *) finalize_rpath="$finalize_rpath $libdir" ;;
++ esac
++ done
++ if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
++ dependency_libs="$temp_xrpath $dependency_libs"
++ fi
++ fi
++
++ # Make sure dlfiles contains only unique files that won't be dlpreopened
++ old_dlfiles="$dlfiles"
++ dlfiles=
++ for lib in $old_dlfiles; do
++ case " $dlprefiles $dlfiles " in
++ *" $lib "*) ;;
++ *) dlfiles="$dlfiles $lib" ;;
++ esac
++ done
++
++ # Make sure dlprefiles contains only unique files
++ old_dlprefiles="$dlprefiles"
++ dlprefiles=
++ for lib in $old_dlprefiles; do
++ case "$dlprefiles " in
++ *" $lib "*) ;;
++ *) dlprefiles="$dlprefiles $lib" ;;
++ esac
++ done
++
++ if test "$build_libtool_libs" = yes; then
++ if test -n "$rpath"; then
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
++ # these systems don't actually have a c library (as such)!
++ ;;
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # Rhapsody C library is in the System framework
++ deplibs="$deplibs -framework System"
++ ;;
++ *-*-netbsd*)
++ # Don't link with libc until the a.out ld.so is fixed.
++ ;;
++ *-*-openbsd* | *-*-freebsd*)
++ # Do not include libc due to us having libc/libc_r.
++ ;;
++ *)
++ # Add libc to deplibs on all other systems if necessary.
++ if test $build_libtool_need_lc = "yes"; then
++ deplibs="$deplibs -lc"
++ fi
++ ;;
++ esac
++ fi
++
++ # Transform deplibs into only deplibs that can be linked in shared.
++ name_save=$name
++ libname_save=$libname
++ release_save=$release
++ versuffix_save=$versuffix
++ major_save=$major
++ # I'm not sure if I'm treating the release correctly. I think
++ # release should show up in the -l (ie -lgmp5) so we don't want to
++ # add it in twice. Is that correct?
++ release=""
++ versuffix=""
++ major=""
++ newdeplibs=
++ droppeddeps=no
++ case $deplibs_check_method in
++ pass_all)
++ # Don't check for shared/static. Everything works.
++ # This might be a little naive. We might want to check
++ # whether the library exists or not. But this is on
++ # osf3 & osf4 and I'm not really sure... Just
++ # implementing what was already the behaviour.
++ newdeplibs=$deplibs
++ ;;
++ test_compile)
++ # This code stresses the "libraries are programs" paradigm to its
++ # limits. Maybe even breaks it. We compile a program, linking it
++ # against the deplibs as a proxy for the library. Then we can check
++ # whether they linked in statically or dynamically with ldd.
++ $rm conftest.c
++ cat > conftest.c <<EOF
++ int main() { return 0; }
++ EOF
++ $rm conftest
++ $CC -o conftest conftest.c $deplibs
++ if test $? -eq 0 ; then
++ ldd_output=`ldd conftest`
++ for i in $deplibs; do
++ name="`expr $i : '-l\(.*\)'`"
++ # If $name is empty we are operating on a -L argument.
++ if test -n "$name" && test "$name" != "0"; then
++ libname=`eval \\$echo \"$libname_spec\"`
++ deplib_matches=`eval \\$echo \"$library_names_spec\"`
++ set dummy $deplib_matches
++ deplib_match=$2
++ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
++ newdeplibs="$newdeplibs $i"
++ else
++ droppeddeps=yes
++ echo
++ echo "*** Warning: dynamic linker does not accept needed library $i."
++ echo "*** I have the capability to make that library automatically link in when"
++ echo "*** you link to this library. But I can only do this if you have a"
++ echo "*** shared version of the library, which I believe you do not have"
++ echo "*** because a test_compile did reveal that the linker did not use it for"
++ echo "*** its dynamic dependency list that programs get resolved with at runtime."
++ fi
++ else
++ newdeplibs="$newdeplibs $i"
++ fi
++ done
++ else
++ # Error occured in the first compile. Let's try to salvage
++ # the situation: Compile a separate program for each library.
++ for i in $deplibs; do
++ name="`expr $i : '-l\(.*\)'`"
++ # If $name is empty we are operating on a -L argument.
++ if test -n "$name" && test "$name" != "0"; then
++ $rm conftest
++ $CC -o conftest conftest.c $i
++ # Did it work?
++ if test $? -eq 0 ; then
++ ldd_output=`ldd conftest`
++ libname=`eval \\$echo \"$libname_spec\"`
++ deplib_matches=`eval \\$echo \"$library_names_spec\"`
++ set dummy $deplib_matches
++ deplib_match=$2
++ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
++ newdeplibs="$newdeplibs $i"
++ else
++ droppeddeps=yes
++ echo
++ echo "*** Warning: dynamic linker does not accept needed library $i."
++ echo "*** I have the capability to make that library automatically link in when"
++ echo "*** you link to this library. But I can only do this if you have a"
++ echo "*** shared version of the library, which you do not appear to have"
++ echo "*** because a test_compile did reveal that the linker did not use this one"
++ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
++ fi
++ else
++ droppeddeps=yes
++ echo
++ echo "*** Warning! Library $i is needed by this library but I was not able to"
++ echo "*** make it link in! You will probably need to install it or some"
++ echo "*** library that it depends on before this library will be fully"
++ echo "*** functional. Installing it before continuing would be even better."
++ fi
++ else
++ newdeplibs="$newdeplibs $i"
++ fi
++ done
++ fi
++ ;;
++ file_magic*)
++ set dummy $deplibs_check_method
++ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
++ for a_deplib in $deplibs; do
++ name="`expr $a_deplib : '-l\(.*\)'`"
++ # If $name is empty we are operating on a -L argument.
++ if test -n "$name" && test "$name" != "0"; then
++ libname=`eval \\$echo \"$libname_spec\"`
++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
++ for potent_lib in $potential_libs; do
++ # Follow soft links.
++ if ls -lLd "$potent_lib" 2>/dev/null \
++ | grep " -> " >/dev/null; then
++ continue
++ fi
++ # The statement above tries to avoid entering an
++ # endless loop below, in case of cyclic links.
++ # We might still enter an endless loop, since a link
++ # loop can be closed while we follow links,
++ # but so what?
++ potlib="$potent_lib"
++ while test -h "$potlib" 2>/dev/null; do
++ potliblink=`ls -ld $potlib | sed 's/.* -> //'`
++ case $potliblink in
++ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
++ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
++ esac
++ done
++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
++ | sed 10q \
++ | egrep "$file_magic_regex" > /dev/null; then
++ newdeplibs="$newdeplibs $a_deplib"
++ a_deplib=""
++ break 2
++ fi
++ done
++ done
++ if test -n "$a_deplib" ; then
++ droppeddeps=yes
++ echo
++ echo "*** Warning: linker path does not have real file for library $a_deplib."
++ echo "*** I have the capability to make that library automatically link in when"
++ echo "*** you link to this library. But I can only do this if you have a"
++ echo "*** shared version of the library, which you do not appear to have"
++ echo "*** because I did check the linker path looking for a file starting"
++ if test -z "$potlib" ; then
++ echo "*** with $libname but no candidates were found. (...for file magic test)"
++ else
++ echo "*** with $libname and none of the candidates passed a file format test"
++ echo "*** using a file magic. Last file checked: $potlib"
++ fi
++ fi
++ else
++ # Add a -L argument.
++ newdeplibs="$newdeplibs $a_deplib"
++ fi
++ done # Gone through all deplibs.
++ ;;
++ match_pattern*)
++ set dummy $deplibs_check_method
++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
++ for a_deplib in $deplibs; do
++ name="`expr $a_deplib : '-l\(.*\)'`"
++ # If $name is empty we are operating on a -L argument.
++ if test -n "$name" && test "$name" != "0"; then
++ libname=`eval \\$echo \"$libname_spec\"`
++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
++ for potent_lib in $potential_libs; do
++ potlib="$potent_lib" # see symlink-check below in file_magic test
++ if eval echo \"$potent_lib\" 2>/dev/null \
++ | sed 10q \
++ | egrep "$match_pattern_regex" > /dev/null; then
++ newdeplibs="$newdeplibs $a_deplib"
++ a_deplib=""
++ break 2
++ fi
++ done
++ done
++ if test -n "$a_deplib" ; then
++ droppeddeps=yes
++ echo
++ echo "*** Warning: linker path does not have real file for library $a_deplib."
++ echo "*** I have the capability to make that library automatically link in when"
++ echo "*** you link to this library. But I can only do this if you have a"
++ echo "*** shared version of the library, which you do not appear to have"
++ echo "*** because I did check the linker path looking for a file starting"
++ if test -z "$potlib" ; then
++ echo "*** with $libname but no candidates were found. (...for regex pattern test)"
++ else
++ echo "*** with $libname and none of the candidates passed a file format test"
++ echo "*** using a regex pattern. Last file checked: $potlib"
++ fi
++ fi
++ else
++ # Add a -L argument.
++ newdeplibs="$newdeplibs $a_deplib"
++ fi
++ done # Gone through all deplibs.
++ ;;
++ none | unknown | *)
++ newdeplibs=""
++ if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
++ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
++ grep . >/dev/null; then
++ echo
++ if test "X$deplibs_check_method" = "Xnone"; then
++ echo "*** Warning: inter-library dependencies are not supported in this platform."
++ else
++ echo "*** Warning: inter-library dependencies are not known to be supported."
++ fi
++ echo "*** All declared inter-library dependencies are being dropped."
++ droppeddeps=yes
++ fi
++ ;;
++ esac
++ versuffix=$versuffix_save
++ major=$major_save
++ release=$release_save
++ libname=$libname_save
++ name=$name_save
++
++ case $host in
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # On Rhapsody replace the C library is the System framework
++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
++ ;;
++ esac
++
++ if test "$droppeddeps" = yes; then
++ if test "$module" = yes; then
++ echo
++ echo "*** Warning: libtool could not satisfy all declared inter-library"
++ echo "*** dependencies of module $libname. Therefore, libtool will create"
++ echo "*** a static module, that should work as long as the dlopening"
++ echo "*** application is linked with the -dlopen flag."
++ if test -z "$global_symbol_pipe"; then
++ echo
++ echo "*** However, this would only work if libtool was able to extract symbol"
++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
++ echo "*** not find such a program. So, this module is probably useless."
++ echo "*** \`nm' from GNU binutils and a full rebuild may help."
++ fi
++ if test "$build_old_libs" = no; then
++ oldlibs="$output_objdir/$libname.$libext"
++ build_libtool_libs=module
++ build_old_libs=yes
++ else
++ build_libtool_libs=no
++ fi
++ else
++ echo "*** The inter-library dependencies that have been dropped here will be"
++ echo "*** automatically added whenever a program is linked with this library"
++ echo "*** or is declared to -dlopen it."
++
++ if test $allow_undefined = no; then
++ echo
++ echo "*** Since this library must not contain undefined symbols,"
++ echo "*** because either the platform does not support them or"
++ echo "*** it was explicitly requested with -no-undefined,"
++ echo "*** libtool will only create a static version of it."
++ if test "$build_old_libs" = no; then
++ oldlibs="$output_objdir/$libname.$libext"
++ build_libtool_libs=module
++ build_old_libs=yes
++ else
++ build_libtool_libs=no
++ fi
++ fi
++ fi
++ fi
++ # Done checking deplibs!
++ deplibs=$newdeplibs
++ fi
++
++ # All the library-specific variables (install_libdir is set above).
++ library_names=
++ old_library=
++ dlname=
++
++ # Test again, we may have decided not to build it any more
++ if test "$build_libtool_libs" = yes; then
++ if test $hardcode_into_libs = yes; then
++ # Hardcode the library paths
++ hardcode_libdirs=
++ dep_rpath=
++ rpath="$finalize_rpath"
++ test "$mode" != relink && rpath="$compile_rpath$rpath"
++ for libdir in $rpath; do
++ if test -n "$hardcode_libdir_flag_spec"; then
++ if test -n "$hardcode_libdir_separator"; then
++ if test -z "$hardcode_libdirs"; then
++ hardcode_libdirs="$libdir"
++ else
++ # Just accumulate the unique libdirs.
++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
++ ;;
++ *)
++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++ ;;
++ esac
++ fi
++ else
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ dep_rpath="$dep_rpath $flag"
++ fi
++ elif test -n "$runpath_var"; then
++ case "$perm_rpath " in
++ *" $libdir "*) ;;
++ *) perm_rpath="$perm_rpath $libdir" ;;
++ esac
++ fi
++ done
++ # Substitute the hardcoded libdirs into the rpath.
++ if test -n "$hardcode_libdir_separator" &&
++ test -n "$hardcode_libdirs"; then
++ libdir="$hardcode_libdirs"
++ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
++ fi
++ if test -n "$runpath_var" && test -n "$perm_rpath"; then
++ # We should set the runpath_var.
++ rpath=
++ for dir in $perm_rpath; do
++ rpath="$rpath$dir:"
++ done
++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
++ fi
++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
++ fi
++
++ shlibpath="$finalize_shlibpath"
++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
++ if test -n "$shlibpath"; then
++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
++ fi
++
++ # Get the real and link names of the library.
++ eval library_names=\"$library_names_spec\"
++ set dummy $library_names
++ realname="$2"
++ shift; shift
++
++ if test -n "$soname_spec"; then
++ eval soname=\"$soname_spec\"
++ else
++ soname="$realname"
++ fi
++ test -z "$dlname" && dlname=$soname
++
++ lib="$output_objdir/$realname"
++ for link
++ do
++ linknames="$linknames $link"
++ done
++
++ # Ensure that we have .o objects for linkers which dislike .lo
++ # (e.g. aix) in case we are running --disable-static
++ for obj in $libobjs; do
++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$obj"; then
++ xdir="."
++ else
++ xdir="$xdir"
++ fi
++ baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
++ if test ! -f $xdir/$oldobj; then
++ $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
++ $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
++ fi
++ done
++
++ # Use standard objects if they are pic
++ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
++
++ # Prepare the list of exported symbols
++ if test -z "$export_symbols"; then
++ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
++ $show "generating symbol list for \`$libname.la'"
++ export_symbols="$output_objdir/$libname.exp"
++ $run $rm $export_symbols
++ eval cmds=\"$export_symbols_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ if test -n "$export_symbols_regex"; then
++ $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
++ $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
++ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
++ $run eval '$mv "${export_symbols}T" "$export_symbols"'
++ fi
++ fi
++ fi
++
++ if test -n "$export_symbols" && test -n "$include_expsyms"; then
++ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
++ fi
++
++ if test -n "$convenience"; then
++ if test -n "$whole_archive_flag_spec"; then
++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
++ else
++ gentop="$output_objdir/${outputname}x"
++ $show "${rm}r $gentop"
++ $run ${rm}r "$gentop"
++ $show "mkdir $gentop"
++ $run mkdir "$gentop"
++ status=$?
++ if test $status -ne 0 && test ! -d "$gentop"; then
++ exit $status
++ fi
++ generated="$generated $gentop"
++
++ for xlib in $convenience; do
++ # Extract the objects.
++ case $xlib in
++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
++ *) xabs=`pwd`"/$xlib" ;;
++ esac
++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
++ xdir="$gentop/$xlib"
++
++ $show "${rm}r $xdir"
++ $run ${rm}r "$xdir"
++ $show "mkdir $xdir"
++ $run mkdir "$xdir"
++ status=$?
++ if test $status -ne 0 && test ! -d "$xdir"; then
++ exit $status
++ fi
++ $show "(cd $xdir && $AR x $xabs)"
++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
++
++ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
++ done
++ fi
++ fi
++
++ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
++ eval flag=\"$thread_safe_flag_spec\"
++ linker_flags="$linker_flags $flag"
++ fi
++
++ # Make a backup of the uninstalled library when relinking
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
++ fi
++
++ # Do each of the archive commands.
++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
++ eval cmds=\"$archive_expsym_cmds\"
++ else
++ eval cmds=\"$archive_cmds\"
++ fi
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++
++ # Restore the uninstalled library and exit
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
++ exit 0
++ fi
++
++ # Create links to the real library.
++ for linkname in $linknames; do
++ if test "$realname" != "$linkname"; then
++ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
++ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
++ fi
++ done
++
++ # If -module or -export-dynamic was specified, set the dlname.
++ if test "$module" = yes || test "$export_dynamic" = yes; then
++ # On all known operating systems, these are identical.
++ dlname="$soname"
++ fi
++ fi
++ ;;
++
++ obj)
++ if test -n "$deplibs"; then
++ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
++ fi
++
++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
++ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
++ fi
++
++ if test -n "$rpath"; then
++ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
++ fi
++
++ if test -n "$xrpath"; then
++ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
++ fi
++
++ if test -n "$vinfo"; then
++ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
++ fi
++
++ if test -n "$release"; then
++ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
++ fi
++
++ case $output in
++ *.lo)
++ if test -n "$objs$old_deplibs"; then
++ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
++ exit 1
++ fi
++ libobj="$output"
++ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
++ ;;
++ *)
++ libobj=
++ obj="$output"
++ ;;
++ esac
++
++ # Delete the old objects.
++ $run $rm $obj $libobj
++
++ # Objects from convenience libraries. This assumes
++ # single-version convenience libraries. Whenever we create
++ # different ones for PIC/non-PIC, this we'll have to duplicate
++ # the extraction.
++ reload_conv_objs=
++ gentop=
++ # reload_cmds runs $LD directly, so let us get rid of
++ # -Wl from whole_archive_flag_spec
++ wl=
++
++ if test -n "$convenience"; then
++ if test -n "$whole_archive_flag_spec"; then
++ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
++ else
++ gentop="$output_objdir/${obj}x"
++ $show "${rm}r $gentop"
++ $run ${rm}r "$gentop"
++ $show "mkdir $gentop"
++ $run mkdir "$gentop"
++ status=$?
++ if test $status -ne 0 && test ! -d "$gentop"; then
++ exit $status
++ fi
++ generated="$generated $gentop"
++
++ for xlib in $convenience; do
++ # Extract the objects.
++ case $xlib in
++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
++ *) xabs=`pwd`"/$xlib" ;;
++ esac
++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
++ xdir="$gentop/$xlib"
++
++ $show "${rm}r $xdir"
++ $run ${rm}r "$xdir"
++ $show "mkdir $xdir"
++ $run mkdir "$xdir"
++ status=$?
++ if test $status -ne 0 && test ! -d "$xdir"; then
++ exit $status
++ fi
++ $show "(cd $xdir && $AR x $xabs)"
++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
++
++ reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
++ done
++ fi
++ fi
++
++ # Create the old-style object.
++ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
++
++ output="$obj"
++ eval cmds=\"$reload_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++
++ # Exit if we aren't doing a library object file.
++ if test -z "$libobj"; then
++ if test -n "$gentop"; then
++ $show "${rm}r $gentop"
++ $run ${rm}r $gentop
++ fi
++
++ exit 0
++ fi
++
++ if test "$build_libtool_libs" != yes; then
++ if test -n "$gentop"; then
++ $show "${rm}r $gentop"
++ $run ${rm}r $gentop
++ fi
++
++ # Create an invalid libtool object if no PIC, so that we don't
++ # accidentally link it into a program.
++ $show "echo timestamp > $libobj"
++ $run eval "echo timestamp > $libobj" || exit $?
++ exit 0
++ fi
++
++ if test -n "$pic_flag" || test "$pic_mode" != default; then
++ # Only do commands if we really have different PIC objects.
++ reload_objs="$libobjs $reload_conv_objs"
++ output="$libobj"
++ eval cmds=\"$reload_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ else
++ # Just create a symlink.
++ $show $rm $libobj
++ $run $rm $libobj
++ xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$libobj"; then
++ xdir="."
++ else
++ xdir="$xdir"
++ fi
++ baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
++ $show "(cd $xdir && $LN_S $oldobj $baseobj)"
++ $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
++ fi
++
++ if test -n "$gentop"; then
++ $show "${rm}r $gentop"
++ $run ${rm}r $gentop
++ fi
++
++ exit 0
++ ;;
++
++ prog)
++ case $host in
++ *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
++ esac
++ if test -n "$vinfo"; then
++ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
++ fi
++
++ if test -n "$release"; then
++ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
++ fi
++
++ if test "$preload" = yes; then
++ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
++ test "$dlopen_self_static" = unknown; then
++ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
++ fi
++ fi
++
++ case $host in
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # On Rhapsody replace the C library is the System framework
++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
++ ;;
++ esac
++
++ compile_command="$compile_command $compile_deplibs"
++ finalize_command="$finalize_command $finalize_deplibs"
++
++ if test -n "$rpath$xrpath"; then
++ # If the user specified any rpath flags, then add them.
++ for libdir in $rpath $xrpath; do
++ # This is the magic to use -rpath.
++ case "$finalize_rpath " in
++ *" $libdir "*) ;;
++ *) finalize_rpath="$finalize_rpath $libdir" ;;
++ esac
++ done
++ fi
++
++ # Now hardcode the library paths
++ rpath=
++ hardcode_libdirs=
++ for libdir in $compile_rpath $finalize_rpath; do
++ if test -n "$hardcode_libdir_flag_spec"; then
++ if test -n "$hardcode_libdir_separator"; then
++ if test -z "$hardcode_libdirs"; then
++ hardcode_libdirs="$libdir"
++ else
++ # Just accumulate the unique libdirs.
++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
++ ;;
++ *)
++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++ ;;
++ esac
++ fi
++ else
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ rpath="$rpath $flag"
++ fi
++ elif test -n "$runpath_var"; then
++ case "$perm_rpath " in
++ *" $libdir "*) ;;
++ *) perm_rpath="$perm_rpath $libdir" ;;
++ esac
++ fi
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ case :$dllsearchpath: in
++ *":$libdir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$libdir";;
++ esac
++ ;;
++ esac
++ done
++ # Substitute the hardcoded libdirs into the rpath.
++ if test -n "$hardcode_libdir_separator" &&
++ test -n "$hardcode_libdirs"; then
++ libdir="$hardcode_libdirs"
++ eval rpath=\" $hardcode_libdir_flag_spec\"
++ fi
++ compile_rpath="$rpath"
++
++ rpath=
++ hardcode_libdirs=
++ for libdir in $finalize_rpath; do
++ if test -n "$hardcode_libdir_flag_spec"; then
++ if test -n "$hardcode_libdir_separator"; then
++ if test -z "$hardcode_libdirs"; then
++ hardcode_libdirs="$libdir"
++ else
++ # Just accumulate the unique libdirs.
++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
++ ;;
++ *)
++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++ ;;
++ esac
++ fi
++ else
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ rpath="$rpath $flag"
++ fi
++ elif test -n "$runpath_var"; then
++ case "$finalize_perm_rpath " in
++ *" $libdir "*) ;;
++ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
++ esac
++ fi
++ done
++ # Substitute the hardcoded libdirs into the rpath.
++ if test -n "$hardcode_libdir_separator" &&
++ test -n "$hardcode_libdirs"; then
++ libdir="$hardcode_libdirs"
++ eval rpath=\" $hardcode_libdir_flag_spec\"
++ fi
++ finalize_rpath="$rpath"
++
++ if test -n "$libobjs" && test "$build_old_libs" = yes; then
++ # Transform all the library objects into standard objects.
++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
++ fi
++
++ dlsyms=
++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
++ if test -n "$NM" && test -n "$global_symbol_pipe"; then
++ dlsyms="${outputname}S.c"
++ else
++ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
++ fi
++ fi
++
++ if test -n "$dlsyms"; then
++ case $dlsyms in
++ "") ;;
++ *.c)
++ # Discover the nlist of each of the dlfiles.
++ nlist="$output_objdir/${outputname}.nm"
++
++ $show "$rm $nlist ${nlist}S ${nlist}T"
++ $run $rm "$nlist" "${nlist}S" "${nlist}T"
++
++ # Parse the name list into a source file.
++ $show "creating $output_objdir/$dlsyms"
++
++ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
++ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
++ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
++
++ #ifdef __cplusplus
++ extern \"C\" {
++ #endif
++
++ /* Prevent the only kind of declaration conflicts we can make. */
++ #define lt_preloaded_symbols some_other_symbol
++
++ /* External symbol declarations for the compiler. */\
++ "
++
++ if test "$dlself" = yes; then
++ $show "generating symbol list for \`$output'"
++
++ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
++
++ # Add our own program objects to the symbol list.
++ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
++ for arg in $progfiles; do
++ $show "extracting global C symbols from \`$arg'"
++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
++ done
++
++ if test -n "$exclude_expsyms"; then
++ $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
++ $run eval '$mv "$nlist"T "$nlist"'
++ fi
++
++ if test -n "$export_symbols_regex"; then
++ $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
++ $run eval '$mv "$nlist"T "$nlist"'
++ fi
++
++ # Prepare the list of exported symbols
++ if test -z "$export_symbols"; then
++ export_symbols="$output_objdir/$output.exp"
++ $run $rm $export_symbols
++ $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
++ else
++ $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
++ $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
++ $run eval 'mv "$nlist"T "$nlist"'
++ fi
++ fi
++
++ for arg in $dlprefiles; do
++ $show "extracting global C symbols from \`$arg'"
++ name=`echo "$arg" | sed -e 's%^.*/%%'`
++ $run eval 'echo ": $name " >> "$nlist"'
++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
++ done
++
++ if test -z "$run"; then
++ # Make sure we have at least an empty file.
++ test -f "$nlist" || : > "$nlist"
++
++ if test -n "$exclude_expsyms"; then
++ egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
++ $mv "$nlist"T "$nlist"
++ fi
++
++ # Try sorting and uniquifying the output.
++ if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
++ :
++ else
++ grep -v "^: " < "$nlist" > "$nlist"S
++ fi
++
++ if test -f "$nlist"S; then
++ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
++ else
++ echo '/* NONE */' >> "$output_objdir/$dlsyms"
++ fi
++
++ $echo >> "$output_objdir/$dlsyms" "\
++
++ #undef lt_preloaded_symbols
++
++ #if defined (__STDC__) && __STDC__
++ # define lt_ptr void *
++ #else
++ # define lt_ptr char *
++ # define const
++ #endif
++
++ /* The mapping between symbol names and symbols. */
++ const struct {
++ const char *name;
++ lt_ptr address;
++ }
++ lt_preloaded_symbols[] =
++ {\
++ "
++
++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
++
++ $echo >> "$output_objdir/$dlsyms" "\
++ {0, (lt_ptr) 0}
++ };
++
++ /* This works around a problem in FreeBSD linker */
++ #ifdef FREEBSD_WORKAROUND
++ static const void *lt_preloaded_setup() {
++ return lt_preloaded_symbols;
++ }
++ #endif
++
++ #ifdef __cplusplus
++ }
++ #endif\
++ "
++ fi
++
++ pic_flag_for_symtable=
++ case $host in
++ # compiling the symbol table file with pic_flag works around
++ # a FreeBSD bug that causes programs to crash when -lm is
++ # linked before any other PIC object. But we must not use
++ # pic_flag when linking with -static. The problem exists in
++ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
++ case "$compile_command " in
++ *" -static "*) ;;
++ *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
++ esac;;
++ *-*-hpux*)
++ case "$compile_command " in
++ *" -static "*) ;;
++ *) pic_flag_for_symtable=" $pic_flag -DPIC";;
++ esac
++ esac
++
++ # Now compile the dynamic symbol file.
++ $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
++ $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
++
++ # Clean up the generated files.
++ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
++ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
++
++ # Transform the symbol file into the correct name.
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ ;;
++ *)
++ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
++ exit 1
++ ;;
++ esac
++ else
++ # We keep going just in case the user didn't refer to
++ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
++ # really was required.
++
++ # Nullify the symbol file.
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
++ fi
++
++ if test $need_relink = no || test "$build_libtool_libs" != yes; then
++ # Replace the output file specification.
++ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
++ link_command="$compile_command$compile_rpath"
++
++ # We have no uninstalled library dependencies, so finalize right now.
++ $show "$link_command"
++ $run eval "$link_command"
++ status=$?
++
++ # Delete the generated files.
++ if test -n "$dlsyms"; then
++ $show "$rm $output_objdir/${outputname}S.${objext}"
++ $run $rm "$output_objdir/${outputname}S.${objext}"
++ fi
++
++ exit $status
++ fi
++
++ if test -n "$shlibpath_var"; then
++ # We should set the shlibpath_var
++ rpath=
++ for dir in $temp_rpath; do
++ case $dir in
++ [\\/]* | [A-Za-z]:[\\/]*)
++ # Absolute path.
++ rpath="$rpath$dir:"
++ ;;
++ *)
++ # Relative path: add a thisdir entry.
++ rpath="$rpath\$thisdir/$dir:"
++ ;;
++ esac
++ done
++ temp_rpath="$rpath"
++ fi
++
++ if test -n "$compile_shlibpath$finalize_shlibpath"; then
++ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
++ fi
++ if test -n "$finalize_shlibpath"; then
++ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
++ fi
++
++ compile_var=
++ finalize_var=
++ if test -n "$runpath_var"; then
++ if test -n "$perm_rpath"; then
++ # We should set the runpath_var.
++ rpath=
++ for dir in $perm_rpath; do
++ rpath="$rpath$dir:"
++ done
++ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
++ fi
++ if test -n "$finalize_perm_rpath"; then
++ # We should set the runpath_var.
++ rpath=
++ for dir in $finalize_perm_rpath; do
++ rpath="$rpath$dir:"
++ done
++ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
++ fi
++ fi
++
++ if test "$no_install" = yes; then
++ # We don't need to create a wrapper script.
++ link_command="$compile_var$compile_command$compile_rpath"
++ # Replace the output file specification.
++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
++ # Delete the old output file.
++ $run $rm $output
++ # Link the executable and exit
++ $show "$link_command"
++ $run eval "$link_command" || exit $?
++ exit 0
++ fi
++
++ if test "$hardcode_action" = relink; then
++ # Fast installation is not supported
++ link_command="$compile_var$compile_command$compile_rpath"
++ relink_command="$finalize_var$finalize_command$finalize_rpath"
++
++ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
++ $echo "$modename: \`$output' will be relinked during installation" 1>&2
++ else
++ if test "$fast_install" != no; then
++ link_command="$finalize_var$compile_command$finalize_rpath"
++ if test "$fast_install" = yes; then
++ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
++ else
++ # fast_install is set to needless
++ relink_command=
++ fi
++ else
++ link_command="$compile_var$compile_command$compile_rpath"
++ relink_command="$finalize_var$finalize_command$finalize_rpath"
++ fi
++ fi
++
++ # Replace the output file specification.
++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
++
++ # Delete the old output files.
++ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
++
++ $show "$link_command"
++ $run eval "$link_command" || exit $?
++
++ # Now create the wrapper script.
++ $show "creating $output"
++
++ # Quote the relink command for shipping.
++ if test -n "$relink_command"; then
++ # Preserve any variables that may affect compiler behavior
++ for var in $variables_saved_for_relink; do
++ if eval test -z \"\${$var+set}\"; then
++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
++ elif eval var_value=\$$var; test -z "$var_value"; then
++ relink_command="$var=; export $var; $relink_command"
++ else
++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
++ relink_command="$var=\"$var_value\"; export $var; $relink_command"
++ fi
++ done
++ relink_command="(cd `pwd`; $relink_command)"
++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
++ fi
++
++ # Quote $echo for shipping.
++ if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
++ case $0 in
++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
++ *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
++ esac
++ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
++ else
++ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
++ fi
++
++ # Only actually do things if our run command is non-null.
++ if test -z "$run"; then
++ # win32 will think the script is a binary if it has
++ # a .exe suffix, so we strip it off here.
++ case $output in
++ *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
++ esac
++ # test for cygwin because mv fails w/o .exe extensions
++ case $host in
++ *cygwin*) exeext=.exe ;;
++ *) exeext= ;;
++ esac
++ $rm $output
++ trap "$rm $output; exit 1" 1 2 15
++
++ $echo > $output "\
++ #! $SHELL
++
++ # $output - temporary wrapper script for $objdir/$outputname
++ # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
++ #
++ # The $output program cannot be directly executed until all the libtool
++ # libraries that it depends on are installed.
++ #
++ # This wrapper script should never be moved out of the build directory.
++ # If it is, it will not operate correctly.
++
++ # Sed substitution that helps us do robust quoting. It backslashifies
++ # metacharacters that are still active within double-quoted strings.
++ Xsed='sed -e 1s/^X//'
++ sed_quote_subst='$sed_quote_subst'
++
++ # The HP-UX ksh and POSIX shell print the target directory to stdout
++ # if CDPATH is set.
++ if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
++
++ relink_command=\"$relink_command\"
++
++ # This environment variable determines our operation mode.
++ if test \"\$libtool_install_magic\" = \"$magic\"; then
++ # install mode needs the following variable:
++ notinst_deplibs='$notinst_deplibs'
++ else
++ # When we are sourced in execute mode, \$file and \$echo are already set.
++ if test \"\$libtool_execute_magic\" != \"$magic\"; then
++ echo=\"$qecho\"
++ file=\"\$0\"
++ # Make sure echo works.
++ if test \"X\$1\" = X--no-reexec; then
++ # Discard the --no-reexec flag, and continue.
++ shift
++ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
++ # Yippee, \$echo works!
++ :
++ else
++ # Restart under the correct shell, and then maybe \$echo will work.
++ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
++ fi
++ fi\
++ "
++ $echo >> $output "\
++
++ # Find the directory that this script lives in.
++ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
++ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
++
++ # Follow symbolic links until we get to the real thisdir.
++ file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
++ while test -n \"\$file\"; do
++ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
++
++ # If there was a directory component, then change thisdir.
++ if test \"x\$destdir\" != \"x\$file\"; then
++ case \"\$destdir\" in
++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
++ *) thisdir=\"\$thisdir/\$destdir\" ;;
++ esac
++ fi
++
++ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
++ file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
++ done
++
++ # Try to get the absolute directory name.
++ absdir=\`cd \"\$thisdir\" && pwd\`
++ test -n \"\$absdir\" && thisdir=\"\$absdir\"
++ "
++
++ if test "$fast_install" = yes; then
++ echo >> $output "\
++ program=lt-'$outputname'$exeext
++ progdir=\"\$thisdir/$objdir\"
++
++ if test ! -f \"\$progdir/\$program\" || \\
++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
++ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
++
++ file=\"\$\$-\$program\"
++
++ if test ! -d \"\$progdir\"; then
++ $mkdir \"\$progdir\"
++ else
++ $rm \"\$progdir/\$file\"
++ fi"
++
++ echo >> $output "\
++
++ # relink executable if necessary
++ if test -n \"\$relink_command\"; then
++ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
++ else
++ $echo \"\$relink_command_output\" >&2
++ $rm \"\$progdir/\$file\"
++ exit 1
++ fi
++ fi
++
++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
++ { $rm \"\$progdir/\$program\";
++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
++ $rm \"\$progdir/\$file\"
++ fi"
++ else
++ echo >> $output "\
++ program='$outputname'
++ progdir=\"\$thisdir/$objdir\"
++ "
++ fi
++
++ echo >> $output "\
++
++ if test -f \"\$progdir/\$program\"; then"
++
++ # Export our shlibpath_var if we have one.
++ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
++ $echo >> $output "\
++ # Add our own library path to $shlibpath_var
++ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
++
++ # Some systems cannot cope with colon-terminated $shlibpath_var
++ # The second colon is a workaround for a bug in BeOS R4 sed
++ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
++
++ export $shlibpath_var
++ "
++ fi
++
++ # fixup the dll searchpath if we need to.
++ if test -n "$dllsearchpath"; then
++ $echo >> $output "\
++ # Add the dll search path components to the executable PATH
++ PATH=$dllsearchpath:\$PATH
++ "
++ fi
++
++ $echo >> $output "\
++ if test \"\$libtool_execute_magic\" != \"$magic\"; then
++ # Run the actual program with our arguments.
++ "
++ case $host in
++ # win32 systems need to use the prog path for dll
++ # lookup to work
++ *-*-cygwin* | *-*-pw32*)
++ $echo >> $output "\
++ exec \$progdir/\$program \${1+\"\$@\"}
++ "
++ ;;
++
++ # Backslashes separate directories on plain windows
++ *-*-mingw | *-*-os2*)
++ $echo >> $output "\
++ exec \$progdir\\\\\$program \${1+\"\$@\"}
++ "
++ ;;
++
++ *)
++ $echo >> $output "\
++ # Export the path to the program.
++ PATH=\"\$progdir:\$PATH\"
++ export PATH
++
++ exec \$program \${1+\"\$@\"}
++ "
++ ;;
++ esac
++ $echo >> $output "\
++ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
++ exit 1
++ fi
++ else
++ # The program doesn't exist.
++ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
++ \$echo \"This script is just a wrapper for \$program.\" 1>&2
++ echo \"See the $PACKAGE documentation for more information.\" 1>&2
++ exit 1
++ fi
++ fi\
++ "
++ chmod +x $output
++ fi
++ exit 0
++ ;;
++ esac
++
++ # See if we need to build an old-fashioned archive.
++ for oldlib in $oldlibs; do
++
++ if test "$build_libtool_libs" = convenience; then
++ oldobjs="$libobjs_save"
++ addlibs="$convenience"
++ build_libtool_libs=no
++ else
++ if test "$build_libtool_libs" = module; then
++ oldobjs="$libobjs_save"
++ build_libtool_libs=no
++ else
++ oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
++ fi
++ addlibs="$old_convenience"
++ fi
++
++ if test -n "$addlibs"; then
++ gentop="$output_objdir/${outputname}x"
++ $show "${rm}r $gentop"
++ $run ${rm}r "$gentop"
++ $show "mkdir $gentop"
++ $run mkdir "$gentop"
++ status=$?
++ if test $status -ne 0 && test ! -d "$gentop"; then
++ exit $status
++ fi
++ generated="$generated $gentop"
++
++ # Add in members from convenience archives.
++ for xlib in $addlibs; do
++ # Extract the objects.
++ case $xlib in
++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
++ *) xabs=`pwd`"/$xlib" ;;
++ esac
++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
++ xdir="$gentop/$xlib"
++
++ $show "${rm}r $xdir"
++ $run ${rm}r "$xdir"
++ $show "mkdir $xdir"
++ $run mkdir "$xdir"
++ status=$?
++ if test $status -ne 0 && test ! -d "$xdir"; then
++ exit $status
++ fi
++ $show "(cd $xdir && $AR x $xabs)"
++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
++
++ oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
++ done
++ fi
++
++ # Do each command in the archive commands.
++ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
++ eval cmds=\"$old_archive_from_new_cmds\"
++ else
++ # Ensure that we have .o objects in place in case we decided
++ # not to build a shared library, and have fallen back to building
++ # static libs even though --disable-static was passed!
++ for oldobj in $oldobjs; do
++ if test ! -f $oldobj; then
++ xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$oldobj"; then
++ xdir="."
++ else
++ xdir="$xdir"
++ fi
++ baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
++ obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
++ $show "(cd $xdir && ${LN_S} $obj $baseobj)"
++ $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
++ fi
++ done
++
++ eval cmds=\"$old_archive_cmds\"
++ fi
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ done
++
++ if test -n "$generated"; then
++ $show "${rm}r$generated"
++ $run ${rm}r$generated
++ fi
++
++ # Now create the libtool archive.
++ case $output in
++ *.la)
++ old_library=
++ test "$build_old_libs" = yes && old_library="$libname.$libext"
++ $show "creating $output"
++
++ # Preserve any variables that may affect compiler behavior
++ for var in $variables_saved_for_relink; do
++ if eval test -z \"\${$var+set}\"; then
++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
++ elif eval var_value=\$$var; test -z "$var_value"; then
++ relink_command="$var=; export $var; $relink_command"
++ else
++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
++ relink_command="$var=\"$var_value\"; export $var; $relink_command"
++ fi
++ done
++ # Quote the link command for shipping.
++ relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)"
++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
++
++ # Only create the output if not a dry run.
++ if test -z "$run"; then
++ for installed in no yes; do
++ if test "$installed" = yes; then
++ if test -z "$install_libdir"; then
++ break
++ fi
++ output="$output_objdir/$outputname"i
++ # Replace all uninstalled libtool libraries with the installed ones
++ newdependency_libs=
++ for deplib in $dependency_libs; do
++ case $deplib in
++ *.la)
++ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
++ exit 1
++ fi
++ newdependency_libs="$newdependency_libs $libdir/$name"
++ ;;
++ *) newdependency_libs="$newdependency_libs $deplib" ;;
++ esac
++ done
++ dependency_libs="$newdependency_libs"
++ newdlfiles=
++ for lib in $dlfiles; do
++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++ exit 1
++ fi
++ newdlfiles="$newdlfiles $libdir/$name"
++ done
++ dlfiles="$newdlfiles"
++ newdlprefiles=
++ for lib in $dlprefiles; do
++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++ exit 1
++ fi
++ newdlprefiles="$newdlprefiles $libdir/$name"
++ done
++ dlprefiles="$newdlprefiles"
++ fi
++ $rm $output
++ # place dlname in correct position for cygwin
++ tdlname=$dlname
++ case $host,$output,$installed,$module,$dlname in
++ *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
++ esac
++ $echo > $output "\
++ # $outputname - a libtool library file
++ # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
++ #
++ # Please DO NOT delete this file!
++ # It is necessary for linking the library.
++
++ # The name that we can dlopen(3).
++ dlname='$tdlname'
++
++ # Names of this library.
++ library_names='$library_names'
++
++ # The name of the static archive.
++ old_library='$old_library'
++
++ # Libraries that this one depends upon.
++ dependency_libs='$dependency_libs'
++
++ # Version information for $libname.
++ current=$current
++ age=$age
++ revision=$revision
++
++ # Is this an already installed library?
++ installed=$installed
++
++ # Files to dlopen/dlpreopen
++ dlopen='$dlfiles'
++ dlpreopen='$dlprefiles'
++
++ # Directory that this library needs to be installed in:
++ libdir='$install_libdir'"
++ if test "$installed" = no && test $need_relink = yes; then
++ $echo >> $output "\
++ relink_command=\"$relink_command\""
++ fi
++ done
++ fi
++
++ # Do a symbolic link so that the libtool archive can be found in
++ # LD_LIBRARY_PATH before the program is installed.
++ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
++ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
++ ;;
++ esac
++ exit 0
++ ;;
++
++ # libtool install mode
++ install)
++ modename="$modename: install"
++
++ # There may be an optional sh(1) argument at the beginning of
++ # install_prog (especially on Windows NT).
++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
++ # Allow the use of GNU shtool's install command.
++ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
++ # Aesthetically quote it.
++ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ arg="\"$arg\""
++ ;;
++ esac
++ install_prog="$arg "
++ arg="$1"
++ shift
++ else
++ install_prog=
++ arg="$nonopt"
++ fi
++
++ # The real first argument should be the name of the installation program.
++ # Aesthetically quote it.
++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ arg="\"$arg\""
++ ;;
++ esac
++ install_prog="$install_prog$arg"
++
++ # We need to accept at least all the BSD install flags.
++ dest=
++ files=
++ opts=
++ prev=
++ install_type=
++ isdir=no
++ stripme=
++ for arg
++ do
++ if test -n "$dest"; then
++ files="$files $dest"
++ dest="$arg"
++ continue
++ fi
++
++ case $arg in
++ -d) isdir=yes ;;
++ -f) prev="-f" ;;
++ -g) prev="-g" ;;
++ -m) prev="-m" ;;
++ -o) prev="-o" ;;
++ -s)
++ stripme=" -s"
++ continue
++ ;;
++ -*) ;;
++
++ *)
++ # If the previous option needed an argument, then skip it.
++ if test -n "$prev"; then
++ prev=
++ else
++ dest="$arg"
++ continue
++ fi
++ ;;
++ esac
++
++ # Aesthetically quote the argument.
++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ arg="\"$arg\""
++ ;;
++ esac
++ install_prog="$install_prog $arg"
++ done
++
++ if test -z "$install_prog"; then
++ $echo "$modename: you must specify an install program" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ if test -n "$prev"; then
++ $echo "$modename: the \`$prev' option requires an argument" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ if test -z "$files"; then
++ if test -z "$dest"; then
++ $echo "$modename: no file or destination specified" 1>&2
++ else
++ $echo "$modename: you must specify a destination" 1>&2
++ fi
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ # Strip any trailing slash from the destination.
++ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
++
++ # Check to see that the destination is a directory.
++ test -d "$dest" && isdir=yes
++ if test "$isdir" = yes; then
++ destdir="$dest"
++ destname=
++ else
++ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$destdir" = "X$dest" && destdir=.
++ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
++
++ # Not a directory, so check to see that there is only one file specified.
++ set dummy $files
++ if test $# -gt 2; then
++ $echo "$modename: \`$dest' is not a directory" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++ fi
++ case $destdir in
++ [\\/]* | [A-Za-z]:[\\/]*) ;;
++ *)
++ for file in $files; do
++ case $file in
++ *.lo) ;;
++ *)
++ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ ;;
++ esac
++ done
++ ;;
++ esac
++
++ # This variable tells wrapper scripts just to set variables rather
++ # than running their programs.
++ libtool_install_magic="$magic"
++
++ staticlibs=
++ future_libdirs=
++ current_libdirs=
++ for file in $files; do
++
++ # Do each installation.
++ case $file in
++ *.$libext)
++ # Do the static libraries later.
++ staticlibs="$staticlibs $file"
++ ;;
++
++ *.la)
++ # Check to see that this really is a libtool archive.
++ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++ else
++ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ library_names=
++ old_library=
++ relink_command=
++ # If there is no directory component, then add one.
++ case $file in
++ */* | *\\*) . $file ;;
++ *) . ./$file ;;
++ esac
++
++ # Add the libdir to current_libdirs if it is the destination.
++ DESTDIR=
++ if test "X$destdir" = "X$libdir"; then
++ case "$current_libdirs " in
++ *" $libdir "*) ;;
++ *) current_libdirs="$current_libdirs $libdir" ;;
++ esac
++ else
++ case "$destdir" in
++ *"$libdir")
++ DESTDIR=`$echo "$destdir" | sed -e 's!'"$libdir"'$!!'`
++ if test "X$destdir" != "X$DESTDIR$libdir"; then
++ DESTDIR=
++ fi
++ ;;
++ esac
++ # Note the libdir as a future libdir.
++ case "$future_libdirs " in
++ *" $libdir "*) ;;
++ *) future_libdirs="$future_libdirs $libdir" ;;
++ esac
++ fi
++
++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
++ test "X$dir" = "X$file/" && dir=
++ dir="$dir$objdir"
++
++ if test -n "$relink_command"; then
++ $echo "$modename: warning: relinking \`$file'" 1>&2
++ export DESTDIR
++ $show "$relink_command"
++ if $run eval "$relink_command"; then :
++ else
++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
++ continue
++ fi
++ fi
++ unset DESTDIR
++
++ # See the names of the shared library.
++ set dummy $library_names
++ if test -n "$2"; then
++ realname="$2"
++ shift
++ shift
++
++ srcname="$realname"
++ test -n "$relink_command" && srcname="$realname"T
++
++ # Install the shared library and build the symlinks.
++ $show "$install_prog $dir/$srcname $destdir/$realname"
++ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
++ if test -n "$stripme" && test -n "$striplib"; then
++ $show "$striplib $destdir/$realname"
++ $run eval "$striplib $destdir/$realname" || exit $?
++ fi
++
++ if test $# -gt 0; then
++ # Delete the old symlinks, and create new ones.
++ for linkname
++ do
++ if test "$linkname" != "$realname"; then
++ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
++ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
++ fi
++ done
++ fi
++
++ # Do each command in the postinstall commands.
++ lib="$destdir/$realname"
++ eval cmds=\"$postinstall_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ fi
++
++ # Install the pseudo-library for information purposes.
++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++ instname="$dir/$name"i
++ $show "$install_prog $instname $destdir/$name"
++ $run eval "$install_prog $instname $destdir/$name" || exit $?
++
++ # Maybe install the static library, too.
++ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
++ ;;
++
++ *.lo)
++ # Install (i.e. copy) a libtool object.
++
++ # Figure out destination file name, if it wasn't already specified.
++ if test -n "$destname"; then
++ destfile="$destdir/$destname"
++ else
++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++ destfile="$destdir/$destfile"
++ fi
++
++ # Deduce the name of the destination old-style object file.
++ case $destfile in
++ *.lo)
++ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
++ ;;
++ *.$objext)
++ staticdest="$destfile"
++ destfile=
++ ;;
++ *)
++ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ ;;
++ esac
++
++ # Install the libtool object if requested.
++ if test -n "$destfile"; then
++ $show "$install_prog $file $destfile"
++ $run eval "$install_prog $file $destfile" || exit $?
++ fi
++
++ # Install the old object if enabled.
++ if test "$build_old_libs" = yes; then
++ # Deduce the name of the old-style object file.
++ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
++
++ $show "$install_prog $staticobj $staticdest"
++ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
++ fi
++ exit 0
++ ;;
++
++ *)
++ # Figure out destination file name, if it wasn't already specified.
++ if test -n "$destname"; then
++ destfile="$destdir/$destname"
++ else
++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++ destfile="$destdir/$destfile"
++ fi
++
++ # Do a test to see if this is really a libtool program.
++ case $host in
++ *cygwin*|*mingw*)
++ wrapper=`echo $file | sed -e 's,.exe$,,'`
++ ;;
++ *)
++ wrapper=$file
++ ;;
++ esac
++ if (sed -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
++ notinst_deplibs=
++ relink_command=
++
++ # If there is no directory component, then add one.
++ case $file in
++ */* | *\\*) . $wrapper ;;
++ *) . ./$wrapper ;;
++ esac
++
++ # Check the variables that should have been set.
++ if test -z "$notinst_deplibs"; then
++ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
++ exit 1
++ fi
++
++ finalize=yes
++ for lib in $notinst_deplibs; do
++ # Check to see that each library is installed.
++ libdir=
++ if test -f "$lib"; then
++ # If there is no directory component, then add one.
++ case $lib in
++ */* | *\\*) . $lib ;;
++ *) . ./$lib ;;
++ esac
++ fi
++ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
++ if test -n "$libdir" && test ! -f "$libfile"; then
++ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
++ finalize=no
++ fi
++ done
++
++ relink_command=
++ # If there is no directory component, then add one.
++ case $file in
++ */* | *\\*) . $wrapper ;;
++ *) . ./$wrapper ;;
++ esac
++
++ outputname=
++ if test "$fast_install" = no && test -n "$relink_command"; then
++ if test "$finalize" = yes && test -z "$run"; then
++ tmpdir="/tmp"
++ test -n "$TMPDIR" && tmpdir="$TMPDIR"
++ tmpdir="$tmpdir/libtool-$$"
++ if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
++ else
++ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
++ continue
++ fi
++ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++ outputname="$tmpdir/$file"
++ # Replace the output file specification.
++ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
++
++ $show "$relink_command"
++ if $run eval "$relink_command"; then :
++ else
++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
++ ${rm}r "$tmpdir"
++ continue
++ fi
++ file="$outputname"
++ else
++ $echo "$modename: warning: cannot relink \`$file'" 1>&2
++ fi
++ else
++ # Install the binary that we compiled earlier.
++ file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
++ fi
++ fi
++
++ # remove .exe since cygwin /usr/bin/install will append another
++ # one anyways
++ case $install_prog,$host in
++ /usr/bin/install*,*cygwin*)
++ case $file:$destfile in
++ *.exe:*.exe)
++ # this is ok
++ ;;
++ *.exe:*)
++ destfile=$destfile.exe
++ ;;
++ *:*.exe)
++ destfile=`echo $destfile | sed -e 's,.exe$,,'`
++ ;;
++ esac
++ ;;
++ esac
++ $show "$install_prog$stripme $file $destfile"
++ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
++ test -n "$outputname" && ${rm}r "$tmpdir"
++ ;;
++ esac
++ done
++
++ for file in $staticlibs; do
++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++
++ # Set up the ranlib parameters.
++ oldlib="$destdir/$name"
++
++ $show "$install_prog $file $oldlib"
++ $run eval "$install_prog \$file \$oldlib" || exit $?
++
++ if test -n "$stripme" && test -n "$striplib"; then
++ $show "$old_striplib $oldlib"
++ $run eval "$old_striplib $oldlib" || exit $?
++ fi
++
++ # Do each command in the postinstall commands.
++ eval cmds=\"$old_postinstall_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ done
++
++ if test -n "$future_libdirs"; then
++ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
++ fi
++
++ if test -n "$current_libdirs"; then
++ # Maybe just do a dry run.
++ test -n "$run" && current_libdirs=" -n$current_libdirs"
++ exec_cmd='$SHELL $0 --finish$current_libdirs'
++ else
++ exit 0
++ fi
++ ;;
++
++ # libtool finish mode
++ finish)
++ modename="$modename: finish"
++ libdirs="$nonopt"
++ admincmds=
++
++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
++ for dir
++ do
++ libdirs="$libdirs $dir"
++ done
++
++ for libdir in $libdirs; do
++ if test -n "$finish_cmds"; then
++ # Do each command in the finish commands.
++ eval cmds=\"$finish_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || admincmds="$admincmds
++ $cmd"
++ done
++ IFS="$save_ifs"
++ fi
++ if test -n "$finish_eval"; then
++ # Do the single finish_eval.
++ eval cmds=\"$finish_eval\"
++ $run eval "$cmds" || admincmds="$admincmds
++ $cmds"
++ fi
++ done
++ fi
++
++ # Exit here if they wanted silent mode.
++ test "$show" = ":" && exit 0
++
++ echo "----------------------------------------------------------------------"
++ echo "Libraries have been installed in:"
++ for libdir in $libdirs; do
++ echo " $libdir"
++ done
++ echo
++ echo "If you ever happen to want to link against installed libraries"
++ echo "in a given directory, LIBDIR, you must either use libtool, and"
++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
++ echo "flag during linking and do at least one of the following:"
++ if test -n "$shlibpath_var"; then
++ echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
++ echo " during execution"
++ fi
++ if test -n "$runpath_var"; then
++ echo " - add LIBDIR to the \`$runpath_var' environment variable"
++ echo " during linking"
++ fi
++ if test -n "$hardcode_libdir_flag_spec"; then
++ libdir=LIBDIR
++ eval flag=\"$hardcode_libdir_flag_spec\"
++
++ echo " - use the \`$flag' linker flag"
++ fi
++ if test -n "$admincmds"; then
++ echo " - have your system administrator run these commands:$admincmds"
++ fi
++ if test -f /etc/ld.so.conf; then
++ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
++ fi
++ echo
++ echo "See any operating system documentation about shared libraries for"
++ echo "more information, such as the ld(1) and ld.so(8) manual pages."
++ echo "----------------------------------------------------------------------"
++ exit 0
++ ;;
++
++ # libtool execute mode
++ execute)
++ modename="$modename: execute"
++
++ # The first argument is the command name.
++ cmd="$nonopt"
++ if test -z "$cmd"; then
++ $echo "$modename: you must specify a COMMAND" 1>&2
++ $echo "$help"
++ exit 1
++ fi
++
++ # Handle -dlopen flags immediately.
++ for file in $execute_dlfiles; do
++ if test ! -f "$file"; then
++ $echo "$modename: \`$file' is not a file" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ dir=
++ case $file in
++ *.la)
++ # Check to see that this really is a libtool archive.
++ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++ else
++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ # Read the libtool library.
++ dlname=
++ library_names=
++
++ # If there is no directory component, then add one.
++ case $file in
++ */* | *\\*) . $file ;;
++ *) . ./$file ;;
++ esac
++
++ # Skip this library if it cannot be dlopened.
++ if test -z "$dlname"; then
++ # Warn if it was a shared library.
++ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
++ continue
++ fi
++
++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$dir" = "X$file" && dir=.
++
++ if test -f "$dir/$objdir/$dlname"; then
++ dir="$dir/$objdir"
++ else
++ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
++ exit 1
++ fi
++ ;;
++
++ *.lo)
++ # Just add the directory containing the .lo file.
++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$dir" = "X$file" && dir=.
++ ;;
++
++ *)
++ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
++ continue
++ ;;
++ esac
++
++ # Get the absolute pathname.
++ absdir=`cd "$dir" && pwd`
++ test -n "$absdir" && dir="$absdir"
++
++ # Now add the directory to shlibpath_var.
++ if eval "test -z \"\$$shlibpath_var\""; then
++ eval "$shlibpath_var=\"\$dir\""
++ else
++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
++ fi
++ done
++
++ # This variable tells wrapper scripts just to set shlibpath_var
++ # rather than running their programs.
++ libtool_execute_magic="$magic"
++
++ # Check if any of the arguments is a wrapper script.
++ args=
++ for file
++ do
++ case $file in
++ -*) ;;
++ *)
++ # Do a test to see if this is really a libtool program.
++ if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ # If there is no directory component, then add one.
++ case $file in
++ */* | *\\*) . $file ;;
++ *) . ./$file ;;
++ esac
++
++ # Transform arg to wrapped name.
++ file="$progdir/$program"
++ fi
++ ;;
++ esac
++ # Quote arguments (to preserve shell metacharacters).
++ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
++ args="$args \"$file\""
++ done
++
++ if test -z "$run"; then
++ if test -n "$shlibpath_var"; then
++ # Export the shlibpath_var.
++ eval "export $shlibpath_var"
++ fi
++
++ # Restore saved enviroment variables
++ if test "${save_LC_ALL+set}" = set; then
++ LC_ALL="$save_LC_ALL"; export LC_ALL
++ fi
++ if test "${save_LANG+set}" = set; then
++ LANG="$save_LANG"; export LANG
++ fi
++
++ # Now prepare to actually exec the command.
++ exec_cmd="\$cmd$args"
++ else
++ # Display what would be done.
++ if test -n "$shlibpath_var"; then
++ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
++ $echo "export $shlibpath_var"
++ fi
++ $echo "$cmd$args"
++ exit 0
++ fi
++ ;;
++
++ # libtool clean and uninstall mode
++ clean | uninstall)
++ modename="$modename: $mode"
++ rm="$nonopt"
++ files=
++ rmforce=
++ exit_status=0
++
++ # This variable tells wrapper scripts just to set variables rather
++ # than running their programs.
++ libtool_install_magic="$magic"
++
++ for arg
++ do
++ case $arg in
++ -f) rm="$rm $arg"; rmforce=yes ;;
++ -*) rm="$rm $arg" ;;
++ *) files="$files $arg" ;;
++ esac
++ done
++
++ if test -z "$rm"; then
++ $echo "$modename: you must specify an RM program" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ fi
++
++ rmdirs=
++
++ for file in $files; do
++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$dir" = "X$file"; then
++ dir=.
++ objdir="$objdir"
++ else
++ objdir="$dir/$objdir"
++ fi
++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++ test $mode = uninstall && objdir="$dir"
++
++ # Remember objdir for removal later, being careful to avoid duplicates
++ if test $mode = clean; then
++ case " $rmdirs " in
++ *" $objdir "*) ;;
++ *) rmdirs="$rmdirs $objdir" ;;
++ esac
++ fi
++
++ # Don't error if the file doesn't exist and rm -f was used.
++ if (test -L "$file") >/dev/null 2>&1 \
++ || (test -h "$file") >/dev/null 2>&1 \
++ || test -f "$file"; then
++ :
++ elif test -d "$file"; then
++ exit_status=1
++ continue
++ elif test "$rmforce" = yes; then
++ continue
++ fi
++
++ rmfiles="$file"
++
++ case $name in
++ *.la)
++ # Possibly a libtool archive, so verify it.
++ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ . $dir/$name
++
++ # Delete the libtool libraries and symlinks.
++ for n in $library_names; do
++ rmfiles="$rmfiles $objdir/$n"
++ done
++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
++ test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
++
++ if test $mode = uninstall; then
++ if test -n "$library_names"; then
++ # Do each command in the postuninstall commands.
++ eval cmds=\"$postuninstall_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd"
++ if test $? != 0 && test "$rmforce" != yes; then
++ exit_status=1
++ fi
++ done
++ IFS="$save_ifs"
++ fi
++
++ if test -n "$old_library"; then
++ # Do each command in the old_postuninstall commands.
++ eval cmds=\"$old_postuninstall_cmds\"
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd"
++ if test $? != 0 && test "$rmforce" != yes; then
++ exit_status=1
++ fi
++ done
++ IFS="$save_ifs"
++ fi
++ # FIXME: should reinstall the best remaining shared library.
++ fi
++ fi
++ ;;
++
++ *.lo)
++ if test "$build_old_libs" = yes; then
++ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
++ rmfiles="$rmfiles $dir/$oldobj"
++ fi
++ ;;
++
++ *)
++ # Do a test to see if this is a libtool program.
++ if test $mode = clean &&
++ (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ relink_command=
++ . $dir/$file
++
++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
++ if test "$fast_install" = yes && test -n "$relink_command"; then
++ rmfiles="$rmfiles $objdir/lt-$name"
++ fi
++ fi
++ ;;
++ esac
++ $show "$rm $rmfiles"
++ $run $rm $rmfiles || exit_status=1
++ done
++
++ # Try to remove the ${objdir}s in the directories where we deleted files
++ for dir in $rmdirs; do
++ if test -d "$dir"; then
++ $show "rmdir $dir"
++ $run rmdir $dir >/dev/null 2>&1
++ fi
++ done
++
++ exit $exit_status
++ ;;
++
++ "")
++ $echo "$modename: you must specify a MODE" 1>&2
++ $echo "$generic_help" 1>&2
++ exit 1
++ ;;
++ esac
++
++ if test -z "$exec_cmd"; then
++ $echo "$modename: invalid operation mode \`$mode'" 1>&2
++ $echo "$generic_help" 1>&2
++ exit 1
++ fi
++ fi # test -z "$show_help"
++
++ if test -n "$exec_cmd"; then
++ eval exec $exec_cmd
++ exit 1
++ fi
++
++ # We need to display help for each of the modes.
++ case $mode in
++ "") $echo \
++ "Usage: $modename [OPTION]... [MODE-ARG]...
++
++ Provide generalized library-building support services.
++
++ --config show all configuration variables
++ --debug enable verbose shell tracing
++ -n, --dry-run display commands without modifying any files
++ --features display basic configuration information and exit
++ --finish same as \`--mode=finish'
++ --help display this help message and exit
++ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
++ --quiet same as \`--silent'
++ --silent don't print informational messages
++ --version print version information
++
++ MODE must be one of the following:
++
++ clean remove files from the build directory
++ compile compile a source file into a libtool object
++ execute automatically set library path, then run a program
++ finish complete the installation of libtool libraries
++ install install libraries or executables
++ link create a library or an executable
++ uninstall remove libraries from an installed directory
++
++ MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
++ a more detailed description of MODE."
++ exit 0
++ ;;
++
++ clean)
++ $echo \
++ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
++
++ Remove files from the build directory.
++
++ RM is the name of the program to use to delete files associated with each FILE
++ (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
++ to RM.
++
++ If FILE is a libtool library, object or program, all the files associated
++ with it are deleted. Otherwise, only FILE itself is deleted using RM."
++ ;;
++
++ compile)
++ $echo \
++ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
++
++ Compile a source file into a libtool library object.
++
++ This mode accepts the following additional options:
++
++ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
++ -prefer-pic try to building PIC objects only
++ -prefer-non-pic try to building non-PIC objects only
++ -static always build a \`.o' file suitable for static linking
++
++ COMPILE-COMMAND is a command to be used in creating a \`standard' object file
++ from the given SOURCEFILE.
++
++ The output file name is determined by removing the directory component from
++ SOURCEFILE, then substituting the C source code suffix \`.c' with the
++ library object suffix, \`.lo'."
++ ;;
++
++ execute)
++ $echo \
++ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
++
++ Automatically set library path, then run a program.
++
++ This mode accepts the following additional options:
++
++ -dlopen FILE add the directory containing FILE to the library path
++
++ This mode sets the library path environment variable according to \`-dlopen'
++ flags.
++
++ If any of the ARGS are libtool executable wrappers, then they are translated
++ into their corresponding uninstalled binary, and any of their required library
++ directories are added to the library path.
++
++ Then, COMMAND is executed, with ARGS as arguments."
++ ;;
++
++ finish)
++ $echo \
++ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
++
++ Complete the installation of libtool libraries.
++
++ Each LIBDIR is a directory that contains libtool libraries.
++
++ The commands that this mode executes may require superuser privileges. Use
++ the \`--dry-run' option if you just want to see what would be executed."
++ ;;
++
++ install)
++ $echo \
++ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
++
++ Install executables or libraries.
++
++ INSTALL-COMMAND is the installation command. The first component should be
++ either the \`install' or \`cp' program.
++
++ The rest of the components are interpreted as arguments to that command (only
++ BSD-compatible install options are recognized)."
++ ;;
++
++ link)
++ $echo \
++ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
++
++ Link object files or libraries together to form another library, or to
++ create an executable program.
++
++ LINK-COMMAND is a command using the C compiler that you would use to create
++ a program from several object files.
++
++ The following components of LINK-COMMAND are treated specially:
++
++ -all-static do not do any dynamic linking at all
++ -avoid-version do not add a version suffix if possible
++ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
++ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
++ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
++ -export-symbols SYMFILE
++ try to export only the symbols listed in SYMFILE
++ -export-symbols-regex REGEX
++ try to export only the symbols matching REGEX
++ -LLIBDIR search LIBDIR for required installed libraries
++ -lNAME OUTPUT-FILE requires the installed library libNAME
++ -module build a library that can dlopened
++ -no-fast-install disable the fast-install mode
++ -no-install link a not-installable executable
++ -no-undefined declare that a library does not refer to external symbols
++ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
++ -release RELEASE specify package release information
++ -rpath LIBDIR the created library will eventually be installed in LIBDIR
++ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
++ -static do not do any dynamic linking of libtool libraries
++ -version-info CURRENT[:REVISION[:AGE]]
++ specify library version info [each variable defaults to 0]
++
++ All other options (arguments beginning with \`-') are ignored.
++
++ Every other argument is treated as a filename. Files ending in \`.la' are
++ treated as uninstalled libtool libraries, other files are standard or library
++ object files.
++
++ If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
++ only library objects (\`.lo' files) may be specified, and \`-rpath' is
++ required, except when creating a convenience library.
++
++ If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
++ using \`ar' and \`ranlib', or on Windows using \`lib'.
++
++ If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
++ is created, otherwise an executable program is created."
++ ;;
++
++ uninstall)
++ $echo \
++ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
++
++ Remove libraries from an installation directory.
++
++ RM is the name of the program to use to delete files associated with each FILE
++ (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
++ to RM.
++
++ If FILE is a libtool library, all the files associated with it are deleted.
++ Otherwise, only FILE itself is deleted using RM."
++ ;;
++
++ *)
++ $echo "$modename: invalid operation mode \`$mode'" 1>&2
++ $echo "$help" 1>&2
++ exit 1
++ ;;
++ esac
++
++ echo
++ $echo "Try \`$modename --help' for more information about other modes."
++
++ exit 0
++
++ # Local Variables:
++ # mode:shell-script
++ # sh-indentation:2
++ # End:
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/m4/vorbis.m4 xine-lib-1-beta12/m4/vorbis.m4
+*** xine-lib-1-beta12_orig/m4/vorbis.m4 Mon Nov 26 16:07:49 2001
+--- xine-lib-1-beta12/m4/vorbis.m4 Sun May 18 14:52:51 2003
+***************
+*** 18,24 ****
+ VORBIS_LIBDIR="-L$vorbis_prefix/lib"
+ fi
+
+! VORBIS_LIBS="$VORBIS_LIBDIR -lvorbis -lm"
+ VORBISFILE_LIBS="-lvorbisfile"
+ VORBISENC_LIBS="-lvorbisenc"
+
+--- 18,24 ----
+ VORBIS_LIBDIR="-L$vorbis_prefix/lib"
+ fi
+
+! VORBIS_LIBS="$VORBIS_LIBDIR -lvorbisidec -lm"
+ VORBISFILE_LIBS="-lvorbisfile"
+ VORBISENC_LIBS="-lvorbisenc"
+
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/demuxers/Makefile.am xine-lib-1-beta12/src/demuxers/Makefile.am
+*** xine-lib-1-beta12_orig/src/demuxers/Makefile.am Thu May 1 15:46:11 2003
+--- xine-lib-1-beta12/src/demuxers/Makefile.am Sun May 18 14:43:33 2003
+***************
+*** 1,4 ****
+! AM_CFLAGS = $(THEORA_CFLAGS) $(OGG_CFLAGS) @ANSI_FLAGS@
+
+ LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
+
+--- 1,4 ----
+! AM_CFLAGS = $(THEORA_CFLAGS) $(VORBIS_CFLAGS) $(OGG_CFLAGS) @ANSI_FLAGS@
+
+ LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
+
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/Makefile.am xine-lib-1-beta12/src/libffmpeg/libavcodec/Makefile.am
+*** xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/Makefile.am Sat May 10 09:04:37 2003
+--- xine-lib-1-beta12/src/libffmpeg/libavcodec/Makefile.am Sun May 18 13:36:25 2003
+***************
+*** 10,18 ****
+ ppc/dsputil_altivec.c ppc/fft_altivec.c ppc/Makefile.am ppc/mpegvideo_ppc.c \
+ ppc/dsputil_altivec.h ppc/idct_altivec.c
+
+! AM_CFLAGS = $(LIBFFMPEG_CFLAGS) -DCONFIG_RISKY
+ ASFLAGS =
+
+ LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
+
+ noinst_LTLIBRARIES = libavcodec.la
+--- 10,25 ----
+ ppc/dsputil_altivec.c ppc/fft_altivec.c ppc/Makefile.am ppc/mpegvideo_ppc.c \
+ ppc/dsputil_altivec.h ppc/idct_altivec.c
+
+! #AM_CFLAGS = $(LIBFFMPEG_CFLAGS) -DCONFIG_RISKY
+ ASFLAGS =
+
++ if HAVE_ARMV4L
++ AM_CFLAGS = -DARCH_ARMV4L $(LIBFFMPEG_CFLAGS)
++ else
++ AM_CFLAGS = $(LIBFFMPEG_CFLAGS)
++ endif
++
++
+ LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
+
+ noinst_LTLIBRARIES = libavcodec.la
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/armv4l/Makefile.am xine-lib-1-beta12/src/libffmpeg/libavcodec/armv4l/Makefile.am
+*** xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/armv4l/Makefile.am Wed Oct 9 01:13:39 2002
+--- xine-lib-1-beta12/src/libffmpeg/libavcodec/armv4l/Makefile.am Sun May 18 13:38:26 2003
+***************
+*** 9,22 ****
+
+ noinst_LTLIBRARIES = libavcodec_armv4l.la
+
+! libavcodec_armv4l_src = dsputil_arm.c jrevdct_arm.S
+ libavcodec_armv4l_dummy = libavcodec_armv4l_dummy.c
+ EXTRA_DIST = $(libavcodec_armv4l_src) $(libavcodec_armv4l_dummy)
+
+! #if HAVE_ARMV4L
+! #armv4l_modules = $(libavcodec_armv4l_src)
+! #endif
+! armv4l_modules =
+
+ libavcodec_armv4l_la_SOURCES = $(armv4l_modules) $(libavcodec_armv4l_dummy)
+
+--- 9,22 ----
+
+ noinst_LTLIBRARIES = libavcodec_armv4l.la
+
+! libavcodec_armv4l_src = mpegvideo_arm.c dsputil_arm.c jrevdct_arm.S
+ libavcodec_armv4l_dummy = libavcodec_armv4l_dummy.c
+ EXTRA_DIST = $(libavcodec_armv4l_src) $(libavcodec_armv4l_dummy)
+
+! if HAVE_ARMV4L
+! armv4l_modules = $(libavcodec_armv4l_src)
+! endif
+! #armv4l_modules =
+
+ libavcodec_armv4l_la_SOURCES = $(armv4l_modules) $(libavcodec_armv4l_dummy)
+
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c xine-lib-1-beta12/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c
+*** xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c Fri Mar 28 16:38:06 2003
+--- xine-lib-1-beta12/src/libffmpeg/libavcodec/armv4l/dsputil_arm.c Wed Jul 2 19:51:29 2003
+***************
+*** 48,53 ****
+--- 48,54 ----
+ if(idct_algo==FF_IDCT_AUTO || idct_algo==FF_IDCT_ARM){
+ c->idct_put= arm_idct_put;
+ c->idct_add= arm_idct_add;
++ /* c->idct = j_rev_dct_ARM; */
+ c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;/* FF_NO_IDCT_PERM */
+ }
+ }
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/armv4l/mpegvideo_arm.c xine-lib-1-beta12/src/libffmpeg/libavcodec/armv4l/mpegvideo_arm.c
+*** xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/armv4l/mpegvideo_arm.c Wed Dec 31 19:00:00 1969
+--- xine-lib-1-beta12/src/libffmpeg/libavcodec/armv4l/mpegvideo_arm.c Sun May 18 13:44:55 2003
+***************
+*** 0 ****
+--- 1,26 ----
++ /*
++ * Copyright (c) 2002 Michael Niedermayer
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++ #include "../dsputil.h"
++ #include "../mpegvideo.h"
++ #include "../avcodec.h"
++
++ void MPV_common_init_armv4l(MpegEncContext *s)
++ {
++ }
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/dsputil.h xine-lib-1-beta12/src/libffmpeg/libavcodec/dsputil.h
+*** xine-lib-1-beta12_orig/src/libffmpeg/libavcodec/dsputil.h Sat May 10 09:04:38 2003
+--- xine-lib-1-beta12/src/libffmpeg/libavcodec/dsputil.h Sun May 18 13:45:56 2003
+***************
+*** 48,53 ****
+--- 48,54 ----
+ void ff_jpeg_fdct_islow (DCTELEM *data);
+
+ void j_rev_dct (DCTELEM *data);
++ void j_rev_dct_ARM (DCTELEM *data);
+
+ void ff_fdct_mmx(DCTELEM *block);
+
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/libffmpeg/xine_decoder.c xine-lib-1-beta12/src/libffmpeg/xine_decoder.c
+*** xine-lib-1-beta12_orig/src/libffmpeg/xine_decoder.c Sat May 10 09:04:37 2003
+--- xine-lib-1-beta12/src/libffmpeg/xine_decoder.c Mon May 19 18:59:11 2003
+***************
+*** 334,340 ****
+ this->pp_available = 0;
+ break;
+ }
+!
+ /* Detect what cpu accel we have */
+ cpu_caps = xine_mm_accel();
+ this->pp_flags = PP_FORMAT_420;
+--- 334,344 ----
+ this->pp_available = 0;
+ break;
+ }
+!
+! #if 0
+! this->pp_available = 0; /* remove post processing shit, probably a bug in the functions checking the quality value!!*/
+! #endif /* if 0 */
+!
+ /* Detect what cpu accel we have */
+ cpu_caps = xine_mm_accel();
+ this->pp_flags = PP_FORMAT_420;
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/libvorbis/xine_decoder.c xine-lib-1-beta12/src/libvorbis/xine_decoder.c
+*** xine-lib-1-beta12_orig/src/libvorbis/xine_decoder.c Thu May 1 17:39:28 2003
+--- xine-lib-1-beta12/src/libvorbis/xine_decoder.c Sun May 18 13:49:30 2003
+***************
+*** 205,211 ****
+
+ } else if (this->output_open) {
+
+! float **pcm;
+ int samples;
+
+ if(vorbis_synthesis(&this->vb,op)==0)
+--- 205,211 ----
+
+ } else if (this->output_open) {
+
+! int **pcm;
+ int samples;
+
+ if(vorbis_synthesis(&this->vb,op)==0)
+***************
+*** 227,235 ****
+ interleave */
+ for(i=0;i<this->vi.channels;i++){
+ ogg_int16_t *ptr=audio_buffer->mem+i;
+! float *mono=pcm[i];
+ for(j=0;j<bout;j++){
+! int val=mono[j]*32767.f;
+ /* might as well guard against clipping */
+ if(val>32767){
+ val=32767;
+--- 227,235 ----
+ interleave */
+ for(i=0;i<this->vi.channels;i++){
+ ogg_int16_t *ptr=audio_buffer->mem+i;
+! int *mono=pcm[i];
+ for(j=0;j<bout;j++){
+! int val=mono[j]>>9;
+ /* might as well guard against clipping */
+ if(val>32767){
+ val=32767;
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/xine-engine/audio_decoder.c xine-lib-1-beta12/src/xine-engine/audio_decoder.c
+*** xine-lib-1-beta12_orig/src/xine-engine/audio_decoder.c Sun Apr 6 19:15:05 2003
+--- xine-lib-1-beta12/src/xine-engine/audio_decoder.c Sun May 18 14:16:05 2003
+***************
+*** 354,360 ****
+
+ pthread_attr_t pth_attrs;
+ struct sched_param pth_params;
+! int err;
+
+ if (stream->audio_out == NULL) {
+ stream->audio_fifo = NULL;
+--- 354,360 ----
+
+ pthread_attr_t pth_attrs;
+ struct sched_param pth_params;
+! int err, num_audio_buffers, size_audio_buffers;
+
+ if (stream->audio_out == NULL) {
+ stream->audio_fifo = NULL;
+***************
+*** 368,374 ****
+--- 368,399 ----
+ * We provide buffers of 8k size instead of 2k for demuxers sending
+ * larger chunks.
+ */
++ /* changed the allocation method for the buffer, using the same trick as for the video part,
++ i.e. it will give better possibilities to customize the size.
+ stream->audio_fifo = fifo_buffer_new (230, 8192);
++ */
++
++ num_audio_buffers = stream->xine->config->register_num (stream->xine->config,
++ "audio.num_buffers",
++ 50,
++ "number of audio buffers to allocate (higher values mean smoother playback but higher latency)",
++ NULL, 20,
++ NULL, NULL);
++
++
++ size_audio_buffers = stream->xine->config->register_num (stream->xine->config,
++ "audio.size_buffers",
++ 8192,
++ "size of the audio buffers to allocate",
++ NULL, 20,
++ NULL, NULL);
++
++
++ /* LOGGING INFO ABOUT THE CURRENT SIZE OF THE BUFFERS: */
++ fprintf (stderr, "************************* %s:function %s, number of buffers:%d (%d B) [default:50 (400 kB)]\n", __FILE__, __FUNCTION__, num_audio_buffers, num_audio_buffers*size_audio_buffers);
++ stream->audio_fifo = fifo_buffer_new (num_audio_buffers, size_audio_buffers);
++
++
+ stream->audio_channel_user = -1;
+ stream->audio_channel_auto = -1;
+ stream->audio_track_map_entries = 0;
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/xine-engine/audio_out.c xine-lib-1-beta12/src/xine-engine/audio_out.c
+*** xine-lib-1-beta12_orig/src/xine-engine/audio_out.c Fri Apr 25 18:06:27 2003
+--- xine-lib-1-beta12/src/xine-engine/audio_out.c Sun May 18 14:29:29 2003
+***************
+*** 89,98 ****
+--- 89,103 ----
+ #define LOG_RESAMPLE_SYNC
+ */
+
++ /*
++ REPLACED BY CONFIG ENTRIES
+ #define NUM_AUDIO_BUFFERS 32
+ #define AUDIO_BUF_SIZE 32768
+
+ #define ZERO_BUF_SIZE 5000
++ */
++
++ static int iNumAudioBuffers, iAudioBufSize, iZeroBufSize;
+
+ /* By adding gap errors (difference between reported and expected
+ * sound card clock) into metronom's vpts_offset we can use its
+***************
+*** 117,123 ****
+--- 122,133 ----
+ * buffers may be dropped or gaps filled with silence.
+ */
+ #define SYNC_TIME_INVERVAL (1 * 90000)
++
++ /*
++ REPLACED BY CONFIG_ENTRIES
+ #define SYNC_BUF_INTERVAL NUM_AUDIO_BUFFERS / 2
++ */
++
+ #define SYNC_GAP_RATE 4
+
+ /* Alternative for metronom feedback: fix sound card clock drift
+***************
+*** 430,440 ****
+ }
+
+ while (num_frames > 0 && !this->discard_buffers) {
+! if (num_frames > ZERO_BUF_SIZE) {
+ pthread_mutex_lock( &this->driver_lock );
+ if(this->driver_open) {
+! this->driver->write(this->driver, this->zero_space, ZERO_BUF_SIZE);
+! num_frames -= ZERO_BUF_SIZE;
+ } else
+ num_frames = 0;
+ pthread_mutex_unlock( &this->driver_lock );
+--- 440,450 ----
+ }
+
+ while (num_frames > 0 && !this->discard_buffers) {
+! if (num_frames > iZeroBufSize) {
+ pthread_mutex_lock( &this->driver_lock );
+ if(this->driver_open) {
+! this->driver->write(this->driver, this->zero_space, iZeroBufSize);
+! num_frames -= iZeroBufSize;
+ } else
+ num_frames = 0;
+ pthread_mutex_unlock( &this->driver_lock );
+***************
+*** 1059,1065 ****
+ */
+ } else if ( abs(gap) < AO_MAX_GAP && abs(gap) > this->gap_tolerance &&
+ cur_time > (last_sync_time + SYNC_TIME_INVERVAL) &&
+! bufs_since_sync >= SYNC_BUF_INTERVAL &&
+ !this->resample_sync_method ) {
+ xine_stream_t *stream;
+ #ifdef LOG
+--- 1069,1075 ----
+ */
+ } else if ( abs(gap) < AO_MAX_GAP && abs(gap) > this->gap_tolerance &&
+ cur_time > (last_sync_time + SYNC_TIME_INVERVAL) &&
+! bufs_since_sync >= (iNumAudioBuffers/2) &&
+ !this->resample_sync_method ) {
+ xine_stream_t *stream;
+ #ifdef LOG
+***************
+*** 1786,1791 ****
+--- 1796,1826 ----
+ static char *resample_modes[] = {"auto", "off", "on", NULL};
+ static char *av_sync_methods[] = {"metronom_feedback", "resample", NULL};
+
++
++
++ iNumAudioBuffers = config->register_num (config,
++ "audio.out_num_audio_buf",
++ 16,
++ "number of audio buffer on the output side",
++ NULL, 20,
++ NULL, NULL);
++
++ iAudioBufSize = config->register_num (config,
++ "audio.out_size_audio_buf",
++ 8192,
++ "size of the audio buffers to allocate on the output side",
++ NULL, 20,
++ NULL, NULL);
++
++ iZeroBufSize = config->register_num (config,
++ "audio.out_size_zero_buf",
++ 2048,
++ "size of the zero buffers to allocate on the output side",
++ NULL, 20,
++ NULL, NULL);
++
++
++
+ this = xine_xmalloc (sizeof (aos_t)) ;
+
+ this->driver = driver;
+***************
+*** 1813,1819 ****
+ this->audio_paused = 0;
+ this->flush_audio_driver = 0;
+ this->discard_buffers = 0;
+! this->zero_space = xine_xmalloc (ZERO_BUF_SIZE * 2 * 6);
+ if (!grab_only)
+ this->gap_tolerance = driver->get_gap_tolerance (this->driver);
+
+--- 1848,1854 ----
+ this->audio_paused = 0;
+ this->flush_audio_driver = 0;
+ this->discard_buffers = 0;
+! this->zero_space = xine_xmalloc (iZeroBufSize * 2 * 6);
+ if (!grab_only)
+ this->gap_tolerance = driver->get_gap_tolerance (this->driver);
+
+***************
+*** 1871,1883 ****
+ this->free_fifo = fifo_new ();
+ this->out_fifo = fifo_new ();
+
+! for (i=0; i<NUM_AUDIO_BUFFERS; i++) {
+
+ audio_buffer_t *buf;
+
+ buf = (audio_buffer_t *) xine_xmalloc (sizeof (audio_buffer_t));
+! buf->mem = xine_xmalloc (AUDIO_BUF_SIZE);
+! buf->mem_size = AUDIO_BUF_SIZE;
+ buf->extra_info = malloc(sizeof(extra_info_t));
+
+ fifo_append (this->free_fifo, buf);
+--- 1906,1919 ----
+ this->free_fifo = fifo_new ();
+ this->out_fifo = fifo_new ();
+
+!
+! for (i=0; i<iNumAudioBuffers; i++) {
+
+ audio_buffer_t *buf;
+
+ buf = (audio_buffer_t *) xine_xmalloc (sizeof (audio_buffer_t));
+! buf->mem = xine_xmalloc (iAudioBufSize);
+! buf->mem_size = iAudioBufSize;
+ buf->extra_info = malloc(sizeof(extra_info_t));
+
+ fifo_append (this->free_fifo, buf);
+***************
+*** 1889,1896 ****
+ audio_buffer_t *buf;
+
+ buf = (audio_buffer_t *) xine_xmalloc (sizeof (audio_buffer_t));
+! buf->mem = xine_xmalloc (4*AUDIO_BUF_SIZE);
+! buf->mem_size = 4*AUDIO_BUF_SIZE;
+ buf->extra_info = malloc(sizeof(extra_info_t));
+
+ this->frame_buf[i] = buf;
+--- 1925,1932 ----
+ audio_buffer_t *buf;
+
+ buf = (audio_buffer_t *) xine_xmalloc (sizeof (audio_buffer_t));
+! buf->mem = xine_xmalloc (4*iAudioBufSize);
+! buf->mem_size = 4*iAudioBufSize;
+ buf->extra_info = malloc(sizeof(extra_info_t));
+
+ this->frame_buf[i] = buf;
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/xine-engine/video_overlay.h xine-lib-1-beta12/src/xine-engine/video_overlay.h
+*** xine-lib-1-beta12_orig/src/xine-engine/video_overlay.h Wed Nov 20 08:51:36 2002
+--- xine-lib-1-beta12/src/xine-engine/video_overlay.h Sun May 18 14:39:47 2003
+***************
+*** 32,40 ****
+ #define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) { (_cb), (_cr), (_y) }
+ #endif
+
+! #define MAX_OBJECTS 50
+! #define MAX_EVENTS 50
+! #define MAX_SHOWING 5
+
+ #define OVERLAY_EVENT_NULL 0
+ #define OVERLAY_EVENT_SHOW 1
+--- 32,40 ----
+ #define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) { (_cb), (_cr), (_y) }
+ #endif
+
+! #define MAX_OBJECTS 3
+! #define MAX_EVENTS 3
+! #define MAX_SHOWING 3
+
+ #define OVERLAY_EVENT_NULL 0
+ #define OVERLAY_EVENT_SHOW 1
+diff -rcN -x Makefile.in -x POTFILES -x libxine.pc -x relchk.sh -x xine-config -x dsputil_arm.c_dilb -x jrevdct_arm.S_dilb -x libdha -x vidix -x demux_ogg.c_before_test_song_length -x config.log -x config.status -x autom4te.cache -x aclocal.m4 -x xine.c_orig -x libtool-nofpic -x config.sub -x config.guess -x configure -x SlackBuild -x stamp-h1 -x config.h -x libtool -x ltmain.sh xine-lib-1-beta12_orig/src/xine-engine/xine.c xine-lib-1-beta12/src/xine-engine/xine.c
+*** xine-lib-1-beta12_orig/src/xine-engine/xine.c Sat Apr 26 10:43:33 2003
+--- xine-lib-1-beta12/src/xine-engine/xine.c Sat Aug 9 16:44:20 2003
+***************
+*** 1209,1214 ****
+--- 1209,1218 ----
+ static char *demux_strategies[] = {"default", "reverse", "content",
+ "extension", NULL};
+
++ /* specific information: who did compile that: */
++ printf("\n/!\\ This is xine-lib 1.0beta12 compiled by buildroot and patched by Dilb (don't forget to give this information when reporting a bug) /!\\\n");
++
++
+ /* initialize color conversion tables and functions */
+ init_yuv_conversion();
+
diff --git a/packages/libxine/libxine-1.0.0-beta12/libvorbis.patch b/packages/libxine/libxine-1.0.0-beta12/libvorbis.patch
index e69de29bb2..e206a0b742 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libvorbis.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libvorbis.patch
@@ -0,0 +1,11 @@
+--- xine-lib/src/libvorbis/xine_decoder.c 2003-08-10 14:48:38.000000000 +0200
++++ xine-lib/src/libvorbis/xine_decoder.c.patched 2003-08-10 14:48:17.000000000 +0200
+@@ -34,7 +34,7 @@
+ #include "buffer.h"
+
+ #include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+
+ #define MAX_NUM_SAMPLES 4096
+
diff --git a/packages/libxine/libxine-1.0.0-beta12/libxine-autoconf.patch b/packages/libxine/libxine-1.0.0-beta12/libxine-autoconf.patch
index e69de29bb2..3a5ad89387 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libxine-autoconf.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libxine-autoconf.patch
@@ -0,0 +1,180 @@
+--- configure.ac.orig 2003-02-12 12:43:36.000000000 +0100
++++ configure.ac 2003-02-12 12:44:24.000000000 +0100
+@@ -281,10 +281,26 @@ dnl ------------------------------------
+ dnl zlib
+ dnl ---------------------------------------------
+ dnl Test for libz
++AC_ARG_WITH(zlib-path,[ --with-xlib-path=path Where zlib is installed],
++ zlib_path="$withval", zlib_path="")
++
++save_LDFLAGS="$LDFLAGS"
++save_CPPFLAGS="$CPPFLAGS"
++if test ! -z "$zlib_path"; then
++ LDFLAGS="$LDFLAGS -L$zlib_path/lib"
++ CPPFLAGS="$CPPFLAGS -I$zlib_path/include"
++ CFLAGS="$CFLAGS -I$zlib_path/include"
++fi
+ AC_CHECK_LIB(z, gzsetparams,
+ [ AC_CHECK_HEADER(zlib.h,
+ have_zlib=yes
+ ZLIB_LIBS="-lz",)], AC_MSG_ERROR(zlib needed))
++LDFLAGS="$save_LDFLAGS"
++CPPFLAGS="$save_CPPFLAGS"
++
++if test ! -z "$zlib_path"; then
++ ZLIB_LIBS="-L$zlib_path/lib $ZLIB_LIBS"
++fi
+
+ AM_CONDITIONAL(HAVE_ZLIB, [test x"$have_zlib" = "xyes"])
+ AC_SUBST(ZLIB_LIBS)
+@@ -437,8 +453,8 @@ AM_CONDITIONAL(HAVE_XINERAMA, test x$ac_
+ dnl ---------------------------------------------
+ dnl Checks for Ascii-Art library
+ dnl ---------------------------------------------
+-AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_AA, test x$no_aalib != "xyes")
++dnl AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
++AM_CONDITIONAL(HAVE_AA, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl Check solaris framebuffer device support
+@@ -450,7 +466,7 @@ dnl ------------------------------------
+ dnl Check linux framebuffer device support
+ dnl ---------------------------------------------
+ AC_CHECK_HEADER(linux/fb.h, have_fb=yes,)
+-AM_CONDITIONAL(HAVE_FB, [test x"$have_fb" = "xyes"])
++AM_CONDITIONAL(HAVE_FB, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl Find pkg-config
+@@ -480,15 +496,16 @@ fi
+
+ AC_SUBST(DIRECTFB_CFLAGS)
+ AC_SUBST(DIRECTFB_LIBS)
+-AM_CONDITIONAL(HAVE_DIRECTFB, test x$have_directfb = "xyes" )
++AM_CONDITIONAL(HAVE_DIRECTFB, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl check for SDL
+ dnl ---------------------------------------------
+-AM_PATH_SDL(1.1.5,
+- AC_DEFINE(HAVE_SDL,1,[Define this if you have SDL library installed]),
+- [])
+-AM_CONDITIONAL(HAVE_SDL, [test x"$no_sdl" != x"yes"])
++dnl AM_PATH_SDL(1.1.5,
++dnl AC_DEFINE(HAVE_SDL,1,[Define this if you have SDL library installed]),
++dnl [])
++AC_DEFINE(HAVE_SDL,0,[Define this if you have SDL library installed])
++AM_CONDITIONAL(HAVE_SDL, /bin/false)
+
+
+ dnl ---------------------------------------------
+@@ -574,15 +591,17 @@ AM_CONDITIONAL(HAVE_VORBIS, [test x"$no_
+ dnl ---------------------------------------------
+ dnl check for libFLAC
+ dnl ---------------------------------------------
+-AM_PATH_LIBFLAC([],
+- AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
++dnl AM_PATH_LIBFLAC([],
++dnl AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
++dnl AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
++AM_CONDITIONAL(HAVE_FLAC, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl XviD libs.
+ dnl ---------------------------------------------
+-AM_PATH_XVID([], AC_MSG_RESULT([*** All XviD dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_XVID, [test x"$no_xvid" != "xyes"])
++dnl AM_PATH_XVID([], AC_MSG_RESULT([*** All XviD dependent parts will be disabled ***]))
++dnl AM_CONDITIONAL(HAVE_XVID, [test x"$no_xvid" != "xyes"])
++AM_CONDITIONAL(HAVE_XVID, /bin/false)
+
+
+ dnl ---------------------------------------------
+@@ -635,18 +654,21 @@ AM_CONDITIONAL(HAVE_ALSA09, test x"$have
+ dnl ---------------------------------------------
+ dnl ESD support
+ dnl ---------------------------------------------
+-AM_PATH_ESD(0.2.8,
+- AC_DEFINE(HAVE_ESD,1,[Define this if you have ESD (libesd) installed]),
+- AC_MSG_RESULT(*** All of ESD dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ESD, test x"$no_esd" != "xyes")
++dnl AM_PATH_ESD(0.2.8,
++dnl AC_DEFINE(HAVE_ESD,1,[Define this if you have ESD (libesd) installed]),
++dnl AC_MSG_RESULT(*** All of ESD dependent parts will be disabled ***))
++AC_DEFINE(HAVE_ESD,0,[Define this if you have ESD (libesd) installed]),
++AM_CONDITIONAL(HAVE_ESD, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl ARTS support
+ dnl ---------------------------------------------
+-AM_PATH_ARTS(0.9.5,
+- AC_DEFINE(HAVE_ARTS,1,[Define this if you have ARTS (libartsc) installed]),
+- AC_MSG_RESULT(*** All of ARTS dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ARTS, test x"$no_arts" != "xyes")
++dnl AM_PATH_ARTS(0.9.5,
++dnl AC_DEFINE(HAVE_ARTS,1,[Define this if you have ARTS (libartsc) installed]),
++dnl AC_MSG_RESULT(*** All of ARTS dependent parts will be disabled ***))
++dnl AM_CONDITIONAL(HAVE_ARTS, test x"$no_arts" != "xyes")
++AC_DEFINE(HAVE_ARTS,0,[blubb],[])
++AM_CONDITIONAL(HAVE_ARTS, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl gnome-vfs support
+@@ -700,26 +722,30 @@ AC_SUBST(KSTAT_LIBS)
+ dnl ---------------------------------------------
+ dnl cdrom ioctls
+ dnl ---------------------------------------------
+-AC_CHECK_HEADERS(sys/cdio.h linux/cdrom.h)
+-AM_CHECK_CDROM_IOCTLS(
+- [AC_DEFINE(HAVE_CDROM_IOCTLS,1,[Define this if you have CDROM ioctls])],
+- [AC_MSG_RESULT([*** DVD and (S)VCD support will be disabled ***])])
+-AM_CONDITIONAL(HAVE_CDROM_IOCTLS, [test x"$have_cdrom_ioctls" = "xyes"])
++dnl AC_CHECK_HEADERS(sys/cdio.h linux/cdrom.h)
++dnl AM_CHECK_CDROM_IOCTLS(
++dnl [AC_DEFINE(HAVE_CDROM_IOCTLS,1,[Define this if you have CDROM ioctls])],
++dnl [AC_MSG_RESULT([*** DVD and (S)VCD support will be disabled ***])])
++dnl AM_CONDITIONAL(HAVE_CDROM_IOCTLS, [test x"$have_cdrom_ioctls" = "xyes"])
++AC_DEFINE([HAVE_CDROM_IOCTLS],0,[][blah])
++AM_CONDITIONAL(HAVE_CDROM_IOCTLS, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl check for a usable version of libdvdnav
+ dnl ---------------------------------------------
+-AC_ARG_WITH(included-dvdnav,[ --with-included-dvdnav Use included dvdnav library [recommended]],
+- included_dvdnav="yes"; no_dvdnav="yes", included_dvdnav="no")
+-
+-if test x"$included_dvdnav" = "xno"; then
+- AM_PATH_DVDNAV(0.1.4,
+- AC_DEFINE(HAVE_DVDNAV,1,[Define this if you have a suitable version of libdvdnav]),
+- [AC_MSG_RESULT([*** no usable version of libdvdnav found, using internal copy ***])])
+-else
+- AC_MSG_RESULT([Use included DVDNAV/DVDREAD support])
+-fi
+-AM_CONDITIONAL(HAVE_DVDNAV, [test x"$no_dvdnav" != "xyes"])
++dnl AC_ARG_WITH(included-dvdnav,[ --with-included-dvdnav Use included dvdnav library [recommended]],
++dnl included_dvdnav="yes"; no_dvdnav="yes", included_dvdnav="no")
++dnl
++dnl if test x"$included_dvdnav" = "xno"; then
++dnl AM_PATH_DVDNAV(0.1.4,
++dnl AC_DEFINE(HAVE_DVDNAV,1,[Define this if you have a suitable version of libdvdnav]),
++dnl [AC_MSG_RESULT([*** no usable version of libdvdnav found, using internal copy ***])])
++dnl else
++dnl AC_MSG_RESULT([Use included DVDNAV/DVDREAD support])
++dnl fi
++dnl AM_CONDITIONAL(HAVE_DVDNAV, [test x"$no_dvdnav" != "xyes"])
++AC_DEFINE(HAVE_DVDNAV,0,[blah])
++AM_CONDITIONAL(HAVE_DVDNAV, /bin/false)
+
+ dnl ---------------------------------------------
+ dnl ASF build can be optional
+@@ -1050,7 +1076,7 @@ case "$host_or_hostalias" in
+ AC_DEFINE_UNQUOTED(FPM_DEFAULT,,[Define to select libmad fixed point arithmetic implementation])
+ ;;
+
+- armv4l-*-linux*)
++ arm-*-linux*)
+ CFLAGS="$CFLAGS -O2 -fsigned-char -ffast-math -mcpu=strongarm1100 -fomit-frame-pointer -fthread-jumps -fregmove"
+ dnl CFLAGS="$CFLAGS -O1 -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2 -finline-functions -fsigned-char -fomit-frame-pointer -march=armv4 -mtune=strongarm"
+ DEBUG_CFLAGS="$DEBUG_CFLAGS -O2"
diff --git a/packages/libxine/libxine-1.0.0-beta12/libxine-cut-memusage.patch b/packages/libxine/libxine-1.0.0-beta12/libxine-cut-memusage.patch
index e69de29bb2..e4deadad1f 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libxine-cut-memusage.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libxine-cut-memusage.patch
@@ -0,0 +1,52 @@
+Copyright (C) 2002, Fred Boulay <dilb@handhelds.org>
+Licensed under GPL v2
+
+--- src/xine-engine/audio_out.c.orig 2002-12-18 02:42:43.000000000 +0100
++++ src/xine-engine/audio_out.c 2002-12-18 02:43:19.000000000 +0100
+@@ -75,10 +75,10 @@
+ #define LOG
+ */
+
+-#define NUM_AUDIO_BUFFERS 32
+-#define AUDIO_BUF_SIZE 32768
++#define NUM_AUDIO_BUFFERS 16
++#define AUDIO_BUF_SIZE 8192
+
+-#define ZERO_BUF_SIZE 5000
++#define ZERO_BUF_SIZE 2048
+
+ /* By adding gap errors (difference between reported and expected
+ * sound card clock) into metronom's vpts_offset we can use its
+--- src/xine-engine/video_decoder.c.orig 2003-01-14 01:10:29.000000000 +0100
++++ src/xine-engine/video_decoder.c 2003-02-12 12:10:33.000000000 +0100
+@@ -373,7 +373,7 @@ void video_decoder_init (xine_stream_t *
+ * We provide buffers of 8k size instead of 2k for demuxers sending
+ * larger chunks.
+ */
+- stream->video_fifo = fifo_buffer_new (500, 8192);
++ stream->video_fifo = fifo_buffer_new (250, 4096);
+ stream->spu_track_map_entries = 0;
+
+ pthread_attr_init(&pth_attrs);
+--- src/xine-engine/video_overlay.h.orig 2002-12-18 02:44:08.000000000 +0100
++++ src/xine-engine/video_overlay.h 2002-12-18 02:44:21.000000000 +0100
+@@ -32,7 +32,7 @@
+ #define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) { (_cb), (_cr), (_y) }
+ #endif
+
+-#define MAX_OBJECTS 50
++#define MAX_OBJECTS 5
+ #define MAX_EVENTS 50
+ #define MAX_SHOWING 5
+
+--- src/xine-engine/audio_decoder.c.orig 2002-12-19 17:16:11.000000000 +0100
++++ src/xine-engine/audio_decoder.c 2002-12-19 17:16:25.000000000 +0100
+@@ -322,7 +322,7 @@ void audio_decoder_init (xine_stream_t *
+ * We provide buffers of 8k size instead of 2k for demuxers sending
+ * larger chunks.
+ */
+- stream->audio_fifo = fifo_buffer_new (230, 8192);
++ stream->audio_fifo = fifo_buffer_new (100, 8192);
+ stream->audio_channel_user = -1;
+ stream->audio_channel_auto = 0;
+ stream->audio_track_map_entries = 0;
diff --git a/packages/libxine/libxine-1.0.0-beta12/libxine-ffmpeg-enable-arm-modules.patch b/packages/libxine/libxine-1.0.0-beta12/libxine-ffmpeg-enable-arm-modules.patch
index e69de29bb2..222235ea44 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libxine-ffmpeg-enable-arm-modules.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libxine-ffmpeg-enable-arm-modules.patch
@@ -0,0 +1,19 @@
+Copyright (C) 2002, Fred Boulay <dilb@handhelds.org>
+Licensed under GPL v2
+
+--- src/libffmpeg/libavcodec/armv4l/Makefile.am.orig 2002-12-17 10:27:00.000000000 +0100
++++ src/libffmpeg/libavcodec/armv4l/Makefile.am 2002-12-17 10:27:08.000000000 +0100
+@@ -13,10 +13,9 @@ libavcodec_armv4l_src = dsputil_arm.c jr
+ libavcodec_armv4l_dummy = libavcodec_armv4l_dummy.c
+ EXTRA_DIST = $(libavcodec_armv4l_src) $(libavcodec_armv4l_dummy)
+
+-#if HAVE_ARMV4L
+-#armv4l_modules = $(libavcodec_armv4l_src)
+-#endif
+-armv4l_modules =
++if HAVE_ARMV4L
++armv4l_modules = $(libavcodec_armv4l_src)
++endif
+
+ libavcodec_armv4l_la_SOURCES = $(armv4l_modules) $(libavcodec_armv4l_dummy)
+
diff --git a/packages/libxine/libxine-1.0.0-beta12/libxine-libavcodec.patch b/packages/libxine/libxine-1.0.0-beta12/libxine-libavcodec.patch
index e69de29bb2..287c7b6fd7 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libxine-libavcodec.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libxine-libavcodec.patch
@@ -0,0 +1,941 @@
+Copyright (C) 2002, Fred Boulay <dilb@handhelds.org>
+Licensed under GPL v2
+
+--- src/libffmpeg/libavcodec/Makefile.am.orig 2002-11-04 01:31:49.000000000 +0100
++++ src/libffmpeg/libavcodec/Makefile.am 2002-12-19 17:00:59.000000000 +0100
+@@ -6,9 +6,16 @@ SUBDIRS = armv4l i386 mlib alpha
+
+ EXTRA_DIST = fdctref.c imgresample.c
+
+-AM_CFLAGS = $(LIBFFMPEG_CFLAGS)
++#AM_CFLAGS = $(LIBFFMPEG_CFLAGS)
+ ASFLAGS =
+
++if HAVE_ARMV4L
++AM_CFLAGS = -DARCH_ARMV4L $(LIBFFMPEG_CFLAGS)
++else
++AM_CFLAGS = $(LIBFFMPEG_CFLAGS)
++endif
++
++
+ LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
+
+ noinst_LTLIBRARIES = libavcodec.la
+--- src/libffmpeg/libavcodec/dsputil.h.orig 2002-12-19 17:02:39.000000000 +0100
++++ src/libffmpeg/libavcodec/dsputil.h 2002-12-19 17:03:15.000000000 +0100
+@@ -35,6 +35,7 @@ void fdct_ifast (DCTELEM *data);
+ void ff_jpeg_fdct_islow (DCTELEM *data);
+
+ void j_rev_dct (DCTELEM *data);
++void j_rev_dct_ARM ( DCTELEM *data );
+
+ void ff_fdct_mmx(DCTELEM *block);
+
+--- src/libffmpeg/libavcodec/mpegvideo.c.orig 2002-12-19 17:03:28.000000000 +0100
++++ src/libffmpeg/libavcodec/mpegvideo.c 2002-12-19 17:05:50.000000000 +0100
+@@ -186,6 +186,23 @@ static void ff_jref_idct_add(UINT8 *dest
+ ff_add_pixels_clamped(block, dest, line_size);
+ }
+
++#ifdef ARCH_ARMV4L
++
++static void ff_jref_idct_put_armv4l(UINT8 *dest, int line_size, DCTELEM *block)
++{
++// fprintf(stderr, "src/libffmpeg/libavcodec/mpegvideo.c : ff_jref_idct_put_armv4l utilisant l'iDCT ARMv4l en ASM\n");
++ j_rev_dct_ARM (block);
++ ff_put_pixels_clamped(block, dest, line_size);
++}
++static void ff_jref_idct_add_armv4l(UINT8 *dest, int line_size, DCTELEM *block)
++{
++// fprintf(stderr, "src/libffmpeg/libavcodec/mpegvideo.c : ff_jref_idct_add_armv4l utilisant l'iDCT ARMv4l en ASM\n");
++ j_rev_dct_ARM (block);
++ ff_add_pixels_clamped(block, dest, line_size);
++}
++
++#endif
++
+ /* init common dct for both encoder and decoder */
+ int DCT_common_init(MpegEncContext *s)
+ {
+@@ -227,7 +244,11 @@ int DCT_common_init(MpegEncContext *s)
+ MPV_common_init_mmi(s);
+ #endif
+ #ifdef ARCH_ARMV4L
+- MPV_common_init_armv4l(s);
++ /* MPV_common_init_armv4l(s); */
++ /* Methode bourrine, mais bon, c'est pour pas trop se prendre la tete a tout changer ce soir, a ameliorer plus tard*/
++ s->idct_put= ff_jref_idct_put_armv4l;
++ s->idct_add= ff_jref_idct_add_armv4l;
++ s->idct_permutation_type= FF_NO_IDCT_PERM;
+ #endif
+ #ifdef ARCH_POWERPC
+ MPV_common_init_ppc(s);
+--- src/libffmpeg/libavcodec/armv4l/jrevdct_arm.S 2001-12-27 21:02:23.000000000 +0100
++++ src/libffmpeg/libavcodec/armv4l/jrevdct_arm.S 2002-12-17 23:38:13.000000000 +0100
+@@ -1,386 +1,491 @@
+ /*
+- C-like prototype :
+- void j_rev_dct_ARM(DCTBLOCK data)
++ * jrevdct_arm.S
++ * Copyright (C) 2002 Frederic 'dilb' Boulay.
++ * All Rights Reserved.
++ *
++ * Author: Frederic Boulay <dilb@handhelds.org>
++ *
++ * you can redistribute this file and/or modify
++ * it under the terms of the GNU General Public License (version 2)
++ * as published by the Free Software Foundation.
++ *
++ * This file is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ *
++ * The function defined in this file, is derived from the simple_idct function from
++ * the libavcodec library part of the ffmpeg project.
++ */
+
+- With DCTBLOCK being a pointer to an array of 64 'signed shorts'
+
+- Copyright (c) 2001 Lionel Ulmer (lionel.ulmer@free.fr / bbrox@bbrox.org)
+
+- Permission is hereby granted, free of charge, to any person obtaining a copy
+- of this software and associated documentation files (the "Software"), to deal
+- in the Software without restriction, including without limitation the rights
+- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+- copies of the Software, and to permit persons to whom the Software is
+- furnished to do so, subject to the following conditions:
+-
+- The above copyright notice and this permission notice shall be included in
+- all copies or substantial portions of the Software.
+-
+- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-
+-*/
+-#define FIX_0_298631336 2446
+-#define FIX_0_541196100 4433
+-#define FIX_0_765366865 6270
+-#define FIX_1_175875602 9633
+-#define FIX_1_501321110 12299
+-#define FIX_2_053119869 16819
+-#define FIX_3_072711026 25172
+-#define FIX_M_0_390180644 -3196
+-#define FIX_M_0_899976223 -7373
+-#define FIX_M_1_847759065 -15137
+-#define FIX_M_1_961570560 -16069
+-#define FIX_M_2_562915447 -20995
+-#define FIX_0xFFFF 0xFFFF
+-
+-#define FIX_0_298631336_ID 0
+-#define FIX_0_541196100_ID 4
+-#define FIX_0_765366865_ID 8
+-#define FIX_1_175875602_ID 12
+-#define FIX_1_501321110_ID 16
+-#define FIX_2_053119869_ID 20
+-#define FIX_3_072711026_ID 24
+-#define FIX_M_0_390180644_ID 28
+-#define FIX_M_0_899976223_ID 32
+-#define FIX_M_1_847759065_ID 36
+-#define FIX_M_1_961570560_ID 40
+-#define FIX_M_2_562915447_ID 44
+-#define FIX_0xFFFF_ID 48
++
++/* useful constants for the algorithm, they are save in __constant_ptr__ at the end of the source code.*/
++#define W1 22725
++#define W2 21407
++#define W3 19266
++#define W4 16383
++#define W5 12873
++#define W6 8867
++#define W7 4520
++#define MASK_MSHW 0xFFFF0000
++
++/* offsets of the constants in the vector*/
++#define offW1 0
++#define offW2 4
++#define offW3 8
++#define offW4 12
++#define offW5 16
++#define offW6 20
++#define offW7 24
++#define offMASK_MSHW 28
++
++#define ROW_SHIFT 11
++#define ROW_SHIFT2MSHW (16-11)
++#define COL_SHIFT 20
++#define ROW_SHIFTED_1 1024 /* 1<< (ROW_SHIFT-1)*/
++#define COL_SHIFTED_1 524288 /* 1<< (COL_SHIFT-1)*/
++
++
+ .text
+ .align
+-
+ .global j_rev_dct_ARM
+-j_rev_dct_ARM:
+- stmdb sp!, { r4 - r12, lr } @ all callee saved regs
+
+- sub sp, sp, #4 @ reserve some space on the stack
+- str r0, [ sp ] @ save the DCT pointer to the stack
++j_rev_dct_ARM:
++simple_idct3:
++simple_idct_ARM:
++ @@ void simple_idct_ARM(int16_t *block)
++ @@ save stack for reg needed (take all of them),
++ @@ R0-R3 are scratch regs, so no need to save them, but R0 contains the pointer to block
++ @@ so it must not be overwritten, if it is not saved!!
++ @@ R12 is another scratch register, so it should not be saved too
++ @@ save all registers
++ stmfd sp!, {r4-r11, r14} @ R14 is also called LR
++ @@ at this point, R0=block, other registers are free.
++ add r14, r0, #112 @ R14=&block[8*7], better start from the last row, and decrease the value until row=0, i.e. R12=block.
++ add r12, pc, #(__constant_ptr__-.-8) @ R12=__constant_ptr__, the vector containing the constants, probably not necessary to reserve a register for it
++ @@ add 2 temporary variables in the stack: R0 and R14
++ sub sp, sp, #8 @ allow 2 local variables
++ str r0, [sp, #0] @ save block in sp[0]
++ @@ stack status
++ @@ sp+4 free
++ @@ sp+0 R0 (block)
++
++
++ @@ at this point, R0=block, R14=&block[56], R12=__const_ptr_, R1-R11 free
++
++
++__row_loop:
++ @@ read the row and check if it is null, almost null, or not, according to strongarm specs, it is not necessary to optimise ldr accesses (i.e. split 32bits in 2 16bits words), at least it gives more usable registers :)
++ ldr r1, [r14, #0] @ R1=(int32)(R12)[0]=ROWr32[0] (relative row cast to a 32b pointer)
++ ldr r2, [r14, #4] @ R2=(int32)(R12)[1]=ROWr32[1]
++ ldr r3, [r14, #8] @ R3=ROWr32[2]
++ ldr r4, [r14, #12] @ R4=ROWr32[3]
++ @@ check if the words are null, if all of them are null, then proceed with next row (branch __end_row_loop),
++ @@ if ROWr16[0] is the only one not null, then proceed with this special case (branch __almost_empty_row)
++ @@ else follow the complete algorithm.
++ @@ at this point, R0=block, R14=&block[n], R12=__const_ptr_, R1=ROWr32[0], R2=ROWr32[1],
++ @@ R3=ROWr32[2], R4=ROWr32[3], R5-R11 free
++ orr r5, r4, r3 @ R5=R4 | R3
++ orr r5, r5, r2 @ R5=R4 | R3 | R2
++ orrs r6, r5, r1 @ Test R5 | R1 (the aim is to check if everything is null)
++ beq __end_row_loop
++ mov r7, r1, asr #16 @ R7=R1>>16=ROWr16[1] (evaluate it now, as it could be useful later)
++ ldrsh r6, [r14, #0] @ R6=ROWr16[0]
++ orrs r5, r5, r7 @ R5=R4 | R3 | R2 | R7
++ beq __almost_empty_row
++
++__b_evaluation:
++ @@ at this point, R0=block (temp), R1(free), R2=ROWr32[1], R3=ROWr32[2], R4=ROWr32[3],
++ @@ R5=(temp), R6=ROWr16[0], R7=ROWr16[1], R8-R11 free,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ to save some registers/calls, proceed with b0-b3 first, followed by a0-a3
++
++ @@ MUL16(b0, W1, row[1]);
++ @@ MUL16(b1, W3, row[1]);
++ @@ MUL16(b2, W5, row[1]);
++ @@ MUL16(b3, W7, row[1]);
++ @@ MAC16(b0, W3, row[3]);
++ @@ MAC16(b1, -W7, row[3]);
++ @@ MAC16(b2, -W1, row[3]);
++ @@ MAC16(b3, -W5, row[3]);
++ ldr r8, [r12, #offW1] @ R8=W1
++ mov r2, r2, asr #16 @ R2=ROWr16[3]
++ mul r0, r8, r7 @ R0=W1*ROWr16[1]=b0 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r9, [r12, #offW3] @ R9=W3
++ ldr r10, [r12, #offW5] @ R10=W5
++ mul r1, r9, r7 @ R1=W3*ROWr16[1]=b1 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r11, [r12, #offW7] @ R11=W7
++ mul r5, r10, r7 @ R5=W5*ROWr16[1]=b2 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ mul r7, r11, r7 @ R7=W7*ROWr16[1]=b3 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ teq r2, #0 @ if null avoid muls
++ mlane r0, r9, r2, r0 @ R0+=W3*ROWr16[3]=b0 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ rsbne r2, r2, #0 @ R2=-ROWr16[3]
++ mlane r1, r11, r2, r1 @ R1-=W7*ROWr16[3]=b1 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r5, r8, r2, r5 @ R5-=W1*ROWr16[3]=b2 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r7, r10, r2, r7 @ R7-=W5*ROWr16[3]=b3 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3=ROWr32[2], R4=ROWr32[3],
++ @@ R5=b2, R6=ROWr16[0], R7=b3, R8=W1, R9=W3, R10=W5, R11=W7,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ temp = ((uint32_t*)row)[2] | ((uint32_t*)row)[3];
++ @@ if (temp != 0) {}
++ orrs r2, r3, r4 @ R2=ROWr32[2] | ROWr32[3]
++ beq __end_b_evaluation
++
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3=ROWr32[2], R4=ROWr32[3],
++ @@ R5=b2, R6=ROWr16[0], R7=b3, R8=W1, R9=W3, R10=W5, R11=W7,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ MAC16(b0, W5, row[5]);
++ @@ MAC16(b2, W7, row[5]);
++ @@ MAC16(b3, W3, row[5]);
++ @@ MAC16(b1, -W1, row[5]);
++ @@ MAC16(b0, W7, row[7]);
++ @@ MAC16(b2, W3, row[7]);
++ @@ MAC16(b3, -W1, row[7]);
++ @@ MAC16(b1, -W5, row[7]);
++ mov r3, r3, asr #16 @ R3=ROWr16[5]
++ teq r3, #0 @ if null avoid muls
++ mlane r0, r10, r3, r0 @ R0+=W5*ROWr16[5]=b0
++ mov r4, r4, asr #16 @ R4=ROWr16[7]
++ mlane r5, r11, r3, r5 @ R5+=W7*ROWr16[5]=b2
++ mlane r7, r9, r3, r7 @ R7+=W3*ROWr16[5]=b3
++ rsbne r3, r3, #0 @ R3=-ROWr16[5]
++ mlane r1, r8, r3, r1 @ R7-=W1*ROWr16[5]=b1
++ @@ R3 is free now
++ teq r4, #0 @ if null avoid muls
++ mlane r0, r11, r4, r0 @ R0+=W7*ROWr16[7]=b0
++ mlane r5, r9, r4, r5 @ R5+=W3*ROWr16[7]=b2
++ rsbne r4, r4, #0 @ R4=-ROWr16[7]
++ mlane r7, r8, r4, r7 @ R7-=W1*ROWr16[7]=b3
++ mlane r1, r10, r4, r1 @ R1-=W5*ROWr16[7]=b1
++ @@ R4 is free now
++__end_b_evaluation:
++ @@ at this point, R0=b0, R1=b1, R2=ROWr32[2] | ROWr32[3] (tmp), R3 (free), R4 (free),
++ @@ R5=b2, R6=ROWr16[0], R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++
++__a_evaluation:
++ @@ a0 = (W4 * row[0]) + (1 << (ROW_SHIFT - 1));
++ @@ a1 = a0 + W6 * row[2];
++ @@ a2 = a0 - W6 * row[2];
++ @@ a3 = a0 - W2 * row[2];
++ @@ a0 = a0 + W2 * row[2];
++ ldr r9, [r12, #offW4] @ R9=W4
++ mul r6, r9, r6 @ R6=W4*ROWr16[0]
++ ldr r10, [r12, #offW6] @ R10=W6
++ ldrsh r4, [r14, #4] @ R4=ROWr16[2] (a3 not defined yet)
++ add r6, r6, #ROW_SHIFTED_1 @ R6=W4*ROWr16[0] + 1<<(ROW_SHIFT-1) (a0)
++
++ mul r11, r10, r4 @ R11=W6*ROWr16[2]
++ ldr r8, [r12, #offW2] @ R8=W2
++ sub r3, r6, r11 @ R3=a0-W6*ROWr16[2] (a2)
++ @@ temp = ((uint32_t*)row)[2] | ((uint32_t*)row)[3];
++ @@ if (temp != 0) {}
++ teq r2, #0
++ beq __end_bef_a_evaluation
++
++ add r2, r6, r11 @ R2=a0+W6*ROWr16[2] (a1)
++ mul r11, r8, r4 @ R11=W2*ROWr16[2]
++ sub r4, r6, r11 @ R4=a0-W2*ROWr16[2] (a3)
++ add r6, r6, r11 @ R6=a0+W2*ROWr16[2] (a0)
++
++
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8=W2, R9=W4, R10=W6, R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++
++
++ @@ a0 += W4*row[4]
++ @@ a1 -= W4*row[4]
++ @@ a2 -= W4*row[4]
++ @@ a3 += W4*row[4]
++ ldrsh r11, [r14, #8] @ R11=ROWr16[4]
++ teq r11, #0 @ if null avoid muls
++ mulne r11, r9, r11 @ R11=W4*ROWr16[4]
++ @@ R9 is free now
++ ldrsh r9, [r14, #12] @ R9=ROWr16[6]
++ addne r6, r6, r11 @ R6+=W4*ROWr16[4] (a0)
++ subne r2, r2, r11 @ R2-=W4*ROWr16[4] (a1)
++ subne r3, r3, r11 @ R3-=W4*ROWr16[4] (a2)
++ addne r4, r4, r11 @ R4+=W4*ROWr16[4] (a3)
++ @@ W6 alone is no more useful, save W2*ROWr16[6] in it instead
++ teq r9, #0 @ if null avoid muls
++ mulne r11, r10, r9 @ R11=W6*ROWr16[6]
++ addne r6, r6, r11 @ R6+=W6*ROWr16[6] (a0)
++ mulne r10, r8, r9 @ R10=W2*ROWr16[6]
++ @@ a0 += W6*row[6];
++ @@ a3 -= W6*row[6];
++ @@ a1 -= W2*row[6];
++ @@ a2 += W2*row[6];
++ subne r4, r4, r11 @ R4-=W6*ROWr16[6] (a3)
++ subne r2, r2, r10 @ R2-=W2*ROWr16[6] (a1)
++ addne r3, r3, r10 @ R3+=W2*ROWr16[6] (a2)
++
++__end_a_evaluation:
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ row[0] = (a0 + b0) >> ROW_SHIFT;
++ @@ row[1] = (a1 + b1) >> ROW_SHIFT;
++ @@ row[2] = (a2 + b2) >> ROW_SHIFT;
++ @@ row[3] = (a3 + b3) >> ROW_SHIFT;
++ @@ row[4] = (a3 - b3) >> ROW_SHIFT;
++ @@ row[5] = (a2 - b2) >> ROW_SHIFT;
++ @@ row[6] = (a1 - b1) >> ROW_SHIFT;
++ @@ row[7] = (a0 - b0) >> ROW_SHIFT;
++ add r8, r6, r0 @ R8=a0+b0
++ add r9, r2, r1 @ R9=a1+b1
++ @@ put 2 16 bits half-words in a 32bits word
++ @@ ROWr32[0]=ROWr16[0] | (ROWr16[1]<<16) (only Little Endian compliant then!!!)
++ ldr r10, [r12, #offMASK_MSHW] @ R10=0xFFFF0000
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a1+b1)<<5)
++ mvn r11, r10 @ R11= NOT R10= 0x0000FFFF
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a0+b0)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #0]
++
++ add r8, r3, r5 @ R8=a2+b2
++ add r9, r4, r7 @ R9=a3+b3
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a3+b3)<<5)
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a2+b2)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #4]
++
++ sub r8, r4, r7 @ R8=a3-b3
++ sub r9, r3, r5 @ R9=a2-b2
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a2-b2)<<5)
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a3-b3)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #8]
++
++ sub r8, r2, r1 @ R8=a1-b1
++ sub r9, r6, r0 @ R9=a0-b0
++ and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a0-b0)<<5)
++ and r8, r11, r8, asr #ROW_SHIFT @ R8=0x0000FFFF & ((a1-b1)>>11)
++ orr r8, r8, r9
++ str r8, [r14, #12]
++
++ bal __end_row_loop
++
++__almost_empty_row:
++ @@ the row was empty, except ROWr16[0], now, management of this special case
++ @@ at this point, R0=block, R14=&block[n], R12=__const_ptr_, R1=ROWr32[0], R2=ROWr32[1],
++ @@ R3=ROWr32[2], R4=ROWr32[3], R5=(temp), R6=ROWr16[0], R7=ROWr16[1],
++ @@ R8=0xFFFF (temp), R9-R11 free
++ mov r8, #0x10000 @ R8=0xFFFF (2 steps needed!) it saves a ldr call (because of delay run).
++ sub r8, r8, #1 @ R8 is now ready.
++ and r5, r8, r6, lsl #3 @ R5=R8 & (R6<<3)= (ROWr16[0]<<3) & 0xFFFF
++ orr r5, r5, r5, lsl #16 @ R5=R5 | (R5<<16)
++ str r5, [r14, #0] @ R14[0]=ROWr32[0]=R5
++ str r5, [r14, #4] @ R14[4]=ROWr32[1]=R5
++ str r5, [r14, #8] @ R14[8]=ROWr32[2]=R5
++ str r5, [r14, #12] @ R14[12]=ROWr32[3]=R5
++
++__end_row_loop:
++ @@ at this point, R0-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ ldr r0, [sp, #0] @ R0=block
++ teq r0, r14 @ compare current &block[8*n] to block, when block is reached, the loop is finished.
++ sub r14, r14, #16
++ bne __row_loop
++
++
++
++ @@ at this point, R0=block, R1-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ add r14, r0, #14 @ R14=&block[7], better start from the last col, and decrease the value until col=0, i.e. R14=block.
++__col_loop:
++
++__b_evaluation2:
++ @@ at this point, R0=block (temp), R1-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ proceed with b0-b3 first, followed by a0-a3
++ @@ MUL16(b0, W1, col[8x1]);
++ @@ MUL16(b1, W3, col[8x1]);
++ @@ MUL16(b2, W5, col[8x1]);
++ @@ MUL16(b3, W7, col[8x1]);
++ @@ MAC16(b0, W3, col[8x3]);
++ @@ MAC16(b1, -W7, col[8x3]);
++ @@ MAC16(b2, -W1, col[8x3]);
++ @@ MAC16(b3, -W5, col[8x3]);
++ ldr r8, [r12, #offW1] @ R8=W1
++ ldrsh r7, [r14, #16]
++ mul r0, r8, r7 @ R0=W1*ROWr16[1]=b0 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r9, [r12, #offW3] @ R9=W3
++ ldr r10, [r12, #offW5] @ R10=W5
++ mul r1, r9, r7 @ R1=W3*ROWr16[1]=b1 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldr r11, [r12, #offW7] @ R11=W7
++ mul r5, r10, r7 @ R5=W5*ROWr16[1]=b2 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ ldrsh r2, [r14, #48]
++ mul r7, r11, r7 @ R7=W7*ROWr16[1]=b3 (ROWr16[1] must be the second arg, to have the possibility to save 1 cycle)
++ teq r2, #0 @ if 0, then avoid muls
++ mlane r0, r9, r2, r0 @ R0+=W3*ROWr16[3]=b0 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ rsbne r2, r2, #0 @ R2=-ROWr16[3]
++ mlane r1, r11, r2, r1 @ R1-=W7*ROWr16[3]=b1 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r5, r8, r2, r5 @ R5-=W1*ROWr16[3]=b2 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++ mlane r7, r10, r2, r7 @ R7-=W5*ROWr16[3]=b3 (ROWr16[3] must be the second arg, to have the possibility to save 1 cycle)
++
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3 (free), R4 (free),
++ @@ R5=b2, R6 (free), R7=b3, R8=W1, R9=W3, R10=W5, R11=W7,
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ MAC16(b0, W5, col[5x8]);
++ @@ MAC16(b2, W7, col[5x8]);
++ @@ MAC16(b3, W3, col[5x8]);
++ @@ MAC16(b1, -W1, col[5x8]);
++ @@ MAC16(b0, W7, col[7x8]);
++ @@ MAC16(b2, W3, col[7x8]);
++ @@ MAC16(b3, -W1, col[7x8]);
++ @@ MAC16(b1, -W5, col[7x8]);
++ ldrsh r3, [r14, #80] @ R3=COLr16[5x8]
++ teq r3, #0 @ if 0 then avoid muls
++ mlane r0, r10, r3, r0 @ R0+=W5*ROWr16[5x8]=b0
++ mlane r5, r11, r3, r5 @ R5+=W7*ROWr16[5x8]=b2
++ mlane r7, r9, r3, r7 @ R7+=W3*ROWr16[5x8]=b3
++ rsbne r3, r3, #0 @ R3=-ROWr16[5x8]
++ ldrsh r4, [r14, #112] @ R4=COLr16[7x8]
++ mlane r1, r8, r3, r1 @ R7-=W1*ROWr16[5x8]=b1
++ @@ R3 is free now
++ teq r4, #0 @ if 0 then avoid muls
++ mlane r0, r11, r4, r0 @ R0+=W7*ROWr16[7x8]=b0
++ mlane r5, r9, r4, r5 @ R5+=W3*ROWr16[7x8]=b2
++ rsbne r4, r4, #0 @ R4=-ROWr16[7x8]
++ mlane r7, r8, r4, r7 @ R7-=W1*ROWr16[7x8]=b3
++ mlane r1, r10, r4, r1 @ R1-=W5*ROWr16[7x8]=b1
++ @@ R4 is free now
++__end_b_evaluation2:
++ @@ at this point, R0=b0, R1=b1, R2 (free), R3 (free), R4 (free),
++ @@ R5=b2, R6 (free), R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++
++__a_evaluation2:
++ @@ a0 = (W4 * col[8x0]) + (1 << (COL_SHIFT - 1));
++ @@ a1 = a0 + W6 * row[2];
++ @@ a2 = a0 - W6 * row[2];
++ @@ a3 = a0 - W2 * row[2];
++ @@ a0 = a0 + W2 * row[2];
++ ldrsh r6, [r14, #0]
++ ldr r9, [r12, #offW4] @ R9=W4
++ mul r6, r9, r6 @ R6=W4*ROWr16[0]
++ ldr r10, [r12, #offW6] @ R10=W6
++ ldrsh r4, [r14, #32] @ R4=ROWr16[2] (a3 not defined yet)
++ add r6, r6, #COL_SHIFTED_1 @ R6=W4*ROWr16[0] + 1<<(COL_SHIFT-1) (a0)
++ mul r11, r10, r4 @ R11=W6*ROWr16[2]
++ ldr r8, [r12, #offW2] @ R8=W2
++ add r2, r6, r11 @ R2=a0+W6*ROWr16[2] (a1)
++ sub r3, r6, r11 @ R3=a0-W6*ROWr16[2] (a2)
++ mul r11, r8, r4 @ R11=W2*ROWr16[2]
++ sub r4, r6, r11 @ R4=a0-W2*ROWr16[2] (a3)
++ add r6, r6, r11 @ R6=a0+W2*ROWr16[2] (a0)
++
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8=W2, R9=W4, R10=W6, R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ a0 += W4*row[4]
++ @@ a1 -= W4*row[4]
++ @@ a2 -= W4*row[4]
++ @@ a3 += W4*row[4]
++ ldrsh r11, [r14, #64] @ R11=ROWr16[4]
++ teq r11, #0 @ if null avoid muls
++ mulne r11, r9, r11 @ R11=W4*ROWr16[4]
++ @@ R9 is free now
++ addne r6, r6, r11 @ R6+=W4*ROWr16[4] (a0)
++ subne r2, r2, r11 @ R2-=W4*ROWr16[4] (a1)
++ subne r3, r3, r11 @ R3-=W4*ROWr16[4] (a2)
++ ldrsh r9, [r14, #96] @ R9=ROWr16[6]
++ addne r4, r4, r11 @ R4+=W4*ROWr16[4] (a3)
++ @@ W6 alone is no more useful, save W2*ROWr16[6] in it instead
++ teq r9, #0 @ if null avoid muls
++ mulne r11, r10, r9 @ R11=W6*ROWr16[6]
++ addne r6, r6, r11 @ R6+=W6*ROWr16[6] (a0)
++ mulne r10, r8, r9 @ R10=W2*ROWr16[6]
++ @@ a0 += W6*row[6];
++ @@ a3 -= W6*row[6];
++ @@ a1 -= W2*row[6];
++ @@ a2 += W2*row[6];
++ subne r4, r4, r11 @ R4-=W6*ROWr16[6] (a3)
++ subne r2, r2, r10 @ R2-=W2*ROWr16[6] (a1)
++ addne r3, r3, r10 @ R3+=W2*ROWr16[6] (a2)
++__end_a_evaluation2:
++ @@ at this point, R0=b0, R1=b1, R2=a1, R3=a2, R4=a3,
++ @@ R5=b2, R6=a0, R7=b3, R8 (free), R9 (free), R10 (free), R11 (free),
++ @@ R12=__const_ptr_, R14=&block[n]
++ @@ col[0 ] = ((a0 + b0) >> COL_SHIFT);
++ @@ col[8 ] = ((a1 + b1) >> COL_SHIFT);
++ @@ col[16] = ((a2 + b2) >> COL_SHIFT);
++ @@ col[24] = ((a3 + b3) >> COL_SHIFT);
++ @@ col[32] = ((a3 - b3) >> COL_SHIFT);
++ @@ col[40] = ((a2 - b2) >> COL_SHIFT);
++ @@ col[48] = ((a1 - b1) >> COL_SHIFT);
++ @@ col[56] = ((a0 - b0) >> COL_SHIFT);
++ @@@@@ no optimisation here @@@@@
++ add r8, r6, r0 @ R8=a0+b0
++ add r9, r2, r1 @ R9=a1+b1
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #0]
++ strh r9, [r14, #16]
++ add r8, r3, r5 @ R8=a2+b2
++ add r9, r4, r7 @ R9=a3+b3
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #32]
++ strh r9, [r14, #48]
++ sub r8, r4, r7 @ R8=a3-b3
++ sub r9, r3, r5 @ R9=a2-b2
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #64]
++ strh r9, [r14, #80]
++ sub r8, r2, r1 @ R8=a1-b1
++ sub r9, r6, r0 @ R9=a0-b0
++ mov r8, r8, asr #COL_SHIFT
++ mov r9, r9, asr #COL_SHIFT
++ strh r8, [r14, #96]
++ strh r9, [r14, #112]
++
++__end_col_loop:
++ @@ at this point, R0-R11 (free)
++ @@ R12=__const_ptr_, R14=&block[n]
++ ldr r0, [sp, #0] @ R0=block
++ teq r0, r14 @ compare current &block[n] to block, when block is reached, the loop is finished.
++ sub r14, r14, #2
++ bne __col_loop
++
++
++
++
++__end_simple_idct_ARM:
++ @@ restore registers to previous status!
++ add sp, sp, #8 @@ the local variables!
++ ldmfd sp!, {r4-r11, r15} @@ update PC with LR content.
++
++
++
++@@ kind of sub-function, here not to overload the common case.
++__end_bef_a_evaluation:
++ add r2, r6, r11 @ R2=a0+W6*ROWr16[2] (a1)
++ mul r11, r8, r4 @ R11=W2*ROWr16[2]
++ sub r4, r6, r11 @ R4=a0-W2*ROWr16[2] (a3)
++ add r6, r6, r11 @ R6=a0+W2*ROWr16[2] (a0)
++ bal __end_a_evaluation
+
+- mov lr, r0 @ lr = pointer to the current row
+- mov r12, #8 @ r12 = row-counter
+- add r11, pc, #(const_array-.-8) @ r11 = base pointer to the constants array
+-row_loop:
+- ldrsh r0, [lr, # 0] @ r0 = 'd0'
+- ldrsh r1, [lr, # 8] @ r1 = 'd1'
+-
+- @ Optimization for row that have all items except the first set to 0
+- @ (this works as the DCTELEMS are always 4-byte aligned)
+- ldr r5, [lr, # 0]
+- ldr r2, [lr, # 4]
+- ldr r3, [lr, # 8]
+- ldr r4, [lr, #12]
+- orr r3, r3, r4
+- orr r3, r3, r2
+- orrs r5, r3, r5
+- beq end_of_row_loop @ nothing to be done as ALL of them are '0'
+- orrs r2, r3, r1
+- beq empty_row
+-
+- ldrsh r2, [lr, # 2] @ r2 = 'd2'
+- ldrsh r4, [lr, # 4] @ r4 = 'd4'
+- ldrsh r6, [lr, # 6] @ r6 = 'd6'
+-
+- ldr r3, [r11, #FIX_0_541196100_ID]
+- add r7, r2, r6
+- ldr r5, [r11, #FIX_M_1_847759065_ID]
+- mul r7, r3, r7 @ r7 = z1
+- ldr r3, [r11, #FIX_0_765366865_ID]
+- mla r6, r5, r6, r7 @ r6 = tmp2
+- add r5, r0, r4 @ r5 = tmp0
+- mla r2, r3, r2, r7 @ r2 = tmp3
+- sub r3, r0, r4 @ r3 = tmp1
+-
+- add r0, r2, r5, lsl #13 @ r0 = tmp10
+- rsb r2, r2, r5, lsl #13 @ r2 = tmp13
+- add r4, r6, r3, lsl #13 @ r4 = tmp11
+- rsb r3, r6, r3, lsl #13 @ r3 = tmp12
+-
+- stmdb sp!, { r0, r2, r3, r4 } @ save on the stack tmp10, tmp13, tmp12, tmp11
+-
+- ldrsh r3, [lr, #10] @ r3 = 'd3'
+- ldrsh r5, [lr, #12] @ r5 = 'd5'
+- ldrsh r7, [lr, #14] @ r7 = 'd7'
+-
+- add r0, r3, r5 @ r0 = 'z2'
+- add r2, r1, r7 @ r2 = 'z1'
+- add r4, r3, r7 @ r4 = 'z3'
+- add r6, r1, r5 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_1_175875602_ID]
+- add r8, r4, r6 @ r8 = z3 + z4
+- ldr r10, [r11, #FIX_M_0_899976223_ID]
+- mul r8, r9, r8 @ r8 = 'z5'
+- ldr r9, [r11, #FIX_M_2_562915447_ID]
+- mul r2, r10, r2 @ r2 = 'z1'
+- ldr r10, [r11, #FIX_M_1_961570560_ID]
+- mul r0, r9, r0 @ r0 = 'z2'
+- ldr r9, [r11, #FIX_M_0_390180644_ID]
+- mla r4, r10, r4, r8 @ r4 = 'z3'
+- ldr r10, [r11, #FIX_0_298631336_ID]
+- mla r6, r9, r6, r8 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_2_053119869_ID]
+- mla r7, r10, r7, r2 @ r7 = tmp0 + z1
+- ldr r10, [r11, #FIX_3_072711026_ID]
+- mla r5, r9, r5, r0 @ r5 = tmp1 + z2
+- ldr r9, [r11, #FIX_1_501321110_ID]
+- mla r3, r10, r3, r0 @ r3 = tmp2 + z2
+- add r7, r7, r4 @ r7 = tmp0
+- mla r1, r9, r1, r2 @ r1 = tmp3 + z1
+- add r5, r5, r6 @ r5 = tmp1
+- add r3, r3, r4 @ r3 = tmp2
+- add r1, r1, r6 @ r1 = tmp3
+-
+- ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp12 / r6 = tmp11
+- @ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
+-
+- @ Compute DESCALE(tmp10 + tmp3, CONST_BITS-PASS1_BITS)
+- add r8, r0, r1
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 0]
+-
+- @ Compute DESCALE(tmp10 - tmp3, CONST_BITS-PASS1_BITS)
+- sub r8, r0, r1
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, #14]
+-
+- @ Compute DESCALE(tmp11 + tmp2, CONST_BITS-PASS1_BITS)
+- add r8, r6, r3
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 2]
+-
+- @ Compute DESCALE(tmp11 - tmp2, CONST_BITS-PASS1_BITS)
+- sub r8, r6, r3
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, #12]
+-
+- @ Compute DESCALE(tmp12 + tmp1, CONST_BITS-PASS1_BITS)
+- add r8, r4, r5
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 4]
+-
+- @ Compute DESCALE(tmp12 - tmp1, CONST_BITS-PASS1_BITS)
+- sub r8, r4, r5
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, #10]
+-
+- @ Compute DESCALE(tmp13 + tmp0, CONST_BITS-PASS1_BITS)
+- add r8, r2, r7
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 6]
+-
+- @ Compute DESCALE(tmp13 - tmp0, CONST_BITS-PASS1_BITS)
+- sub r8, r2, r7
+- add r8, r8, #(1<<10)
+- mov r8, r8, asr #11
+- strh r8, [lr, # 8]
+-
+- @ End of row loop
+- add lr, lr, #16
+- subs r12, r12, #1
+- bne row_loop
+- beq start_column_loop
+-
+-empty_row:
+- ldr r1, [r11, #FIX_0xFFFF_ID]
+- mov r0, r0, lsl #2
+- and r0, r0, r1
+- add r0, r0, r0, lsl #16
+- str r0, [lr, # 0]
+- str r0, [lr, # 4]
+- str r0, [lr, # 8]
+- str r0, [lr, #12]
+-
+-end_of_row_loop:
+- @ End of loop
+- add lr, lr, #16
+- subs r12, r12, #1
+- bne row_loop
+-
+-start_column_loop:
+- @ Start of column loop
+- ldr lr, [ sp ]
+- mov r12, #8
+-column_loop:
+- ldrsh r0, [lr, #( 0*8)] @ r0 = 'd0'
+- ldrsh r2, [lr, #( 4*8)] @ r2 = 'd2'
+- ldrsh r4, [lr, #( 8*8)] @ r4 = 'd4'
+- ldrsh r6, [lr, #(12*8)] @ r6 = 'd6'
+-
+- ldr r3, [r11, #FIX_0_541196100_ID]
+- add r1, r2, r6
+- ldr r5, [r11, #FIX_M_1_847759065_ID]
+- mul r1, r3, r1 @ r1 = z1
+- ldr r3, [r11, #FIX_0_765366865_ID]
+- mla r6, r5, r6, r1 @ r6 = tmp2
+- add r5, r0, r4 @ r5 = tmp0
+- mla r2, r3, r2, r1 @ r2 = tmp3
+- sub r3, r0, r4 @ r3 = tmp1
+-
+- add r0, r2, r5, lsl #13 @ r0 = tmp10
+- rsb r2, r2, r5, lsl #13 @ r2 = tmp13
+- add r4, r6, r3, lsl #13 @ r4 = tmp11
+- rsb r6, r6, r3, lsl #13 @ r6 = tmp12
+-
+- ldrsh r1, [lr, #( 2*8)] @ r1 = 'd1'
+- ldrsh r3, [lr, #( 6*8)] @ r3 = 'd3'
+- ldrsh r5, [lr, #(10*8)] @ r5 = 'd5'
+- ldrsh r7, [lr, #(14*8)] @ r7 = 'd7'
+-
+- @ Check for empty odd column (happens about 20 to 25 % of the time according to my stats)
+- orr r9, r1, r3
+- orr r10, r5, r7
+- orrs r10, r9, r10
+- beq empty_odd_column
+-
+- stmdb sp!, { r0, r2, r4, r6 } @ save on the stack tmp10, tmp13, tmp12, tmp11
+-
+- add r0, r3, r5 @ r0 = 'z2'
+- add r2, r1, r7 @ r2 = 'z1'
+- add r4, r3, r7 @ r4 = 'z3'
+- add r6, r1, r5 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_1_175875602_ID]
+- add r8, r4, r6
+- ldr r10, [r11, #FIX_M_0_899976223_ID]
+- mul r8, r9, r8 @ r8 = 'z5'
+- ldr r9, [r11, #FIX_M_2_562915447_ID]
+- mul r2, r10, r2 @ r2 = 'z1'
+- ldr r10, [r11, #FIX_M_1_961570560_ID]
+- mul r0, r9, r0 @ r0 = 'z2'
+- ldr r9, [r11, #FIX_M_0_390180644_ID]
+- mla r4, r10, r4, r8 @ r4 = 'z3'
+- ldr r10, [r11, #FIX_0_298631336_ID]
+- mla r6, r9, r6, r8 @ r6 = 'z4'
+- ldr r9, [r11, #FIX_2_053119869_ID]
+- mla r7, r10, r7, r2 @ r7 = tmp0 + z1
+- ldr r10, [r11, #FIX_3_072711026_ID]
+- mla r5, r9, r5, r0 @ r5 = tmp1 + z2
+- ldr r9, [r11, #FIX_1_501321110_ID]
+- mla r3, r10, r3, r0 @ r3 = tmp2 + z2
+- add r7, r7, r4 @ r7 = tmp0
+- mla r1, r9, r1, r2 @ r1 = tmp3 + z1
+- add r5, r5, r6 @ r5 = tmp1
+- add r3, r3, r4 @ r3 = tmp2
+- add r1, r1, r6 @ r1 = tmp3
+-
+- ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp11 / r6 = tmp12
+- @ r1 = tmp3 / r3 = tmp2 / r5 = tmp1 / r7 = tmp0
+-
+- @ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
+- add r8, r0, r1
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 0*8)]
+-
+- @ Compute DESCALE(tmp10 - tmp3, CONST_BITS+PASS1_BITS+3)
+- sub r8, r0, r1
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #(14*8)]
+-
+- @ Compute DESCALE(tmp11 + tmp2, CONST_BITS+PASS1_BITS+3)
+- add r8, r4, r3
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 2*8)]
+-
+- @ Compute DESCALE(tmp11 - tmp2, CONST_BITS+PASS1_BITS+3)
+- sub r8, r4, r3
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #(12*8)]
+-
+- @ Compute DESCALE(tmp12 + tmp1, CONST_BITS+PASS1_BITS+3)
+- add r8, r6, r5
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 4*8)]
+-
+- @ Compute DESCALE(tmp12 - tmp1, CONST_BITS+PASS1_BITS+3)
+- sub r8, r6, r5
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #(10*8)]
+-
+- @ Compute DESCALE(tmp13 + tmp0, CONST_BITS+PASS1_BITS+3)
+- add r8, r2, r7
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 6*8)]
+-
+- @ Compute DESCALE(tmp13 - tmp0, CONST_BITS+PASS1_BITS+3)
+- sub r8, r2, r7
+- add r8, r8, #(1<<17)
+- mov r8, r8, asr #18
+- strh r8, [lr, #( 8*8)]
+-
+- @ End of row loop
+- add lr, lr, #2
+- subs r12, r12, #1
+- bne column_loop
+- beq the_end
+-
+-empty_odd_column:
+- @ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp10 - tmp3, CONST_BITS+PASS1_BITS+3)
+- add r0, r0, #(1<<17)
+- mov r0, r0, asr #18
+- strh r0, [lr, #( 0*8)]
+- strh r0, [lr, #(14*8)]
+-
+- @ Compute DESCALE(tmp11 + tmp2, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp11 - tmp2, CONST_BITS+PASS1_BITS+3)
+- add r4, r4, #(1<<17)
+- mov r4, r4, asr #18
+- strh r4, [lr, #( 2*8)]
+- strh r4, [lr, #(12*8)]
+-
+- @ Compute DESCALE(tmp12 + tmp1, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp12 - tmp1, CONST_BITS+PASS1_BITS+3)
+- add r6, r6, #(1<<17)
+- mov r6, r6, asr #18
+- strh r6, [lr, #( 4*8)]
+- strh r6, [lr, #(10*8)]
+-
+- @ Compute DESCALE(tmp13 + tmp0, CONST_BITS+PASS1_BITS+3)
+- @ Compute DESCALE(tmp13 - tmp0, CONST_BITS+PASS1_BITS+3)
+- add r2, r2, #(1<<17)
+- mov r2, r2, asr #18
+- strh r2, [lr, #( 6*8)]
+- strh r2, [lr, #( 8*8)]
+-
+- @ End of row loop
+- add lr, lr, #2
+- subs r12, r12, #1
+- bne column_loop
+-
+-the_end:
+- @ The end....
+- add sp, sp, #4
+- ldmia sp!, { r4 - r12, pc } @ restore callee saved regs and return
+
+-const_array:
++__constant_ptr__: @@ see #defines at the beginning of the source code for values.
+ .align
+- .word FIX_0_298631336
+- .word FIX_0_541196100
+- .word FIX_0_765366865
+- .word FIX_1_175875602
+- .word FIX_1_501321110
+- .word FIX_2_053119869
+- .word FIX_3_072711026
+- .word FIX_M_0_390180644
+- .word FIX_M_0_899976223
+- .word FIX_M_1_847759065
+- .word FIX_M_1_961570560
+- .word FIX_M_2_562915447
+- .word FIX_0xFFFF
++ .word W1
++ .word W2
++ .word W3
++ .word W4
++ .word W5
++ .word W6
++ .word W7
++ .word MASK_MSHW
++
++
diff --git a/packages/libxine/libxine-1.0.0-beta12/libxine-libvorbis.patch b/packages/libxine/libxine-1.0.0-beta12/libxine-libvorbis.patch
index e69de29bb2..f52754d6a7 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libxine-libvorbis.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libxine-libvorbis.patch
@@ -0,0 +1,37 @@
+Copyright (C) 2002, Fred Boulay <dilb@handhelds.org>
+Licensed under GPL v2
+
+--- src/libvorbis/xine_decoder.c.orig 2002-12-18 01:35:37.000000000 +0100
++++ src/libvorbis/xine_decoder.c 2002-12-18 01:35:48.000000000 +0100
+@@ -34,7 +34,7 @@
+ #include "buffer.h"
+
+ #include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+
+ #define MAX_NUM_SAMPLES 4096
+
+--- src/libvorbis/xine_decoder.c.orig 2002-12-19 17:09:30.000000000 +0100
++++ src/libvorbis/xine_decoder.c 2002-12-19 17:09:35.000000000 +0100
+@@ -202,7 +202,7 @@ static void vorbis_decode_data (audio_de
+
+ } else if (this->output_open) {
+
+- float **pcm;
++ int **pcm;
+ int samples;
+
+ if(vorbis_synthesis(&this->vb,op)==0)
+@@ -221,9 +221,9 @@ static void vorbis_decode_data (audio_de
+ interleave */
+ for(i=0;i<this->vi.channels;i++){
+ ogg_int16_t *ptr=audio_buffer->mem+i;
+- float *mono=pcm[i];
++ int *mono=pcm[i];
+ for(j=0;j<bout;j++){
+- int val=mono[j]*32767.f;
++ int val=mono[j]>>9;
+ /* might as well guard against clipping */
+ if(val>32767){
+ val=32767;
diff --git a/packages/libxine/libxine-1.0.0-beta12/libxine-ogg-demux.patch b/packages/libxine/libxine-1.0.0-beta12/libxine-ogg-demux.patch
index e69de29bb2..15cdab68d1 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libxine-ogg-demux.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libxine-ogg-demux.patch
@@ -0,0 +1,22 @@
+Copyright (C) 2002, Fred Boulay <dilb@handhelds.org>
+Licensed under GPL v2
+
+--- src/demuxers/demux_ogg.c.orig 2002-12-17 18:46:48.000000000 +0100
++++ src/demuxers/demux_ogg.c 2002-12-17 18:47:26.000000000 +0100
+@@ -35,7 +35,7 @@
+ #include <stdlib.h>
+
+ #include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+
+ #include "xine_internal.h"
+ #include "xineutils.h"
+--- src/demuxers/Makefile.am.orig 2002-12-19 17:18:12.000000000 +0100
++++ src/demuxers/Makefile.am 2002-12-19 17:18:32.000000000 +0100
+@@ -1,4 +1,4 @@
+-AM_CFLAGS = $(OGG_CFLAGS) @ANSI_FLAGS@
++AM_CFLAGS = $(OGG_CFLAGS) $(VORBIS_CFLAGS) @ANSI_FLAGS@
+
+ LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
+
diff --git a/packages/libxine/libxine-1.0.0-beta12/libxine-tremor-autoconf.patch b/packages/libxine/libxine-1.0.0-beta12/libxine-tremor-autoconf.patch
index e69de29bb2..a01aab20c2 100644
--- a/packages/libxine/libxine-1.0.0-beta12/libxine-tremor-autoconf.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/libxine-tremor-autoconf.patch
@@ -0,0 +1,14 @@
+Copyright (C) 2002, Fred Boulay <dilb@handhelds.org>
+Licensed under GPL v2
+
+--- m4/vorbis.m4.orig 2002-12-17 10:21:44.000000000 +0100
++++ m4/vorbis.m4 2002-12-17 10:21:54.000000000 +0100
+@@ -18,7 +18,7 @@ AC_ARG_ENABLE(vorbistest, [ --disable-v
+ VORBIS_LIBDIR="-L$vorbis_prefix/lib"
+ fi
+
+- VORBIS_LIBS="$VORBIS_LIBDIR -lvorbis -lm"
++ VORBIS_LIBS="$VORBIS_LIBDIR -lvorbisidec -lm"
+ VORBISFILE_LIBS="-lvorbisfile"
+ VORBISENC_LIBS="-lvorbisenc"
+
diff --git a/packages/libxine/libxine-1.0.0-beta12/mpegvideo-static-inlining.patch b/packages/libxine/libxine-1.0.0-beta12/mpegvideo-static-inlining.patch
index e69de29bb2..8d627feace 100644
--- a/packages/libxine/libxine-1.0.0-beta12/mpegvideo-static-inlining.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/mpegvideo-static-inlining.patch
@@ -0,0 +1,11 @@
+--- ../libxine-1.0.0-beta12-r0/xine-lib/src/libffmpeg/libavcodec/mpegvideo.c 2003-05-10 00:54:05.000000000 +0100
++++ xine-lib/src/libffmpeg/libavcodec/mpegvideo.c 2004-08-17 16:05:41.000000000 +0100
+@@ -1860,7 +1860,7 @@
+ pix_op[1][dxy](dest_cr + (dest_offset >> 1), ptr, uvlinesize, h >> 1);
+ }
+
+-inline int ff_h263_round_chroma(int x){
++static inline int ff_h263_round_chroma(int x){
+ if (x >= 0)
+ return (h263_chroma_roundtab[x & 0xf] + ((x >> 3) & ~1));
+ else {
diff --git a/packages/libxine/libxine-1.0.0-beta12/oss.patch b/packages/libxine/libxine-1.0.0-beta12/oss.patch
index e69de29bb2..12ea1b4b60 100644
--- a/packages/libxine/libxine-1.0.0-beta12/oss.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/oss.patch
@@ -0,0 +1,15 @@
+--- src/audio_out/Makefile.am.patched 2003-12-07 14:59:19.466805328 -0600
++++ src/audio_out/Makefile.am 2003-12-07 14:59:43.083215088 -0600
+@@ -6,9 +6,9 @@
+
+ libdir = $(XINE_PLUGINDIR)
+
+-if HAVE_OSS
++#if HAVE_OSS
+ oss_module = xineplug_ao_out_oss.la
+-endif
++#endif
+
+ if HAVE_ALSA
+ if HAVE_ALSA09
+
diff --git a/packages/libxine/libxine-1.0.0-beta12/uclibc.patch b/packages/libxine/libxine-1.0.0-beta12/uclibc.patch
index e69de29bb2..787e46a081 100644
--- a/packages/libxine/libxine-1.0.0-beta12/uclibc.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/uclibc.patch
@@ -0,0 +1,55 @@
+
+#
+# Made by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- xine-lib/configure.ac~uclibc 2003-09-28 16:42:13.000000000 +0200
++++ xine-lib/configure.ac 2003-09-28 16:42:13.000000000 +0200
+@@ -190,7 +190,7 @@
+ *)
+ AC_CHECK_LIB(pthread, pthread_create,
+ [THREAD_LIBS="-lpthread"],
+- [AC_MSG_ERROR(pthread needed)])
++ [AC_MSG_WARN(pthread needed)])
+ ;;
+ esac
+ AC_SUBST(THREAD_LIBS)
+--- xine-lib/src/xine-engine/osd.c~uclibc 2003-04-27 17:57:54.000000000 +0200
++++ xine-lib/src/xine-engine/osd.c 2003-09-28 16:42:13.000000000 +0200
+@@ -34,10 +34,6 @@
+ #include <dirent.h>
+ #include <errno.h>
+
+-#ifndef _MSC_VER
+-#include <iconv.h>
+-#endif /* _MSC_VER */
+-
+ #ifdef HAVE_LANGINFO_CODESET
+ #include <langinfo.h>
+ #endif
+@@ -98,6 +94,8 @@
+ };
+ #endif
+
++#define _MSC_VER
++
+ /*
+ * open a new osd object. this will allocated an empty (all zero) drawing
+ * area where graphic primitives may be used.
+@@ -1220,3 +1218,6 @@
+
+ return this;
+ }
++
++#undef _MSC_VER
++
+--- xine-lib/src/video_out/video_out_fb.c~uclibc 2003-03-19 16:29:27.000000000 +0100
++++ xine-lib/src/video_out/video_out_fb.c 2003-09-28 17:16:05.000000000 +0200
+@@ -71,7 +71,6 @@
+ #include <netinet/in.h>
+
+ #include <linux/fb.h>
+-#include <linux/kd.h>
+ #include <linux/vt.h>
+
+ #include "xine_internal.h"
diff --git a/packages/libxine/libxine-1.0.0-beta12/vo_scale.patch b/packages/libxine/libxine-1.0.0-beta12/vo_scale.patch
index e69de29bb2..e1ca00ef99 100644
--- a/packages/libxine/libxine-1.0.0-beta12/vo_scale.patch
+++ b/packages/libxine/libxine-1.0.0-beta12/vo_scale.patch
@@ -0,0 +1,11 @@
+--- xine-lib/src/xine-engine/vo_scale.h 2003-04-25 17:34:48.000000000 +0200
++++ xine-lib/src/xine-engine/vo_scale.h.patched 2003-08-10 19:40:37.000000000 +0200
+@@ -36,7 +36,7 @@
+ #endif
+
+ /* Added during _MSC_VER port */
+-#include <configfile.h>
++#include "configfile.h"
+
+ typedef struct {
+ int x, y;
diff --git a/packages/libxine/libxine-1.0.0-rc5/.mtn2git_empty b/packages/libxine/libxine-1.0.0-rc5/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libxine/libxine-1.0.0-rc5/.mtn2git_empty
diff --git a/packages/libxine/libxine-1.0.0-rc5/configure.patch b/packages/libxine/libxine-1.0.0-rc5/configure.patch
index e69de29bb2..155027efac 100644
--- a/packages/libxine/libxine-1.0.0-rc5/configure.patch
+++ b/packages/libxine/libxine-1.0.0-rc5/configure.patch
@@ -0,0 +1,95 @@
+Xine is stupid in that they don't have --with or --without comments for
+all of their items. That should be fixed, but until then, this configure
+script should avoid some of the pain and or suffering
+
+--- xine-lib-1-rc5/configure.ac 2004-06-20 16:39:04.000000000 -0700
++++ xine-lib-1-rc5.new/configure.ac 2004-06-29 15:06:26.057570960 -0700
+@@ -887,46 +887,28 @@
+ dnl Ogg/Theora libs.
+ dnl ---------------------------------------------
+
+-AM_PATH_OGG(
+- [ AM_PATH_THEORA(AC_DEFINE(HAVE_THEORA,1,[Define this if you have theora]),
+- AC_MSG_RESULT([*** All OGG/THEORA dependent parts will be disabled ***]))
+- ],
+- AC_MSG_RESULT([*** All of OGG/Theora dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_THEORA, [test x"$no_ogg" != "xyes" -a x"$no_theora" != "xyes"])
++AM_CONDITIONAL(HAVE_THEORA, 0)
+
+
+ dnl ---------------------------------------------
+ dnl Ogg/Speex libs.
+ dnl ---------------------------------------------
+
+-AM_PATH_OGG(
+- [ AM_PATH_SPEEX(AC_DEFINE(HAVE_SPEEX,1,[Define this if you have speex]),
+- AC_MSG_RESULT([*** All OGG/SPEEX dependent parts will be disabled ***]))
+- ],
+- AC_MSG_RESULT([*** All of OGG/Speex dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_SPEEX, [test x"$no_ogg" != "xyes" -a x"$no_speex" != "xyes"])
+-
++AM_CONDITIONAL(HAVE_SPEEX, 0)
+
+ dnl ---------------------------------------------
+ dnl check for libFLAC
+ dnl ---------------------------------------------
+
+-AM_PATH_LIBFLAC([],
+- AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
++AM_CONDITIONAL(HAVE_FLAC, 0)
+
+
+ dnl ---------------------------------------------
+ dnl MNG libs.
+ dnl ---------------------------------------------
+
+-AC_CHECK_LIB(mng, mng_initialize,
+- [ AC_CHECK_HEADER(libmng.h,
+- [ have_libmng=yes
+- MNG_LIBS="-lmng" ],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_LIBMNG, test x"$have_libmng" = "xyes")
++MNG_LIBS=""
++AM_CONDITIONAL(HAVE_LIBMNG, 0)
+ AC_SUBST(MNG_LIBS)
+
+
+@@ -1204,35 +1186,7 @@
+ ],ISOC99_PRAGMA=no)
+ AC_MSG_RESULT($ISOC99_PRAGMA)
+
+- dnl bitfield order
+- AC_MSG_CHECKING(bitfield ordering in structs)
+- AC_TRY_RUN([
+-int
+- main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0x4b; }
+-], bf_lsbf=1, AC_TRY_RUN([
+-int
+-main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0xa5; }
+-], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
+- if test "x$bf_lsbf" = "x1"; then
+- AC_MSG_RESULT(LSBF)
+- AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+- else
+- AC_MSG_RESULT(MSBF)
+- fi
++ AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+
+ AC_HAVE_HEADERS( errno.h fcntl.h \
+ stdbool.h stdlib.h stdint.h stdio.h string.h \
diff --git a/packages/libxine/libxine-1.0.0-rc5/cpu.patch b/packages/libxine/libxine-1.0.0-rc5/cpu.patch
index e69de29bb2..a2444d9ed3 100644
--- a/packages/libxine/libxine-1.0.0-rc5/cpu.patch
+++ b/packages/libxine/libxine-1.0.0-rc5/cpu.patch
@@ -0,0 +1,75 @@
+For those x86 folks - ebx is used by PIC and shouldn't be used by
+anyone else
+
+--- xine-lib-1-rc5/src/post/goom/zoom_filter_xmmx.c 2003-09-15 15:53:53.000000000 -0700
++++ xine-lib-1-rc5.new/src/post/goom/zoom_filter_xmmx.c 2004-06-29 15:25:45.763268896 -0700
+@@ -108,23 +108,23 @@
+ * post : mm3 & mm4 : coefs for this position
+ * mm1 : X vector [0|X]
+ *
+- * modif : eax,ebx
++ * modif : eax,ecx
+ */
+ __asm__ __volatile__ (
+- "movd %%mm0,%%ebx\n"
++ "movd %%mm0,%%ecx\n"
+ "movq %%mm0,%%mm1\n"
+
+- "andl $15,%%ebx\n"
++ "andl $15,%%ecx\n"
+ "psrlq $32,%%mm1\n"
+
+- "shll $6,%%ebx\n"
++ "shll $6,%%ecx\n"
+ "movd %%mm1,%%eax\n"
+
+- "addl %0,%%ebx\n"
++ "addl %0,%%ecx\n"
+ "andl $15,%%eax\n"
+
+- "movd (%%ebx,%%eax,4),%%mm3\n"
+- ::"X"(precalCoef):"eax","ebx");
++ "movd (%%ecx,%%eax,4),%%mm3\n"
++ ::"X"(precalCoef):"eax","ecx");
+
+ /*
+ * extraction des coefficients...
+@@ -152,7 +152,7 @@
+ * post : mm0 : expix1[position]
+ * mm2 : expix1[position+largeur]
+ *
+- * modif : eax,ebx
++ * modif : eax,ecx
+ */
+ psrld_i2r (PERTEDEC,mm0);
+ psrld_i2r (PERTEDEC,mm1);
+@@ -161,23 +161,23 @@
+ /*^*/ "movq %%mm3,%%mm5\n" /*^*/
+
+ "mull %1\n"
+- "movd %%mm0,%%ebx\n"
++ "movd %%mm0,%%ecx\n"
+ /*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/
+
+- "addl %%ebx,%%eax\n"
++ "addl %%ecx,%%eax\n"
+ /*^*/ "movq %%mm3,%%mm4\n" /*^*/
+ /*^*/ "movq %%mm3,%%mm5\n" /*^*/
+
+- "movl %0,%%ebx\n"
++ "movl %0,%%ecx\n"
+ /*^*/ "punpcklbw %%mm5,%%mm3\n" /*^*/
+
+- "movq (%%ebx,%%eax,4),%%mm0\n"
++ "movq (%%ecx,%%eax,4),%%mm0\n"
+ /*^*/ "punpckhbw %%mm5,%%mm4\n" /*^*/
+
+ "addl %1,%%eax\n"
+- "movq (%%ebx,%%eax,4),%%mm2\n"
++ "movq (%%ecx,%%eax,4),%%mm2\n"
+
+- : : "X"(expix1), "X"(prevX):"eax","ebx"
++ : : "X"(expix1), "X"(prevX):"eax","ecx"
+ );
+
+ /*
diff --git a/packages/libxine/libxine-1.0.0-rc5/libxine-libvorbis.patch b/packages/libxine/libxine-1.0.0-rc5/libxine-libvorbis.patch
index e69de29bb2..81bcbd5468 100644
--- a/packages/libxine/libxine-1.0.0-rc5/libxine-libvorbis.patch
+++ b/packages/libxine/libxine-1.0.0-rc5/libxine-libvorbis.patch
@@ -0,0 +1,39 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+Index: xine-lib-1.0/src/libvorbis/xine_decoder.c
+===================================================================
+--- xine-lib-1.0.orig/src/libvorbis/xine_decoder.c 2005-02-20 18:21:57.924625900 +0100
++++ xine-lib-1.0/src/libvorbis/xine_decoder.c 2005-02-20 18:52:02.016033646 +0100
+@@ -40,7 +40,7 @@
+ #include "buffer.h"
+
+ #include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+
+ #define MAX_NUM_SAMPLES 4096
+
+@@ -216,7 +216,7 @@
+
+ } else if (this->output_open) {
+
+- float **pcm;
++ int **pcm;
+ int samples;
+
+ if(vorbis_synthesis(&this->vb,&this->op,1)==0)
+@@ -245,9 +245,9 @@
+ interleave */
+ for(i=0;i<this->vi.channels;i++){
+ ogg_int16_t *ptr=audio_buffer->mem+i;
+- float *mono=pcm[i];
++ int *mono=pcm[i];
+ for(j=0;j<bout;j++){
+- int val=mono[j]*32767.f;
++ int val=mono[j]>>9;
+ /* might as well guard against clipping */
+ if(val>32767){
+ val=32767;
diff --git a/packages/libxine/libxine-1.0.0-rc5/libxine-tremor-autoconf.patch b/packages/libxine/libxine-1.0.0-rc5/libxine-tremor-autoconf.patch
index e69de29bb2..bbedc81de3 100644
--- a/packages/libxine/libxine-1.0.0-rc5/libxine-tremor-autoconf.patch
+++ b/packages/libxine/libxine-1.0.0-rc5/libxine-tremor-autoconf.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/m4/vorbis.m4~libxine-tremor-autoconf
++++ xine-lib-1-rc7/m4/vorbis.m4
+@@ -18,7 +18,7 @@
+ VORBIS_LIBDIR="-L$vorbis_prefix/$XINE_LIBNAME"
+ fi
+
+- VORBIS_LIBS="$VORBIS_LIBDIR -lvorbis -lm"
++ VORBIS_LIBS="$VORBIS_LIBDIR -lvorbisidec -lm"
+ VORBISFILE_LIBS="-lvorbisfile"
+ VORBISENC_LIBS="-lvorbisenc"
+
diff --git a/packages/libxine/libxine-1.0.0-rc5/no-caca-no-aalib.patch b/packages/libxine/libxine-1.0.0-rc5/no-caca-no-aalib.patch
index e69de29bb2..2269b3b14e 100644
--- a/packages/libxine/libxine-1.0.0-rc5/no-caca-no-aalib.patch
+++ b/packages/libxine/libxine-1.0.0-rc5/no-caca-no-aalib.patch
@@ -0,0 +1,24 @@
+diff -urNd ../libxine-1.0.0-rc5-r0.old/xine-lib-1-rc5/configure.ac xine-lib-1-rc5/configure.ac
+--- ../libxine-1.0.0-rc5-r0.old/xine-lib-1-rc5/configure.ac 2004-06-21 00:39:04 +01:00
++++ xine-lib-1-rc5/configure.ac 2005-04-08 02:47:53 +01:00
+@@ -607,16 +607,16 @@
+ dnl Checks for Ascii-Art library
+ dnl ---------------------------------------------
+
+-AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_AA, test x$no_aalib != "xyes")
++dnl AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
++AM_CONDITIONAL(HAVE_AA, 0)
+
+
+ dnl ---------------------------------------------
+ dnl Checks for Color AsCii Art library
+ dnl ---------------------------------------------
+
+-AM_PATH_CACA(0.3,, AC_MSG_RESULT([*** All CACA-dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_CACA, test x$no_caca != "xyes")
++dnl AM_PATH_CACA(0.3,, AC_MSG_RESULT([*** All CACA-dependent parts will be disabled ***]))
++AM_CONDITIONAL(HAVE_CACA, 0)
+
+
+ dnl ---------------------------------------------
diff --git a/packages/libxine/libxine-1.0/.mtn2git_empty b/packages/libxine/libxine-1.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libxine/libxine-1.0/.mtn2git_empty
diff --git a/packages/libxine/libxine-1.0/dont-have-xv.patch b/packages/libxine/libxine-1.0/dont-have-xv.patch
index e69de29bb2..674e0e3852 100644
--- a/packages/libxine/libxine-1.0/dont-have-xv.patch
+++ b/packages/libxine/libxine-1.0/dont-have-xv.patch
@@ -0,0 +1,16 @@
+diff -urNd ../libxine-1.0-r1/xine-lib-1.0/configure.ac xine-lib-1.0/configure.ac
+--- ../libxine-1.0-r1/xine-lib-1.0/configure.ac 2005-04-09 02:35:05 +01:00
++++ xine-lib-1.0/configure.ac 2005-04-09 02:48:17 +01:00
+@@ -693,6 +693,12 @@
+ AM_CONDITIONAL(HAVE_XVMC, test x$ac_have_xvmc = "xyes")
+ AC_SUBST(XVMC_LIB)
+
++dnl --------------------------------------------
++dnl Declare Xv as missing
++dnl --------------------------------------------
++
++AM_CONDITIONAL(HAVE_XV, 0)
++
+
+ dnl ---------------------------------------------
+ dnl Checks for Xinerama extension
diff --git a/packages/libxine/libxine-1.0/fix-syntax-xine-vorbis-decoder.patch b/packages/libxine/libxine-1.0/fix-syntax-xine-vorbis-decoder.patch
index e69de29bb2..a191280e2b 100644
--- a/packages/libxine/libxine-1.0/fix-syntax-xine-vorbis-decoder.patch
+++ b/packages/libxine/libxine-1.0/fix-syntax-xine-vorbis-decoder.patch
@@ -0,0 +1,11 @@
+--- xine-lib-1.0/src/libvorbis/xine_decoder.c.old 2005-04-14 11:25:18 +01:00
++++ xine-lib-1.0/src/libvorbis/xine_decoder.c 2005-04-14 11:26:14 +01:00
+@@ -219,7 +219,7 @@
+ int **pcm;
+ int samples;
+
+- if(vorbis_synthesis(&this->vb,&this->op)==0)
++ if(vorbis_synthesis(&this->vb,&this->op,1)==0)
+ vorbis_synthesis_blockin(&this->vd,&this->vb);
+
+ if (buf->pts!=0)
diff --git a/packages/libxine/libxine-1.0/no-caca-no-aalib.patch b/packages/libxine/libxine-1.0/no-caca-no-aalib.patch
index e69de29bb2..ffdda0c2ca 100644
--- a/packages/libxine/libxine-1.0/no-caca-no-aalib.patch
+++ b/packages/libxine/libxine-1.0/no-caca-no-aalib.patch
@@ -0,0 +1,24 @@
+diff -urNd ../libxine-1.0-r1/xine-lib-1.0/configure.ac xine-lib-1.0/configure.ac
+--- ../libxine-1.0-r1/xine-lib-1.0/configure.ac 2005-04-09 02:22:48 +01:00
++++ xine-lib-1.0/configure.ac 2005-04-09 02:24:00 +01:00
+@@ -710,16 +710,16 @@
+ dnl Checks for Ascii-Art library
+ dnl ---------------------------------------------
+
+-AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_AA, [test x"$enable_aalib" = "xyes" && test x$no_aalib != "xyes"])
++dnl AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
++AM_CONDITIONAL(HAVE_AA, 0)
+
+
+ dnl ---------------------------------------------
+ dnl Checks for Color AsCii Art library
+ dnl ---------------------------------------------
+
+-AM_PATH_CACA(0.3,, AC_MSG_RESULT([*** All CACA-dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_CACA, test x$no_caca != "xyes")
++dnl AM_PATH_CACA(0.3,, AC_MSG_RESULT([*** All CACA-dependent parts will be disabled ***]))
++AM_CONDITIONAL(HAVE_CACA, 0)
+
+
+ dnl ---------------------------------------------
diff --git a/packages/libxine/libxine-1.0/restore-esd.patch b/packages/libxine/libxine-1.0/restore-esd.patch
index e69de29bb2..26a74adb80 100644
--- a/packages/libxine/libxine-1.0/restore-esd.patch
+++ b/packages/libxine/libxine-1.0/restore-esd.patch
@@ -0,0 +1,15 @@
+diff -urNd ../libxine-1.0-r1/xine-lib-1.0/configure.ac xine-lib-1.0/configure.ac
+--- ../libxine-1.0-r1/xine-lib-1.0/configure.ac 2005-04-09 04:38:41 +01:00
++++ xine-lib-1.0/configure.ac 2005-04-09 04:39:54 +01:00
+@@ -1080,8 +1080,9 @@
+ dnl ESD support
+ dnl ---------------------------------------------
+
+-AM_CONDITIONAL(HAVE_ESD, 0)
+-
++AM_PATH_ESD(0.2.8,
++ AC_DEFINE(HAVE_ESD,1,[Define this if you have ESD (libesd) installed]),- AC_MSG_RESULT(*** All of ESD dependent parts will be disabled ***))
++AM_CONDITIONAL(HAVE_ESD, test x"$no_esd" != "xyes")
+
+ dnl ---------------------------------------------
+ dnl ARTS support
diff --git a/packages/libxine/libxine-opie-1.0/.mtn2git_empty b/packages/libxine/libxine-opie-1.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libxine/libxine-opie-1.0/.mtn2git_empty
diff --git a/packages/libxine/libxine-opie-1.0/configure-1.0.patch b/packages/libxine/libxine-opie-1.0/configure-1.0.patch
index e69de29bb2..015f2fc1ca 100644
--- a/packages/libxine/libxine-opie-1.0/configure-1.0.patch
+++ b/packages/libxine/libxine-opie-1.0/configure-1.0.patch
@@ -0,0 +1,187 @@
+Index: xine-lib-1.0/configure.ac
+===================================================================
+--- xine-lib-1.0.orig/configure.ac 2004-12-25 18:40:24.000000000 +0100
++++ xine-lib-1.0/configure.ac 2005-02-16 22:57:07.926566529 +0100
+@@ -691,6 +691,7 @@
+ LIBS="$saved_libs"
+ fi
+ AM_CONDITIONAL(HAVE_XVMC, test x$ac_have_xvmc = "xyes")
++AM_CONDITIONAL(HAVE_XV, test x$ac_have_xvfoo = "xyes")
+ AC_SUBST(XVMC_LIB)
+
+
+@@ -711,7 +712,7 @@
+ dnl ---------------------------------------------
+
+ AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_AA, test x$no_aalib != "xyes")
++AM_CONDITIONAL(HAVE_AA, [test x"$enable_aalib" = "xyes" && test x$no_aalib != "xyes"])
+
+
+ dnl ---------------------------------------------
+@@ -824,10 +825,7 @@
+ dnl check for SDL
+ dnl ---------------------------------------------
+
+-AM_PATH_SDL(1.1.5,
+- AC_DEFINE(HAVE_SDL,1,[Define this if you have SDL library installed]),
+- [])
+-AM_CONDITIONAL(HAVE_SDL, [test x"$no_sdl" != x"yes"])
++AM_CONDITIONAL(HAVE_SDL, 0)
+
+
+ dnl ---------------------------------------------
+@@ -982,61 +980,29 @@
+ dnl Ogg/Theora libs.
+ dnl ---------------------------------------------
+
+-AM_PATH_OGG(
+- [ AM_PATH_THEORA(AC_DEFINE(HAVE_THEORA,1,[Define this if you have theora]),
+- AC_MSG_RESULT([*** All OGG/THEORA dependent parts will be disabled ***]))
+- ],
+- AC_MSG_RESULT([*** All of OGG/Theora dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_THEORA, [test x"$no_ogg" != "xyes" -a x"$no_theora" != "xyes"])
++AM_CONDITIONAL(HAVE_THEORA, 0)
+
+
+ dnl ---------------------------------------------
+ dnl Ogg/Speex libs.
+ dnl ---------------------------------------------
+
+-PKG_CHECK_MODULES(SPEEX, speex, no_speex="no", no_speex="yes")
+-
+-if test "x$no_speex" = "xyes" ; then
+- AM_PATH_OGG([ AM_PATH_SPEEX(no_speex="no")])
+-fi
+-
+-if test "x$no_speex" = "xyes" ; then
+- AC_MSG_RESULT([*** All OGG/SPEEX dependent parts will be disabled ***])
+-else
+- AC_DEFINE(HAVE_SPEEX,1,[Define this if you have speex])
+-
+- dnl Test whether Speex headers are eg. <speex.h> or <speex/speex.h>
+- dnl Speex headers were moved in mid-2004; 1.0.x has backwards compatible headers, 1.1.x does not
+- AC_CHECK_HEADER([speex/speex.h],
+- AC_DEFINE(HAVE_SPEEX_SUBDIR, [1], [Define to 1 if speex headers are eg. <speex/speex.h>])
+- )
+-
+- AC_SUBST(SPEEX_CFLAGS)
+- AC_SUBST(SPEEX_LIBS)
+-fi
+-AM_CONDITIONAL(HAVE_SPEEX, [test x"$no_ogg" != "xyes" -a x"$no_speex" != "xyes"])
++AM_CONDITIONAL(HAVE_SPEEX, 0)
+
+
+ dnl ---------------------------------------------
+ dnl check for libFLAC
+ dnl ---------------------------------------------
+
+-AM_PATH_LIBFLAC([],
+- AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
++AM_CONDITIONAL(HAVE_FLAC, 0)
+
+
+ dnl ---------------------------------------------
+ dnl MNG libs.
+ dnl ---------------------------------------------
+
+-AC_CHECK_LIB(mng, mng_initialize,
+- [ AC_CHECK_HEADER(libmng.h,
+- [ have_libmng=yes
+- MNG_LIBS="-lmng" ],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_LIBMNG, test x"$have_libmng" = "xyes")
++MNG_LIBS=""
++AM_CONDITIONAL(HAVE_LIBMNG, 0)
+ AC_SUBST(MNG_LIBS)
+
+
+@@ -1066,7 +1032,7 @@
+ dnl freetype2 lib.
+ dnl ---------------------------------------------
+
+-AM_PATH_FREETYPE2()
++AM_CONDITIONAL(HAVE_FT2, 0)
+
+
+ dnl ---------------------------------------------
+@@ -1109,37 +1075,21 @@
+ dnl ESD support
+ dnl ---------------------------------------------
+
+-AM_PATH_ESD(0.2.8,
+- AC_DEFINE(HAVE_ESD,1,[Define this if you have ESD (libesd) installed]),
+- AC_MSG_RESULT(*** All of ESD dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ESD, test x"$no_esd" != "xyes")
++AM_CONDITIONAL(HAVE_ESD, 0)
+
+
+ dnl ---------------------------------------------
+ dnl ARTS support
+ dnl ---------------------------------------------
+
+-AM_PATH_ARTS(0.9.5,
+- AC_DEFINE(HAVE_ARTS,1,[Define this if you have ARTS (libartsc) installed]),
+- AC_MSG_RESULT(*** All of ARTS dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ARTS, test x"$no_arts" != "xyes")
++AM_CONDITIONAL(HAVE_ARTS, 0)
+
+
+ dnl ---------------------------------------------
+ dnl gnome-vfs support
+ dnl ---------------------------------------------
+
+-PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0,
+- no_gnome_vfs=no,
+- no_gnome_vfs=yes)
+-AC_SUBST(GNOME_VFS_CFLAGS)
+-AC_SUBST(GNOME_VFS_LIBS)
+-if test x"$no_gnome_vfs" != "xyes"; then
+-AC_DEFINE(HAVE_GNOME_VFS,1,[Define this if you have gnome-vfs installed])
+-else
+-AC_MSG_RESULT(*** All of the gnome-vfs dependent parts will be disabled ***)
+-fi
+-AM_CONDITIONAL(HAVE_GNOME_VFS, test x"$no_gnome_vfs" != "xyes")
++AM_CONDITIONAL(HAVE_GNOME_VFS, 0)
+
+
+ dnl ---------------------------------------------
+@@ -1316,35 +1266,7 @@
+ ],ISOC99_PRAGMA=no)
+ AC_MSG_RESULT($ISOC99_PRAGMA)
+
+- dnl bitfield order
+- AC_MSG_CHECKING(bitfield ordering in structs)
+- AC_TRY_RUN([
+-int
+- main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0x4b; }
+-], bf_lsbf=1, AC_TRY_RUN([
+-int
+-main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0xa5; }
+-], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
+- if test "x$bf_lsbf" = "x1"; then
+- AC_MSG_RESULT(LSBF)
+- AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+- else
+- AC_MSG_RESULT(MSBF)
+- fi
++ AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+
+ AC_HAVE_HEADERS( errno.h fcntl.h \
+ stdbool.h stdlib.h stdint.h stdio.h string.h \
diff --git a/packages/libxine/libxine-opie-1.0/demuxogg.patch b/packages/libxine/libxine-opie-1.0/demuxogg.patch
index e69de29bb2..55f239cfad 100644
--- a/packages/libxine/libxine-opie-1.0/demuxogg.patch
+++ b/packages/libxine/libxine-opie-1.0/demuxogg.patch
@@ -0,0 +1,26 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/src/demuxers/demux_ogg.c~demuxogg
++++ xine-lib-1-rc7/src/demuxers/demux_ogg.c
+@@ -40,7 +40,7 @@
+ #include <inttypes.h>
+
+ #include <ogg/ogg.h>
+-#include <vorbis/codec.h>
++#include <tremor/ivorbiscodec.h>
+
+ #ifdef HAVE_SPEEX
+ #ifdef HAVE_SPEEX_SUBDIR
+--- xine-lib-1-rc7/src/demuxers/Makefile.am~demuxogg
++++ xine-lib-1-rc7/src/demuxers/Makefile.am
+@@ -1,6 +1,6 @@
+ include $(top_srcdir)/misc/Makefile.common
+
+-AM_CFLAGS = $(THEORA_CFLAGS) $(OGG_CFLAGS) $(SPEEX_CFLAGS) $(LIBMODPLUG_CFLAGS)
++AM_CFLAGS = $(THEORA_CFLAGS) $(OGG_CFLAGS) $(VORBIS_CFLAGS) $(SPEEX_CFLAGS) $(LIBMODPLUG_CFLAGS)
+
+ libdir = $(XINE_PLUGINDIR)
+
diff --git a/packages/libxine/libxine-opie-1.0/fix-syntax.patch b/packages/libxine/libxine-opie-1.0/fix-syntax.patch
index e69de29bb2..b129dec36c 100644
--- a/packages/libxine/libxine-opie-1.0/fix-syntax.patch
+++ b/packages/libxine/libxine-opie-1.0/fix-syntax.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/src/libvorbis/xine_decoder.c~fix-syntax
++++ xine-lib-1-rc7/src/libvorbis/xine_decoder.c
+@@ -218,7 +218,7 @@
+ float **pcm;
+ int samples;
+
+- if(vorbis_synthesis(&this->vb,&this->op)==0)
++ if(vorbis_synthesis(&this->vb,&this->op,1)==0)
+ vorbis_synthesis_blockin(&this->vd,&this->vb);
+
+ if (buf->pts!=0)
diff --git a/packages/libxine/libxine-opie-1.0/libxine-arm-configure.patch b/packages/libxine/libxine-opie-1.0/libxine-arm-configure.patch
index e69de29bb2..fa80ea6b13 100644
--- a/packages/libxine/libxine-opie-1.0/libxine-arm-configure.patch
+++ b/packages/libxine/libxine-opie-1.0/libxine-arm-configure.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/configure.ac~libxine-arm-configure.patch
++++ xine-lib-1-rc7/configure.ac
+@@ -1810,8 +1810,8 @@
+ AC_DEFINE_UNQUOTED(FPM_DEFAULT,,[Define to select libmad fixed point arithmetic implementation])
+ ;;
+
+- armv4l-*-linux*)
+- CFLAGS="-O2 -fsigned-char -ffast-math -mcpu=strongarm1100 -fomit-frame-pointer -fthread-jumps -fregmove $CFLAGS"
++ arm-*-linux*)
++ CFLAGS="-O2 -fsigned-char -ffast-math -march=armv4 -mtune=xscale -fomit-frame-pointer -fthread-jumps -fregmove $CFLAGS"
+ dnl CFLAGS="-O1 -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2 -finline-functions -fsigned-char -fomit-frame-pointer -march=armv4 -mtune=strongarm $CFLAGS"
+ DEBUG_CFLAGS="-O2 $DEBUG_CFLAGS"
+ AC_DEFINE_UNQUOTED(FPM_ARM,,[Define to select libmad fixed point arithmetic implementation])
diff --git a/packages/libxine/libxine-opie-1.0/no-caca.patch b/packages/libxine/libxine-opie-1.0/no-caca.patch
index e69de29bb2..978c4fc38a 100644
--- a/packages/libxine/libxine-opie-1.0/no-caca.patch
+++ b/packages/libxine/libxine-opie-1.0/no-caca.patch
@@ -0,0 +1,16 @@
+Index: xine-lib-1.0/configure.ac
+===================================================================
+--- xine-lib-1.0.orig/configure.ac 2005-03-06 16:50:09.019575452 +0100
++++ xine-lib-1.0/configure.ac 2005-03-06 17:07:55.605266498 +0100
+@@ -719,8 +719,9 @@
+ dnl Checks for Color AsCii Art library
+ dnl ---------------------------------------------
+
+-AM_PATH_CACA(0.3,, AC_MSG_RESULT([*** All CACA-dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_CACA, test x$no_caca != "xyes")
++dnl AM_PATH_CACA(0.3,, AC_MSG_RESULT([*** All CACA-dependent parts will be disabled ***]))
++AM_CONDITIONAL(HAVE_CACA, 0)
++
+
+
+ dnl ---------------------------------------------