diff options
author | Koen Kooi <koen@openembedded.org> | 2005-06-30 08:19:37 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-06-30 08:19:37 +0000 |
commit | c8e5702127e507e82e6f68a4b8c546803accea9d (patch) | |
tree | 00583491f40ecc640f2b28452af995e3a63a09d7 /packages/libxine | |
parent | 87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff) |
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/libxine')
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 --------------------------------------------- |