diff --git a/packages/multimedia/libva/build b/packages/multimedia/libva/build index 8c7a0d8d30..4abf3f3bff 100755 --- a/packages/multimedia/libva/build +++ b/packages/multimedia/libva/build @@ -15,9 +15,8 @@ cd $PKG_BUILD --prefix=/usr \ --enable-shared \ --disable-static \ - --with-gnu-ld \ --enable-glx \ - --enable-dummy-driver \ + --disable-dummy-driver \ --enable-i965-driver \ --with-drivers-path="/usr/lib/va" \ diff --git a/packages/multimedia/libva/install b/packages/multimedia/libva/install index 1d61335038..65644ab20a 100755 --- a/packages/multimedia/libva/install +++ b/packages/multimedia/libva/install @@ -12,7 +12,7 @@ mkdir -p $INSTALL/usr/lib cp -PR $PKG_BUILD/src/.libs/*.so*[.0-9] $INSTALL/usr/lib mkdir -p $INSTALL/usr/lib/va -cp -PR $PKG_BUILD/dummy_drv_video/.libs/*.so $INSTALL/usr/lib/va +# cp -PR $PKG_BUILD/dummy_drv_video/.libs/*.so $INSTALL/usr/lib/va cp -PR $PKG_BUILD/i965_drv_video/.libs/*.so $INSTALL/usr/lib/va mkdir -p $INSTALL/usr/bin diff --git a/packages/multimedia/libva/patches/020_g45_nop_vaQueryDisplayAttributes.diff b/packages/multimedia/libva/patches/020_g45_nop_vaQueryDisplayAttributes.diff deleted file mode 100644 index 29bc61b9d9..0000000000 --- a/packages/multimedia/libva/patches/020_g45_nop_vaQueryDisplayAttributes.diff +++ /dev/null @@ -1,23 +0,0 @@ -commit 179bbd6adf94ac21c990bfc09616c3f61406e360 -Author: Gwenole Beauchesne -Date: Thu Sep 24 11:59:36 2009 +0000 - - [G45] Implement vaQueryDisplayAttributes() as a no-op. - -diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c -index d26942d..375d532 100644 ---- a/i965_drv_video/i965_drv_video.c -+++ b/i965_drv_video/i965_drv_video.c -@@ -1031,8 +1031,10 @@ i965_QueryDisplayAttributes(VADriverContextP ctx, - VADisplayAttribute *attr_list, /* out */ - int *num_attributes) /* out */ - { -- /* TODO */ -- return VA_STATUS_ERROR_UNKNOWN; -+ if (num_attributes) -+ *num_attributes = 0; -+ -+ return VA_STATUS_SUCCESS; - } - - /* diff --git a/packages/multimedia/libva/patches/021_g45_fix_vaQueryImageFormats.diff b/packages/multimedia/libva/patches/021_g45_fix_vaQueryImageFormats.diff deleted file mode 100644 index ff0fc95a5a..0000000000 --- a/packages/multimedia/libva/patches/021_g45_fix_vaQueryImageFormats.diff +++ /dev/null @@ -1,20 +0,0 @@ -commit bba300da5347d8ac25544650c6f6e507e5ea8a1b -Author: Gwenole Beauchesne -Date: Thu Sep 24 12:00:02 2009 +0000 - - [G45] Fix vaQueryImageFormats() to return 0 image formats supported at this time. - -diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c -index 375d532..8d28547 100644 ---- a/i965_drv_video/i965_drv_video.c -+++ b/i965_drv_video/i965_drv_video.c -@@ -346,6 +346,9 @@ i965_QueryImageFormats(VADriverContextP ctx, - VAImageFormat *format_list, /* out */ - int *num_formats) /* out */ - { -+ if (num_formats) -+ *num_formats = 0; -+ - return VA_STATUS_SUCCESS; - } - diff --git a/packages/multimedia/libva/patches/022_g45_fix_driver_version.diff b/packages/multimedia/libva/patches/022_g45_fix_driver_version.diff deleted file mode 100644 index 722e652230..0000000000 --- a/packages/multimedia/libva/patches/022_g45_fix_driver_version.diff +++ /dev/null @@ -1,21 +0,0 @@ -commit 41e88c17745a6e8553ed39e627a0ec22840b8100 -Author: Gwenole Beauchesne -Date: Thu Sep 24 12:54:40 2009 +0000 - - [G45] Fix VA driver version. - -diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c -index 8d28547..800a642 100644 ---- a/i965_drv_video/i965_drv_video.c -+++ b/i965_drv_video/i965_drv_video.c -@@ -1322,8 +1322,8 @@ __vaDriverInit_0_31( VADriverContextP ctx ) - struct i965_driver_data *i965; - int result; - -- ctx->version_major = 0; -- ctx->version_minor = 29; -+ ctx->version_major = VA_MAJOR_VERSION; -+ ctx->version_minor = VA_MINOR_VERSION; - ctx->max_profiles = I965_MAX_PROFILES; - ctx->max_entrypoints = I965_MAX_ENTRYPOINTS; - ctx->max_attributes = I965_MAX_CONFIG_ATTRIBUTES; diff --git a/packages/multimedia/libva/patches/023_g45_fix_associate_subpic_args.diff b/packages/multimedia/libva/patches/023_g45_fix_associate_subpic_args.diff deleted file mode 100644 index 8192812acc..0000000000 --- a/packages/multimedia/libva/patches/023_g45_fix_associate_subpic_args.diff +++ /dev/null @@ -1,19 +0,0 @@ -commit 390fab410fe30e0de0f47a539d1d15d022fb6902 -Author: Gwenole Beauchesne -Date: Thu Sep 24 12:55:11 2009 +0000 - - [G45] Fix vaAssociateSubpicture() arguments. - -diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c -index 800a642..6582c71 100644 ---- a/i965_drv_video/i965_drv_video.c -+++ b/i965_drv_video/i965_drv_video.c -@@ -489,8 +489,6 @@ i965_AssociateSubpicture(VADriverContextP ctx, - short dest_y, - unsigned short dest_width, - unsigned short dest_height, -- unsigned short width, -- unsigned short height, - /* - * whether to enable chroma-keying or global-alpha - * see VA_SUBPICTURE_XXX values diff --git a/packages/multimedia/libva/patches/102_attribute_visibility.diff b/packages/multimedia/libva/patches/102_attribute_visibility.diff deleted file mode 100644 index 4f5ea89f6a..0000000000 --- a/packages/multimedia/libva/patches/102_attribute_visibility.diff +++ /dev/null @@ -1,88 +0,0 @@ -diff -Naur libva-0.31.0/config.h.in libva-0.31.0.diff/config.h.in ---- libva-0.31.0/config.h.in 2009-10-10 23:13:39.445657680 +0200 -+++ libva-0.31.0.diff/config.h.in 2009-10-10 23:12:44.000000000 +0200 -@@ -1,5 +1,8 @@ - /* config.h.in. Generated from configure.ac by autoheader. */ - -+/* Defined to __attribute__((visibility("hidden"))) when available */ -+#undef ATTRIBUTE_HIDDEN -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_DLFCN_H - -diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ---- libva-0.31.0/configure 2009-10-10 23:13:39.576782883 +0200 -+++ libva-0.31.0.diff/configure 2009-10-10 23:12:44.390782788 +0200 -@@ -13164,6 +13164,38 @@ - fi - - -+{ $as_echo "$as_me:$LINENO: checking whether __attribute__((visibility())) is supported" >&5 -+$as_echo_n "checking whether __attribute__((visibility())) is supported... " >&6; } -+if test "${libva_cv_visibility_attribute+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ cat > conftest.c </dev/null 2>&1; then -+ if grep '\.hidden.*foo' conftest.s >/dev/null; then -+ if grep '\.protected.*bar' conftest.s >/dev/null; then -+ libva_cv_visibility_attribute=yes -+ fi -+ fi -+ fi -+ rm -f conftest.cs -+ -+fi -+{ $as_echo "$as_me:$LINENO: result: $libva_cv_visibility_attribute" >&5 -+$as_echo "$libva_cv_visibility_attribute" >&6; } -+ATTRIBUTE_HIDDEN="" -+if test $libva_cv_visibility_attribute = yes; then -+ ATTRIBUTE_HIDDEN="__attribute__((visibility(\"hidden\")))" -+fi -+ -+cat >>confdefs.h <<_ACEOF -+#define ATTRIBUTE_HIDDEN $ATTRIBUTE_HIDDEN -+_ACEOF -+ -+ - # We only need the headers, we don't link against the DRM libraries - LIBVA_CFLAGS="$DRM_CFLAGS" - -diff -Naur libva-0.31.0/configure.ac libva-0.31.0.diff/configure.ac ---- libva-0.31.0/configure.ac 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/configure.ac 2009-10-10 23:12:32.556667509 +0200 -@@ -100,6 +100,30 @@ - fi - AM_CONDITIONAL(BUILD_I965_DRIVER, test x$enable_i965_driver = xyes) - -+dnl Check for __attribute__((visibility())) -+AC_CACHE_CHECK([whether __attribute__((visibility())) is supported], -+ libva_cv_visibility_attribute, -+ [cat > conftest.c </dev/null 2>&1; then -+ if grep '\.hidden.*foo' conftest.s >/dev/null; then -+ if grep '\.protected.*bar' conftest.s >/dev/null; then -+ libva_cv_visibility_attribute=yes -+ fi -+ fi -+ fi -+ rm -f conftest.[cs] -+]) -+ATTRIBUTE_HIDDEN="" -+if test $libva_cv_visibility_attribute = yes; then -+ ATTRIBUTE_HIDDEN="__attribute__((visibility(\"hidden\")))" -+fi -+AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN], -+ [Defined to __attribute__((visibility("hidden"))) when available]) -+ - # We only need the headers, we don't link against the DRM libraries - LIBVA_CFLAGS="$DRM_CFLAGS" - AC_SUBST(LIBVA_CFLAGS) diff --git a/packages/multimedia/libva/patches/103_fix_vainfo_deps.diff b/packages/multimedia/libva/patches/103_fix_vainfo_deps.diff deleted file mode 100644 index be7ae1d379..0000000000 --- a/packages/multimedia/libva/patches/103_fix_vainfo_deps.diff +++ /dev/null @@ -1,33 +0,0 @@ -diff -Naur libva-0.31.0/test/Makefile.am libva-0.31.0.diff/test/Makefile.am ---- libva-0.31.0/test/Makefile.am 2009-09-10 17:18:48.000000000 +0200 -+++ libva-0.31.0.diff/test/Makefile.am 2009-10-10 23:14:32.350657987 +0200 -@@ -31,10 +31,10 @@ - - TESTS = $(check_PROGRAMS) - --TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib) -+TEST_LIBS = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) - --vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib) --vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) -+vainfo_LDADD = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) -+vainfo_DEPENDENCIES = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) - vainfo_SOURCES = vainfo.c - - test_01_LDADD = $(TEST_LIBS) -diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in ---- libva-0.31.0/test/Makefile.in 2009-10-10 23:13:39.621783024 +0200 -+++ libva-0.31.0.diff/test/Makefile.in 2009-10-10 23:14:48.470783134 +0200 -@@ -275,9 +275,9 @@ - testdir = $(bindir) - AM_CFLAGS = -I$(top_srcdir)/../../include/external/ -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA - TESTS = $(check_PROGRAMS) --TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib) --vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib) --vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) -+TEST_LIBS = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) -+vainfo_LDADD = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) -+vainfo_DEPENDENCIES = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) - vainfo_SOURCES = vainfo.c - test_01_LDADD = $(TEST_LIBS) - test_01_SOURCES = test_01.c diff --git a/packages/multimedia/libva/patches/104_fix_libva_pkgconfig_deps.diff b/packages/multimedia/libva/patches/104_fix_libva_pkgconfig_deps.diff deleted file mode 100644 index bd212bf39c..0000000000 --- a/packages/multimedia/libva/patches/104_fix_libva_pkgconfig_deps.diff +++ /dev/null @@ -1,18 +0,0 @@ -commit f0b352251894becfcec50de1430bda12c314a464 -Author: Gwenole Beauchesne -Date: Tue Sep 22 13:00:34 2009 +0000 - - Fix libva-x11 pkgconfig dependencies. - -diff --git a/libva-x11.pc.in b/libva-x11.pc.in -index 75e4f0b..6dde07f 100644 ---- a/libva-x11.pc.in -+++ b/libva-x11.pc.in -@@ -6,6 +6,7 @@ display=x11 - - Name: libva-${display} - Description: Userspace Video Acceleration (VA) ${display} interface -+Requires: libva - Version: @PACKAGE_VERSION@ - Libs: -L${libdir} -lva-${display} - Cflags: -I${includedir} diff --git a/packages/multimedia/libva/patches/105_dont_search_LIBGL_DRIVERS_PATH.diff b/packages/multimedia/libva/patches/105_dont_search_LIBGL_DRIVERS_PATH.diff deleted file mode 100644 index de873d6014..0000000000 --- a/packages/multimedia/libva/patches/105_dont_search_LIBGL_DRIVERS_PATH.diff +++ /dev/null @@ -1,21 +0,0 @@ -commit 035374378644216fb3a7d3974a8c46b1bd425918 -Author: Gwenole Beauchesne -Date: Tue Sep 22 13:03:23 2009 +0000 - - Don't search LIBGL_DRIVERS_PATH, stick to LIBVA_DRIVERS_PATH only or the default path. - -diff --git a/src/va.c b/src/va.c -index 12662cd..723235e 100644 ---- a/src/va.c -+++ b/src/va.c -@@ -134,10 +134,6 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name) - { - /* don't allow setuid apps to use LIBVA_DRIVERS_PATH */ - search_path = getenv("LIBVA_DRIVERS_PATH"); -- if (!search_path) -- { -- search_path = getenv("LIBGL_DRIVERS_PATH"); -- } - } - if (!search_path) - { diff --git a/packages/multimedia/libva/patches/108_drivers_path.diff b/packages/multimedia/libva/patches/108_drivers_path.diff deleted file mode 100644 index f9e85f71f7..0000000000 --- a/packages/multimedia/libva/patches/108_drivers_path.diff +++ /dev/null @@ -1,24 +0,0 @@ -diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ---- libva-0.31.0/configure 2009-10-10 23:14:15.667658343 +0200 -+++ libva-0.31.0.diff/configure 2009-10-10 23:16:27.484782476 +0200 -@@ -2652,7 +2652,7 @@ - if test "${with_drivers_path+set}" = set; then - withval=$with_drivers_path; - else -- with_drivers_path="$libdir/dri" -+ with_drivers_path="$libdir/va/drivers" - fi - - -diff -Naur libva-0.31.0/configure.ac libva-0.31.0.diff/configure.ac ---- libva-0.31.0/configure.ac 2009-10-10 23:14:15.668657233 +0200 -+++ libva-0.31.0.diff/configure.ac 2009-10-10 23:16:15.673657877 +0200 -@@ -73,7 +73,7 @@ - - AC_ARG_WITH(drivers-path, - [AC_HELP_STRING([--with-drivers-path=[[path]]], [drivers path])],, -- [with_drivers_path="$libdir/dri"]) -+ [with_drivers_path="$libdir/va/drivers"]) - - LIBVA_DRIVERS_PATH="$with_drivers_path" - AC_SUBST(LIBVA_DRIVERS_PATH) diff --git a/packages/multimedia/libva/patches/203_fix_fglrx_detection.diff b/packages/multimedia/libva/patches/203_fix_fglrx_detection.diff deleted file mode 100644 index d7a7d7afdb..0000000000 --- a/packages/multimedia/libva/patches/203_fix_fglrx_detection.diff +++ /dev/null @@ -1,564 +0,0 @@ -diff -Naur libva-0.31.0/src/Makefile.am libva-0.31.0.diff/src/Makefile.am ---- libva-0.31.0/src/Makefile.am 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/Makefile.am 2009-10-10 23:17:36.585684098 +0200 -@@ -37,7 +37,7 @@ - libva_la_LIBADD = $(LIBVA_LIBS) -ldl - - libva_x11_la_SOURCES = --libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) -+libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl - libva_x11_la_LDFLAGS = $(LDADD) - libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la - -diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in ---- libva-0.31.0/src/Makefile.in 2009-10-10 23:13:39.617782434 +0200 -+++ libva-0.31.0.diff/src/Makefile.in 2009-10-10 23:17:57.773782182 +0200 -@@ -309,7 +309,7 @@ - libva_la_LDFLAGS = $(LDADD) -no-undefined - libva_la_LIBADD = $(LIBVA_LIBS) -ldl - libva_x11_la_SOURCES = --libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) -+libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl - libva_x11_la_LDFLAGS = $(LDADD) - libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la - SUBDIRS = x11 -diff -Naur libva-0.31.0/src/x11/dri1_util.c libva-0.31.0.diff/src/x11/dri1_util.c ---- libva-0.31.0/src/x11/dri1_util.c 2009-09-22 15:17:03.000000000 +0200 -+++ libva-0.31.0.diff/src/x11/dri1_util.c 2009-10-10 23:17:36.554665627 +0200 -@@ -1,10 +1,12 @@ -+#include "config.h" -+#include - #include - #include - #include - #include - #include - --#include -+#include "libdrm_glue.h" - - #include "X11/Xlib.h" - #include "va.h" -@@ -21,6 +23,75 @@ - int height; - }; - -+static int -+firegl_drmOpenMinor(int minor) -+{ -+ char buf[64]; -+ int fd; -+ -+ sprintf(buf, "/dev/ati/card%d", minor); -+ if ((fd = open(buf, O_RDWR, 0)) >= 0) -+ return fd; -+ return -1; -+} -+ -+static int -+firegl_drmOpenByBusID(const char *busid) -+{ -+ int i, fd; -+ drmSetVersion sv; -+ const char *buf; -+ -+ for (i = 0; i < DRM_MAX_MINOR; i++) { -+ if ((fd = firegl_drmOpenMinor(i)) < 0) -+ continue; -+ sv.drm_di_major = 1; -+ sv.drm_di_minor = 1; -+ sv.drm_dd_major = -1; -+ sv.drm_dd_minor = -1; -+ libdrm_drmSetInterfaceVersion(fd, &sv); -+ buf = libdrm_drmGetBusid(fd); -+ if (buf && strcasecmp(buf, busid) == 0) { /* XXX: drmMatchBusID() */ -+ libdrm_drmFreeBusid(buf); -+ return fd; -+ } -+ if (buf) -+ libdrm_drmFreeBusid(buf); -+ close(fd); -+ } -+ return -1; -+} -+ -+static int -+drm_open_once(struct dri_state *dri_state, const char *BusID, int *newlyopened) -+{ -+ dri_state->driConnectedFlag = VA_NONE; -+ dri_state->fd = libdrm_drmOpenOnce(NULL, BusID, newlyopened); -+ if (dri_state->fd < 0) { -+ dri_state->fd = firegl_drmOpenByBusID(BusID); -+ if (dri_state->fd >= 0) { -+ *newlyopened = 1; -+ dri_state->driConnectedFlag |= VA_DRI_AMD; -+ } -+ } -+ return dri_state->fd; -+} -+ -+static void -+drm_close_once(struct dri_state *dri_state) -+{ -+ /* XXX: dri_state->close() doesn't seem to be called, thus this -+ function is never called either */ -+ if (dri_state->fd < 0) -+ return; -+ if (dri_state->driConnectedFlag & VA_DRI_AMD) -+ close(dri_state->fd); -+ else -+ libdrm_drmCloseOnce(dri_state->fd); -+ dri_state->fd = -1; -+ dri_state->driConnectedFlag = VA_NONE; -+} -+ - static struct dri_drawable * - dri1CreateDrawable(VADriverContextP ctx, XID x_drawable) - { -@@ -64,9 +135,9 @@ - free_drawable_hashtable(ctx); - VA_DRIDestroyContext(ctx->x11_dpy, ctx->x11_screen, dri_state->hwContextID); - assert(dri_state->pSAREA != MAP_FAILED); -- drmUnmap(dri_state->pSAREA, SAREA_MAX); -+ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); - assert(dri_state->fd >= 0); -- drmCloseOnce(dri_state->fd); -+ drm_close_once(dri_state); - VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); - } - -@@ -104,21 +175,20 @@ - &dri_state->hSAREA, &BusID)) - goto err_out0; - -- -- dri_state->fd = drmOpenOnce(NULL, BusID, &newlyopened); -+ drm_open_once(dri_state, BusID, &newlyopened); - XFree(BusID); - - if (dri_state->fd < 0) - goto err_out1; - - -- if (drmGetMagic(dri_state->fd, &magic)) -+ if (libdrm_drmGetMagic(dri_state->fd, &magic)) - goto err_out1; - - if (newlyopened && !VA_DRIAuthConnection(ctx->x11_dpy, ctx->x11_screen, magic)) - goto err_out1; - -- if (drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) -+ if (libdrm_drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) - goto err_out1; - - if (!VA_DRICreateContext(ctx->x11_dpy, ctx->x11_screen, -@@ -126,7 +196,8 @@ - &dri_state->hwContextID, &dri_state->hwContext)) - goto err_out1; - -- dri_state->driConnectedFlag = VA_DRI1; -+ dri_state->driConnectedFlag &= VA_DRI_AMD; /* clear flags but AMD bit */ -+ dri_state->driConnectedFlag |= VA_DRI1; - dri_state->createDrawable = dri1CreateDrawable; - dri_state->destroyDrawable = dri1DestroyDrawable; - dri_state->swapBuffer = dri1SwapBuffer; -@@ -137,10 +208,10 @@ - - err_out1: - if (dri_state->pSAREA != MAP_FAILED) -- drmUnmap(dri_state->pSAREA, SAREA_MAX); -+ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); - - if (dri_state->fd >= 0) -- drmCloseOnce(dri_state->fd); -+ drm_close_once(dri_state); - - VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); - -diff -Naur libva-0.31.0/src/x11/dri2_util.c libva-0.31.0.diff/src/x11/dri2_util.c ---- libva-0.31.0/src/x11/dri2_util.c 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/x11/dri2_util.c 2009-10-10 23:17:36.555686378 +0200 -@@ -3,7 +3,7 @@ - #include - #include - --#include -+#include "libdrm_glue.h" - - #include - #include -@@ -166,7 +166,7 @@ - if (dri_state->fd < 0) - goto err_out; - -- if (drmGetMagic(dri_state->fd, &magic)) -+ if (libdrm_drmGetMagic(dri_state->fd, &magic)) - goto err_out; - - if (!VA_DRI2Authenticate(ctx->x11_dpy, RootWindow(ctx->x11_dpy, ctx->x11_screen), -diff -Naur libva-0.31.0/src/x11/libdrm_glue.c libva-0.31.0.diff/src/x11/libdrm_glue.c ---- libva-0.31.0/src/x11/libdrm_glue.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/x11/libdrm_glue.c 2009-10-10 23:17:36.559790824 +0200 -@@ -0,0 +1,208 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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 _GNU_SOURCE 1 -+#include "libdrm_glue.h" -+#include -+#include -+#include -+#include -+ -+#define LOAD_FUNC_(NAME, RET, ARGS, FALLBACK) \ -+ static RET (*lib_##NAME) ARGS; \ -+ if (lib_##NAME == NULL) { \ -+ lib_##NAME = libdrm_symbol(#NAME); \ -+ if (!lib_##NAME) \ -+ lib_##NAME = FALLBACK; \ -+ } \ -+ assert(lib_##NAME != NULL) -+ -+#define LOAD_FUNC(NAME, RET, ARGS) \ -+ LOAD_FUNC_(NAME, RET, ARGS, NULL) -+ -+static void *libdrm_handle; -+static int libdrm_handle_ok = -1; -+ -+static inline void *libdrm_symbol(const char *name) -+{ -+ if (!libdrm_open()) -+ return NULL; -+ return dlsym(libdrm_handle, name); -+} -+ -+int libdrm_open(void) -+{ -+ if (libdrm_handle_ok < 0) { -+ libdrm_handle = dlopen("libdrm.so.2", RTLD_LOCAL|RTLD_LAZY); -+ libdrm_handle_ok = libdrm_handle != NULL; -+ } -+ assert(libdrm_handle); -+ return libdrm_handle_ok; -+} -+ -+void libdrm_close(void) -+{ -+ if (libdrm_handle) -+ dlclose(libdrm_handle); -+} -+ -+// Default drmOpenOnce() and drmCloseOnce() implementations based on current GIT -+#define DRM_MAX_FDS 16 -+static struct { -+ char *BusID; -+ int fd; -+ int refcount; -+} connection[DRM_MAX_FDS]; -+ -+static int nr_fds = 0; -+ -+// Default implementation for drmOpenOnce() if none exists in the library -+static int -+libdrm_default_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) -+{ -+ int i; -+ int fd; -+ -+ for (i = 0; i < nr_fds; i++) -+ if (strcmp(BusID, connection[i].BusID) == 0) { -+ connection[i].refcount++; -+ *newlyopened = 0; -+ return connection[i].fd; -+ } -+ -+ fd = libdrm_drmOpen(unused, BusID); -+ if (fd <= 0 || nr_fds == DRM_MAX_FDS) -+ return fd; -+ -+ connection[nr_fds].BusID = strdup(BusID); -+ connection[nr_fds].fd = fd; -+ connection[nr_fds].refcount = 1; -+ *newlyopened = 1; -+ -+ if (0) -+ fprintf(stderr, "saved connection %d for %s %d\n", -+ nr_fds, connection[nr_fds].BusID, -+ strcmp(BusID, connection[nr_fds].BusID)); -+ nr_fds++; -+ return fd; -+} -+ -+// Default implementation for drmCloseOnce() if none exists in the library -+static void libdrm_default_drmCloseOnce(int fd) -+{ -+ int i; -+ -+ for (i = 0; i < nr_fds; i++) { -+ if (fd == connection[i].fd) { -+ if (--connection[i].refcount == 0) { -+ libdrm_drmClose(connection[i].fd); -+ free(connection[i].BusID); -+ if (i < --nr_fds) -+ connection[i] = connection[nr_fds]; -+ return; -+ } -+ } -+ } -+} -+ -+// Determine whether the DRM kernel driver has been loaded -+int libdrm_drmAvailable(void) -+{ -+ LOAD_FUNC(drmAvailable, int, (void)); -+ return lib_drmAvailable(); -+} -+ -+// Open the DRM device -+int libdrm_drmOpen(const char *name, const char *busid) -+{ -+ LOAD_FUNC(drmOpen, int, (const char *, const char *)); -+ return lib_drmOpen(name, busid); -+} -+ -+// Close the device -+int libdrm_drmClose(int fd) -+{ -+ LOAD_FUNC(drmClose, int, (int)); -+ return lib_drmClose(fd); -+} -+ -+// Open the DRM device (re-use an existing connection) -+int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) -+{ -+ LOAD_FUNC_(drmOpenOnce, int, (void *, const char *, int *), -+ libdrm_default_drmOpenOnce); -+ return lib_drmOpenOnce(unused, BusID, newlyopened); -+} -+ -+// Close the device (unref an existing connection prior to actually closing it) -+void libdrm_drmCloseOnce(int fd) -+{ -+ LOAD_FUNC_(drmCloseOnce, void, (int), libdrm_default_drmCloseOnce); -+ lib_drmCloseOnce(fd); -+} -+ -+// DRM connection cookie -+int libdrm_drmGetMagic(int fd, drm_magic_t * magic) -+{ -+ LOAD_FUNC(drmGetMagic, int, (int, drm_magic_t *)); -+ return lib_drmGetMagic(fd, magic); -+} -+ -+// Issue a set-version ioctl -+int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) -+{ -+ LOAD_FUNC(drmSetInterfaceVersion, int, (int, drmSetVersion *)); -+ return lib_drmSetInterfaceVersion(fd, version); -+} -+ -+// Get the bus ID of the device -+char *libdrm_drmGetBusid(int fd) -+{ -+ LOAD_FUNC(drmGetBusid, char *, (int)); -+ return lib_drmGetBusid(fd); -+} -+ -+// Free the bus ID information -+void libdrm_drmFreeBusid(const char *busid) -+{ -+ LOAD_FUNC(drmFreeBusid, void, (const char *)); -+ lib_drmFreeBusid(busid); -+} -+ -+// Map a region of memory -+int libdrm_drmMap(int fd, -+ drm_handle_t handle, -+ drmSize size, -+ drmAddressPtr address) -+{ -+ LOAD_FUNC(drmMap, int, (int, drm_handle_t, drmSize, drmAddressPtr)); -+ return lib_drmMap(fd, handle, size, address); -+} -+ -+// Unmap mappings obtained with drmMap() -+int libdrm_drmUnmap(drmAddress address, drmSize size) -+{ -+ LOAD_FUNC(drmUnmap, int, (drmAddress, drmSize)); -+ return lib_drmUnmap(address, size); -+} -diff -Naur libva-0.31.0/src/x11/libdrm_glue.h libva-0.31.0.diff/src/x11/libdrm_glue.h ---- libva-0.31.0/src/x11/libdrm_glue.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/x11/libdrm_glue.h 2009-10-10 23:17:36.578783359 +0200 -@@ -0,0 +1,73 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#ifndef LIBDRM_GLUE_H -+#define LIBDRM_GLUE_H -+ -+#include "config.h" -+#include -+ -+int libdrm_open(void) -+ ATTRIBUTE_HIDDEN; -+ -+void libdrm_close(void) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmAvailable(void) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmOpen(const char *name, const char *busid) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmClose(int fd) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) -+ ATTRIBUTE_HIDDEN; -+ -+void libdrm_drmCloseOnce(int fd) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmGetMagic(int fd, drm_magic_t * magic) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) -+ ATTRIBUTE_HIDDEN; -+ -+char *libdrm_drmGetBusid(int fd) -+ ATTRIBUTE_HIDDEN; -+ -+void libdrm_drmFreeBusid(const char *busid) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmMap(int fd, -+ drm_handle_t handle, -+ drmSize size, -+ drmAddressPtr address) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmUnmap(drmAddress address, drmSize size) -+ ATTRIBUTE_HIDDEN; -+ -+#endif /* LIBDRM_GLUE_H */ -diff -Naur libva-0.31.0/src/x11/Makefile.am libva-0.31.0.diff/src/x11/Makefile.am ---- libva-0.31.0/src/x11/Makefile.am 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/x11/Makefile.am 2009-10-10 23:17:36.554665627 +0200 -@@ -25,6 +25,6 @@ - libva_x11includedir = ${includedir}/va - libva_x11include_HEADERS = va_x11.h va_dri.h va_dri2.h va_dricommon.h - --libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c -+libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c libdrm_glue.c - --EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h -+EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h libdrm_glue.h -diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.in ---- libva-0.31.0/src/x11/Makefile.in 2009-10-10 23:13:39.619782869 +0200 -+++ libva-0.31.0.diff/src/x11/Makefile.in 2009-10-10 23:17:57.866783115 +0200 -@@ -69,7 +69,8 @@ - LTLIBRARIES = $(noinst_LTLIBRARIES) - libva_x11_la_LIBADD = - am_libva_x11_la_OBJECTS = va_x11.lo va_dri.lo va_dri2.lo \ -- va_dricommon.lo dri2_util.lo dri1_util.lo va_nvctrl.lo -+ va_dricommon.lo dri2_util.lo dri1_util.lo va_nvctrl.lo \ -+ libdrm_glue.lo - libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS) - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/depcomp -@@ -249,8 +250,8 @@ - noinst_LTLIBRARIES = libva_x11.la - libva_x11includedir = ${includedir}/va - libva_x11include_HEADERS = va_x11.h va_dri.h va_dri2.h va_dricommon.h --libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c --EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h -+libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c libdrm_glue.c -+EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h libdrm_glue.h - all: all-am - - .SUFFIXES: -@@ -305,6 +306,7 @@ - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dri1_util.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dri2_util.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_glue.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dri.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dri2.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dricommon.Plo@am__quote@ -diff -Naur libva-0.31.0/src/x11/va_dricommon.h libva-0.31.0.diff/src/x11/va_dricommon.h ---- libva-0.31.0/src/x11/va_dricommon.h 2009-07-06 12:44:10.000000000 +0200 -+++ libva-0.31.0.diff/src/x11/va_dricommon.h 2009-10-10 23:17:36.581783243 +0200 -@@ -13,7 +13,8 @@ - { - VA_NONE = 0, - VA_DRI1 = 1, -- VA_DRI2 = 2 -+ VA_DRI2 = 2, -+ VA_DRI_AMD = 4 /* AMD DRI implementation */ - }; - - union dri_buffer -diff -Naur libva-0.31.0/src/x11/va_x11.c libva-0.31.0.diff/src/x11/va_x11.c ---- libva-0.31.0/src/x11/va_x11.c 2009-09-22 15:17:03.000000000 +0200 -+++ libva-0.31.0.diff/src/x11/va_x11.c 2009-10-10 23:17:36.584782498 +0200 -@@ -31,6 +31,7 @@ - #include "va_dri2.h" - #include "va_dricommon.h" - #include "va_nvctrl.h" -+#include "libdrm_glue.h" - #include - #include - #include -@@ -74,6 +75,8 @@ - } - ctx = &((*ctx)->pNext); - } -+ -+ libdrm_close(); - free(pDisplayContext->pDriverContext->dri_state); - free(pDisplayContext->pDriverContext); - free(pDisplayContext); diff --git a/packages/multimedia/libva/patches/300_sds_version.diff b/packages/multimedia/libva/patches/300_sds_version.diff deleted file mode 100644 index d84da06427..0000000000 --- a/packages/multimedia/libva/patches/300_sds_version.diff +++ /dev/null @@ -1,315 +0,0 @@ -diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ---- libva-0.31.0/configure 2009-10-10 23:17:18.356783363 +0200 -+++ libva-0.31.0.diff/configure 2009-10-10 23:19:28.956657592 +0200 -@@ -859,6 +859,7 @@ - BUILD_DUMMY_DRIVER_TRUE - LIBVA_LT_LDFLAGS - LIBVA_LT_VERSION -+LIBVA_SDS_VERSION - LIBVA_VERSION - LIBVA_MICRO_VERSION - LIBVA_MINOR_VERSION -@@ -2615,11 +2616,14 @@ - - - -+LIBVA_SDS_VERSION=3 -+ -+ - LIBVA_LT_CURRENT=1 - LIBVA_LT_REV=0 - LIBVA_LT_AGE=0 - LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" --LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" -+LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION" - - - -@@ -4514,13 +4518,13 @@ - else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext -- (eval echo "\"\$as_me:4517: $ac_compile\"" >&5) -+ (eval echo "\"\$as_me:4521: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 -- (eval echo "\"\$as_me:4520: $NM \\\"conftest.$ac_objext\\\"\"" >&5) -+ (eval echo "\"\$as_me:4524: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 -- (eval echo "\"\$as_me:4523: output\"" >&5) -+ (eval echo "\"\$as_me:4527: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" -@@ -5726,7 +5730,7 @@ - ;; - *-*-irix6*) - # Find out which ABI we are using. -- echo '#line 5729 "configure"' > conftest.$ac_ext -+ echo '#line 5733 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -@@ -7549,11 +7553,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7552: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:7556: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 -- echo "$as_me:7556: \$? = $ac_status" >&5 -+ echo "$as_me:7560: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. -@@ -7888,11 +7892,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7891: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:7895: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 -- echo "$as_me:7895: \$? = $ac_status" >&5 -+ echo "$as_me:7899: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. -@@ -7993,11 +7997,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7996: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8000: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 -- echo "$as_me:8000: \$? = $ac_status" >&5 -+ echo "$as_me:8004: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized -@@ -8048,11 +8052,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:8051: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8055: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 -- echo "$as_me:8055: \$? = $ac_status" >&5 -+ echo "$as_me:8059: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized -@@ -10851,7 +10855,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10854 "configure" -+#line 10858 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10947,7 +10951,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10950 "configure" -+#line 10954 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -diff -Naur libva-0.31.0/configure.ac libva-0.31.0.diff/configure.ac ---- libva-0.31.0/configure.ac 2009-10-10 23:17:18.356783363 +0200 -+++ libva-0.31.0.diff/configure.ac 2009-10-10 23:19:15.805657564 +0200 -@@ -28,6 +28,9 @@ - m4_define([libva_version], - [libva_major_version.libva_minor_version.libva_micro_version]) - -+# increase this number for each API change -+m4_define([libva_sds_version], [3]) -+ - # if the library source code has changed, increment revision - m4_define([libva_lt_revision], [0]) - # if any interface was added/removed/changed, then inc current, reset revision -@@ -52,11 +55,14 @@ - AC_SUBST(LIBVA_MICRO_VERSION) - AC_SUBST(LIBVA_VERSION) - -+LIBVA_SDS_VERSION=libva_sds_version -+AC_SUBST(LIBVA_SDS_VERSION) -+ - LIBVA_LT_CURRENT=libva_lt_current - LIBVA_LT_REV=libva_lt_revision - LIBVA_LT_AGE=libva_lt_age - LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" --LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" -+LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION" - AC_SUBST(LIBVA_LT_VERSION) - AC_SUBST(LIBVA_LT_LDFLAGS) - -diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_video/Makefile.in ---- libva-0.31.0/dummy_drv_video/Makefile.in 2009-10-10 23:13:39.578782409 +0200 -+++ libva-0.31.0.diff/dummy_drv_video/Makefile.in 2009-10-10 23:19:30.911783933 +0200 -@@ -161,6 +161,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_video/Makefile.in ---- libva-0.31.0/i965_drv_video/Makefile.in 2009-10-10 23:13:39.580782565 +0200 -+++ libva-0.31.0.diff/i965_drv_video/Makefile.in 2009-10-10 23:19:31.021782765 +0200 -@@ -202,6 +202,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/Makefile.in 2009-10-10 23:13:39.582782720 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/Makefile.in 2009-10-10 23:19:31.088782868 +0200 -@@ -132,6 +132,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in 2009-10-10 23:13:39.583782588 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/Makefile.in 2009-10-10 23:19:31.153783373 +0200 -@@ -132,6 +132,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/vld/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-10-10 23:13:39.585782953 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-10-10 23:19:31.220782567 +0200 -@@ -92,6 +92,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/render/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/render/Makefile.in 2009-10-10 23:13:39.586782472 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/render/Makefile.in 2009-10-10 23:19:31.290782972 +0200 -@@ -92,6 +92,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in ---- libva-0.31.0/Makefile.in 2009-10-10 23:13:39.598782635 +0200 -+++ libva-0.31.0.diff/Makefile.in 2009-10-10 23:19:31.708782943 +0200 -@@ -196,6 +196,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in ---- libva-0.31.0/src/Makefile.in 2009-10-10 23:19:00.350783347 +0200 -+++ libva-0.31.0.diff/src/Makefile.in 2009-10-10 23:19:31.388782687 +0200 -@@ -206,6 +206,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/src/va.c libva-0.31.0.diff/src/va.c ---- libva-0.31.0/src/va.c 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/va.c 2009-10-10 23:19:15.806658410 +0200 -@@ -40,6 +40,7 @@ - - - #define DRIVER_INIT_FUNC "__vaDriverInit_0_31" -+#define DRIVER_INIT_FUNC_SDS "__vaDriverInit_0_31_sds" - - #define DRIVER_EXTENSION "_drv_video.so" - -@@ -170,6 +171,11 @@ - init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); - if (!init_func) - { -+ /* Then try SDS extensions (VDPAU and XvBA backends) */ -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_SDS); -+ } -+ if (!init_func) -+ { - va_errorMessage("%s has no function %s\n", driver_path, DRIVER_INIT_FUNC); - dlclose(handle); - } -diff -Naur libva-0.31.0/src/va_version.h.in libva-0.31.0.diff/src/va_version.h.in ---- libva-0.31.0/src/va_version.h.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/va_version.h.in 2009-10-10 23:19:15.807658068 +0200 -@@ -47,6 +47,13 @@ - #define VA_MICRO_VERSION (@LIBVA_MICRO_VERSION@) - - /** -+ * VA_SDS_VERSION: -+ * -+ * The version of the SDS API extensions to the VA library -+ */ -+#define VA_SDS_VERSION (@LIBVA_SDS_VERSION@) -+ -+/** - * VA_VERSION: - * - * The full version of the VA library, like 1.2.3 -@@ -59,7 +66,7 @@ - * The full version of the VA library, in string form (suited for - * string concatenation) - */ --#define VA_VERSION_S "@LIBVA_VERSION@" -+#define VA_VERSION_S "@LIBVA_VERSION@-sds@LIBVA_SDS_VERSION@" - - /** - * VA_VERSION_HEX: -diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.in ---- libva-0.31.0/src/x11/Makefile.in 2009-10-10 23:19:00.355783107 +0200 -+++ libva-0.31.0.diff/src/x11/Makefile.in 2009-10-10 23:19:31.476782185 +0200 -@@ -159,6 +159,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ -diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in ---- libva-0.31.0/test/Makefile.in 2009-10-10 23:16:01.445782945 +0200 -+++ libva-0.31.0.diff/test/Makefile.in 2009-10-10 23:19:31.623782491 +0200 -@@ -185,6 +185,7 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ - LIPO = @LIPO@ - LN_S = @LN_S@ diff --git a/packages/multimedia/libva/patches/320_move_vaPutSurface_flags_def.diff b/packages/multimedia/libva/patches/320_move_vaPutSurface_flags_def.diff deleted file mode 100644 index f00c52ca47..0000000000 --- a/packages/multimedia/libva/patches/320_move_vaPutSurface_flags_def.diff +++ /dev/null @@ -1,60 +0,0 @@ -commit c682fb5ebd1964638f90590f66edf49629e7481d -Author: Gwenole Beauchesne -Date: Fri Aug 21 11:34:50 2009 +0000 - - Move vaPutSurface() flags to header. - -diff --git a/src/va.h b/src/va.h -index 0519f6f..6b4bbd4 100755 ---- a/src/va.h -+++ b/src/va.h -@@ -127,6 +127,22 @@ typedef int VAStatus; /* Return status type from functions */ - #define VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED 0x00000013 - #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF - -+/* De-interlacing flags for vaPutSurface() */ -+#define VA_FRAME_PICTURE 0x00000000 -+#define VA_TOP_FIELD 0x00000001 -+#define VA_BOTTOM_FIELD 0x00000002 -+ -+/* -+ * Clears the drawable with background color. -+ * for hardware overlay based implementation this flag -+ * can be used to turn off the overlay -+ */ -+#define VA_CLEAR_DRAWABLE 0x00000008 -+ -+/* Color space conversion flags for vaPutSurface() */ -+#define VA_SRC_BT601 0x00000010 -+#define VA_SRC_BT709 0x00000020 -+ - /* - * Returns a short english description of error_status - */ -diff --git a/src/x11/va_x11.h b/src/x11/va_x11.h -index 2171ac6..5ab5200 100644 ---- a/src/x11/va_x11.h -+++ b/src/x11/va_x11.h -@@ -27,22 +27,6 @@ VADisplay vaGetDisplay ( - * color space conversion and scaling to the destination - * rectangle - */ --/* de-interlacing flags for vaPutSurface */ --#define VA_FRAME_PICTURE 0x00000000 --#define VA_TOP_FIELD 0x00000001 --#define VA_BOTTOM_FIELD 0x00000002 -- --/* -- * clears the drawable with background color. -- * for hardware overlay based implementation this flag -- * can be used to turn off the overlay -- */ --#define VA_CLEAR_DRAWABLE 0x00000008 -- --/* color space conversion flags for vaPutSurface */ --#define VA_SRC_BT601 0x00000010 --#define VA_SRC_BT709 0x00000020 -- - VAStatus vaPutSurface ( - VADisplay dpy, - VASurfaceID surface, diff --git a/packages/multimedia/libva/patches/321_libva_glx.diff b/packages/multimedia/libva/patches/321_libva_glx.diff deleted file mode 100644 index 87085736c0..0000000000 --- a/packages/multimedia/libva/patches/321_libva_glx.diff +++ /dev/null @@ -1,1980 +0,0 @@ -diff -Naur libva-0.31.0/src/glx/Makefile.am libva-0.31.0.diff/src/glx/Makefile.am ---- libva-0.31.0/src/glx/Makefile.am 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/Makefile.am 2009-10-10 23:45:37.236658980 +0200 -@@ -0,0 +1,41 @@ -+# Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+# -+# 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, sub license, 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 (including the -+# next paragraph) 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 NON-INFRINGEMENT. -+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ -+AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -+ -+source_c = \ -+ va_glx.c \ -+ va_glx_impl.c -+ -+source_h = \ -+ va_glx.h \ -+ va_backend_glx.h -+ -+source_h_priv = \ -+ va_glx_impl.h \ -+ va_glx_private.h -+ -+noinst_LTLIBRARIES = libva_glx.la -+libva_glxincludedir = ${includedir}/va -+libva_glxinclude_HEADERS = $(source_h) -+libva_glx_la_SOURCES = $(source_c) -+noinst_HEADERS = $(source_h_priv) -diff -Naur libva-0.31.0/src/glx/va_backend_glx.h libva-0.31.0.diff/src/glx/va_backend_glx.h ---- libva-0.31.0/src/glx/va_backend_glx.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/va_backend_glx.h 2009-10-10 23:45:37.237658639 +0200 -@@ -0,0 +1,87 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#ifndef VA_BACKEND_GLX_H -+#define VA_BACKEND_GLX_H -+ -+struct VADriverContext; -+ -+struct VADriverVTableGLX { -+ /* Optional: create a surface used for display to OpenGL */ -+ VAStatus (*vaCreateSurfaceGLX)( -+ struct VADriverContext *ctx, -+ unsigned int gl_target, -+ unsigned int gl_texture, -+ void **gl_surface -+ ); -+ -+ /* Optional: destroy a VA/GLX surface */ -+ VAStatus (*vaDestroySurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: associate a VA surface to a VA/GLX surface */ -+ VAStatus (*vaAssociateSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+ ); -+ -+ /* Optional: deassociate a VA surface from a VA/GLX surface */ -+ VAStatus (*vaDeassociateSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: synchronize a VA/GLX surface */ -+ VAStatus (*vaSyncSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: prepare VA/GLX surface for rendering */ -+ VAStatus (*vaBeginRenderSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: notify the server that the VA/GLX surface is no -+ longer used for rendering */ -+ VAStatus (*vaEndRenderSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: copy a VA surface to a VA/GLX surface */ -+ VAStatus (*vaCopySurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+ ); -+}; -+ -+#endif /* VA_BACKEND_GLX_H */ -diff -Naur libva-0.31.0/src/glx/va_glx.c libva-0.31.0.diff/src/glx/va_glx.c ---- libva-0.31.0/src/glx/va_glx.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/va_glx.c 2009-10-10 23:45:37.238658507 +0200 -@@ -0,0 +1,295 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#include "va_glx_private.h" -+#include "va_glx_impl.h" -+ -+#define INIT_CONTEXT(ctx, dpy) do { \ -+ if (!vaDisplayIsValid(dpy)) \ -+ return VA_STATUS_ERROR_INVALID_DISPLAY; \ -+ \ -+ ctx = ((VADisplayContextP)(dpy))->pDriverContext; \ -+ if (!(ctx)) \ -+ return VA_STATUS_ERROR_INVALID_DISPLAY; \ -+ \ -+ VAStatus status = va_glx_init_context(ctx); \ -+ if (status != VA_STATUS_SUCCESS) \ -+ return status; \ -+ } while (0) -+ -+#define INIT_SURFACE(surface, surface_arg) do { \ -+ surface = (VASurfaceGLXP)(surface_arg); \ -+ if (!vaSurfaceIsValid(surface)) \ -+ return VA_STATUS_ERROR_INVALID_SURFACE; \ -+ } while (0) -+ -+#define INVOKE(ctx, func, args) do { \ -+ VADriverVTableGLXP vtable; \ -+ vtable = &VA_DRIVER_CONTEXT_GLX(ctx)->vtable; \ -+ if (!vtable->va##func##GLX) \ -+ return VA_STATUS_ERROR_UNIMPLEMENTED; \ -+ status = vtable->va##func##GLX args; \ -+ } while (0) -+ -+// Check VADisplay is valid -+static inline int vaDisplayIsValid(VADisplay dpy) -+{ -+ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; -+ -+ return (pDisplayContext && -+ pDisplayContext->vaIsValid && -+ pDisplayContext->vaIsValid(pDisplayContext)); -+} -+ -+// Check VASurfaceGLX is valid -+static inline int vaSurfaceIsValid(VASurfaceGLXP pSurfaceGLX) -+{ -+ return pSurfaceGLX && pSurfaceGLX->magic == VA_SURFACE_GLX_MAGIC; -+} -+ -+// Destroy VA/GLX display context -+static void va_DisplayContextDestroy(VADisplayContextP pDisplayContext) -+{ -+ VADisplayContextGLXP pDisplayContextGLX; -+ VADriverContextP pDriverContext; -+ VADriverContextGLXP pDriverContextGLX; -+ -+ if (!pDisplayContext) -+ return; -+ -+ pDriverContext = pDisplayContext->pDriverContext; -+ pDriverContextGLX = pDriverContext->glx; -+ if (pDriverContextGLX) { -+ free(pDriverContextGLX); -+ pDriverContext->glx = NULL; -+ } -+ -+ pDisplayContextGLX = pDisplayContext->opaque; -+ if (pDisplayContextGLX) { -+ if (pDisplayContextGLX->vaDestroy) -+ pDisplayContextGLX->vaDestroy(pDisplayContext); -+ free(pDisplayContextGLX); -+ pDisplayContext->opaque = NULL; -+ } -+} -+ -+// Return a suitable VADisplay for VA API -+VADisplay vaGetDisplayGLX(Display *native_dpy) -+{ -+ VADisplay dpy = NULL; -+ VADisplayContextP pDisplayContext = NULL; -+ VADisplayContextGLXP pDisplayContextGLX = NULL; -+ VADriverContextP pDriverContext; -+ VADriverContextGLXP pDriverContextGLX = NULL; -+ -+ dpy = vaGetDisplay(native_dpy); -+ if (!dpy) -+ return NULL; -+ pDisplayContext = (VADisplayContextP)dpy; -+ pDriverContext = pDisplayContext->pDriverContext; -+ -+ pDisplayContextGLX = calloc(1, sizeof(*pDisplayContextGLX)); -+ if (!pDisplayContextGLX) -+ goto error; -+ -+ pDriverContextGLX = calloc(1, sizeof(*pDriverContextGLX)); -+ if (!pDriverContextGLX) -+ goto error; -+ -+ pDisplayContextGLX->vaDestroy = pDisplayContext->vaDestroy; -+ pDisplayContext->vaDestroy = va_DisplayContextDestroy; -+ pDisplayContext->opaque = pDisplayContextGLX; -+ pDriverContext->glx = pDriverContextGLX; -+ return dpy; -+ -+error: -+ free(pDriverContextGLX); -+ free(pDisplayContextGLX); -+ pDisplayContext->vaDestroy(pDisplayContext); -+ return NULL; -+} -+ -+// Create a surface used for display to OpenGL -+VAStatus vaCreateSurfaceGLX( -+ VADisplay dpy, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ /* Make sure it is a valid GL texture object */ -+ if (!glIsTexture(texture)) -+ return VA_STATUS_ERROR_INVALID_PARAMETER; -+ -+ INIT_CONTEXT(ctx, dpy); -+ -+ pSurfaceGLX = va_glx_create_surface(ctx, target, texture); -+ if (!pSurfaceGLX) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ -+ INVOKE(ctx, CreateSurface, (ctx, target, texture, &pSurfaceGLX->priv)); -+ -+ if (status != VA_STATUS_SUCCESS) -+ va_glx_destroy_surface(ctx, &pSurfaceGLX); -+ -+ *gl_surface = pSurfaceGLX; -+ return status; -+} -+ -+// Destroy a VA/GLX surface -+VAStatus vaDestroySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, DestroySurface, (ctx, pSurfaceGLX)); -+ -+ free(pSurfaceGLX); -+ return status; -+} -+ -+// Associate a VA surface to a VA/GLX surface -+VAStatus vaAssociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, AssociateSurface, (ctx, pSurfaceGLX, surface, flags)); -+ -+ if (status == VA_STATUS_SUCCESS) -+ pSurfaceGLX->surface = surface; -+ -+ return status; -+} -+ -+// Deassociate a VA surface from a VA/GLX surface -+VAStatus vaDeassociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, DeassociateSurface, (ctx, pSurfaceGLX)); -+ -+ if (status == VA_STATUS_SUCCESS) -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ -+ return status; -+} -+ -+// Synchronize a VA/GLX surface -+VAStatus vaSyncSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, SyncSurface, (ctx, pSurfaceGLX)); -+ return status; -+} -+ -+// Prepare VA/GLX surface for rendering -+VAStatus vaBeginRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, BeginRenderSurface, (ctx, pSurfaceGLX)); -+ return status; -+} -+ -+// Notify the server that the VA/GLX surface is no longer used for rendering -+VAStatus vaEndRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, EndRenderSurface, (ctx, pSurfaceGLX)); -+ return status; -+} -+ -+// Copy a VA surface to a VA/GLX surface -+VAStatus vaCopySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, CopySurface, (ctx, pSurfaceGLX, surface, flags)); -+ return status; -+} -diff -Naur libva-0.31.0/src/glx/va_glx.h libva-0.31.0.diff/src/glx/va_glx.h ---- libva-0.31.0/src/glx/va_glx.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/va_glx.h 2009-10-10 23:45:37.239657747 +0200 -@@ -0,0 +1,217 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#ifndef VA_GLX_H -+#define VA_GLX_H -+ -+#ifdef IN_LIBVA -+#include "va.h" -+#else -+#include -+#endif -+#include -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/** -+ * Return a suitable VADisplay for VA API -+ * -+ * @param[in] dpy the X11 display -+ * @return a VADisplay -+ */ -+VADisplay vaGetDisplayGLX( -+ Display *dpy -+); -+ -+/** -+ * Create a surface used for display to OpenGL -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] target the GL target to which the texture needs to be bound -+ * @param[in] texture the GL texture -+ * @param[out] gl_surface the VA/GLX surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaCreateSurfaceGLX( -+ VADisplay dpy, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+); -+ -+/** -+ * Destroy a VA/GLX surface -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaDestroySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Associate a VA surface to a VA/GLX surface -+ * -+ * The association is live until vaDeassociateSurfaceGLX(), -+ * vaCopySurfaceGLX() or the next call to vaBeginPicture() with the -+ * specificed VA surface. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA/GLX surface -+ * @param[in] surface the VA surface -+ * @param[in] flags the PutSurface flags -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaAssociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+); -+ -+/** -+ * Deassociate a VA surface from a VA/GLX surface -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaDeassociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Synchronize a VA/GLX surface -+ * -+ * This function blocks until all pending operations on the VA/GLX -+ * surface have been completed. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaSyncSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Prepare VA/GLX surface for rendering -+ * -+ * This function performs an implicit vaSyncSurfaceGLX(). -+ * -+ * Implementations using the GLX texture-from-pixmap extension will -+ * generally call glXBindTexImage() here. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaBeginRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Notify the server that the VA/GLX surface is no longer used for -+ * rendering -+ * -+ * Implementations using the GLX texture-from-pixmap extension will -+ * generally call glXReleaseTexImage() here. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaEndRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Copy a VA surface to a VA/GLX surface -+ * -+ * This function kills any association that was previously made with -+ * vaAssociateSurfaceGLX() and will not return until the copy is -+ * completed. -+ * -+ * Upon successful return, the underlying GL texture will contain the -+ * complete pixels and no call to vaBeginRenderSurfaceGLX() or -+ * vaEndRenderSurfaceGLX() is required. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA/GLX destination surface -+ * @param[in] surface the VA source surface -+ * @param[in] flags the PutSurface flags -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaCopySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* VA_GLX_H */ -diff -Naur libva-0.31.0/src/glx/va_glx_impl.c libva-0.31.0.diff/src/glx/va_glx_impl.c ---- libva-0.31.0/src/glx/va_glx_impl.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/va_glx_impl.c 2009-10-10 23:45:37.241657832 +0200 -@@ -0,0 +1,1168 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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 _GNU_SOURCE 1 -+#include "va_glx_private.h" -+#include "va_glx_impl.h" -+#include -+#include -+#include -+#include -+#include -+ -+static void va_glx_error_message(const char *format, ...) -+{ -+ va_list args; -+ va_start(args, format); -+ fprintf(stderr, "[%s] ", PACKAGE_NAME); -+ vfprintf(stderr, format, args); -+ va_end(args); -+} -+ -+// X error trap -+static int x11_error_code = 0; -+static int (*old_error_handler)(Display *, XErrorEvent *); -+ -+static int error_handler(Display *dpy, XErrorEvent *error) -+{ -+ x11_error_code = error->error_code; -+ return 0; -+} -+ -+static void x11_trap_errors(void) -+{ -+ x11_error_code = 0; -+ old_error_handler = XSetErrorHandler(error_handler); -+} -+ -+static int x11_untrap_errors(void) -+{ -+ XSetErrorHandler(old_error_handler); -+ return x11_error_code; -+} -+ -+// Returns a string representation of an OpenGL error -+static const char *gl_get_error_string(GLenum error) -+{ -+ static const struct { -+ GLenum val; -+ const char *str; -+ } -+ gl_errors[] = { -+ { GL_NO_ERROR, "no error" }, -+ { GL_INVALID_ENUM, "invalid enumerant" }, -+ { GL_INVALID_VALUE, "invalid value" }, -+ { GL_INVALID_OPERATION, "invalid operation" }, -+ { GL_STACK_OVERFLOW, "stack overflow" }, -+ { GL_STACK_UNDERFLOW, "stack underflow" }, -+ { GL_OUT_OF_MEMORY, "out of memory" }, -+#ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT -+ { GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "invalid framebuffer operation" }, -+#endif -+ { ~0, NULL } -+ }; -+ -+ int i; -+ for (i = 0; gl_errors[i].str; i++) { -+ if (gl_errors[i].val == error) -+ return gl_errors[i].str; -+ } -+ return "unknown"; -+} -+ -+static inline int gl_do_check_error(int report) -+{ -+ GLenum error; -+ int is_error = 0; -+ while ((error = glGetError()) != GL_NO_ERROR) { -+ if (report) -+ va_glx_error_message("glError: %s caught\n", -+ gl_get_error_string(error)); -+ is_error = 1; -+ } -+ return is_error; -+} -+ -+static inline void gl_purge_errors(void) -+{ -+ gl_do_check_error(0); -+} -+ -+static inline int gl_check_error(void) -+{ -+ return gl_do_check_error(1); -+} -+ -+// glGetFloatv() wrapper -+static int gl_get_current_color(float color[4]) -+{ -+ gl_purge_errors(); -+ glGetFloatv(GL_CURRENT_COLOR, color); -+ if (gl_check_error()) -+ return -1; -+ return 0; -+} -+ -+// glGetIntegerv() wrapper -+static int gl_get_param(GLenum param, unsigned int *pval) -+{ -+ GLint val; -+ -+ gl_purge_errors(); -+ glGetIntegerv(param, &val); -+ if (gl_check_error()) -+ return -1; -+ if (pval) -+ *pval = val; -+ return 0; -+} -+ -+// glGetTexLevelParameteriv() wrapper -+static int gl_get_texture_param(GLenum param, unsigned int *pval) -+{ -+ GLint val; -+ -+ gl_purge_errors(); -+ glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, param, &val); -+ if (gl_check_error()) -+ return -1; -+ if (pval) -+ *pval = val; -+ return 0; -+} -+ -+// Returns the OpenGL VTable -+static inline VAOpenGLVTableP gl_get_vtable(VADriverContextP ctx) -+{ -+ return &VA_DRIVER_CONTEXT_GLX(ctx)->gl_vtable; -+} -+ -+// Lookup for a GLX function -+typedef void (*GLFuncPtr)(void); -+typedef GLFuncPtr (*GLXGetProcAddressProc)(const char *); -+ -+static GLFuncPtr get_proc_address_default(const char *name) -+{ -+ return NULL; -+} -+ -+static GLXGetProcAddressProc get_proc_address_func(void) -+{ -+ GLXGetProcAddressProc get_proc_func; -+ -+ dlerror(); -+ get_proc_func = (GLXGetProcAddressProc) -+ dlsym(RTLD_DEFAULT, "glXGetProcAddress"); -+ if (dlerror() == NULL) -+ return get_proc_func; -+ -+ get_proc_func = (GLXGetProcAddressProc) -+ dlsym(RTLD_DEFAULT, "glXGetProcAddressARB"); -+ if (dlerror() == NULL) -+ return get_proc_func; -+ -+ return get_proc_address_default; -+} -+ -+static inline GLFuncPtr get_proc_address(const char *name) -+{ -+ static GLXGetProcAddressProc get_proc_func = NULL; -+ if (get_proc_func == NULL) -+ get_proc_func = get_proc_address_func(); -+ return get_proc_func(name); -+} -+ -+// Check for GLX extensions (TFP, FBO) -+static int check_extension(const char *name, const char *ext) -+{ -+ const char *end; -+ int name_len, n; -+ -+ if (name == NULL || ext == NULL) -+ return 0; -+ -+ end = ext + strlen(ext); -+ name_len = strlen(name); -+ while (ext < end) { -+ n = strcspn(ext, " "); -+ if (n == name_len && strncmp(name, ext, n) == 0) -+ return 1; -+ ext += (n + 1); -+ } -+ return 0; -+} -+ -+static int check_tfp_extensions(VADriverContextP ctx) -+{ -+ const char *gl_extensions; -+ const char *glx_extensions; -+ -+ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); -+ if (!check_extension("GL_ARB_texture_non_power_of_two", gl_extensions)) -+ return 0; -+ -+ glx_extensions = glXQueryExtensionsString(ctx->x11_dpy, ctx->x11_screen); -+ if (!check_extension("GLX_EXT_texture_from_pixmap", glx_extensions)) -+ return 0; -+ return 1; -+} -+ -+static int check_fbo_extensions(VADriverContextP ctx) -+{ -+ const char *gl_extensions; -+ -+ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); -+ if (!check_extension("GL_ARB_framebuffer_object", gl_extensions)) -+ return 0; -+ if (!check_extension("GL_EXT_framebuffer_object", gl_extensions)) -+ return 0; -+ return 1; -+} -+ -+// Load GLX extensions -+static int load_tfp_extensions(VADriverContextP ctx) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ pOpenGLVTable->glx_bind_tex_image = (PFNGLXBINDTEXIMAGEEXTPROC) -+ get_proc_address("glXBindTexImageEXT"); -+ if (pOpenGLVTable->glx_bind_tex_image == NULL) -+ return 0; -+ pOpenGLVTable->glx_release_tex_image = (PFNGLXRELEASETEXIMAGEEXTPROC) -+ get_proc_address("glXReleaseTexImageEXT"); -+ if (pOpenGLVTable->glx_release_tex_image == NULL) -+ return 0; -+ return 1; -+} -+ -+static int load_fbo_extensions(VADriverContextP ctx) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ pOpenGLVTable->gl_gen_framebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC) -+ get_proc_address("glGenFramebuffersEXT"); -+ if (pOpenGLVTable->gl_gen_framebuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_delete_framebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC) -+ get_proc_address("glDeleteFramebuffersEXT"); -+ if (pOpenGLVTable->gl_delete_framebuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_bind_framebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC) -+ get_proc_address("glBindFramebufferEXT"); -+ if (pOpenGLVTable->gl_bind_framebuffer == NULL) -+ return 0; -+ pOpenGLVTable->gl_gen_renderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC) -+ get_proc_address("glGenRenderbuffersEXT"); -+ if (pOpenGLVTable->gl_gen_renderbuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_delete_renderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC) -+ get_proc_address("glDeleteRenderbuffersEXT"); -+ if (pOpenGLVTable->gl_delete_renderbuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_bind_renderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC) -+ get_proc_address("glBindRenderbufferEXT"); -+ if (pOpenGLVTable->gl_bind_renderbuffer == NULL) -+ return 0; -+ pOpenGLVTable->gl_renderbuffer_storage = (PFNGLRENDERBUFFERSTORAGEEXTPROC) -+ get_proc_address("glRenderbufferStorageEXT"); -+ if (pOpenGLVTable->gl_renderbuffer_storage == NULL) -+ return 0; -+ pOpenGLVTable->gl_framebuffer_renderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) -+ get_proc_address("glFramebufferRenderbufferEXT"); -+ if (pOpenGLVTable->gl_framebuffer_renderbuffer == NULL) -+ return 0; -+ pOpenGLVTable->gl_framebuffer_texture_2d = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) -+ get_proc_address("glFramebufferTexture2DEXT"); -+ if (pOpenGLVTable->gl_framebuffer_texture_2d == NULL) -+ return 0; -+ pOpenGLVTable->gl_check_framebuffer_status = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) -+ get_proc_address("glCheckFramebufferStatusEXT"); -+ if (pOpenGLVTable->gl_check_framebuffer_status == NULL) -+ return 0; -+ return 1; -+} -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX helpers === */ -+/* ========================================================================= */ -+ -+// OpenGL texture state -+typedef struct OpenGLTextureState *OpenGLTextureStateP; -+ -+struct OpenGLTextureState { -+ int was_enabled; -+ int was_bound; -+ GLenum target; -+ GLuint old_texture; -+}; -+ -+// Bind texture, preserve previous texture state -+static int bind_texture(OpenGLTextureStateP ts, GLenum target, GLuint texture) -+{ -+ ts->target = target; -+ ts->old_texture = 0; -+ ts->was_bound = 0; -+ ts->was_enabled = glIsEnabled(target); -+ if (!ts->was_enabled) -+ glEnable(target); -+ -+ GLenum texture_binding; -+ switch (target) { -+ case GL_TEXTURE_1D: -+ texture_binding = GL_TEXTURE_BINDING_1D; -+ break; -+ case GL_TEXTURE_2D: -+ texture_binding = GL_TEXTURE_BINDING_2D; -+ break; -+ case GL_TEXTURE_3D: -+ texture_binding = GL_TEXTURE_BINDING_3D; -+ break; -+ case GL_TEXTURE_RECTANGLE_ARB: -+ texture_binding = GL_TEXTURE_BINDING_RECTANGLE_ARB; -+ break; -+ default: -+ assert(!target); -+ return -1; -+ } -+ -+ if (ts->was_enabled && gl_get_param(texture_binding, &ts->old_texture) < 0) -+ return -1; -+ -+ ts->was_bound = texture == ts->old_texture; -+ if (!ts->was_bound) { -+ gl_purge_errors(); -+ glBindTexture(target, texture); -+ if (gl_check_error()) -+ return -1; -+ } -+ return 0; -+} -+ -+// Unbind texture, restore previous texture state -+static void unbind_texture(OpenGLTextureStateP ts) -+{ -+ if (!ts->was_bound && ts->old_texture) -+ glBindTexture(ts->target, ts->old_texture); -+ if (!ts->was_enabled) -+ glDisable(ts->target); -+} -+ -+// Create Pixmaps for GLX texture-from-pixmap extension -+static int create_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ const unsigned int width = pSurfaceGLX->width; -+ const unsigned int height = pSurfaceGLX->height; -+ Pixmap pixmap = None; -+ GLXFBConfig *fbconfig = NULL; -+ GLXPixmap glx_pixmap = None; -+ Window root_window; -+ XWindowAttributes wattr; -+ int *attrib; -+ int n_fbconfig_attribs, x, y, status; -+ unsigned int border_width, depth, dummy; -+ -+ root_window = RootWindow(ctx->x11_dpy, ctx->x11_screen); -+ XGetWindowAttributes(ctx->x11_dpy, root_window, &wattr); -+ pixmap = XCreatePixmap(ctx->x11_dpy, root_window, -+ width, height, wattr.depth); -+ if (!pixmap) -+ return -1; -+ pSurfaceGLX->pixmap = pixmap; -+ -+ x11_trap_errors(); -+ status = XGetGeometry(ctx->x11_dpy, -+ (Drawable)pixmap, -+ &root_window, -+ &x, -+ &y, -+ &dummy, -+ &dummy, -+ &border_width, -+ &depth); -+ if (x11_untrap_errors() != 0 || status == 0) -+ return -1; -+ if (depth != 24 && depth != 32) -+ return -1; -+ -+ int fbconfig_attribs[32] = { -+ GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, -+ GLX_DOUBLEBUFFER, GL_TRUE, -+ GLX_RENDER_TYPE, GLX_RGBA_BIT, -+ GLX_X_RENDERABLE, GL_TRUE, -+ GLX_Y_INVERTED_EXT, GL_TRUE, -+ GLX_RED_SIZE, 8, -+ GLX_GREEN_SIZE, 8, -+ GLX_BLUE_SIZE, 8, -+ GL_NONE, -+ }; -+ for (attrib = fbconfig_attribs; *attrib != GL_NONE; attrib += 2) -+ ; -+ *attrib++ = GLX_DEPTH_SIZE; *attrib++ = depth; -+ if (depth == 32) { -+ *attrib++ = GLX_ALPHA_SIZE; *attrib++ = 8; -+ *attrib++ = GLX_BIND_TO_TEXTURE_RGBA_EXT; *attrib++ = GL_TRUE; -+ } -+ else { -+ *attrib++ = GLX_BIND_TO_TEXTURE_RGB_EXT; *attrib++ = GL_TRUE; -+ } -+ *attrib++ = GL_NONE; -+ -+ fbconfig = glXChooseFBConfig(ctx->x11_dpy, ctx->x11_screen, fbconfig_attribs, &n_fbconfig_attribs); -+ if (fbconfig == NULL) -+ return -1; -+ -+ int pixmap_attribs[10] = { -+ GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT, -+ GLX_MIPMAP_TEXTURE_EXT, GL_FALSE, -+ GL_NONE, -+ }; -+ for (attrib = pixmap_attribs; *attrib != GL_NONE; attrib += 2) -+ ; -+ *attrib++ = GLX_TEXTURE_FORMAT_EXT; -+ if (depth == 32) -+ *attrib++ = GLX_TEXTURE_FORMAT_RGBA_EXT; -+ else -+ *attrib++ = GLX_TEXTURE_FORMAT_RGB_EXT; -+ *attrib++ = GL_NONE; -+ -+ x11_trap_errors(); -+ glx_pixmap = glXCreatePixmap(ctx->x11_dpy, -+ fbconfig[0], -+ pixmap, -+ pixmap_attribs); -+ free(fbconfig); -+ if (x11_untrap_errors() != 0) -+ return -1; -+ pSurfaceGLX->glx_pixmap = glx_pixmap; -+ return 0; -+} -+ -+// Destroy Pixmaps used for TFP -+static void destroy_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ if (pSurfaceGLX->glx_pixmap) { -+ glXDestroyPixmap(ctx->x11_dpy, pSurfaceGLX->glx_pixmap); -+ pSurfaceGLX->glx_pixmap = None; -+ } -+ -+ if (pSurfaceGLX->pixmap) { -+ XFreePixmap(ctx->x11_dpy, pSurfaceGLX->pixmap); -+ pSurfaceGLX->pixmap = None; -+ } -+} -+ -+// Bind GLX Pixmap to texture -+static int bind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ if (pSurfaceGLX->is_bound) -+ return 0; -+ -+ x11_trap_errors(); -+ pOpenGLVTable->glx_bind_tex_image(ctx->x11_dpy, pSurfaceGLX->glx_pixmap, -+ GLX_FRONT_LEFT_EXT, NULL); -+ XSync(ctx->x11_dpy, False); -+ if (x11_untrap_errors() != 0) { -+ va_glx_error_message("failed to bind pixmap\n"); -+ return -1; -+ } -+ -+ pSurfaceGLX->is_bound = 1; -+ return 0; -+} -+ -+// Release GLX Pixmap from texture -+static int unbind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ if (!pSurfaceGLX->is_bound) -+ return 0; -+ -+ x11_trap_errors(); -+ pOpenGLVTable->glx_release_tex_image(ctx->x11_dpy, pSurfaceGLX->glx_pixmap, -+ GLX_FRONT_LEFT_EXT); -+ XSync(ctx->x11_dpy, False); -+ if (x11_untrap_errors() != 0) { -+ va_glx_error_message("failed to release pixmap\n"); -+ return -1; -+ } -+ -+ pSurfaceGLX->is_bound = 0; -+ return 0; -+} -+ -+// Render GLX Pixmap to texture -+static void render_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ const unsigned int w = pSurfaceGLX->width; -+ const unsigned int h = pSurfaceGLX->height; -+ float old_color[4]; -+ -+ gl_get_current_color(old_color); -+ glColor4f(1.0f, 1.0f, 1.0f, 1.0f); -+ glBegin(GL_QUADS); -+ { -+ glTexCoord2f(0.0f, 0.0f); glVertex2i(0, 0); -+ glTexCoord2f(0.0f, 1.0f); glVertex2i(0, h); -+ glTexCoord2f(1.0f, 1.0f); glVertex2i(w, h); -+ glTexCoord2f(1.0f, 0.0f); glVertex2i(w, 0); -+ } -+ glEnd(); -+ glColor4fv(old_color); -+} -+ -+// Create offscreen surface -+static int create_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ const GLenum texture = pSurfaceGLX->texture; -+ const unsigned int texture_width = pSurfaceGLX->width; -+ const unsigned int texture_height = pSurfaceGLX->height; -+ GLuint fbo, fbo_buffer, fbo_texture; -+ GLenum status; -+ -+ glGenTextures(1, &fbo_texture); -+ glBindTexture(GL_TEXTURE_2D, fbo_texture); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4); -+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_width, texture_height, 0, -+ GL_BGRA, GL_UNSIGNED_BYTE, NULL); -+ -+ pOpenGLVTable->gl_gen_framebuffers(1, &fbo); -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo); -+ pOpenGLVTable->gl_gen_renderbuffers(1, &fbo_buffer); -+ pOpenGLVTable->gl_bind_renderbuffer(GL_RENDERBUFFER_EXT, fbo_buffer); -+ -+ glBindTexture(GL_TEXTURE_2D, texture); -+ pOpenGLVTable->gl_framebuffer_texture_2d(GL_FRAMEBUFFER_EXT, -+ GL_COLOR_ATTACHMENT0_EXT, -+ GL_TEXTURE_2D, texture, 0); -+ -+ status = pOpenGLVTable->gl_check_framebuffer_status(GL_DRAW_FRAMEBUFFER_EXT); -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); -+ if (status != GL_FRAMEBUFFER_COMPLETE_EXT) -+ return -1; -+ -+ pSurfaceGLX->fbo = fbo; -+ pSurfaceGLX->fbo_buffer = fbo_buffer; -+ pSurfaceGLX->fbo_texture = fbo_texture; -+ return 0; -+} -+ -+// Destroy offscreen surface -+static void destroy_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ if (pSurfaceGLX->fbo_texture) { -+ glDeleteTextures(1, &pSurfaceGLX->fbo_texture); -+ pSurfaceGLX->fbo_texture = 0; -+ } -+ -+ if (pSurfaceGLX->fbo_buffer) { -+ pOpenGLVTable->gl_delete_renderbuffers(1, &pSurfaceGLX->fbo_buffer); -+ pSurfaceGLX->fbo_buffer = 0; -+ } -+ -+ if (pSurfaceGLX->fbo) { -+ pOpenGLVTable->gl_delete_framebuffers(1, &pSurfaceGLX->fbo); -+ pSurfaceGLX->fbo = 0; -+ } -+} -+ -+// Setup matrices to match the FBO texture dimensions -+static void fbo_enter(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ const unsigned int width = pSurfaceGLX->width; -+ const unsigned int height = pSurfaceGLX->height; -+ -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, pSurfaceGLX->fbo); -+ glPushAttrib(GL_VIEWPORT_BIT); -+ glMatrixMode(GL_PROJECTION); -+ glPushMatrix(); -+ glLoadIdentity(); -+ glMatrixMode(GL_MODELVIEW); -+ glPushMatrix(); -+ glLoadIdentity(); -+ glViewport(0, 0, width, height); -+ glTranslatef(-1.0f, -1.0f, 0.0f); -+ glScalef(2.0f / width, 2.0f / height, 1.0f); -+ -+ glBindTexture(GL_TEXTURE_2D, pSurfaceGLX->fbo_texture); -+} -+ -+// Restore original OpenGL matrices -+static void fbo_leave(VADriverContextP ctx) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ glPopAttrib(); -+ glMatrixMode(GL_PROJECTION); -+ glPopMatrix(); -+ glMatrixMode(GL_MODELVIEW); -+ glPopMatrix(); -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); -+} -+ -+// Create VA/GLX surface -+VASurfaceGLXP -+va_glx_create_surface(VADriverContextP ctx, GLenum target, GLuint texture) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX; -+ unsigned int internal_format, border_width, width, height; -+ int is_error = 1; -+ -+ /* Make sure binding succeeds, if texture was not already bound */ -+ struct OpenGLTextureState ts; -+ if (bind_texture(&ts, target, texture) < 0) -+ goto end; -+ -+ pSurfaceGLX = malloc(sizeof(*pSurfaceGLX)); -+ if (!pSurfaceGLX) -+ goto end; -+ -+ pSurfaceGLX->magic = VA_SURFACE_GLX_MAGIC; -+ pSurfaceGLX->target = target; -+ pSurfaceGLX->texture = texture; -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ pSurfaceGLX->is_bound = 0; -+ pSurfaceGLX->pixmap = None; -+ pSurfaceGLX->glx_pixmap = None; -+ pSurfaceGLX->fbo = 0; -+ pSurfaceGLX->fbo_buffer = 0; -+ pSurfaceGLX->fbo_texture = 0; -+ pSurfaceGLX->priv = NULL; -+ -+ /* XXX: we don't support other textures than RGBA */ -+ if (gl_get_texture_param(GL_TEXTURE_INTERNAL_FORMAT, &internal_format) < 0) -+ goto end; -+ if (internal_format != GL_RGBA) -+ goto end; -+ -+ /* Check texture dimensions */ -+ if (gl_get_texture_param(GL_TEXTURE_BORDER, &border_width) < 0) -+ goto end; -+ if (gl_get_texture_param(GL_TEXTURE_WIDTH, &width) < 0) -+ goto end; -+ if (gl_get_texture_param(GL_TEXTURE_HEIGHT, &height) < 0) -+ goto end; -+ -+ width -= 2 * border_width; -+ height -= 2 * border_width; -+ if (width == 0 || height == 0) -+ goto end; -+ -+ pSurfaceGLX->width = width; -+ pSurfaceGLX->height = height; -+ -+ /* Create Pixmaps for TFP */ -+ if (pDriverContextGLX->use_tfp) { -+ if (create_tfp_surface(ctx, pSurfaceGLX) < 0) -+ goto end; -+ } -+ -+ /* Create Pixmaps for FBO */ -+ if (pDriverContextGLX->use_fbo) { -+ if (create_fbo_surface(ctx, pSurfaceGLX) < 0) -+ goto end; -+ } -+ -+ is_error = 0; -+end: -+ if (is_error && pSurfaceGLX) -+ va_glx_destroy_surface(ctx, &pSurfaceGLX); -+ -+ unbind_texture(&ts); -+ return pSurfaceGLX; -+} -+ -+// Destroy VA/GLX surface -+void va_glx_destroy_surface(VADriverContextP ctx, VASurfaceGLXP *ppSurfaceGLX) -+{ -+ VASurfaceGLXP pSurfaceGLX = *ppSurfaceGLX; -+ -+ unbind_pixmap(ctx, pSurfaceGLX); -+ destroy_fbo_surface(ctx, pSurfaceGLX); -+ destroy_tfp_surface(ctx, pSurfaceGLX); -+ -+ free(pSurfaceGLX); -+ *ppSurfaceGLX = NULL; -+} -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX implementation from the driver (fordward calls) === */ -+/* ========================================================================= */ -+ -+#define INVOKE(ctx, func, args) do { \ -+ VADriverVTableGLXP vtable = &(ctx)->vtable.glx; \ -+ if (!vtable->va##func##GLX) \ -+ return VA_STATUS_ERROR_UNIMPLEMENTED; \ -+ \ -+ VAStatus status = vtable->va##func##GLX args; \ -+ if (status != VA_STATUS_SUCCESS) \ -+ return status; \ -+ } while (0) -+ -+static VAStatus -+vaCreateSurfaceGLX_impl_driver( -+ VADriverContextP ctx, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+) -+{ -+ INVOKE(ctx, CreateSurface, (ctx, target, texture, gl_surface)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDestroySurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, DestroySurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaAssociateSurfaceGLX_impl_driver( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, AssociateSurface, (ctx, pSurfaceGLX->priv, surface, flags)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDeassociateSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, DeassociateSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaSyncSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, SyncSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaBeginRenderSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, BeginRenderSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaEndRenderSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, EndRenderSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaCopySurfaceGLX_impl_driver( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, CopySurface, (ctx, pSurfaceGLX->priv, surface, flags)); -+ return VA_STATUS_SUCCESS; -+} -+ -+#undef INVOKE -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX implementation from libVA (generic and suboptimal path) === */ -+/* ========================================================================= */ -+ -+static VAStatus -+vaCreateSurfaceGLX_impl_libva( -+ VADriverContextP ctx, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ *gl_surface = NULL; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDestroySurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaAssociateSurfaceGLX_impl_libva( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ /* XXX: only support VA_FRAME_PICTURE */ -+ if (flags != VA_FRAME_PICTURE) -+ return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; -+ -+ /* XXX: optimise case where we are associating the same VA surface -+ as before an no changed occurred to it */ -+ status = vtable->vaDeassociateSurfaceGLX(ctx, gl_surface); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ x11_trap_errors(); -+ status = ctx->vtable.vaPutSurface(ctx, -+ surface, -+ pSurfaceGLX->pixmap, -+ 0, 0, -+ pSurfaceGLX->width, -+ pSurfaceGLX->height, -+ 0, 0, -+ pSurfaceGLX->width, -+ pSurfaceGLX->height, -+ NULL, 0, -+ flags); -+ XSync(ctx->x11_dpy, False); -+ if (x11_untrap_errors() != 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ pSurfaceGLX->surface = surface; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDeassociateSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ if (unbind_pixmap(ctx, pSurfaceGLX) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaSyncSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ if (pSurfaceGLX->surface == VA_INVALID_SURFACE) -+ return VA_STATUS_ERROR_INVALID_SURFACE; -+ -+ return ctx->vtable.vaSyncSurface(ctx, pSurfaceGLX->surface); -+} -+ -+static VAStatus -+vaBeginRenderSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ status = vaSyncSurfaceGLX_impl_libva(ctx, gl_surface); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ if (bind_pixmap(ctx, pSurfaceGLX) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaEndRenderSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ if (unbind_pixmap(ctx, pSurfaceGLX) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaCopySurfaceGLX_impl_libva( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_fbo) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ /* XXX: only support VA_FRAME_PICTURE */ -+ if (flags != VA_FRAME_PICTURE) -+ return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; -+ -+ /* Associate VA surface */ -+ status = vtable->vaAssociateSurfaceGLX(ctx, gl_surface, surface, flags); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ /* Make sure binding succeeds, if texture was not already bound */ -+ struct OpenGLTextureState ts; -+ if (bind_texture(&ts, pSurfaceGLX->target, pSurfaceGLX->texture) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ /* Render to FBO */ -+ fbo_enter(ctx, pSurfaceGLX); -+ status = vtable->vaBeginRenderSurfaceGLX(ctx, gl_surface); -+ if (status == VA_STATUS_SUCCESS) { -+ render_pixmap(ctx, pSurfaceGLX); -+ status = vtable->vaEndRenderSurfaceGLX(ctx, gl_surface); -+ } -+ fbo_leave(ctx); -+ unbind_texture(&ts); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ return vtable->vaDeassociateSurfaceGLX(ctx, gl_surface); -+} -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX bind functions implementation with vaCopySurfaceGLX() === */ -+/* ========================================================================= */ -+ -+static VAStatus -+vaAssociateSurfaceGLX_impl_bind( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->has_copy) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ status = vtable->vaCopySurfaceGLX(ctx, gl_surface, surface, flags); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ pSurfaceGLX->surface = surface; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDeassociateSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ if (!pDriverContextGLX->has_copy) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaBeginRenderSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) -+{ -+ /* Surface is already copied into the texture, in vaAssociateSurfaceGLX() */ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaEndRenderSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) -+{ -+ return VA_STATUS_SUCCESS; -+} -+ -+ -+/* ========================================================================= */ -+/* === Private VA/GLX vtable initialization === */ -+/* ========================================================================= */ -+ -+// Initialize GLX driver context -+VAStatus va_glx_init_context(VADriverContextP ctx) -+{ -+ VADriverContextGLXP glx_ctx = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &glx_ctx->vtable; -+ int needs_tfp = 0, needs_fbo = 0; -+ -+ if (glx_ctx->is_initialized) -+ return VA_STATUS_SUCCESS; -+ -+ glx_ctx->has_copy = ctx->vtable.glx.vaCopySurfaceGLX != NULL; -+ glx_ctx->has_bind = (ctx->vtable.glx.vaAssociateSurfaceGLX != NULL && -+ ctx->vtable.glx.vaBeginRenderSurfaceGLX != NULL && -+ ctx->vtable.glx.vaEndRenderSurfaceGLX != NULL && -+ ctx->vtable.glx.vaDeassociateSurfaceGLX != NULL); -+ -+ switch ((((unsigned int)glx_ctx->has_bind) << 1) | glx_ctx->has_copy) { -+ case 0: -+ /* Full implementation in libVA */ -+ needs_tfp = 1; -+ needs_fbo = 1; -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_libva; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_libva; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_libva; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_libva; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_libva; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_libva; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_libva; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_libva; -+ break; -+ case 1: -+ /* Add bind functions based on vaCopySurfaceGLX() */ -+ /* XXX: override vaSyncSurfaceGLX()? */ -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_bind; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_bind; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_bind; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_bind; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_driver; -+ break; -+ case 2: -+ /* Add copy function based on vaBeginRenderSurfaceGLX() et al. */ -+ needs_fbo = 1; -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_driver; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_driver; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_driver; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_driver; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_libva; -+ break; -+ case 3: -+ /* Keep driver bind & copy functions */ -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_driver; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_driver; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_driver; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_driver; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_driver; -+ break; -+ default: -+ /* Fatal error: this cannot happen */ -+ assert(0); -+ return VA_STATUS_ERROR_UNKNOWN; -+ } -+ -+ glx_ctx->has_tfp = 0; -+ glx_ctx->use_tfp = 0; -+ glx_ctx->has_fbo = 0; -+ glx_ctx->use_fbo = 0; -+ -+ if (needs_tfp) { -+ glx_ctx->has_tfp = check_tfp_extensions(ctx); -+ if (!glx_ctx->has_tfp || !load_tfp_extensions(ctx)) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ glx_ctx->use_tfp = 1; -+ } -+ -+ if (needs_fbo) { -+ glx_ctx->has_fbo = check_fbo_extensions(ctx); -+ if (!glx_ctx->has_fbo || !load_fbo_extensions(ctx)) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ glx_ctx->use_fbo = 1; -+ } -+ -+ glx_ctx->is_initialized = 1; -+ return VA_STATUS_SUCCESS; -+} -diff -Naur libva-0.31.0/src/glx/va_glx_impl.h libva-0.31.0.diff/src/glx/va_glx_impl.h ---- libva-0.31.0/src/glx/va_glx_impl.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/va_glx_impl.h 2009-10-10 23:45:37.242657630 +0200 -@@ -0,0 +1,46 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#ifndef VA_GLX_IMPL_H -+#define VA_GLX_IMPL_H -+ -+/** -+ * Initialize GLX driver context -+ * -+ * @param[in] ctx the VA driver context -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus va_glx_init_context(VADriverContextP ctx) -+ ATTRIBUTE_HIDDEN; -+ -+/** Create VA/GLX surface */ -+VASurfaceGLXP -+va_glx_create_surface(VADriverContextP ctx, GLenum target, GLuint texture) -+ ATTRIBUTE_HIDDEN; -+ -+/** Destroy VA/GLX surface */ -+void va_glx_destroy_surface(VADriverContextP ctx, VASurfaceGLXP *pSurfaceGLX) -+ ATTRIBUTE_HIDDEN; -+ -+#endif /* VA_GLX_IMPL_H */ -diff -Naur libva-0.31.0/src/glx/va_glx_private.h libva-0.31.0.diff/src/glx/va_glx_private.h ---- libva-0.31.0/src/glx/va_glx_private.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/va_glx_private.h 2009-10-10 23:45:37.243658616 +0200 -@@ -0,0 +1,98 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#ifndef VA_GLX_PRIVATE_H -+#define VA_GLX_PRIVATE_H -+ -+#include "config.h" -+#include "va.h" -+#include "va_backend.h" -+#include "va_x11.h" -+#include "va_glx.h" -+ -+#if GLX_GLXEXT_VERSION < 18 -+typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display *, GLXDrawable, int, const int *); -+typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int); -+#endif -+ -+typedef struct VAOpenGLVTable *VAOpenGLVTableP; -+ -+struct VAOpenGLVTable { -+ PFNGLXBINDTEXIMAGEEXTPROC glx_bind_tex_image; -+ PFNGLXRELEASETEXIMAGEEXTPROC glx_release_tex_image; -+ PFNGLGENFRAMEBUFFERSEXTPROC gl_gen_framebuffers; -+ PFNGLDELETEFRAMEBUFFERSEXTPROC gl_delete_framebuffers; -+ PFNGLBINDFRAMEBUFFEREXTPROC gl_bind_framebuffer; -+ PFNGLGENRENDERBUFFERSEXTPROC gl_gen_renderbuffers; -+ PFNGLDELETERENDERBUFFERSEXTPROC gl_delete_renderbuffers; -+ PFNGLBINDRENDERBUFFEREXTPROC gl_bind_renderbuffer; -+ PFNGLRENDERBUFFERSTORAGEEXTPROC gl_renderbuffer_storage; -+ PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC gl_framebuffer_renderbuffer; -+ PFNGLFRAMEBUFFERTEXTURE2DEXTPROC gl_framebuffer_texture_2d; -+ PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC gl_check_framebuffer_status; -+}; -+ -+typedef struct VADisplayContextGLX *VADisplayContextGLXP; -+typedef struct VADriverContextGLX *VADriverContextGLXP; -+typedef struct VASurfaceGLX *VASurfaceGLXP; -+typedef struct VADriverVTableGLX *VADriverVTableGLXP; -+ -+struct VADisplayContextGLX { -+ void (*vaDestroy)(VADisplayContextP ctx); -+}; -+ -+#define VA_DRIVER_CONTEXT_GLX(ctx) ((VADriverContextGLXP)((ctx)->glx)) -+ -+struct VADriverContextGLX { -+ struct VADriverVTableGLX vtable; -+ struct VAOpenGLVTable gl_vtable; -+ unsigned int is_initialized : 1; -+ unsigned int has_copy : 1; -+ unsigned int has_bind : 1; -+ unsigned int has_tfp : 1; -+ unsigned int has_fbo : 1; -+ unsigned int use_tfp : 1; -+ unsigned int use_fbo : 1; -+}; -+ -+/** Unique VASurfaceGLX identifier */ -+#define VA_SURFACE_GLX_MAGIC VA_FOURCC('V','A','G','L') -+ -+struct VASurfaceGLX { -+ uint32_t magic; ///< Magic number identifying a VASurfaceGLX -+ GLenum target; ///< GL target to which the texture is bound -+ GLuint texture; ///< GL texture -+ VASurfaceID surface; ///< Associated VA surface -+ unsigned int width; -+ unsigned int height; -+ int is_bound; -+ Pixmap pixmap; -+ GLXPixmap glx_pixmap; -+ GLuint fbo; -+ GLuint fbo_buffer; -+ GLuint fbo_texture; -+ void *priv; ///< Private VA/GLX surface data from driver -+}; -+ -+#endif /* VA_GLX_PRIVATE_H */ diff --git a/packages/multimedia/libva/patches/322_libva_glx.base.diff b/packages/multimedia/libva/patches/322_libva_glx.base.diff deleted file mode 100644 index 7d55076c88..0000000000 --- a/packages/multimedia/libva/patches/322_libva_glx.base.diff +++ /dev/null @@ -1,1603 +0,0 @@ -diff -Naur libva-0.31.0/config.h.in libva-0.31.0.diff/config.h.in ---- libva-0.31.0/config.h.in 2009-10-10 23:43:13.144657928 +0200 -+++ libva-0.31.0.diff/config.h.in 2009-10-10 23:48:24.000000000 +0200 -@@ -6,6 +6,12 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_DLFCN_H - -+/* Define to 1 if you have the header file. */ -+#undef HAVE_GL_GLX_H -+ -+/* Define to 1 if you have the header file. */ -+#undef HAVE_GL_GL_H -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_INTTYPES_H - -diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ---- libva-0.31.0/configure 2009-10-10 23:43:49.951783409 +0200 -+++ libva-0.31.0.diff/configure 2009-10-10 23:48:23.830782292 +0200 -@@ -795,6 +795,10 @@ - pkgconfigdir - LIBVA_LIBS - LIBVA_CFLAGS -+USE_GLX_FALSE -+USE_GLX_TRUE -+GL_DEPS_LIBS -+GL_DEPS_CFLAGS - BUILD_I965_DRIVER_FALSE - BUILD_I965_DRIVER_TRUE - HAVE_GEN4ASM_FALSE -@@ -927,6 +931,7 @@ - ac_subst_files='' - ac_user_opts=' - enable_option_checking -+enable_glx - enable_dummy_driver - enable_i965_driver - with_drivers_path -@@ -1589,6 +1594,7 @@ - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] -+ --enable-glx build with OpenGL for X11 support - --enable-dummy-driver build dummy video driver - --enable-i965-driver build i965 video driver - --enable-static[=PKGS] build static libraries [default=no] -@@ -2627,6 +2633,14 @@ - - - -+# Check whether --enable-glx was given. -+if test "${enable_glx+set}" = set; then -+ enableval=$enable_glx; -+else -+ enable_glx=yes -+fi -+ -+ - # Check whether --enable-dummy-driver was given. - if test "${enable_dummy_driver+set}" = set; then - enableval=$enable_dummy_driver; -@@ -4518,13 +4532,13 @@ - else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext -- (eval echo "\"\$as_me:4521: $ac_compile\"" >&5) -+ (eval echo "\"\$as_me:4535: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 -- (eval echo "\"\$as_me:4524: $NM \\\"conftest.$ac_objext\\\"\"" >&5) -+ (eval echo "\"\$as_me:4538: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 -- (eval echo "\"\$as_me:4527: output\"" >&5) -+ (eval echo "\"\$as_me:4541: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" -@@ -5730,7 +5744,7 @@ - ;; - *-*-irix6*) - # Find out which ABI we are using. -- echo '#line 5733 "configure"' > conftest.$ac_ext -+ echo '#line 5747 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -@@ -7553,11 +7567,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7556: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:7570: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 -- echo "$as_me:7560: \$? = $ac_status" >&5 -+ echo "$as_me:7574: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. -@@ -7892,11 +7906,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7895: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:7909: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 -- echo "$as_me:7899: \$? = $ac_status" >&5 -+ echo "$as_me:7913: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. -@@ -7997,11 +8011,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:8000: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8014: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 -- echo "$as_me:8004: \$? = $ac_status" >&5 -+ echo "$as_me:8018: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized -@@ -8052,11 +8066,11 @@ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:8055: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8069: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 -- echo "$as_me:8059: \$? = $ac_status" >&5 -+ echo "$as_me:8073: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized -@@ -10855,7 +10869,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10858 "configure" -+#line 10872 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10951,7 +10965,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10954 "configure" -+#line 10968 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -13200,6 +13214,398 @@ - _ACEOF - - -+# Check for OpenGL (X11) -+USE_GLX="no" -+GL_DEPS_CFLAGS="" -+GL_DEPS_LIBS="" -+ -+if test x$enable_glx = xyes; then -+ -+for ac_header in GL/gl.h -+do -+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -+$as_echo_n "checking for $ac_header... " >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ $as_echo_n "(cached) " >&6 -+fi -+ac_res=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+else -+ # Is the header compilable? -+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -+$as_echo_n "checking $ac_header usability... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { -+ test -z "$ac_c_werror_flag" || -+ test ! -s conftest.err -+ } && test -s conftest.$ac_objext; then -+ ac_header_compiler=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -+$as_echo "$ac_header_compiler" >&6; } -+ -+# Is the header present? -+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -+$as_echo_n "checking $ac_header presence... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <$ac_header> -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null && { -+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || -+ test ! -s conftest.err -+ }; then -+ ac_header_preproc=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_preproc=no -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -+$as_echo "$ac_header_preproc" >&6; } -+ -+# So? What about this header? -+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -+ yes:no: ) -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} -+ ac_header_preproc=yes -+ ;; -+ no:yes:* ) -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} -+ ( cat <<\_ASBOX -+## -------------------------------------- ## -+## Report this to waldo.bastian@intel.com ## -+## -------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -+$as_echo_n "checking for $ac_header... " >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ $as_echo_n "(cached) " >&6 -+else -+ eval "$as_ac_Header=\$ac_header_preproc" -+fi -+ac_res=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+ -+fi -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ -+ -+for ac_header in GL/glx.h -+do -+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -+$as_echo_n "checking for $ac_header... " >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ $as_echo_n "(cached) " >&6 -+fi -+ac_res=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+else -+ # Is the header compilable? -+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -+$as_echo_n "checking $ac_header usability... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { -+ test -z "$ac_c_werror_flag" || -+ test ! -s conftest.err -+ } && test -s conftest.$ac_objext; then -+ ac_header_compiler=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -+$as_echo "$ac_header_compiler" >&6; } -+ -+# Is the header present? -+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -+$as_echo_n "checking $ac_header presence... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <$ac_header> -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null && { -+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || -+ test ! -s conftest.err -+ }; then -+ ac_header_preproc=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_preproc=no -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -+$as_echo "$ac_header_preproc" >&6; } -+ -+# So? What about this header? -+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -+ yes:no: ) -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} -+ ac_header_preproc=yes -+ ;; -+ no:yes:* ) -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} -+ ( cat <<\_ASBOX -+## -------------------------------------- ## -+## Report this to waldo.bastian@intel.com ## -+## -------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -+$as_echo_n "checking for $ac_header... " >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ $as_echo_n "(cached) " >&6 -+else -+ eval "$as_ac_Header=\$ac_header_preproc" -+fi -+ac_res=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+ -+fi -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ -+ { $as_echo "$as_me:$LINENO: checking for glXCreateContext in -lGL" >&5 -+$as_echo_n "checking for glXCreateContext in -lGL... " >&6; } -+if test "${ac_cv_lib_GL_glXCreateContext+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lGL $LIBS" -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char glXCreateContext (); -+int -+main () -+{ -+return glXCreateContext (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (ac_try="$ac_link" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 -+ (eval "$ac_link") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { -+ test -z "$ac_c_werror_flag" || -+ test ! -s conftest.err -+ } && test -s conftest$ac_exeext && { -+ test "$cross_compiling" = yes || -+ $as_test_x conftest$ac_exeext -+ }; then -+ ac_cv_lib_GL_glXCreateContext=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_GL_glXCreateContext=no -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXCreateContext" >&5 -+$as_echo "$ac_cv_lib_GL_glXCreateContext" >&6; } -+if test "x$ac_cv_lib_GL_glXCreateContext" = x""yes; then -+ -+ USE_GLX="yes" -+ GL_DEPS_LIBS="-lX11 -lGL" -+ -+fi -+ -+fi -+ -+ -+ if test "$USE_GLX" = "yes"; then -+ USE_GLX_TRUE= -+ USE_GLX_FALSE='#' -+else -+ USE_GLX_TRUE='#' -+ USE_GLX_FALSE= -+fi -+ -+ - # We only need the headers, we don't link against the DRM libraries - LIBVA_CFLAGS="$DRM_CFLAGS" - -@@ -13214,7 +13620,7 @@ - - - --ac_config_files="$ac_config_files Makefile src/Makefile src/va_version.h src/x11/Makefile dummy_drv_video/Makefile i965_drv_video/Makefile i965_drv_video/shaders/Makefile i965_drv_video/shaders/mpeg2/Makefile i965_drv_video/shaders/mpeg2/vld/Makefile i965_drv_video/shaders/render/Makefile test/Makefile libva.pc libva-x11.pc" -+ac_config_files="$ac_config_files Makefile src/Makefile src/va_version.h src/x11/Makefile src/glx/Makefile dummy_drv_video/Makefile i965_drv_video/Makefile i965_drv_video/shaders/Makefile i965_drv_video/shaders/mpeg2/Makefile i965_drv_video/shaders/mpeg2/vld/Makefile i965_drv_video/shaders/render/Makefile test/Makefile libva.pc libva-x11.pc libva-glx.pc" - - cat >confcache <<\_ACEOF - # This file is a shell script that caches the results of configure -@@ -13363,6 +13769,13 @@ - Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } - fi -+if test -z "${USE_GLX_TRUE}" && test -z "${USE_GLX_FALSE}"; then -+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GLX\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$as_echo "$as_me: error: conditional \"USE_GLX\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi - - : ${CONFIG_STATUS=./config.status} - ac_write_fail=0 -@@ -14133,6 +14546,7 @@ - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "src/va_version.h") CONFIG_FILES="$CONFIG_FILES src/va_version.h" ;; - "src/x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/x11/Makefile" ;; -+ "src/glx/Makefile") CONFIG_FILES="$CONFIG_FILES src/glx/Makefile" ;; - "dummy_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES dummy_drv_video/Makefile" ;; - "i965_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/Makefile" ;; - "i965_drv_video/shaders/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/Makefile" ;; -@@ -14142,6 +14556,7 @@ - "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; - "libva.pc") CONFIG_FILES="$CONFIG_FILES libva.pc" ;; - "libva-x11.pc") CONFIG_FILES="$CONFIG_FILES libva-x11.pc" ;; -+ "libva-glx.pc") CONFIG_FILES="$CONFIG_FILES libva-glx.pc" ;; - - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 - $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} -diff -Naur libva-0.31.0/configure.ac libva-0.31.0.diff/configure.ac ---- libva-0.31.0/configure.ac 2009-10-10 23:43:49.951783409 +0200 -+++ libva-0.31.0.diff/configure.ac 2009-10-10 23:48:04.516785095 +0200 -@@ -66,6 +66,11 @@ - AC_SUBST(LIBVA_LT_VERSION) - AC_SUBST(LIBVA_LT_LDFLAGS) - -+AC_ARG_ENABLE(glx, -+ [AC_HELP_STRING([--enable-glx], -+ [build with OpenGL for X11 support])], -+ [], [enable_glx=yes]) -+ - AC_ARG_ENABLE(dummy-driver, - [AC_HELP_STRING([--enable-dummy-driver], - [build dummy video driver])], -@@ -130,6 +135,23 @@ - AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN], - [Defined to __attribute__((visibility("hidden"))) when available]) - -+# Check for OpenGL (X11) -+USE_GLX="no" -+GL_DEPS_CFLAGS="" -+GL_DEPS_LIBS="" -+ -+if test x$enable_glx = xyes; then -+ AC_CHECK_HEADERS([GL/gl.h]) -+ AC_CHECK_HEADERS([GL/glx.h]) -+ AC_CHECK_LIB(GL, glXCreateContext, [ -+ USE_GLX="yes" -+ GL_DEPS_LIBS="-lX11 -lGL" -+ ]) -+fi -+AC_SUBST(GL_DEPS_CFLAGS) -+AC_SUBST(GL_DEPS_LIBS) -+AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes") -+ - # We only need the headers, we don't link against the DRM libraries - LIBVA_CFLAGS="$DRM_CFLAGS" - AC_SUBST(LIBVA_CFLAGS) -@@ -149,6 +171,7 @@ - src/Makefile - src/va_version.h - src/x11/Makefile -+ src/glx/Makefile - dummy_drv_video/Makefile - i965_drv_video/Makefile - i965_drv_video/shaders/Makefile -@@ -158,5 +181,6 @@ - test/Makefile - libva.pc - libva-x11.pc -+ libva-glx.pc - ]) - -diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_video/Makefile.in ---- libva-0.31.0/dummy_drv_video/Makefile.in 2009-10-10 23:43:49.952782788 +0200 -+++ libva-0.31.0.diff/dummy_drv_video/Makefile.in 2009-10-10 23:48:25.812782279 +0200 -@@ -142,6 +142,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_video/Makefile.in ---- libva-0.31.0/i965_drv_video/Makefile.in 2009-10-10 23:43:49.953782586 +0200 -+++ libva-0.31.0.diff/i965_drv_video/Makefile.in 2009-10-10 23:48:25.911782696 +0200 -@@ -183,6 +183,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/Makefile.in 2009-10-10 23:43:49.955782741 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/Makefile.in 2009-10-10 23:48:25.983782765 +0200 -@@ -113,6 +113,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in 2009-10-10 23:43:49.956782819 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/Makefile.in 2009-10-10 23:48:26.068783354 +0200 -@@ -113,6 +113,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/vld/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-10-10 23:43:49.957782687 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-10-10 23:48:26.138782359 +0200 -@@ -73,6 +73,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/render/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/render/Makefile.in 2009-10-10 23:43:49.957782687 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/render/Makefile.in 2009-10-10 23:48:26.207782475 +0200 -@@ -73,6 +73,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -diff -Naur libva-0.31.0/libva-glx.pc.in libva-0.31.0.diff/libva-glx.pc.in ---- libva-0.31.0/libva-glx.pc.in 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/libva-glx.pc.in 2009-10-10 23:48:04.517784893 +0200 -@@ -0,0 +1,12 @@ -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+display=glx -+ -+Name: libva-${display} -+Description: Userspace Video Acceleration (VA) ${display} interface -+Requires: libva -+Version: @PACKAGE_VERSION@ -+Libs: -L${libdir} -lva-${display} -+Cflags: -I${includedir} -diff -Naur libva-0.31.0/Makefile.am libva-0.31.0.diff/Makefile.am ---- libva-0.31.0/Makefile.am 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/Makefile.am 2009-10-10 23:48:04.514691630 +0200 -@@ -32,10 +32,13 @@ - - pcfiles = libva.pc - pcfiles += libva-x11.pc -+if USE_GLX -+pcfiles += libva-glx.pc -+endif - - pkgconfigdir = @pkgconfigdir@ - pkgconfig_DATA = $(pcfiles) - --EXTRA_DIST = libva.pc.in libva-x11.pc.in -+EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in - - CLEANFILES = $(pcfiles) -diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in ---- libva-0.31.0/Makefile.in 2009-10-10 23:43:49.959783471 +0200 -+++ libva-0.31.0.diff/Makefile.in 2009-10-10 23:48:26.762782514 +0200 -@@ -58,12 +58,13 @@ - host_triplet = @host@ - @BUILD_DUMMY_DRIVER_TRUE@am__append_1 = dummy_drv_video - @BUILD_I965_DRIVER_TRUE@am__append_2 = i965_drv_video -+@USE_GLX_TRUE@am__append_3 = libva-glx.pc - subdir = . - DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ -- $(srcdir)/libva-x11.pc.in $(srcdir)/libva.pc.in \ -- $(top_srcdir)/configure COPYING config.guess config.sub \ -- depcomp install-sh ltmain.sh missing -+ $(srcdir)/libva-glx.pc.in $(srcdir)/libva-x11.pc.in \ -+ $(srcdir)/libva.pc.in $(top_srcdir)/configure COPYING \ -+ config.guess config.sub depcomp install-sh ltmain.sh missing - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -@@ -72,7 +73,7 @@ - configure.lineno config.status.lineno - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = config.h --CONFIG_CLEAN_FILES = libva.pc libva-x11.pc -+CONFIG_CLEAN_FILES = libva.pc libva-x11.pc libva-glx.pc - CONFIG_CLEAN_VPATH_FILES = - SOURCES = - DIST_SOURCES = -@@ -177,6 +178,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -@@ -286,9 +289,9 @@ - top_srcdir = @top_srcdir@ - AUTOMAKE_OPTIONS = foreign - SUBDIRS = src test $(am__append_1) $(am__append_2) --pcfiles = libva.pc libva-x11.pc -+pcfiles = libva.pc libva-x11.pc $(am__append_3) - pkgconfig_DATA = $(pcfiles) --EXTRA_DIST = libva.pc.in libva-x11.pc.in -+EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in - CLEANFILES = $(pcfiles) - all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive -@@ -349,6 +352,8 @@ - cd $(top_builddir) && $(SHELL) ./config.status $@ - libva-x11.pc: $(top_builddir)/config.status $(srcdir)/libva-x11.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -+libva-glx.pc: $(top_builddir)/config.status $(srcdir)/libva-glx.pc.in -+ cd $(top_builddir) && $(SHELL) ./config.status $@ - - mostlyclean-libtool: - -rm -f *.lo -diff -Naur libva-0.31.0/src/glx/Makefile.in libva-0.31.0.diff/src/glx/Makefile.in ---- libva-0.31.0/src/glx/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.diff/src/glx/Makefile.in 2009-10-10 23:48:26.424782968 +0200 -@@ -0,0 +1,577 @@ -+# Makefile.in generated by automake 1.11 from Makefile.am. -+# @configure_input@ -+ -+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. -+# This Makefile.in is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+@SET_MAKE@ -+ -+# Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+# -+# 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, sub license, 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 (including the -+# next paragraph) 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 NON-INFRINGEMENT. -+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ -+ -+VPATH = @srcdir@ -+pkgdatadir = $(datadir)/@PACKAGE@ -+pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ -+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -+install_sh_DATA = $(install_sh) -c -m 644 -+install_sh_PROGRAM = $(install_sh) -c -+install_sh_SCRIPT = $(install_sh) -c -+INSTALL_HEADER = $(INSTALL_DATA) -+transform = $(program_transform_name) -+NORMAL_INSTALL = : -+PRE_INSTALL = : -+POST_INSTALL = : -+NORMAL_UNINSTALL = : -+PRE_UNINSTALL = : -+POST_UNINSTALL = : -+build_triplet = @build@ -+host_triplet = @host@ -+subdir = src/glx -+DIST_COMMON = $(libva_glxinclude_HEADERS) $(noinst_HEADERS) \ -+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in -+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -+am__aclocal_m4_deps = $(top_srcdir)/configure.ac -+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -+ $(ACLOCAL_M4) -+mkinstalldirs = $(install_sh) -d -+CONFIG_HEADER = $(top_builddir)/config.h -+CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = -+LTLIBRARIES = $(noinst_LTLIBRARIES) -+libva_glx_la_LIBADD = -+am__objects_1 = va_glx.lo va_glx_impl.lo -+am_libva_glx_la_OBJECTS = $(am__objects_1) -+libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS) -+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -+depcomp = $(SHELL) $(top_srcdir)/depcomp -+am__depfiles_maybe = depfiles -+am__mv = mv -f -+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ -+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -+CCLD = $(CC) -+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ -+ $(LDFLAGS) -o $@ -+SOURCES = $(libva_glx_la_SOURCES) -+DIST_SOURCES = $(libva_glx_la_SOURCES) -+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -+am__vpath_adj = case $$p in \ -+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ -+ *) f=$$p;; \ -+ esac; -+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -+am__install_max = 40 -+am__nobase_strip_setup = \ -+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -+am__nobase_strip = \ -+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -+am__nobase_list = $(am__nobase_strip_setup); \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ -+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ -+ if (++n[$$2] == $(am__install_max)) \ -+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ -+ END { for (dir in files) print dir, files[dir] }' -+am__base_list = \ -+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ -+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -+am__installdirs = "$(DESTDIR)$(libva_glxincludedir)" -+HEADERS = $(libva_glxinclude_HEADERS) $(noinst_HEADERS) -+ETAGS = etags -+CTAGS = ctags -+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+ACLOCAL = @ACLOCAL@ -+AMTAR = @AMTAR@ -+AR = @AR@ -+AUTOCONF = @AUTOCONF@ -+AUTOHEADER = @AUTOHEADER@ -+AUTOMAKE = @AUTOMAKE@ -+AWK = @AWK@ -+CC = @CC@ -+CCDEPMODE = @CCDEPMODE@ -+CFLAGS = @CFLAGS@ -+CPP = @CPP@ -+CPPFLAGS = @CPPFLAGS@ -+CYGPATH_W = @CYGPATH_W@ -+DEFS = @DEFS@ -+DEPDIR = @DEPDIR@ -+DRM_CFLAGS = @DRM_CFLAGS@ -+DRM_LIBS = @DRM_LIBS@ -+DSYMUTIL = @DSYMUTIL@ -+DUMPBIN = @DUMPBIN@ -+ECHO_C = @ECHO_C@ -+ECHO_N = @ECHO_N@ -+ECHO_T = @ECHO_T@ -+EGREP = @EGREP@ -+EXEEXT = @EXEEXT@ -+FGREP = @FGREP@ -+GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ -+GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ -+GREP = @GREP@ -+INSTALL = @INSTALL@ -+INSTALL_DATA = @INSTALL_DATA@ -+INSTALL_PROGRAM = @INSTALL_PROGRAM@ -+INSTALL_SCRIPT = @INSTALL_SCRIPT@ -+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ -+LDFLAGS = @LDFLAGS@ -+LIBOBJS = @LIBOBJS@ -+LIBS = @LIBS@ -+LIBTOOL = @LIBTOOL@ -+LIBVA_CFLAGS = @LIBVA_CFLAGS@ -+LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ -+LIBVA_LIBS = @LIBVA_LIBS@ -+LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -+LIBVA_LT_VERSION = @LIBVA_LT_VERSION@ -+LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ -+LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ -+LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ -+LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ -+LN_S = @LN_S@ -+LTLIBOBJS = @LTLIBOBJS@ -+MAKEINFO = @MAKEINFO@ -+MKDIR_P = @MKDIR_P@ -+NM = @NM@ -+NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ -+OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ -+PACKAGE = @PACKAGE@ -+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -+PACKAGE_NAME = @PACKAGE_NAME@ -+PACKAGE_STRING = @PACKAGE_STRING@ -+PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_VERSION = @PACKAGE_VERSION@ -+PATH_SEPARATOR = @PATH_SEPARATOR@ -+PKG_CONFIG = @PKG_CONFIG@ -+RANLIB = @RANLIB@ -+SED = @SED@ -+SET_MAKE = @SET_MAKE@ -+SHELL = @SHELL@ -+STRIP = @STRIP@ -+VERSION = @VERSION@ -+X11_CFLAGS = @X11_CFLAGS@ -+X11_LIBS = @X11_LIBS@ -+XEXT_CFLAGS = @XEXT_CFLAGS@ -+XEXT_LIBS = @XEXT_LIBS@ -+XFIXES_CFLAGS = @XFIXES_CFLAGS@ -+XFIXES_LIBS = @XFIXES_LIBS@ -+abs_builddir = @abs_builddir@ -+abs_srcdir = @abs_srcdir@ -+abs_top_builddir = @abs_top_builddir@ -+abs_top_srcdir = @abs_top_srcdir@ -+ac_ct_CC = @ac_ct_CC@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -+am__include = @am__include@ -+am__leading_dot = @am__leading_dot@ -+am__quote = @am__quote@ -+am__tar = @am__tar@ -+am__untar = @am__untar@ -+bindir = @bindir@ -+build = @build@ -+build_alias = @build_alias@ -+build_cpu = @build_cpu@ -+build_os = @build_os@ -+build_vendor = @build_vendor@ -+builddir = @builddir@ -+datadir = @datadir@ -+datarootdir = @datarootdir@ -+docdir = @docdir@ -+dvidir = @dvidir@ -+exec_prefix = @exec_prefix@ -+host = @host@ -+host_alias = @host_alias@ -+host_cpu = @host_cpu@ -+host_os = @host_os@ -+host_vendor = @host_vendor@ -+htmldir = @htmldir@ -+includedir = @includedir@ -+infodir = @infodir@ -+install_sh = @install_sh@ -+libdir = @libdir@ -+libexecdir = @libexecdir@ -+libvabackendlib = @libvabackendlib@ -+libvacorelib = @libvacorelib@ -+localedir = @localedir@ -+localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ -+mandir = @mandir@ -+mkdir_p = @mkdir_p@ -+oldincludedir = @oldincludedir@ -+pdfdir = @pdfdir@ -+pkgconfigdir = @pkgconfigdir@ -+prefix = @prefix@ -+program_transform_name = @program_transform_name@ -+psdir = @psdir@ -+sbindir = @sbindir@ -+sharedstatedir = @sharedstatedir@ -+srcdir = @srcdir@ -+sysconfdir = @sysconfdir@ -+target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ -+top_builddir = @top_builddir@ -+top_srcdir = @top_srcdir@ -+AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -+source_c = \ -+ va_glx.c \ -+ va_glx_impl.c -+ -+source_h = \ -+ va_glx.h \ -+ va_backend_glx.h -+ -+source_h_priv = \ -+ va_glx_impl.h \ -+ va_glx_private.h -+ -+noinst_LTLIBRARIES = libva_glx.la -+libva_glxincludedir = ${includedir}/va -+libva_glxinclude_HEADERS = $(source_h) -+libva_glx_la_SOURCES = $(source_c) -+noinst_HEADERS = $(source_h_priv) -+all: all-am -+ -+.SUFFIXES: -+.SUFFIXES: .c .lo .o .obj -+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -+ @for dep in $?; do \ -+ case '$(am__configure_deps)' in \ -+ *$$dep*) \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ -+ exit 1;; \ -+ esac; \ -+ done; \ -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/glx/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu src/glx/Makefile -+.PRECIOUS: Makefile -+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -+ @case '$?' in \ -+ *config.status*) \ -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -+ *) \ -+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -+ esac; -+ -+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+ -+$(top_srcdir)/configure: $(am__configure_deps) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(ACLOCAL_M4): $(am__aclocal_m4_deps) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): -+ -+clean-noinstLTLIBRARIES: -+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) -+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ -+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ -+ test "$$dir" != "$$p" || dir=.; \ -+ echo "rm -f \"$${dir}/so_locations\""; \ -+ rm -f "$${dir}/so_locations"; \ -+ done -+libva_glx.la: $(libva_glx_la_OBJECTS) $(libva_glx_la_DEPENDENCIES) -+ $(LINK) $(libva_glx_la_OBJECTS) $(libva_glx_la_LIBADD) $(LIBS) -+ -+mostlyclean-compile: -+ -rm -f *.$(OBJEXT) -+ -+distclean-compile: -+ -rm -f *.tab.c -+ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_glx.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_glx_impl.Plo@am__quote@ -+ -+.c.o: -+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c $< -+ -+.c.obj: -+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -+ -+.c.lo: -+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -+ -+mostlyclean-libtool: -+ -rm -f *.lo -+ -+clean-libtool: -+ -rm -rf .libs _libs -+install-libva_glxincludeHEADERS: $(libva_glxinclude_HEADERS) -+ @$(NORMAL_INSTALL) -+ test -z "$(libva_glxincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libva_glxincludedir)" -+ @list='$(libva_glxinclude_HEADERS)'; test -n "$(libva_glxincludedir)" || list=; \ -+ for p in $$list; do \ -+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -+ echo "$$d$$p"; \ -+ done | $(am__base_list) | \ -+ while read files; do \ -+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libva_glxincludedir)'"; \ -+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libva_glxincludedir)" || exit $$?; \ -+ done -+ -+uninstall-libva_glxincludeHEADERS: -+ @$(NORMAL_UNINSTALL) -+ @list='$(libva_glxinclude_HEADERS)'; test -n "$(libva_glxincludedir)" || list=; \ -+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ -+ test -n "$$files" || exit 0; \ -+ echo " ( cd '$(DESTDIR)$(libva_glxincludedir)' && rm -f" $$files ")"; \ -+ cd "$(DESTDIR)$(libva_glxincludedir)" && rm -f $$files -+ -+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ mkid -fID $$unique -+tags: TAGS -+ -+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ set x; \ -+ here=`pwd`; \ -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ -+ test -n "$$unique" || unique=$$empty_fix; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ -+ fi -+ctags: CTAGS -+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ test -z "$(CTAGS_ARGS)$$unique" \ -+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -+ $$unique -+ -+GTAGS: -+ here=`$(am__cd) $(top_builddir) && pwd` \ -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" -+ -+distclean-tags: -+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -+ -+distdir: $(DISTFILES) -+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ -+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ -+ list='$(DISTFILES)'; \ -+ dist_files=`for file in $$list; do echo $$file; done | \ -+ sed -e "s|^$$srcdirstrip/||;t" \ -+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ -+ case $$dist_files in \ -+ */*) $(MKDIR_P) `echo "$$dist_files" | \ -+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ -+ sort -u` ;; \ -+ esac; \ -+ for file in $$dist_files; do \ -+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -+ if test -d $$d/$$file; then \ -+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ -+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ -+ else \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ -+ || exit 1; \ -+ fi; \ -+ done -+check-am: all-am -+check: check-am -+all-am: Makefile $(LTLIBRARIES) $(HEADERS) -+installdirs: -+ for dir in "$(DESTDIR)$(libva_glxincludedir)"; do \ -+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ -+ done -+install: install-am -+install-exec: install-exec-am -+install-data: install-data-am -+uninstall: uninstall-am -+ -+install-am: all-am -+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -+ -+installcheck: installcheck-am -+install-strip: -+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -+ `test -z '$(STRIP)' || \ -+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -+mostlyclean-generic: -+ -+clean-generic: -+ -+distclean-generic: -+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -+ -+maintainer-clean-generic: -+ @echo "This command is intended for maintainers to use" -+ @echo "it deletes files that may require special tools to rebuild." -+clean: clean-am -+ -+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ -+ mostlyclean-am -+ -+distclean: distclean-am -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+distclean-am: clean-am distclean-compile distclean-generic \ -+ distclean-tags -+ -+dvi: dvi-am -+ -+dvi-am: -+ -+html: html-am -+ -+html-am: -+ -+info: info-am -+ -+info-am: -+ -+install-data-am: install-libva_glxincludeHEADERS -+ -+install-dvi: install-dvi-am -+ -+install-dvi-am: -+ -+install-exec-am: -+ -+install-html: install-html-am -+ -+install-html-am: -+ -+install-info: install-info-am -+ -+install-info-am: -+ -+install-man: -+ -+install-pdf: install-pdf-am -+ -+install-pdf-am: -+ -+install-ps: install-ps-am -+ -+install-ps-am: -+ -+installcheck-am: -+ -+maintainer-clean: maintainer-clean-am -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+maintainer-clean-am: distclean-am maintainer-clean-generic -+ -+mostlyclean: mostlyclean-am -+ -+mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -+ mostlyclean-libtool -+ -+pdf: pdf-am -+ -+pdf-am: -+ -+ps: ps-am -+ -+ps-am: -+ -+uninstall-am: uninstall-libva_glxincludeHEADERS -+ -+.MAKE: install-am install-strip -+ -+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -+ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ -+ distclean-compile distclean-generic distclean-libtool \ -+ distclean-tags distdir dvi dvi-am html html-am info info-am \ -+ install install-am install-data install-data-am install-dvi \ -+ install-dvi-am install-exec install-exec-am install-html \ -+ install-html-am install-info install-info-am \ -+ install-libva_glxincludeHEADERS install-man install-pdf \ -+ install-pdf-am install-ps install-ps-am install-strip \ -+ installcheck installcheck-am installdirs maintainer-clean \ -+ maintainer-clean-generic mostlyclean mostlyclean-compile \ -+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ -+ tags uninstall uninstall-am uninstall-libva_glxincludeHEADERS -+ -+ -+# Tell versions [3.59,3.63) of GNU make to not export all variables. -+# Otherwise a system limit (for SysV at least) may be exceeded. -+.NOEXPORT: -diff -Naur libva-0.31.0/src/Makefile.am libva-0.31.0.diff/src/Makefile.am ---- libva-0.31.0/src/Makefile.am 2009-10-10 23:43:40.170657799 +0200 -+++ libva-0.31.0.diff/src/Makefile.am 2009-10-10 23:48:04.518784482 +0200 -@@ -28,9 +28,17 @@ - LDADD = \ - $(LIBVA_LT_LDFLAGS) - --lib_LTLIBRARIES = \ -- libva.la \ -- libva-x11.la -+libva_x11_backend = libva-x11.la -+libva_x11_backenddir = x11 -+if USE_GLX -+libva_glx_backend = libva-glx.la -+libva_glx_backenddir = glx -+else -+libva_glx_backend = -+libva_glx_backenddir = -+endif -+ -+lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend) - - libva_ladir = $(libdir) - libva_la_LDFLAGS = $(LDADD) -no-undefined -@@ -41,7 +49,14 @@ - libva_x11_la_LDFLAGS = $(LDADD) - libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la - --SUBDIRS = x11 -+libva_glx_la_SOURCES = -+libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl -+libva_glx_la_LDFLAGS = $(LDADD) -+libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la -+ -+SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) -+ -+DIST_SUBDIRS = x11 glx - - libva_la_SOURCES = va.c - -diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in ---- libva-0.31.0/src/Makefile.in 2009-10-10 23:43:49.960782641 +0200 -+++ libva-0.31.0.diff/src/Makefile.in 2009-10-10 23:48:26.324782822 +0200 -@@ -92,6 +92,12 @@ - am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libvaincludedir)" - LTLIBRARIES = $(lib_LTLIBRARIES) - am__DEPENDENCIES_1 = -+am_libva_glx_la_OBJECTS = -+libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS) -+libva_glx_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -+ $(libva_glx_la_LDFLAGS) $(LDFLAGS) -o $@ -+@USE_GLX_TRUE@am_libva_glx_la_rpath = -rpath $(libdir) - am_libva_x11_la_OBJECTS = - libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS) - libva_x11_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ -@@ -116,8 +122,10 @@ - LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ --SOURCES = $(libva_x11_la_SOURCES) $(libva_la_SOURCES) --DIST_SOURCES = $(libva_x11_la_SOURCES) $(libva_la_SOURCES) -+SOURCES = $(libva_glx_la_SOURCES) $(libva_x11_la_SOURCES) \ -+ $(libva_la_SOURCES) -+DIST_SOURCES = $(libva_glx_la_SOURCES) $(libva_x11_la_SOURCES) \ -+ $(libva_la_SOURCES) - RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ -@@ -133,7 +141,6 @@ - distdir - ETAGS = etags - CTAGS = ctags --DIST_SUBDIRS = $(SUBDIRS) - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - am__relativize = \ - dir0=`pwd`; \ -@@ -187,6 +194,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -@@ -302,10 +311,13 @@ - LDADD = \ - $(LIBVA_LT_LDFLAGS) - --lib_LTLIBRARIES = \ -- libva.la \ -- libva-x11.la -- -+libva_x11_backend = libva-x11.la -+libva_x11_backenddir = x11 -+@USE_GLX_FALSE@libva_glx_backend = -+@USE_GLX_TRUE@libva_glx_backend = libva-glx.la -+@USE_GLX_FALSE@libva_glx_backenddir = -+@USE_GLX_TRUE@libva_glx_backenddir = glx -+lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend) - libva_ladir = $(libdir) - libva_la_LDFLAGS = $(LDADD) -no-undefined - libva_la_LIBADD = $(LIBVA_LIBS) -ldl -@@ -313,7 +325,12 @@ - libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl - libva_x11_la_LDFLAGS = $(LDADD) - libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la --SUBDIRS = x11 -+libva_glx_la_SOURCES = -+libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl -+libva_glx_la_LDFLAGS = $(LDADD) -+libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la -+SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) -+DIST_SUBDIRS = x11 glx - libva_la_SOURCES = va.c - libvaincludedir = ${includedir}/va - libvainclude_HEADERS = va.h va_backend.h va_version.h -@@ -390,6 +407,8 @@ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -+libva-glx.la: $(libva_glx_la_OBJECTS) $(libva_glx_la_DEPENDENCIES) -+ $(libva_glx_la_LINK) $(am_libva_glx_la_rpath) $(libva_glx_la_OBJECTS) $(libva_glx_la_LIBADD) $(LIBS) - libva-x11.la: $(libva_x11_la_OBJECTS) $(libva_x11_la_DEPENDENCIES) - $(libva_x11_la_LINK) -rpath $(libdir) $(libva_x11_la_OBJECTS) $(libva_x11_la_LIBADD) $(LIBS) - libva.la: $(libva_la_OBJECTS) $(libva_la_DEPENDENCIES) -diff -Naur libva-0.31.0/src/va_backend.h libva-0.31.0.diff/src/va_backend.h ---- libva-0.31.0/src/va_backend.h 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/va_backend.h 2009-10-10 23:48:04.520785546 +0200 -@@ -32,9 +32,11 @@ - #ifdef IN_LIBVA - #include "va.h" - #include "x11/va_x11.h" -+#include "glx/va_backend_glx.h" - #else - #include - #include -+#include - #endif - - #include -@@ -372,6 +374,9 @@ - unsigned int *chroma_v_offset, - void **buffer - ); -+ -+ /* Optional: GLX support hooks */ -+ struct VADriverVTableGLX glx; - }; - - struct VADriverContext -@@ -394,6 +399,7 @@ - void *handle; /* dlopen handle */ - - void *dri_state; -+ void *glx; /* opaque for GLX code */ - }; - - struct VADisplayContext -@@ -413,6 +419,8 @@ - VADisplayContextP ctx, - char **driver_name - ); -+ -+ void *opaque; /* opaque for display extensions (e.g. GLX) */ - }; - - typedef VAStatus (*VADriverInit) ( -diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.in ---- libva-0.31.0/src/x11/Makefile.in 2009-10-10 23:43:50.060657978 +0200 -+++ libva-0.31.0.diff/src/x11/Makefile.in 2009-10-10 23:48:26.517782571 +0200 -@@ -140,6 +140,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -diff -Naur libva-0.31.0/src/x11/va_x11.c libva-0.31.0.diff/src/x11/va_x11.c ---- libva-0.31.0/src/x11/va_x11.c 2009-10-10 23:43:40.285167975 +0200 -+++ libva-0.31.0.diff/src/x11/va_x11.c 2009-10-10 23:48:04.522785002 +0200 -@@ -198,6 +198,7 @@ - pDisplayContext->vaIsValid = va_DisplayContextIsValid; - pDisplayContext->vaDestroy = va_DisplayContextDestroy; - pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName; -+ pDisplayContext->opaque = NULL; - pDisplayContexts = pDisplayContext; - pDriverContext->dri_state = dri_state; - dpy = (VADisplay)pDisplayContext; -diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in ---- libva-0.31.0/test/Makefile.in 2009-10-10 23:43:50.061657567 +0200 -+++ libva-0.31.0.diff/test/Makefile.in 2009-10-10 23:48:26.672783003 +0200 -@@ -166,6 +166,8 @@ - FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ diff --git a/packages/multimedia/libva/patches/390_compat.base.diff b/packages/multimedia/libva/patches/390_compat.base.diff deleted file mode 100644 index 2cdc99ae52..0000000000 --- a/packages/multimedia/libva/patches/390_compat.base.diff +++ /dev/null @@ -1,174 +0,0 @@ -diff -Naur libva-0.31.0/src/Makefile.am libva-0.31.0.diff/src/Makefile.am ---- libva-0.31.0/src/Makefile.am 2009-10-10 23:26:31.663789932 +0200 -+++ libva-0.31.0.diff/src/Makefile.am 2009-10-10 23:26:55.590658410 +0200 -@@ -58,7 +58,7 @@ - - DIST_SUBDIRS = x11 glx - --libva_la_SOURCES = va.c -+libva_la_SOURCES = va.c va_compat.c - - libvaincludedir = ${includedir}/va - libvainclude_HEADERS = va.h va_backend.h va_version.h -@@ -67,4 +67,8 @@ - va_version.h - - EXTRA_DIST = \ -- va_version.h.in -+ va_version.h.in \ -+ va_compat.h \ -+ va_compat_template.h -+ -+va_compat.c: va_compat_template.h -diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in ---- libva-0.31.0/src/Makefile.in 2009-10-10 23:26:31.664783096 +0200 -+++ libva-0.31.0.diff/src/Makefile.in 2009-10-10 23:27:11.668782308 +0200 -@@ -104,7 +104,7 @@ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libva_x11_la_LDFLAGS) $(LDFLAGS) -o $@ - libva_la_DEPENDENCIES = $(am__DEPENDENCIES_1) --am_libva_la_OBJECTS = va.lo -+am_libva_la_OBJECTS = va.lo va_compat.lo - libva_la_OBJECTS = $(am_libva_la_OBJECTS) - libva_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libva_la_LDFLAGS) \ -@@ -331,14 +331,16 @@ - libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la - SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) - DIST_SUBDIRS = x11 glx --libva_la_SOURCES = va.c -+libva_la_SOURCES = va.c va_compat.c - libvaincludedir = ${includedir}/va - libvainclude_HEADERS = va.h va_backend.h va_version.h - DISTCLEANFILES = \ - va_version.h - - EXTRA_DIST = \ -- va_version.h.in -+ va_version.h.in \ -+ va_compat.h \ -+ va_compat_template.h - - all: all-recursive - -@@ -421,6 +423,7 @@ - -rm -f *.tab.c - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_compat.Plo@am__quote@ - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@@ -788,6 +791,8 @@ - uninstall-libLTLIBRARIES uninstall-libvaincludeHEADERS - - -+va_compat.c: va_compat_template.h -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/src/va_backend.h libva-0.31.0.diff/src/va_backend.h ---- libva-0.31.0/src/va_backend.h 2009-10-10 23:26:31.665782195 +0200 -+++ libva-0.31.0.diff/src/va_backend.h 2009-10-10 23:26:55.596657968 +0200 -@@ -400,6 +400,7 @@ - - void *dri_state; - void *glx; /* opaque for GLX code */ -+ void *compat; /* opaque for compat code */ - }; - - struct VADisplayContext -diff -Naur libva-0.31.0/src/va.c libva-0.31.0.diff/src/va.c ---- libva-0.31.0/src/va.c 2009-10-10 23:20:23.923657687 +0200 -+++ libva-0.31.0.diff/src/va.c 2009-10-10 23:26:55.592659404 +0200 -@@ -25,6 +25,7 @@ - #define _GNU_SOURCE 1 - #include "va.h" - #include "va_backend.h" -+#include "va_compat.h" - - #include - #include -@@ -41,6 +42,8 @@ - - #define DRIVER_INIT_FUNC "__vaDriverInit_0_31" - #define DRIVER_INIT_FUNC_SDS "__vaDriverInit_0_31_sds" -+#define DRIVER_INIT_FUNC_0_29 "__vaDriverInit_0_29" -+#define DRIVER_INIT_FUNC_0_30 "__vaDriverInit_0_30" - - #define DRIVER_EXTENSION "_drv_video.so" - -@@ -168,11 +171,22 @@ - else - { - VADriverInit init_func; -- init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); -+ int compat_version = 0; -+ /* First, try SDS extensions (VDPAU and XvBA backends) */ -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_SDS); - if (!init_func) - { -- /* Then try SDS extensions (VDPAU and XvBA backends) */ -- init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_SDS); -+ /* Otherwise, we need the compatibility layer for some buffers */ -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); -+ compat_version = VA_MINOR_VERSION; -+ if (!init_func) { -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_29); -+ compat_version = 29; -+ } -+ if (!init_func) { -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_30); -+ compat_version = 30; -+ } - } - if (!init_func) - { -@@ -181,7 +195,36 @@ - } - else - { -- vaStatus = (*init_func)(ctx); -+ struct VADriverContext_0_29 ctx_0_29; -+ struct VADriverContext_0_30 ctx_0_30; -+ void *compat_ctx = NULL; -+ -+ switch (compat_version) { -+ case 29: -+ compat_ctx = &ctx_0_29; -+ ctx_0_29.pDriverData = NULL; -+ ctx_0_29.x11_dpy = ctx->x11_dpy; -+ ctx_0_29.x11_screen = ctx->x11_screen; -+ break; -+ case 30: -+ compat_ctx = &ctx_0_30; -+ ctx_0_30.pDriverData = NULL; -+ ctx_0_30.x11_dpy = ctx->x11_dpy; -+ ctx_0_30.x11_screen = ctx->x11_screen; -+ break; -+ case VA_MINOR_VERSION: -+ compat_ctx = ctx; -+ break; -+ default: -+ ASSERT(compat_version == 0); -+ vaStatus = VA_STATUS_ERROR_UNKNOWN; -+ break; -+ } -+ -+ vaStatus = (*init_func)(compat_ctx ? compat_ctx : ctx); -+ -+ if (VA_STATUS_SUCCESS == vaStatus) -+ vaStatus = va_compat_init(dpy, compat_version, compat_ctx); - - if (VA_STATUS_SUCCESS == vaStatus) - { -@@ -379,6 +422,8 @@ - old_ctx->handle = NULL; - } - -+ va_compat_fini(dpy); -+ - if (VA_STATUS_SUCCESS == vaStatus) - pDisplayContext->vaDestroy(pDisplayContext); - return vaStatus; diff --git a/packages/multimedia/libva/patches/391_compat.diff b/packages/multimedia/libva/patches/391_compat.diff deleted file mode 100644 index a5044b2cfd..0000000000 --- a/packages/multimedia/libva/patches/391_compat.diff +++ /dev/null @@ -1,3219 +0,0 @@ -commit 30808b39d82cbf0c185052a2d2d5ed8a5fc065d1 -Author: Gwenole Beauchesne -Date: Thu Sep 10 14:01:57 2009 +0000 - - Update compatibility glue for VASliceParameterBufferMPEG2.slice_horizontal_position addition. - -commit 27faf49366602637da223f3dc5f30ce4d6d72070 -Author: Gwenole Beauchesne -Date: Wed Sep 2 15:06:20 2009 +0000 - - Fix vaSyncSurface() compat code for VA API < 0.31 drivers. - -commit dc33a3e28b38b7d579ab768899963cf9b0d38677 -Author: Gwenole Beauchesne -Date: Wed Sep 2 12:28:43 2009 +0000 - - Fix check for 0.30 modules. - -commit bd913971bd9e7460b454513b006e16c18136625e -Author: Gwenole Beauchesne -Date: Wed Sep 2 11:58:08 2009 +0000 - - Update for VA API 0.31. - -commit 9cc7f89d3cc0238ab5b3a47c316e261e06a16634 -Author: Gwenole Beauchesne -Date: Thu Jul 2 15:55:48 2009 +0000 - - Fix VAEncSliceParameterBuffer thunk. - -commit 483bc9e67afa9bcd8f99f08a74a78e7dfad4651f -Author: Gwenole Beauchesne -Date: Thu Jul 2 09:24:04 2009 +0000 - - Fix make dist (va_compat_template.h). - -commit 7f41b22366142c4e476fbae929ad343dc33af3a4 -Author: Gwenole Beauchesne -Date: Thu Jun 25 14:05:57 2009 +0000 - - Drop superfluous semi-colon. - -commit dcc75aae23fc8f653179b6a331f4021acd6775fd -Author: Gwenole Beauchesne -Date: Thu Jun 25 13:53:26 2009 +0000 - - Fix check for 0.30 modules. - -commit b34512e74ac4150a3f8ee4abe4fa5b17907f8869 -Author: Gwenole Beauchesne -Date: Thu Jun 25 13:17:48 2009 +0000 - - Fix vaTerminate() thunk. - -commit 3b006d1ac66429f6b8ffff00ce60e1e47a32c02c -Author: Gwenole Beauchesne -Date: Thu Jun 25 12:48:22 2009 +0000 - - Cosmetics. - -commit 452295d5ac34643f8a316491888c3900f12c5bff -Author: Gwenole Beauchesne -Date: Thu Jun 25 12:18:48 2009 +0000 - - Fix compatibility with 0.29 modules. - -commit 0e0da9ea861f14e8129767dbf6f11be5c051d85f -Author: Gwenole Beauchesne -Date: Wed Jun 24 11:40:56 2009 +0000 - - Add compatibility layer with original libva 0.29. - -diff --git a/src/va_compat.c b/src/va_compat.c -new file mode 100644 -index 0000000..e83e314 ---- /dev/null -+++ b/src/va_compat.c -@@ -0,0 +1,1170 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#include "config.h" -+#include "va.h" -+#include "va_compat.h" -+#include "va_backend.h" -+#include -+#include -+#include -+ -+#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext) -+#define COMPAT_CTX(ctx) ((VACompatContextP)(ctx)->compat) -+#define ASSERT assert -+ -+/* Invoke the normal VA API entry-point. This one can be replaced with -+ one of the va_compat_*() functions */ -+#define VA_INVOKE(FUNC, CTX, ...) \ -+ (CTX)->vtable.FUNC(CTX, __VA_ARGS__) -+ -+/* Invoke the real VA API entry-point. That is, the driver's function */ -+#define VA_INVOKE_COMPAT_ARGS(CTX, ...) \ -+ (COMPAT_CTX(CTX)->compat_ctx, __VA_ARGS__) -+#define VA_INVOKE_COMPAT(FUNC, CTX, ...) \ -+ COMPAT_CTX(CTX)->vtable.FUNC VA_INVOKE_COMPAT_ARGS(CTX, __VA_ARGS__) -+ -+typedef struct VACompatContext *VACompatContextP; -+ -+typedef VAStatus (*VABufferTranslateFunc)(VACompatContextP ctx, void *dest, const void *src); -+ -+typedef enum { -+ VA_DRIVER_ID_UNKNOWN, -+ VA_DRIVER_ID_POULSBO, -+ VA_DRIVER_ID_IEGD -+} VADriverID; -+ -+typedef struct { -+ VABufferID id; -+ VABufferType type; -+ unsigned int size; -+ unsigned int num_elements; -+ unsigned char *data; -+ VABufferTranslateFunc translate; -+ VABufferID compat_id; -+ unsigned int compat_size; -+ unsigned char *compat_data; -+ unsigned int map_count; -+} VABufferCompat; -+ -+typedef struct VAContextMap *VAContextMapP; -+typedef struct VAContextMap { -+ VASurfaceID surface; -+ VAContextID context; -+ VAContextMapP next; -+} VAContextMap; -+ -+typedef struct { -+ VAStatus (*vaTerminate)(void *); -+ VAStatus (*vaQueryConfigProfiles)(void *, VAProfile *, int *); -+ VAStatus (*vaQueryConfigEntrypoints)(void *, VAProfile, VAEntrypoint *, int *); -+ VAStatus (*vaGetConfigAttributes)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int); -+ VAStatus (*vaCreateConfig)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int, VAConfigID *); -+ VAStatus (*vaDestroyConfig)(void *, VAConfigID); -+ VAStatus (*vaQueryConfigAttributes)(void *, VAConfigID, VAProfile *, VAEntrypoint *, VAConfigAttrib *, int *); -+ VAStatus (*vaCreateSurfaces)(void *, int, int, int, int, VASurfaceID *); -+ VAStatus (*vaDestroySurfaces)(void *, VASurfaceID *, int); -+ VAStatus (*vaCreateContext)(void *, VAConfigID, int, int, int, VASurfaceID *, int, VAContextID *); -+ VAStatus (*vaDestroyContext)(void *, VAContextID); -+ VAStatus (*vaCreateBuffer)(void *, VAContextID, VABufferType, unsigned int, unsigned int, void *, VABufferID *); -+ VAStatus (*vaBufferSetNumElements)(void *, VABufferID, unsigned int); -+ VAStatus (*vaMapBuffer)(void *, VABufferID, void **); -+ VAStatus (*vaUnmapBuffer)(void *, VABufferID); -+ VAStatus (*vaDestroyBuffer)(void *, VABufferID); -+ VAStatus (*vaBeginPicture)(void *, VAContextID, VASurfaceID); -+ VAStatus (*vaRenderPicture)(void *, VAContextID, VABufferID *, int); -+ VAStatus (*vaEndPicture)(void *, VAContextID); -+ VAStatus (*vaSyncSurface_pre31)(void *, VAContextID, VASurfaceID); -+ VAStatus (*vaQuerySurfaceStatus)(void *, VASurfaceID, VASurfaceStatus *); -+ VAStatus (*vaPutSurface)(void *, VASurfaceID, unsigned long, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, VARectangle *, unsigned int, unsigned int); -+ VAStatus (*vaQueryImageFormats)(void *, VAImageFormat *, int *); -+ VAStatus (*vaCreateImage)(void *, VAImageFormat *, int, int, VAImage *); -+ VAStatus (*vaDeriveImage)(void *, VASurfaceID, VAImage *); -+ VAStatus (*vaDestroyImage)(void *, VAImageID); -+ VAStatus (*vaSetImagePalette)(void *, VAImageID, unsigned char *); -+ VAStatus (*vaGetImage)(void *, VASurfaceID, int, int, unsigned int, unsigned int, VAImageID); -+ VAStatus (*vaPutImage_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int); -+ VAStatus (*vaPutImage2_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); -+ VAStatus (*vaQuerySubpictureFormats)(void *, VAImageFormat *, unsigned int *, unsigned int *); -+ VAStatus (*vaCreateSubpicture)(void *, VAImageID, VASubpictureID *); -+ VAStatus (*vaDestroySubpicture)(void *, VASubpictureID); -+ VAStatus (*vaSetSubpictureImage)(void *, VASubpictureID, VAImageID); -+ VAStatus (*vaSetSubpictureChromakey)(void *, VASubpictureID, unsigned int, unsigned int, unsigned int); -+ VAStatus (*vaSetSubpictureGlobalAlpha)(void *, VASubpictureID, float); -+ VAStatus (*vaAssociateSubpicture_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, short, short, unsigned short, unsigned short, unsigned int); -+ VAStatus (*vaAssociateSubpicture2_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); -+ VAStatus (*vaDeassociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int); -+ VAStatus (*vaQueryDisplayAttributes)(void *, VADisplayAttribute *, int *); -+ VAStatus (*vaGetDisplayAttributes)(void *, VADisplayAttribute *, int); -+ VAStatus (*vaSetDisplayAttributes)(void *, VADisplayAttribute *, int); -+ -+ /* 0.29 hooks */ -+ VAStatus (*vaSetSubpicturePalette)(void *, VASubpictureID, unsigned char *); -+ VAStatus (*vaDbgCopySurfaceToBuffer)(void *, VASurfaceID, void **, unsigned int *); -+ -+ /* 0.30 hooks */ -+ VAStatus (*vaCreateSurfaceFromCIFrame)(void *, unsigned long, VASurfaceID *); -+ VAStatus (*vaCreateSurfaceFromV4L2Buf)(void *, int, struct v4l2_format *, struct v4l2_buffer *, VASurfaceID *); -+ VAStatus (*vaCopySurfaceToBuffer)(void *, VASurfaceID, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, void **); -+ -+ /* 0.31 hooks */ -+ VAStatus (*vaPutImage)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); -+ VAStatus (*vaAssociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); -+ VAStatus (*vaSyncSurface)(void *, VASurfaceID); -+} VACompatDriverVTable; -+ -+typedef struct VACompatContext { -+ VABufferCompat *buffers; -+ unsigned int buffers_count_max; -+ unsigned int compat_version; -+ void *compat_ctx; -+ VACompatDriverVTable vtable; /* original vtable */ -+ VADriverID driver_id; -+ char *driver_name; -+ VAContextMapP context_map; -+ VAContextMapP last_context_map_match; -+ unsigned int skip_frame : 1; -+} VACompatContext; -+ -+#define COMPAT_MAJOR 0 -+#define COMPAT_MINOR 29 -+#include "va_compat_template.h" -+ -+#define COMPAT_MAJOR 0 -+#define COMPAT_MINOR 30 -+#include "va_compat_template.h" -+ -+#define COMPAT_MAJOR 0 -+#define COMPAT_MINOR 31 -+#include "va_compat_template.h" -+ -+static inline int va_IsIntelBuffer(VADriverContextP ctx, VABufferID id) -+{ -+ VACompatContextP compat = ctx->compat; -+ -+ if (compat->driver_id == VA_DRIVER_ID_POULSBO) { -+ /* There were only Intel implementations for VA API. Besides, the -+ returned buffer IDs had the following format [ 0 BASE ID ] where -+ BASE is the 7-bit value 0x04 and ID an index into the heap of -+ objects */ -+ return (id & 0x7f000000) == 0x04000000; -+ } -+ -+ if (compat->driver_id == VA_DRIVER_ID_IEGD) { -+ /* XXX: there is no means to differentiate the buffers, they -+ are linearly generated (IEGD 10.0 build 1335) */ -+ return 1; -+ } -+ -+ return 0; -+} -+ -+static VAContextMapP va_context_map_lookup_p( -+ VACompatContextP ctx, -+ VASurfaceID surface -+) -+{ -+ VAContextMapP m = ctx->context_map; -+ -+ while (m) { -+ if (m->surface == surface) -+ return m; -+ m = m->next; -+ } -+ return NULL; -+} -+ -+static VAContextID va_context_map_lookup( -+ VACompatContextP ctx, -+ VASurfaceID surface -+) -+{ -+ VAContextMapP m; -+ -+ /* Lookup in cached */ -+ m = ctx->last_context_map_match; -+ if (m && m->surface == surface) -+ return m->context; -+ -+ /* Full (slow) lookup */ -+ m = va_context_map_lookup_p(ctx, surface); -+ if (m) { -+ ctx->last_context_map_match = m; -+ return m->context; -+ } -+ return VA_INVALID_ID; -+} -+ -+static void va_context_map_add( -+ VACompatContextP ctx, -+ VAContextID context, -+ VASurfaceID surface -+) -+{ -+ VAContextMapP m; -+ -+ /* Update existing entry */ -+ m = va_context_map_lookup_p(ctx, surface); -+ if (m) { -+ m->context = context; -+ return; -+ } -+ -+ /* Create new mapping */ -+ m = malloc(sizeof(*m)); -+ ASSERT(m); -+ if (m) { -+ m->surface = surface; -+ m->context = context; -+ m->next = ctx->context_map; -+ ctx->context_map = m; -+ } -+} -+ -+static void va_context_map_remove( -+ VACompatContextP ctx, -+ VAContextID context -+) -+{ -+ VAContextMapP p = NULL; -+ VAContextMapP m = ctx->context_map; -+ VAContextMapP d; -+ -+ while (m) { -+ if (m->context == context) { -+ d = m; -+ -+ /* Unlink current node */ -+ if (p) -+ p->next = m->next; -+ else -+ ctx->context_map = m->next; -+ m = m->next; -+ -+ /* Reset cache */ -+ if (ctx->last_context_map_match == d) -+ ctx->last_context_map_match = NULL; -+ -+ free(d); -+ } -+ else { -+ p = m; -+ m = m->next; -+ } -+ } -+} -+ -+static VABufferCompat *va_GetBufferCompat ( -+ VADriverContextP ctx, -+ VABufferID id -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ int index; -+ -+ if (!va_IsIntelBuffer(ctx, id)) -+ return NULL; -+ -+ index = id & 0x00ffffff; -+ if (index >= compat->buffers_count_max) -+ return NULL; -+ -+ if (compat->buffers[index].id != id) -+ return NULL; -+ -+ return &compat->buffers[index]; -+} -+ -+static VAStatus va_TranslateBufferCompat ( -+ VADriverContextP ctx, -+ VABufferCompat *compat_buffer -+) -+{ -+ VAStatus status; -+ unsigned char *src, *dest; -+ int i; -+ -+ status = VA_INVOKE(vaMapBuffer, ctx, compat_buffer->id, (void **)&src); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ ASSERT(compat_buffer->data); -+ ASSERT(src == compat_buffer->data); -+ ASSERT(compat_buffer->compat_data); -+ dest = compat_buffer->compat_data; -+ for (i = 0; i < compat_buffer->num_elements; i++) -+ { -+ /* XXX: check errors */ -+ status = compat_buffer->translate(ctx->compat, dest, src); -+ -+ src += compat_buffer->size; -+ dest += compat_buffer->compat_size; -+ } -+ -+ return VA_INVOKE(vaUnmapBuffer, ctx, compat_buffer->id); -+} -+ -+static VAStatus va_CreateBufferCompat ( -+ VADriverContextP ctx, -+ VAContextID context, -+ VABufferID id, -+ VABufferType type, -+ unsigned int size, -+ unsigned int num_elements, -+ unsigned int compat_size, -+ VABufferTranslateFunc translate_func -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ VABufferCompat *compat_buffer; -+ int index; -+ -+ if (!va_IsIntelBuffer(ctx, id)) -+ return VA_STATUS_ERROR_INVALID_BUFFER; -+ index = id & 0x00ffffff; -+ -+ /* XXX: this allocation strategy is not really space efficient... */ -+ if (index >= compat->buffers_count_max) -+ { -+ compat->buffers_count_max = index + 1; -+ compat->buffers = realloc(compat->buffers, -+ (compat->buffers_count_max * -+ sizeof(VABufferCompat))); -+ if (compat->buffers == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ } -+ -+ compat_buffer = &compat->buffers[index]; -+ compat_buffer->id = id; -+ compat_buffer->type = type; -+ compat_buffer->size = size; -+ compat_buffer->num_elements = num_elements; -+ compat_buffer->data = NULL; -+ compat_buffer->translate = translate_func; -+ compat_buffer->compat_size = compat_size; -+ compat_buffer->compat_data = NULL; -+ compat_buffer->map_count = 0; -+ -+ return VA_INVOKE_COMPAT(vaCreateBuffer, -+ ctx, -+ context, -+ type, -+ compat_size, -+ num_elements, -+ NULL, -+ &compat_buffer->compat_id); -+} -+ -+static VAStatus va_DestroyBufferCompat ( -+ VADriverContextP ctx, -+ VABufferID id -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, id)) == NULL) -+ return VA_STATUS_SUCCESS; -+ -+ /* Force unmap if there were more maps than unmaps */ -+ if (compat_buffer->map_count > 1) -+ compat_buffer->map_count = 1; -+ if (compat_buffer->map_count > 1) -+ { -+ if ((status = VA_INVOKE(vaUnmapBuffer, ctx, id)) != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ compat_buffer->id = 0; -+ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->compat_id); -+} -+ -+static VAStatus va_compat_CreateBuffer ( -+ VADriverContextP ctx, -+ VAContextID context, /* in */ -+ VABufferType type, /* in */ -+ unsigned int size, /* in */ -+ unsigned int num_elements, /* in */ -+ void *data, /* in */ -+ VABufferID *buf_id /* out */ -+) -+{ -+ VABufferTranslateFunc translate_func = NULL; -+ unsigned int compat_size = 0; -+ VAStatus status; -+ -+ status = VA_INVOKE_COMPAT(vaCreateBuffer, -+ ctx, -+ context, -+ type, -+ size, -+ num_elements, -+ data, -+ buf_id); -+ -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+#define INIT_TRANSLATE_FUNC_(STRUCT, MAJOR, MINOR) do { \ -+ translate_func = va_compat_translate_VA##STRUCT##_##MAJOR##_##MINOR; \ -+ compat_size = sizeof(VA##STRUCT##_##MAJOR##_##MINOR); \ -+} while (0) -+#define INIT_TRANSLATE_FUNC(BUFFER, CODEC, MAJOR, MINOR) \ -+ INIT_TRANSLATE_FUNC_(BUFFER##Buffer##CODEC, MAJOR, MINOR) -+ -+ /* XXX: this assumes all structures have different sizes from each other */ -+ switch (size) { -+ case sizeof(VAPictureParameterBufferH264): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VASliceParameterBufferH264): -+ if (type == VASliceParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VAPictureParameterBufferVC1): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VAPictureParameterBufferMPEG2): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VASliceParameterBufferMPEG2): -+ if (type == VASliceParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VAPictureParameterBufferMPEG4): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VAEncSliceParameterBuffer): -+ if (type == VAEncSliceParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 30: INIT_TRANSLATE_FUNC_(EncSliceParameterBuffer, 0,30); break; -+ } -+ } -+ break; -+ } -+ -+#undef INIT_TRANSLATE_FUNC -+ -+ /* Create thunk */ -+ if (buf_id && translate_func) -+ { -+ ASSERT(compat_size > 0); -+ -+ status = va_CreateBufferCompat(ctx, -+ context, -+ *buf_id, -+ type, -+ size, -+ num_elements, -+ compat_size, -+ translate_func); -+ } -+ -+ return status; -+} -+ -+static VAStatus va_compat_BufferSetNumElements ( -+ VADriverContextP ctx, -+ VABufferID buf_id, /* in */ -+ unsigned int num_elements /* in */ -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, ctx, buf_id, num_elements); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) != NULL) -+ { -+ compat_buffer->num_elements = num_elements; -+ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, -+ ctx, -+ compat_buffer->compat_id, -+ num_elements); -+ } -+ -+ return status; -+} -+ -+static VAStatus va_compat_DestroyBuffer ( -+ VADriverContextP ctx, -+ VABufferID buffer_id -+) -+{ -+ VAStatus status; -+ if ((status = va_DestroyBufferCompat(ctx, buffer_id)) != VA_STATUS_SUCCESS) -+ return status; -+ -+ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, buffer_id); -+} -+ -+static VAStatus va_compat_MapBuffer ( -+ VADriverContextP ctx, -+ VABufferID buf_id, /* in */ -+ void **pbuf /* out */ -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) -+ return VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, pbuf); -+ -+ if (compat_buffer->map_count++ == 0) -+ { -+ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, (void **)&compat_buffer->data); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, compat_buffer->compat_id, (void **)&compat_buffer->compat_data); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ if (pbuf) -+ *pbuf = compat_buffer->data; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus va_compat_UnmapBuffer ( -+ VADriverContextP ctx, -+ VABufferID buf_id /* in */ -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) -+ return VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, buf_id); -+ -+ if (--compat_buffer->map_count == 0) -+ { -+ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->compat_id); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ compat_buffer->compat_data = NULL; -+ -+ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->id); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ compat_buffer->data = NULL; -+ } -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus va_compat_BeginPicture ( -+ VADriverContextP ctx, -+ VAContextID context, -+ VASurfaceID render_target -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ compat->skip_frame = 0; -+ return VA_INVOKE_COMPAT(vaBeginPicture, ctx, context, render_target); -+} -+ -+static VAStatus va_compat_EndPicture ( -+ VADriverContextP ctx, -+ VAContextID context -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ VAStatus status = VA_INVOKE_COMPAT(vaEndPicture, ctx, context); -+ -+ /* Ignore errors if the HW decoder did not handle VC-1 skipped P-frames */ -+ if (compat->skip_frame && status == VA_STATUS_ERROR_UNKNOWN) -+ status = VA_STATUS_SUCCESS; -+ -+ return status; -+} -+ -+static VAStatus va_compat_RenderPicture ( -+ VADriverContextP ctx, -+ VAContextID context, -+ VABufferID *buffers, -+ int num_buffers -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ VABufferCompat *compat_buffer; -+ VABufferID *compat_buffer_ids; -+ VAStatus status; -+ int i, n; -+ -+ if ((n = num_buffers) < 1) -+ n = 1; -+ compat_buffer_ids = alloca(n * sizeof(compat_buffer_ids[0])); -+ -+ for (i = 0; i < num_buffers; i++) -+ { -+ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) == NULL) -+ compat_buffer_ids[i] = buffers[i]; -+ else -+ { -+ status = va_TranslateBufferCompat(ctx, compat_buffer); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ compat_buffer_ids[i] = compat_buffer->compat_id; -+ } -+ } -+ -+ if (!compat->skip_frame) -+ { -+ status = VA_INVOKE_COMPAT(vaRenderPicture, ctx, context, compat_buffer_ids, num_buffers); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ /* Buffers are automatically destroyed afterwards */ -+ for (i = 0; i < num_buffers; i++) -+ { -+ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) != NULL) -+ { -+ status = VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->id); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ } -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+#define DEFINE_VTABLE_ENTRY_(RETVAL, PROC, ARGS, COMPAT_PROC, COMPAT_ARGS, COMPAT_PRE, COMPAT_POST) \ -+static RETVAL va_compat_##PROC ARGS \ -+{ \ -+ if (COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC == NULL) \ -+ return VA_STATUS_ERROR_OPERATION_FAILED; \ -+ COMPAT_PRE; \ -+ RETVAL ret = COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC VA_INVOKE_COMPAT_ARGS COMPAT_ARGS; \ -+ COMPAT_POST; \ -+ return ret; \ -+} -+ -+#define DEFINE_VTABLE_ENTRY(RETVAL, PROC, DECL_ARGS, CALL_ARGS) \ -+DEFINE_VTABLE_ENTRY_(RETVAL, PROC, DECL_ARGS, PROC, CALL_ARGS, {}, {}) -+ -+static VAStatus va_compat_Terminate(VADriverContextP ctx) -+{ -+ if (COMPAT_CTX(ctx)->vtable.vaTerminate == NULL) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ return COMPAT_CTX(ctx)->vtable.vaTerminate(COMPAT_CTX(ctx)->compat_ctx); -+} -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryConfigProfiles, -+ (VADriverContextP ctx, VAProfile *profile_list, int *num_profiles), -+ (ctx, profile_list, num_profiles)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryConfigEntrypoints, -+ (VADriverContextP ctx, VAProfile profile, -+ VAEntrypoint *entrypoint_list, int *num_entrypoints), -+ (ctx, profile, entrypoint_list, num_entrypoints)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, GetConfigAttributes, -+ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, int num_attribs), -+ (ctx, profile, entrypoint, attrib_list, num_attribs)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateConfig, -+ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, int num_attribs, VAConfigID *config_id), -+ (ctx, profile, entrypoint, attrib_list, num_attribs, config_id)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroyConfig, -+ (VADriverContextP ctx, VAConfigID config_id), -+ (ctx, config_id)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryConfigAttributes, -+ (VADriverContextP ctx, VAConfigID config_id, VAProfile *profile, -+ VAEntrypoint *entrypoint, VAConfigAttrib *attrib_list, int *num_attribs), -+ (ctx, config_id, profile, entrypoint, attrib_list, num_attribs)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSurfaces, -+ (VADriverContextP ctx, int width, int height, int format, -+ int num_surfaces, VASurfaceID *surfaces), -+ (ctx, width, height, format, num_surfaces, surfaces)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroySurfaces, -+ (VADriverContextP ctx, VASurfaceID *surface_list, int num_surfaces), -+ (ctx, surface_list, num_surfaces)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateContext, -+ (VADriverContextP ctx, VAConfigID config_id, -+ int picture_width, int picture_height, int flag, -+ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), -+ (ctx, config_id, picture_width, picture_height, flag, -+ render_targets, num_render_targets, context)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroyContext, -+ (VADriverContextP ctx, VAContextID context), -+ (ctx, context)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SyncSurface, -+ (VADriverContextP ctx, VASurfaceID render_target), -+ (ctx, render_target)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QuerySurfaceStatus, -+ (VADriverContextP ctx, VASurfaceID render_target, VASurfaceStatus *status), -+ (ctx, render_target, status)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, PutSurface, -+ (VADriverContextP ctx, VASurfaceID surface, Drawable draw, -+ short srcx, short srcy, unsigned short srcw, unsigned short srch, -+ short destx, short desty, unsigned short destw, unsigned short desth, -+ VARectangle *cliprects, unsigned int number_cliprects, unsigned int flags), -+ (ctx, surface, draw, srcx, srcy, srcw, srch, destx, desty, destw, desth, -+ cliprects, number_cliprects, flags)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryImageFormats, -+ (VADriverContextP ctx, VAImageFormat *format_list, int *num_formats), -+ (ctx, format_list, num_formats)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateImage, -+ (VADriverContextP ctx, VAImageFormat *format, -+ int width, int height, VAImage *image), -+ (ctx, format, width, height, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DeriveImage, -+ (VADriverContextP ctx, VASurfaceID surface, VAImage *image), -+ (ctx, surface, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroyImage, -+ (VADriverContextP ctx, VAImageID image), -+ (ctx, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetImagePalette, -+ (VADriverContextP ctx, VAImageID image, unsigned char *palette), -+ (ctx, image, palette)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, GetImage, -+ (VADriverContextP ctx, VASurfaceID surface, -+ int x, int y, unsigned int width, unsigned int height, VAImageID image), -+ (ctx, surface, x, y, width, height, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, PutImage, -+ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, -+ int srcx, int srcy, unsigned int srcw, unsigned int srch, -+ int destx, int desty, unsigned int destw, unsigned int desth), -+ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QuerySubpictureFormats, -+ (VADriverContextP ctx, VAImageFormat *format_list, -+ unsigned int *flags, unsigned int *num_formats), -+ (ctx, format_list, flags, num_formats)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSubpicture, -+ (VADriverContextP ctx, VAImageID image, VASubpictureID *subpicture), -+ (ctx, image, subpicture)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroySubpicture, -+ (VADriverContextP ctx, VASubpictureID subpicture), -+ (ctx, subpicture)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetSubpictureImage, -+ (VADriverContextP ctx, VASubpictureID subpicture, VAImageID image), -+ (ctx, subpicture, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetSubpictureChromakey, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ unsigned int chromakey_min, -+ unsigned int chromakey_max, -+ unsigned int chromakey_mask), -+ (ctx, subpicture, chromakey_min, chromakey_max, chromakey_mask)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetSubpictureGlobalAlpha, -+ (VADriverContextP ctx, VASubpictureID subpicture, float global_alpha), -+ (ctx, subpicture, global_alpha)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, AssociateSubpicture, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, int num_surfaces, -+ short srcx, short srcy, unsigned short srcw, unsigned short srch, -+ short destx, short desty, unsigned short destw, unsigned short desth, -+ unsigned int flags), -+ (ctx, subpicture, target_surfaces, num_surfaces, -+ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DeassociateSubpicture, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, int num_surfaces), -+ (ctx, subpicture, target_surfaces, num_surfaces)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryDisplayAttributes, -+ (VADriverContextP ctx, VADisplayAttribute *attr_list, int *num_attributes), -+ (ctx, attr_list, num_attributes)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, GetDisplayAttributes, -+ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), -+ (ctx, attr_list, num_attributes)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetDisplayAttributes, -+ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), -+ (ctx, attr_list, num_attributes)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSurfaceFromCIFrame, -+ (VADriverContextP ctx, unsigned long frame_id, VASurfaceID *surface), -+ (ctx, frame_id, surface)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSurfaceFromV4L2Buf, -+ (VADriverContextP ctx, int v4l2_fd, -+ struct v4l2_format *v4l2_fmt, struct v4l2_buffer *v4l2_buf, -+ VASurfaceID *surface), -+ (ctx, v4l2_fd, v4l2_fmt, v4l2_buf, surface)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CopySurfaceToBuffer, -+ (VADriverContextP ctx, VASurfaceID surface, unsigned int *fourcc, -+ unsigned int *luma_stride, -+ unsigned int *chroma_u_stride, unsigned int *chroma_v_stride, -+ unsigned int *luma_offset, -+ unsigned int *chroma_u_offset, unsigned int *chroma_v_offset, -+ void **buffer), -+ (ctx, surface, fourcc, -+ luma_stride, chroma_u_stride, chroma_v_stride, -+ luma_offset, chroma_u_offset, chroma_v_offset, -+ buffer)) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, SyncSurface_pre31, -+ (VADriverContextP ctx, VASurfaceID render_target), -+ SyncSurface_pre31, -+ (ctx, va_context_map_lookup(COMPAT_CTX(ctx), render_target), render_target), -+ {}, {}) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, PutImage_pre31, -+ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, -+ int srcx, int srcy, unsigned int srcw, unsigned int srch, -+ int destx, int desty, unsigned int destw, unsigned int desth), -+ PutImage2_pre31, -+ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth), -+ {}, {}) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, AssociateSubpicture_pre31, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, int num_surfaces, -+ short srcx, short srcy, unsigned short srcw, unsigned short srch, -+ short destx, short desty, unsigned short destw, unsigned short desth, -+ unsigned int flags), -+ AssociateSubpicture2_pre31, -+ (ctx, subpicture, target_surfaces, num_surfaces, -+ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags), -+ {}, {}) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, CreateContext_pre31, -+ (VADriverContextP ctx, VAConfigID config_id, -+ int picture_width, int picture_height, int flag, -+ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), -+ CreateContext, -+ (ctx, config_id, picture_width, picture_height, flag, -+ render_targets, num_render_targets, context), -+ {}, { -+ VACompatContextP const compat_ctx = COMPAT_CTX(ctx); -+ int i; -+ for (i = 0; i < num_render_targets; i++) -+ va_context_map_add(compat_ctx, *context, render_targets[i]); -+ }) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, DestroyContext_pre31, -+ (VADriverContextP ctx, VAContextID context), -+ DestroyContext, -+ (ctx, context), -+ {}, { va_context_map_remove(COMPAT_CTX(ctx), context); }) -+ -+#undef DEFINE_VTABLE_ENTRY -+#undef DEFINE_VTABLE_ENTRY_ -+ -+static void va_compat_init_VADriverVTable(VADriverContextP ctx, int compat_version) -+{ -+#define INIT_VTABLE_(CTX, DST_PROC, SRC_PROC) \ -+ (CTX)->vtable.va##DST_PROC = va_compat_##SRC_PROC -+#define INIT_VTABLE(CTX, PROC) \ -+ INIT_VTABLE_(CTX, PROC, PROC) -+ -+ INIT_VTABLE(ctx, Terminate); -+ INIT_VTABLE(ctx, QueryConfigProfiles); -+ INIT_VTABLE(ctx, QueryConfigEntrypoints); -+ INIT_VTABLE(ctx, GetConfigAttributes); -+ INIT_VTABLE(ctx, CreateConfig); -+ INIT_VTABLE(ctx, DestroyConfig); -+ INIT_VTABLE(ctx, QueryConfigAttributes); -+ INIT_VTABLE(ctx, CreateSurfaces); -+ INIT_VTABLE(ctx, DestroySurfaces); -+ INIT_VTABLE(ctx, CreateContext); -+ INIT_VTABLE(ctx, DestroyContext); -+ INIT_VTABLE(ctx, CreateBuffer); -+ INIT_VTABLE(ctx, BufferSetNumElements); -+ INIT_VTABLE(ctx, MapBuffer); -+ INIT_VTABLE(ctx, UnmapBuffer); -+ INIT_VTABLE(ctx, DestroyBuffer); -+ INIT_VTABLE(ctx, BeginPicture); -+ INIT_VTABLE(ctx, RenderPicture); -+ INIT_VTABLE(ctx, EndPicture); -+ INIT_VTABLE(ctx, SyncSurface); -+ INIT_VTABLE(ctx, QuerySurfaceStatus); -+ INIT_VTABLE(ctx, PutSurface); -+ INIT_VTABLE(ctx, QueryImageFormats); -+ INIT_VTABLE(ctx, CreateImage); -+ INIT_VTABLE(ctx, DeriveImage); -+ INIT_VTABLE(ctx, DestroyImage); -+ INIT_VTABLE(ctx, SetImagePalette); -+ INIT_VTABLE(ctx, GetImage); -+ INIT_VTABLE(ctx, PutImage); -+ INIT_VTABLE(ctx, QuerySubpictureFormats); -+ INIT_VTABLE(ctx, CreateSubpicture); -+ INIT_VTABLE(ctx, DestroySubpicture); -+ INIT_VTABLE(ctx, SetSubpictureImage); -+ INIT_VTABLE(ctx, SetSubpictureChromakey); -+ INIT_VTABLE(ctx, SetSubpictureGlobalAlpha); -+ INIT_VTABLE(ctx, AssociateSubpicture); -+ INIT_VTABLE(ctx, DeassociateSubpicture); -+ INIT_VTABLE(ctx, QueryDisplayAttributes); -+ INIT_VTABLE(ctx, GetDisplayAttributes); -+ INIT_VTABLE(ctx, SetDisplayAttributes); -+ INIT_VTABLE(ctx, CreateSurfaceFromCIFrame); -+ INIT_VTABLE(ctx, CreateSurfaceFromV4L2Buf); -+ INIT_VTABLE(ctx, CopySurfaceToBuffer); -+ -+ if (compat_version && compat_version < 31) { -+ INIT_VTABLE_(ctx, CreateContext, CreateContext_pre31); -+ INIT_VTABLE_(ctx, DestroyContext, DestroyContext_pre31); -+ INIT_VTABLE_(ctx, SyncSurface, SyncSurface_pre31); -+ INIT_VTABLE_(ctx, PutImage, PutImage_pre31); -+ INIT_VTABLE_(ctx, AssociateSubpicture, AssociateSubpicture_pre31); -+ } -+ -+#undef INIT_VTABLE -+#undef INIT_VTABLE__ -+} -+ -+VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx) -+{ -+ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; -+ VADriverContextP ctx = CTX(dpy); -+ VADriverContextP_0_29 ctx_0_29; -+ VADriverContextP_0_30 ctx_0_30; -+ VACompatContextP compat; -+ VAStatus status; -+ char *driver_name; -+ -+ ctx->compat = NULL; -+ -+ if (compat_version == 0) -+ return VA_STATUS_SUCCESS; -+ -+ ASSERT(compat_ctx); -+ if (compat_ctx == NULL) -+ return VA_STATUS_ERROR_UNKNOWN; -+ -+ driver_name = NULL; -+ status = pDisplayContext->vaGetDriverName(pDisplayContext, &driver_name); -+ ASSERT(status == VA_STATUS_SUCCESS); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ if ((compat = malloc(sizeof(*compat))) == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ compat->buffers = NULL; -+ compat->buffers_count_max = 0; -+ compat->compat_version = compat_version; -+ compat->compat_ctx = NULL; -+ compat->driver_name = driver_name; -+ compat->context_map = NULL; -+ compat->last_context_map_match = NULL; -+ ctx->compat = compat; -+ -+ if (strcmp(driver_name, "psb") == 0) -+ compat->driver_id = VA_DRIVER_ID_POULSBO; -+ else if (strcmp(driver_name, "iegd") == 0) -+ compat->driver_id = VA_DRIVER_ID_IEGD; -+ else -+ compat->driver_id = VA_DRIVER_ID_UNKNOWN; -+ -+ switch (compat_version) { -+ case 29: -+ if ((ctx_0_29 = malloc(sizeof(*ctx_0_29))) == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ memcpy(ctx_0_29, compat_ctx, sizeof(*ctx_0_29)); -+ va_compat_translate_VADriverContext_0_29(compat, ctx_0_29); -+ compat->compat_ctx = ctx_0_29; -+ COPY_FIELD(ctx, ctx_0_29, version_major); -+ COPY_FIELD(ctx, ctx_0_29, version_minor); -+ COPY_FIELD(ctx, ctx_0_29, max_profiles); -+ COPY_FIELD(ctx, ctx_0_29, max_entrypoints); -+ COPY_FIELD(ctx, ctx_0_29, max_attributes); -+ COPY_FIELD(ctx, ctx_0_29, max_image_formats); -+ COPY_FIELD(ctx, ctx_0_29, max_subpic_formats); -+ COPY_FIELD(ctx, ctx_0_29, max_display_attributes); -+ COPY_FIELD(ctx, ctx_0_29, str_vendor); -+ break; -+ case 30: -+ if ((ctx_0_30 = malloc(sizeof(*ctx_0_30))) == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ memcpy(ctx_0_30, compat_ctx, sizeof(*ctx_0_30)); -+ va_compat_translate_VADriverContext_0_30(compat, ctx_0_30); -+ compat->compat_ctx = ctx_0_30; -+ COPY_FIELD(ctx, ctx_0_30, version_major); -+ COPY_FIELD(ctx, ctx_0_30, version_minor); -+ COPY_FIELD(ctx, ctx_0_30, max_profiles); -+ COPY_FIELD(ctx, ctx_0_30, max_entrypoints); -+ COPY_FIELD(ctx, ctx_0_30, max_attributes); -+ COPY_FIELD(ctx, ctx_0_30, max_image_formats); -+ COPY_FIELD(ctx, ctx_0_30, max_subpic_formats); -+ COPY_FIELD(ctx, ctx_0_30, max_display_attributes); -+ COPY_FIELD(ctx, ctx_0_30, str_vendor); -+ break; -+ case VA_MINOR_VERSION: -+ va_compat_translate_VADriverContext(compat, compat_ctx); -+ compat->compat_ctx = compat_ctx; -+ break; -+ default: -+ ASSERT(compat_version == 0); -+ return VA_STATUS_ERROR_UNKNOWN; -+ } -+ -+ va_compat_init_VADriverVTable(ctx, compat_version); -+ return VA_STATUS_SUCCESS; -+} -+ -+VAStatus va_compat_fini(VADisplay dpy) -+{ -+ VADriverContextP ctx = CTX(dpy); -+ VACompatContextP compat = ctx->compat; -+ int i; -+ -+ if (compat == NULL) -+ return VA_STATUS_SUCCESS; -+ -+ if (compat->driver_name) -+ { -+ free(compat->driver_name); -+ compat->driver_name = NULL; -+ } -+ -+ if (compat->buffers) -+ { -+ for (i = 0; i < compat->buffers_count_max; i++) -+ { -+ if (compat->buffers[i].id) -+ va_DestroyBufferCompat(ctx, compat->buffers[i].id); -+ } -+ free(compat->buffers); -+ compat->buffers = NULL; -+ } -+ -+ if (compat->compat_ctx && compat->compat_version != VA_MINOR_VERSION) -+ { -+ free(compat->compat_ctx); -+ compat->compat_ctx = NULL; -+ } -+ -+ if (compat->context_map) -+ { -+ VAContextMapP d, m = compat->context_map; -+ while (m) { -+ d = m; -+ m = m->next; -+ free(d); -+ } -+ } -+ compat->last_context_map_match = NULL; -+ -+ free(compat); -+ ctx->compat = NULL; -+ return VA_STATUS_SUCCESS; -+} -diff --git a/src/va_compat.h b/src/va_compat.h -new file mode 100644 -index 0000000..e2b32ee ---- /dev/null -+++ b/src/va_compat.h -@@ -0,0 +1,1420 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#ifndef VA_COMPAT_H -+#define VA_COMPAT_H -+ -+VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx); -+VAStatus va_compat_fini(VADisplay dpy); -+ -+/* H.264 Picture (0.29) */ -+typedef struct _VAPictureH264_0_29 -+{ -+ VASurfaceID picture_id; -+ unsigned int flags; -+ unsigned int TopFieldOrderCnt; -+ unsigned int BottomFieldOrderCnt; -+} VAPictureH264_0_29; -+ -+/* H.264 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferH264_0_29 -+{ -+ VAPictureH264_0_29 CurrPic; -+ VAPictureH264_0_29 ReferenceFrames[16]; /* in DPB */ -+ unsigned short picture_width_in_mbs_minus1; -+ unsigned short picture_height_in_mbs_minus1; -+ unsigned char bit_depth_luma_minus8; -+ unsigned char bit_depth_chroma_minus8; -+ unsigned char num_ref_frames; -+ union { -+ struct { -+ unsigned char chroma_format_idc : 2; -+ unsigned char residual_colour_transform_flag : 1; -+ unsigned char frame_mbs_only_flag : 1; -+ unsigned char mb_adaptive_frame_field_flag : 1; -+ unsigned char direct_8x8_inference_flag : 1; -+ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ -+ }; -+ unsigned char seq_fields; -+ }; -+ unsigned char num_slice_groups_minus1; -+ unsigned char slice_group_map_type; -+ signed char pic_init_qp_minus26; -+ signed char chroma_qp_index_offset; -+ signed char second_chroma_qp_index_offset; -+ union { -+ struct { -+ unsigned char entropy_coding_mode_flag : 1; -+ unsigned char weighted_pred_flag : 1; -+ unsigned char weighted_bipred_idc : 2; -+ unsigned char transform_8x8_mode_flag : 1; -+ unsigned char field_pic_flag : 1; -+ unsigned char constrained_intra_pred_flag : 1; -+ }; -+ unsigned char pic_fields; -+ }; -+ unsigned short frame_num; -+} VAPictureParameterBufferH264_0_29; -+ -+/* H.264 Slice Parameter Buffer (0.29) */ -+typedef struct _VASliceParameterBufferH264_0_29 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ -+ unsigned short first_mb_in_slice; -+ unsigned char slice_type; -+ unsigned char direct_spatial_mv_pred_flag; -+ unsigned char num_ref_idx_l0_active_minus1; -+ unsigned char num_ref_idx_l1_active_minus1; -+ unsigned char cabac_init_idc; -+ char slice_qp_delta; -+ unsigned char disable_deblocking_filter_idc; -+ char slice_alpha_c0_offset_div2; -+ char slice_beta_offset_div2; -+ VAPictureH264_0_29 RefPicList0[32]; /* See 8.2.4.2 */ -+ VAPictureH264_0_29 RefPicList1[32]; /* See 8.2.4.2 */ -+ unsigned char luma_log2_weight_denom; -+ unsigned char chroma_log2_weight_denom; -+ unsigned char luma_weight_l0_flag; -+ short luma_weight_l0[32]; -+ short luma_offset_l0[32]; -+ unsigned char chroma_weight_l0_flag; -+ short chroma_weight_l0[32][2]; -+ short chroma_offset_l0[32][2]; -+ unsigned char luma_weight_l1_flag; -+ short luma_weight_l1[32]; -+ short luma_offset_l1[32]; -+ unsigned char chroma_weight_l1_flag; -+ short chroma_weight_l1[32][2]; -+ short chroma_offset_l1[32][2]; -+} VASliceParameterBufferH264_0_29; -+ -+/* VC-1 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferVC1_0_29 -+{ -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* if out-of-loop post-processing is done on the render -+ target, then we need to keep the in-loop decoded -+ picture as a reference picture */ -+ VASurfaceID inloop_decoded_picture; -+ -+ /* sequence layer for AP or meta data for SP and MP */ -+ union { -+ struct { -+ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ -+ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ -+ unsigned char overlap : 1;/* METADATA::OVERLAP */ -+ }; -+ unsigned char sequence_fields; -+ }; -+ -+ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ -+ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ -+ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ -+ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ -+ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ -+ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ -+ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ -+ union { -+ struct { -+ unsigned char range_mapping_luma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ -+ unsigned char range_mapping_luma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ -+ unsigned char range_mapping_chroma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ -+ unsigned char range_mapping_chroma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ -+ }; -+ unsigned char range_mapping_fields; -+ }; -+ -+ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ -+ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ -+ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ -+ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ -+ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ -+ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ -+ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ -+ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ -+ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ -+ union { -+ struct { -+ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ -+ unsigned char frame_coding_mode : 3;/* PICTURE_LAYER::FCM */ -+ unsigned char top_field_first : 1;/* PICTURE_LAYER::TFF */ -+ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ -+ unsigned char intensity_compensation: 1;/* PICTURE_LAYER::INTCOMP */ -+ }; -+ unsigned char picture_fields; -+ }; -+ union { -+ struct { -+ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ -+ }; -+ unsigned char raw_coding_flag; -+ }; -+ union { -+ struct { -+ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ -+ }; -+ unsigned char bitplane_present_flag; /* signal what bitplane is being passed via the bitplane buffer */ -+ }; -+ union { -+ struct { -+ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ -+ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ -+ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ -+ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ -+ }; -+ unsigned short reference_fields; -+ }; -+ union { -+ struct { -+ VAMvModeVC1 mv_mode : 3; /* PICTURE_LAYER::MVMODE */ -+ VAMvModeVC1 mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ -+ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ -+ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ -+ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ -+ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ -+ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ -+ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ -+ unsigned char extended_dmv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_DMV */ -+ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ -+ }; -+ unsigned int mv_fields; -+ }; -+ union { -+ struct { -+ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ -+ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ -+ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ -+ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ -+ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ -+ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ -+ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ -+ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ -+ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ -+ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ -+ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ -+ }; -+ unsigned long pic_quantizer_fields; -+ }; -+ union { -+ struct { -+ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ -+ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ -+ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ -+ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ -+ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ -+ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ -+ }; -+ unsigned short transform_fields; -+ }; -+} VAPictureParameterBufferVC1_0_29; -+ -+/* MPEG-2 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferMPEG2_0_29 -+{ -+ unsigned short horizontal_size; -+ unsigned short vertical_size; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* meanings of the following fields are the same as in the standard */ -+ int picture_coding_type; -+ int f_code; /* pack all four fcode into this */ -+ union { -+ struct { -+ unsigned char intra_dc_precision : 2; -+ unsigned char picture_structure : 2; -+ unsigned char top_field_first : 1; -+ unsigned char frame_pred_frame_dct : 1; -+ unsigned char concealment_motion_vectors : 1; -+ unsigned char q_scale_type : 1; -+ unsigned char intra_vlc_format : 1; -+ unsigned char alternate_scan : 1; -+ unsigned char repeat_first_field : 1; -+ unsigned char progressive_frame : 1; -+ unsigned char is_first_field : 1; /* indicate whether the current field -+ * is the first field for field picture -+ */ -+ }; -+ unsigned int picture_coding_extension; -+ }; -+} VAPictureParameterBufferMPEG2_0_29; -+ -+/* MPEG-2 Slice Parameter Buffer (0.29) */ -+typedef struct _VASliceParameterBufferMPEG2_0_29 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ -+ unsigned int slice_vertical_position; -+ int quantiser_scale_code; -+ int intra_slice_flag; -+} VASliceParameterBufferMPEG2_0_29; -+ -+/* MPEG-4 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferMPEG4_0_29 -+{ -+ unsigned short vop_width; -+ unsigned short vop_height; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ union { -+ struct { -+ unsigned char short_video_header : 1; -+ unsigned char chroma_format : 2; -+ unsigned char interlaced : 1; -+ unsigned char obmc_disable : 1; -+ unsigned char sprite_enable : 2; -+ unsigned char sprite_warping_accuracy : 2; -+ unsigned char quant_type : 1; -+ unsigned char quarter_sample : 1; -+ unsigned char data_partitioned : 1; -+ unsigned char reversible_vlc : 1; -+ }; -+ unsigned short vol_fields; -+ }; -+ unsigned char no_of_sprite_warping_points; -+ short sprite_trajectory_du[3]; -+ short sprite_trajectory_dv[3]; -+ unsigned char quant_precision; -+ union { -+ struct { -+ unsigned char vop_coding_type : 2; -+ unsigned char backward_reference_vop_coding_type : 2; -+ unsigned char vop_rounding_type : 1; -+ unsigned char intra_dc_vlc_thr : 3; -+ unsigned char top_field_first : 1; -+ unsigned char alternate_vertical_scan_flag : 1; -+ }; -+ unsigned short vop_fields; -+ }; -+ unsigned char vop_fcode_forward; -+ unsigned char vop_fcode_backward; -+ /* short header related */ -+ unsigned char num_gobs_in_vop; -+ unsigned char num_macroblocks_in_gob; -+ /* for direct mode prediction */ -+ short TRB; -+ short TRD; -+} VAPictureParameterBufferMPEG4_0_29; -+ -+/* H.264 Picture (0.30) */ -+typedef struct _VAPictureH264_0_30 -+{ -+ VASurfaceID picture_id; -+ unsigned int flags; -+ unsigned int TopFieldOrderCnt; -+ unsigned int BottomFieldOrderCnt; -+} VAPictureH264_0_30; -+ -+/* H.264 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferH264_0_30 -+{ -+ VAPictureH264 CurrPic; -+ VAPictureH264 ReferenceFrames[16]; /* in DPB */ -+ unsigned short picture_width_in_mbs_minus1; -+ unsigned short picture_height_in_mbs_minus1; -+ unsigned char bit_depth_luma_minus8; -+ unsigned char bit_depth_chroma_minus8; -+ unsigned char num_ref_frames; -+ union { -+ struct { -+ unsigned char chroma_format_idc : 2; -+ unsigned char residual_colour_transform_flag : 1; -+ unsigned char frame_mbs_only_flag : 1; -+ unsigned char mb_adaptive_frame_field_flag : 1; -+ unsigned char direct_8x8_inference_flag : 1; -+ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ -+ } bits; -+ unsigned char value; -+ } seq_fields; -+ unsigned char num_slice_groups_minus1; -+ unsigned char slice_group_map_type; -+ signed char pic_init_qp_minus26; -+ signed char chroma_qp_index_offset; -+ signed char second_chroma_qp_index_offset; -+ union { -+ struct { -+ unsigned char entropy_coding_mode_flag : 1; -+ unsigned char weighted_pred_flag : 1; -+ unsigned char weighted_bipred_idc : 2; -+ unsigned char transform_8x8_mode_flag : 1; -+ unsigned char field_pic_flag : 1; -+ unsigned char constrained_intra_pred_flag : 1; -+ } bits; -+ unsigned char value; -+ } pic_fields; -+ unsigned short frame_num; -+} VAPictureParameterBufferH264_0_30; -+ -+/* H.264 Slice Parameter Buffer (0.30) */ -+typedef struct _VASliceParameterBufferH264_0_30 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ -+ unsigned short first_mb_in_slice; -+ unsigned char slice_type; -+ unsigned char direct_spatial_mv_pred_flag; -+ unsigned char num_ref_idx_l0_active_minus1; -+ unsigned char num_ref_idx_l1_active_minus1; -+ unsigned char cabac_init_idc; -+ char slice_qp_delta; -+ unsigned char disable_deblocking_filter_idc; -+ char slice_alpha_c0_offset_div2; -+ char slice_beta_offset_div2; -+ VAPictureH264 RefPicList0[32]; /* See 8.2.4.2 */ -+ VAPictureH264 RefPicList1[32]; /* See 8.2.4.2 */ -+ unsigned char luma_log2_weight_denom; -+ unsigned char chroma_log2_weight_denom; -+ unsigned char luma_weight_l0_flag; -+ short luma_weight_l0[32]; -+ short luma_offset_l0[32]; -+ unsigned char chroma_weight_l0_flag; -+ short chroma_weight_l0[32][2]; -+ short chroma_offset_l0[32][2]; -+ unsigned char luma_weight_l1_flag; -+ short luma_weight_l1[32]; -+ short luma_offset_l1[32]; -+ unsigned char chroma_weight_l1_flag; -+ short chroma_weight_l1[32][2]; -+ short chroma_offset_l1[32][2]; -+} VASliceParameterBufferH264_0_30; -+ -+/* VC-1 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferVC1_0_30 -+{ -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* if out-of-loop post-processing is done on the render -+ target, then we need to keep the in-loop decoded -+ picture as a reference picture */ -+ VASurfaceID inloop_decoded_picture; -+ -+ /* sequence layer for AP or meta data for SP and MP */ -+ union { -+ struct { -+ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ -+ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ -+ unsigned char overlap : 1;/* METADATA::OVERLAP */ -+ } bits; -+ unsigned char value; -+ } sequence_fields; -+ -+ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ -+ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ -+ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ -+ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ -+ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ -+ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ -+ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ -+ union { -+ struct { -+ unsigned char luma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ -+ unsigned char luma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ -+ unsigned char chroma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ -+ unsigned char chroma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ -+ } bits; -+ unsigned char value; -+ } range_mapping_fields; -+ -+ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ -+ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ -+ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ -+ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ -+ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ -+ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ -+ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ -+ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ -+ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ -+ union { -+ struct { -+ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ -+ unsigned char frame_coding_mode : 3; /* PICTURE_LAYER::FCM */ -+ unsigned char top_field_first : 1; /* PICTURE_LAYER::TFF */ -+ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ -+ unsigned char intensity_compensation : 1; /* PICTURE_LAYER::INTCOMP */ -+ } bits; -+ unsigned char value; -+ } picture_fields; -+ union { -+ struct { -+ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ -+ } flags; -+ unsigned char value; -+ } raw_coding; -+ union { -+ struct { -+ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ -+ } flags; -+ unsigned char value; -+ } bitplane_present; /* signal what bitplane is being passed via the bitplane buffer */ -+ union { -+ struct { -+ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ -+ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ -+ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ -+ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ -+ } bits; -+ unsigned short value; -+ } reference_fields; -+ union { -+ struct { -+ unsigned char mv_mode : 3; /* PICTURE_LAYER::MVMODE */ -+ unsigned char mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ -+ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ -+ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ -+ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ -+ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ -+ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ -+ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ -+ unsigned char extended_dmv_flag : 1; /* ENTRY_POCHAR_LAYER::EXTENDED_DMV */ -+ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ -+ } bits; -+ unsigned int value; -+ } mv_fields; -+ union { -+ struct { -+ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ -+ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ -+ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ -+ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ -+ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ -+ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ -+ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ -+ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ -+ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ -+ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ -+ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ -+ } bits; -+ unsigned long value; -+ } pic_quantizer_fields; -+ union { -+ struct { -+ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ -+ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ -+ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ -+ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ -+ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ -+ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ -+ } bits; -+ unsigned short value; -+ } transform_fields; -+} VAPictureParameterBufferVC1_0_30; -+ -+/* MPEG-2 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferMPEG2_0_30 -+{ -+ unsigned short horizontal_size; -+ unsigned short vertical_size; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* meanings of the following fields are the same as in the standard */ -+ int picture_coding_type; -+ int f_code; /* pack all four fcode into this */ -+ union { -+ struct { -+ unsigned int intra_dc_precision : 2; -+ unsigned int picture_structure : 2; -+ unsigned int top_field_first : 1; -+ unsigned int frame_pred_frame_dct : 1; -+ unsigned int concealment_motion_vectors : 1; -+ unsigned int q_scale_type : 1; -+ unsigned int intra_vlc_format : 1; -+ unsigned int alternate_scan : 1; -+ unsigned int repeat_first_field : 1; -+ unsigned int progressive_frame : 1; -+ unsigned int is_first_field : 1; /* indicate whether the current field -+ * is the first field for field picture -+ */ -+ } bits; -+ unsigned int value; -+ } picture_coding_extension; -+} VAPictureParameterBufferMPEG2_0_30; -+ -+/* MPEG-2 Slice Parameter Buffer (0.29) */ -+typedef VASliceParameterBufferMPEG2_0_29 VASliceParameterBufferMPEG2_0_30; -+ -+/* MPEG-4 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferMPEG4_0_30 -+{ -+ unsigned short vop_width; -+ unsigned short vop_height; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ union { -+ struct { -+ unsigned char short_video_header : 1; -+ unsigned char chroma_format : 2; -+ unsigned char interlaced : 1; -+ unsigned char obmc_disable : 1; -+ unsigned char sprite_enable : 2; -+ unsigned char sprite_warping_accuracy : 2; -+ unsigned char quant_type : 1; -+ unsigned char quarter_sample : 1; -+ unsigned char data_partitioned : 1; -+ unsigned char reversible_vlc : 1; -+ } bits; -+ unsigned short value; -+ } vol_fields; -+ unsigned char no_of_sprite_warping_points; -+ short sprite_trajectory_du[3]; -+ short sprite_trajectory_dv[3]; -+ unsigned char quant_precision; -+ union { -+ struct { -+ unsigned char vop_coding_type : 2; -+ unsigned char backward_reference_vop_coding_type : 2; -+ unsigned char vop_rounding_type : 1; -+ unsigned char intra_dc_vlc_thr : 3; -+ unsigned char top_field_first : 1; -+ unsigned char alternate_vertical_scan_flag : 1; -+ } bits; -+ unsigned short value; -+ } vop_fields; -+ unsigned char vop_fcode_forward; -+ unsigned char vop_fcode_backward; -+ /* short header related */ -+ unsigned char num_gobs_in_vop; -+ unsigned char num_macroblocks_in_gob; -+ /* for direct mode prediction */ -+ short TRB; -+ short TRD; -+} VAPictureParameterBufferMPEG4_0_30; -+ -+/* Encode Slice Parameter Buffer (0.30) */ -+typedef struct _VAEncSliceParameterBuffer_0_30 -+{ -+ unsigned int start_row_number; /* starting MB row number for this slice */ -+ unsigned int slice_height; /* slice height measured in MB */ -+ union { -+ struct { -+ unsigned char is_intra : 1; -+ unsigned char disable_deblocking_filter_idc : 2; -+ } bits; -+ unsigned char value; -+ } slice_flags; -+} VAEncSliceParameterBuffer_0_30; -+ -+typedef struct VADriverContext_0_29 *VADriverContextP_0_29; -+ -+/* Driver VTable (0.29) */ -+struct VADriverVTable_0_29 -+{ -+ VAStatus (*vaTerminate) ( VADriverContextP_0_29 ctx ); -+ -+ VAStatus (*vaQueryConfigProfiles) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile *profile_list, /* out */ -+ int *num_profiles /* out */ -+ ); -+ -+ VAStatus (*vaQueryConfigEntrypoints) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile profile, -+ VAEntrypoint *entrypoint_list, /* out */ -+ int *num_entrypoints /* out */ -+ ); -+ -+ VAStatus (*vaGetConfigAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, /* in/out */ -+ int num_attribs -+ ); -+ -+ VAStatus (*vaCreateConfig) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, -+ int num_attribs, -+ VAConfigID *config_id /* out */ -+ ); -+ -+ VAStatus (*vaDestroyConfig) ( -+ VADriverContextP_0_29 ctx, -+ VAConfigID config_id -+ ); -+ -+ VAStatus (*vaQueryConfigAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VAConfigID config_id, -+ VAProfile *profile, /* out */ -+ VAEntrypoint *entrypoint, /* out */ -+ VAConfigAttrib *attrib_list, /* out */ -+ int *num_attribs /* out */ -+ ); -+ -+ VAStatus (*vaCreateSurfaces) ( -+ VADriverContextP_0_29 ctx, -+ int width, -+ int height, -+ int format, -+ int num_surfaces, -+ VASurfaceID *surfaces /* out */ -+ ); -+ -+ VAStatus (*vaDestroySurfaces) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID *surface_list, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaCreateContext) ( -+ VADriverContextP_0_29 ctx, -+ VAConfigID config_id, -+ int picture_width, -+ int picture_height, -+ int flag, -+ VASurfaceID *render_targets, -+ int num_render_targets, -+ VAContextID *context /* out */ -+ ); -+ -+ VAStatus (*vaDestroyContext) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaCreateBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, /* in */ -+ VABufferType type, /* in */ -+ unsigned int size, /* in */ -+ unsigned int num_elements, /* in */ -+ void *data, /* in */ -+ VABufferID *buf_id /* out */ -+ ); -+ -+ VAStatus (*vaBufferSetNumElements) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buf_id, /* in */ -+ unsigned int num_elements /* in */ -+ ); -+ -+ VAStatus (*vaMapBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buf_id, /* in */ -+ void **pbuf /* out */ -+ ); -+ -+ VAStatus (*vaUnmapBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buf_id /* in */ -+ ); -+ -+ VAStatus (*vaDestroyBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buffer_id -+ ); -+ -+ VAStatus (*vaBeginPicture) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaRenderPicture) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, -+ VABufferID *buffers, -+ int num_buffers -+ ); -+ -+ VAStatus (*vaEndPicture) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaSyncSurface) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaQuerySurfaceStatus) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID render_target, -+ VASurfaceStatus *status /* out */ -+ ); -+ -+ VAStatus (*vaPutSurface) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ unsigned long draw, /* X Drawable */ -+ short srcx, -+ short srcy, -+ unsigned short srcw, -+ unsigned short srch, -+ short destx, -+ short desty, -+ unsigned short destw, -+ unsigned short desth, -+ VARectangle *cliprects, /* client supplied clip list */ -+ unsigned int number_cliprects, /* number of clip rects in the clip list */ -+ unsigned int flags /* de-interlacing flags */ -+ ); -+ -+ VAStatus (*vaQueryImageFormats) ( -+ VADriverContextP_0_29 ctx, -+ VAImageFormat *format_list, /* out */ -+ int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateImage) ( -+ VADriverContextP_0_29 ctx, -+ VAImageFormat *format, -+ int width, -+ int height, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDeriveImage) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDestroyImage) ( -+ VADriverContextP_0_29 ctx, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetImagePalette) ( -+ VADriverContextP_0_29 ctx, -+ VAImageID image, -+ /* -+ * pointer to an array holding the palette data. The size of the array is -+ * num_palette_entries * entry_bytes in size. The order of the components -+ * in the palette is described by the component_order in VAImage struct -+ */ -+ unsigned char *palette -+ ); -+ -+ VAStatus (*vaGetImage) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ int x, /* coordinates of the upper left source pixel */ -+ int y, -+ unsigned int width, /* width and height of the region */ -+ unsigned int height, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaPutImage) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int width, -+ unsigned int height, -+ int dest_x, -+ int dest_y -+ ); -+ -+ VAStatus (*vaPutImage2) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int src_width, -+ unsigned int src_height, -+ int dest_x, -+ int dest_y, -+ unsigned int dest_width, -+ unsigned int dest_height -+ ); -+ -+ VAStatus (*vaQuerySubpictureFormats) ( -+ VADriverContextP_0_29 ctx, -+ VAImageFormat *format_list, /* out */ -+ unsigned int *flags, /* out */ -+ unsigned int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateSubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VAImageID image, -+ VASubpictureID *subpicture /* out */ -+ ); -+ -+ VAStatus (*vaDestroySubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture -+ ); -+ -+ VAStatus (*vaSetSubpictureImage) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetSubpicturePalette) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ /* -+ * pointer to an array holding the palette data. The size of the array is -+ * num_palette_entries * entry_bytes in size. The order of the components -+ * in the palette is described by the component_order in VASubpicture struct -+ */ -+ unsigned char *palette -+ ); -+ -+ VAStatus (*vaSetSubpictureChromakey) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ unsigned int chromakey_min, -+ unsigned int chromakey_max, -+ unsigned int chromakey_mask -+ ); -+ -+ VAStatus (*vaSetSubpictureGlobalAlpha) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ float global_alpha -+ ); -+ -+ VAStatus (*vaAssociateSubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short width, -+ unsigned short height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaAssociateSubpicture2) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ unsigned short src_width, -+ unsigned short src_height, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short dest_width, -+ unsigned short dest_height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaDeassociateSubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaQueryDisplayAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VADisplayAttribute *attr_list, /* out */ -+ int *num_attributes /* out */ -+ ); -+ -+ VAStatus (*vaGetDisplayAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VADisplayAttribute *attr_list, /* in/out */ -+ int num_attributes -+ ); -+ -+ VAStatus (*vaSetDisplayAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VADisplayAttribute *attr_list, -+ int num_attributes -+ ); -+ -+ -+ VAStatus (*vaDbgCopySurfaceToBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ void **buffer, /* out */ -+ unsigned int *stride /* out */ -+ ); -+}; -+ -+/* Driver context (0.29) */ -+struct VADriverContext_0_29 -+{ -+ void *old_pNext; /* preserved for binary compatibility */ -+ -+ void *pDriverData; -+ struct VADriverVTable_0_29 vtable; -+ -+ void *x11_dpy; -+ int x11_screen; -+ -+ int version_major; -+ int version_minor; -+ int max_profiles; -+ int max_entrypoints; -+ int max_attributes; -+ int max_image_formats; -+ int max_subpic_formats; -+ int max_display_attributes; -+ const char *str_vendor; -+ -+ void *handle; /* dlopen handle */ -+}; -+ -+/* Forward declarations for VA API 0.30 */ -+struct v4l2_format; -+struct v4l2_buffer; -+typedef struct VADriverContext_0_30 *VADriverContextP_0_30; -+ -+/* Driver VTable (0.30) */ -+struct VADriverVTable_0_30 -+{ -+ VAStatus (*vaTerminate) ( VADriverContextP_0_30 ctx ); -+ -+ VAStatus (*vaQueryConfigProfiles) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile *profile_list, /* out */ -+ int *num_profiles /* out */ -+ ); -+ -+ VAStatus (*vaQueryConfigEntrypoints) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile profile, -+ VAEntrypoint *entrypoint_list, /* out */ -+ int *num_entrypoints /* out */ -+ ); -+ -+ VAStatus (*vaGetConfigAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, /* in/out */ -+ int num_attribs -+ ); -+ -+ VAStatus (*vaCreateConfig) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, -+ int num_attribs, -+ VAConfigID *config_id /* out */ -+ ); -+ -+ VAStatus (*vaDestroyConfig) ( -+ VADriverContextP_0_30 ctx, -+ VAConfigID config_id -+ ); -+ -+ VAStatus (*vaQueryConfigAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VAConfigID config_id, -+ VAProfile *profile, /* out */ -+ VAEntrypoint *entrypoint, /* out */ -+ VAConfigAttrib *attrib_list, /* out */ -+ int *num_attribs /* out */ -+ ); -+ -+ VAStatus (*vaCreateSurfaces) ( -+ VADriverContextP_0_30 ctx, -+ int width, -+ int height, -+ int format, -+ int num_surfaces, -+ VASurfaceID *surfaces /* out */ -+ ); -+ -+ VAStatus (*vaDestroySurfaces) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID *surface_list, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaCreateContext) ( -+ VADriverContextP_0_30 ctx, -+ VAConfigID config_id, -+ int picture_width, -+ int picture_height, -+ int flag, -+ VASurfaceID *render_targets, -+ int num_render_targets, -+ VAContextID *context /* out */ -+ ); -+ -+ VAStatus (*vaDestroyContext) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaCreateBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, /* in */ -+ VABufferType type, /* in */ -+ unsigned int size, /* in */ -+ unsigned int num_elements, /* in */ -+ void *data, /* in */ -+ VABufferID *buf_id /* out */ -+ ); -+ -+ VAStatus (*vaBufferSetNumElements) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buf_id, /* in */ -+ unsigned int num_elements /* in */ -+ ); -+ -+ VAStatus (*vaMapBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buf_id, /* in */ -+ void **pbuf /* out */ -+ ); -+ -+ VAStatus (*vaUnmapBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buf_id /* in */ -+ ); -+ -+ VAStatus (*vaDestroyBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buffer_id -+ ); -+ -+ VAStatus (*vaBeginPicture) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaRenderPicture) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, -+ VABufferID *buffers, -+ int num_buffers -+ ); -+ -+ VAStatus (*vaEndPicture) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaSyncSurface) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaQuerySurfaceStatus) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID render_target, -+ VASurfaceStatus *status /* out */ -+ ); -+ -+ VAStatus (*vaPutSurface) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ unsigned long draw, /* X Drawable */ -+ short srcx, -+ short srcy, -+ unsigned short srcw, -+ unsigned short srch, -+ short destx, -+ short desty, -+ unsigned short destw, -+ unsigned short desth, -+ VARectangle *cliprects, /* client supplied clip list */ -+ unsigned int number_cliprects, /* number of clip rects in the clip list */ -+ unsigned int flags /* de-interlacing flags */ -+ ); -+ -+ VAStatus (*vaQueryImageFormats) ( -+ VADriverContextP_0_30 ctx, -+ VAImageFormat *format_list, /* out */ -+ int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateImage) ( -+ VADriverContextP_0_30 ctx, -+ VAImageFormat *format, -+ int width, -+ int height, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDeriveImage) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDestroyImage) ( -+ VADriverContextP_0_30 ctx, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetImagePalette) ( -+ VADriverContextP_0_30 ctx, -+ VAImageID image, -+ /* -+ * pointer to an array holding the palette data. The size of the array is -+ * num_palette_entries * entry_bytes in size. The order of the components -+ * in the palette is described by the component_order in VAImage struct -+ */ -+ unsigned char *palette -+ ); -+ -+ VAStatus (*vaGetImage) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ int x, /* coordinates of the upper left source pixel */ -+ int y, -+ unsigned int width, /* width and height of the region */ -+ unsigned int height, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaPutImage) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int width, -+ unsigned int height, -+ int dest_x, -+ int dest_y -+ ); -+ -+ VAStatus (*vaPutImage2) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int src_width, -+ unsigned int src_height, -+ int dest_x, -+ int dest_y, -+ unsigned int dest_width, -+ unsigned int dest_height -+ ); -+ -+ VAStatus (*vaQuerySubpictureFormats) ( -+ VADriverContextP_0_30 ctx, -+ VAImageFormat *format_list, /* out */ -+ unsigned int *flags, /* out */ -+ unsigned int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateSubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VAImageID image, -+ VASubpictureID *subpicture /* out */ -+ ); -+ -+ VAStatus (*vaDestroySubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture -+ ); -+ -+ VAStatus (*vaSetSubpictureImage) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetSubpictureChromakey) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ unsigned int chromakey_min, -+ unsigned int chromakey_max, -+ unsigned int chromakey_mask -+ ); -+ -+ VAStatus (*vaSetSubpictureGlobalAlpha) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ float global_alpha -+ ); -+ -+ VAStatus (*vaAssociateSubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short width, -+ unsigned short height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaAssociateSubpicture2) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ unsigned short src_width, -+ unsigned short src_height, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short dest_width, -+ unsigned short dest_height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaDeassociateSubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaQueryDisplayAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VADisplayAttribute *attr_list, /* out */ -+ int *num_attributes /* out */ -+ ); -+ -+ VAStatus (*vaGetDisplayAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VADisplayAttribute *attr_list, /* in/out */ -+ int num_attributes -+ ); -+ -+ VAStatus (*vaSetDisplayAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VADisplayAttribute *attr_list, -+ int num_attributes -+ ); -+ -+ /* device specific */ -+ VAStatus (*vaCreateSurfaceFromCIFrame) ( -+ VADriverContextP_0_30 ctx, -+ unsigned long frame_id, -+ VASurfaceID *surface /* out */ -+ ); -+ -+ -+ VAStatus (*vaCreateSurfaceFromV4L2Buf) ( -+ VADriverContextP_0_30 ctx, -+ int v4l2_fd, /* file descriptor of V4L2 device */ -+ struct v4l2_format *v4l2_fmt, /* format of V4L2 */ -+ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ -+ VASurfaceID *surface /* out */ -+ ); -+ -+ VAStatus (*vaCopySurfaceToBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ unsigned int *fourcc, /* out for follow argument */ -+ unsigned int *luma_stride, -+ unsigned int *chroma_u_stride, -+ unsigned int *chroma_v_stride, -+ unsigned int *luma_offset, -+ unsigned int *chroma_u_offset, -+ unsigned int *chroma_v_offset, -+ void **buffer -+ ); -+}; -+ -+/* Driver context (0.30) */ -+struct VADriverContext_0_30 -+{ -+ void *pDriverData; -+ struct VADriverVTable_0_30 vtable; -+ -+ void *x11_dpy; -+ int x11_screen; -+ int version_major; -+ int version_minor; -+ int max_profiles; -+ int max_entrypoints; -+ int max_attributes; -+ int max_image_formats; -+ int max_subpic_formats; -+ int max_display_attributes; -+ const char *str_vendor; -+ -+ void *handle; /* dlopen handle */ -+ -+ void *dri_state; -+}; -+ -+/* Driver VTable and context (0.31) */ -+#define VADriverVTable_0_31 VADriverVTable -+#define VADriverContext_0_31 VADriverContext -+ -+#endif /* VA_COMPAT_H */ -diff --git a/src/va_compat_template.h b/src/va_compat_template.h -new file mode 100644 -index 0000000..a652af6 ---- /dev/null -+++ b/src/va_compat_template.h -@@ -0,0 +1,539 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 (including the -+ * next paragraph) 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 NON-INFRINGEMENT. -+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. -+ */ -+ -+#undef CONCAT_ -+#define CONCAT_(x, y) x##y -+#undef CONCAT -+#define CONCAT(x, y) CONCAT_(x, y) -+#undef MKCOMPAT_ -+#define MKCOMPAT_(NAME,MINOR) CONCAT(CONCAT(NAME,_0_),MINOR) -+#undef MKCOMPAT -+#define MKCOMPAT(NAME) MKCOMPAT_(NAME,COMPAT_MINOR) -+#undef STRUCT -+#define STRUCT(BUFFER, CODEC) MKCOMPAT(VA##BUFFER##Buffer##CODEC) -+#undef TRANSLATE_1 -+#define TRANSLATE_1(NAME) CONCAT(va_compat_translate_,NAME) -+#undef TRANSLATE_ -+#define TRANSLATE_(NAME) TRANSLATE_1(MKCOMPAT(NAME)) -+#undef TRANSLATE -+#define TRANSLATE(BUFFER, CODEC) TRANSLATE_1(STRUCT(BUFFER,CODEC)) -+ -+#undef COPY_ARRAY -+#define COPY_ARRAY(DST, SRC, ARRAY) \ -+ memcpy((DST)->ARRAY, (SRC)->ARRAY, sizeof((DST)->ARRAY)) -+ -+#undef COPY_FIELD -+#define COPY_FIELD(DST, SRC, MEMBER) \ -+ (DST)->MEMBER = (SRC)->MEMBER -+ -+#undef COPY_VTABLE__ -+#define COPY_VTABLE__(DST, DST_MEMBER, SRC, SRC_MEMBER) \ -+ (DST##_vtable)->DST_MEMBER = (SRC##_vtable)->SRC_MEMBER -+ -+#undef COPY_VTABLE_ -+#define COPY_VTABLE_(DST, DST_SUFFIX, SRC, MEMBER) \ -+ COPY_VTABLE__(DST, MEMBER##_##DST_SUFFIX, SRC, MEMBER) -+ -+#undef COPY_VTABLE -+#define COPY_VTABLE(DST, SRC, MEMBER) \ -+ COPY_VTABLE__(DST, MEMBER, SRC, MEMBER) -+ -+/* 0.29 */ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 -+#undef BFV -+#define BFV(a, b) a -+#undef BFM -+#define BFM(a, b, c) c -+#undef COPY_BIT_FIELD -+#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ -+ (DST)->MEMBER = (SRC)->FIELD.bits.MEMBER -+#undef COPY_BIT_FLAG -+#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ -+ (DST)->MEMBER = (SRC)->FIELD.flags.MEMBER -+#endif -+ -+/* 0.29 glue to match 0.30 names */ -+#undef M_raw_coding -+#undef M_bitplane_present -+#undef M_luma_flag -+#undef M_luma -+#undef M_chroma_flag -+#undef M_chroma -+ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 -+#define M_raw_coding raw_coding_flag -+#define M_bitplane_present bitplane_present_flag -+#define M_luma_flag range_mapping_luma_flag -+#define M_luma range_mapping_luma -+#define M_chroma_flag range_mapping_chroma_flag -+#define M_chroma range_mapping_chroma -+#else -+#define M_raw_coding raw_coding -+#define M_bitplane_present bitplane_present -+#define M_luma_flag luma_flag -+#define M_luma luma -+#define M_chroma_flag chroma_flag -+#define M_chroma chroma -+#endif -+ -+/* 0.30 */ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 -+#undef BFV -+#define BFV(a, b) a.b -+#undef BFM -+#define BFM(a, b, c) a.b.c -+#undef COPY_BIT_FIELD -+#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ -+ (DST)->FIELD.bits.MEMBER = (SRC)->FIELD.bits.MEMBER -+#undef COPY_BIT_FLAG -+#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ -+ (DST)->FIELD.flags.MEMBER = (SRC)->FIELD.flags.MEMBER -+#endif -+ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR < 31 -+static VAStatus TRANSLATE_(VAPictureH264)( -+ VACompatContextP ctx, -+ void *dest_pic, -+ const void *src_pic -+) -+{ -+ MKCOMPAT(VAPictureH264) *dest = dest_pic; -+ const VAPictureH264 *src = src_pic; -+ -+ COPY_FIELD(dest, src, picture_id); -+ COPY_FIELD(dest, src, flags); -+ COPY_FIELD(dest, src, TopFieldOrderCnt); -+ COPY_FIELD(dest, src, BottomFieldOrderCnt); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(PictureParameter,H264)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,H264) *dest = dest_buffer; -+ const VAPictureParameterBufferH264 *src = src_buffer; -+ VAStatus status; -+ int i; -+ -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->CurrPic, &src->CurrPic); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ for (i = 0; i < 16; i++) { -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->ReferenceFrames[i], -+ &src->ReferenceFrames[i]); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ COPY_FIELD(dest, src, picture_width_in_mbs_minus1); -+ COPY_FIELD(dest, src, picture_height_in_mbs_minus1); -+ COPY_FIELD(dest, src, bit_depth_luma_minus8); -+ COPY_FIELD(dest, src, bit_depth_chroma_minus8); -+ COPY_FIELD(dest, src, num_ref_frames); -+ dest->BFV(seq_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, seq_fields, chroma_format_idc); -+ COPY_BIT_FIELD(dest, src, seq_fields, residual_colour_transform_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, frame_mbs_only_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, mb_adaptive_frame_field_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, direct_8x8_inference_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, MinLumaBiPredSize8x8); -+ COPY_FIELD(dest, src, num_slice_groups_minus1); -+ COPY_FIELD(dest, src, slice_group_map_type); -+ COPY_FIELD(dest, src, pic_init_qp_minus26); -+ COPY_FIELD(dest, src, chroma_qp_index_offset); -+ COPY_FIELD(dest, src, second_chroma_qp_index_offset); -+ dest->BFV(pic_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, pic_fields, entropy_coding_mode_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, weighted_pred_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, weighted_bipred_idc); -+ COPY_BIT_FIELD(dest, src, pic_fields, transform_8x8_mode_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, field_pic_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, constrained_intra_pred_flag); -+ COPY_FIELD(dest, src, frame_num); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(SliceParameter,H264)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(SliceParameter,H264) *dest = dest_buffer; -+ const VASliceParameterBufferH264 *src = src_buffer; -+ VAStatus status; -+ int i; -+ -+ COPY_FIELD(dest, src, slice_data_size); -+ COPY_FIELD(dest, src, slice_data_offset); -+ COPY_FIELD(dest, src, slice_data_flag); -+ COPY_FIELD(dest, src, slice_data_bit_offset); -+ COPY_FIELD(dest, src, first_mb_in_slice); -+ COPY_FIELD(dest, src, slice_type); -+ COPY_FIELD(dest, src, direct_spatial_mv_pred_flag); -+ COPY_FIELD(dest, src, num_ref_idx_l0_active_minus1); -+ COPY_FIELD(dest, src, num_ref_idx_l1_active_minus1); -+ COPY_FIELD(dest, src, cabac_init_idc); -+ COPY_FIELD(dest, src, slice_qp_delta); -+ COPY_FIELD(dest, src, disable_deblocking_filter_idc); -+ COPY_FIELD(dest, src, slice_alpha_c0_offset_div2); -+ COPY_FIELD(dest, src, slice_beta_offset_div2); -+ for (i = 0; i < 32; i++) { -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->RefPicList0[i], -+ &src->RefPicList0[i]); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->RefPicList1[i], -+ &src->RefPicList1[i]); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ COPY_FIELD(dest, src, luma_log2_weight_denom); -+ COPY_FIELD(dest, src, chroma_log2_weight_denom); -+ COPY_FIELD(dest, src, luma_weight_l0_flag); -+ COPY_ARRAY(dest, src, luma_weight_l0); -+ COPY_ARRAY(dest, src, luma_offset_l0); -+ COPY_FIELD(dest, src, chroma_weight_l0_flag); -+ COPY_ARRAY(dest, src, chroma_weight_l0); -+ COPY_ARRAY(dest, src, chroma_offset_l0); -+ COPY_FIELD(dest, src, luma_weight_l1_flag); -+ COPY_ARRAY(dest, src, luma_weight_l1); -+ COPY_ARRAY(dest, src, luma_offset_l1); -+ COPY_FIELD(dest, src, chroma_weight_l1_flag); -+ COPY_ARRAY(dest, src, chroma_weight_l1); -+ COPY_ARRAY(dest, src, chroma_offset_l1); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(PictureParameter,VC1)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,VC1) *dest = dest_buffer; -+ const VAPictureParameterBufferVC1 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, forward_reference_picture); -+ COPY_FIELD(dest, src, backward_reference_picture); -+ COPY_FIELD(dest, src, inloop_decoded_picture); -+ dest->BFV(sequence_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, sequence_fields, interlace); -+ COPY_BIT_FIELD(dest, src, sequence_fields, syncmarker); -+ COPY_BIT_FIELD(dest, src, sequence_fields, overlap); -+ COPY_FIELD(dest, src, coded_width); -+ COPY_FIELD(dest, src, coded_height); -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 -+ dest->closed_entry = src->entrypoint_fields.bits.closed_entry; -+ dest->broken_link = src->entrypoint_fields.bits.broken_link; -+ dest->loopfilter = src->entrypoint_fields.bits.loopfilter; -+#else -+ COPY_BIT_FIELD(dest, src, entrypoint_fields, closed_entry); -+ COPY_BIT_FIELD(dest, src, entrypoint_fields, broken_link); -+ COPY_BIT_FIELD(dest, src, entrypoint_fields, loopfilter); -+#endif -+ COPY_FIELD(dest, src, conditional_overlap_flag); -+ COPY_FIELD(dest, src, fast_uvmc_flag); -+ dest->BFV(range_mapping_fields, value) = 0; /* reset all bits */ -+ dest->BFM(range_mapping_fields, bits, M_luma_flag) = -+ src->range_mapping_fields.bits.luma_flag; -+ dest->BFM(range_mapping_fields, bits, M_luma) = -+ src->range_mapping_fields.bits.luma; -+ dest->BFM(range_mapping_fields, bits, M_chroma_flag) = -+ src->range_mapping_fields.bits.chroma_flag; -+ dest->BFM(range_mapping_fields, bits, M_chroma) = -+ src->range_mapping_fields.bits.chroma; -+ COPY_FIELD(dest, src, b_picture_fraction); -+ COPY_FIELD(dest, src, cbp_table); -+ COPY_FIELD(dest, src, mb_mode_table); -+ COPY_FIELD(dest, src, range_reduction_frame); -+ COPY_FIELD(dest, src, rounding_control); -+ COPY_FIELD(dest, src, post_processing); -+ COPY_FIELD(dest, src, picture_resolution_index); -+ COPY_FIELD(dest, src, luma_scale); -+ COPY_FIELD(dest, src, luma_shift); -+ dest->BFV(picture_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, picture_fields, picture_type); -+ COPY_BIT_FIELD(dest, src, picture_fields, frame_coding_mode); -+ COPY_BIT_FIELD(dest, src, picture_fields, top_field_first); -+ COPY_BIT_FIELD(dest, src, picture_fields, is_first_field); -+ COPY_BIT_FIELD(dest, src, picture_fields, intensity_compensation); -+ dest->BFV(M_raw_coding, value) = 0; /* reset all bits */ -+ COPY_BIT_FLAG(dest, src, raw_coding, mv_type_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, direct_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, skip_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, field_tx); -+ COPY_BIT_FLAG(dest, src, raw_coding, forward_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, ac_pred); -+ COPY_BIT_FLAG(dest, src, raw_coding, overflags); -+ dest->BFV(M_bitplane_present, value) = 0; /* reset all bits */ -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_mv_type_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_direct_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_skip_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_field_tx); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_forward_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_ac_pred); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_overflags); -+ dest->BFV(reference_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance_flag); -+ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance); -+ COPY_BIT_FIELD(dest, src, reference_fields, num_reference_pictures); -+ COPY_BIT_FIELD(dest, src, reference_fields, reference_field_pic_indicator); -+ dest->BFV(mv_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode); -+ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode2); -+ COPY_BIT_FIELD(dest, src, mv_fields, mv_table); -+ COPY_BIT_FIELD(dest, src, mv_fields, two_mv_block_pattern_table); -+ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_switch); -+ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_block_pattern_table); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_flag); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_range); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_flag); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_range); -+ dest->BFV(pic_quantizer_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dquant); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, quantizer); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, half_qp); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_scale); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_type); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_frame); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_profile); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_sb_edge); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_db_edge); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_binary_level); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, alt_pic_quantizer); -+ dest->BFV(transform_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, transform_fields, variable_sized_transform_flag); -+ COPY_BIT_FIELD(dest, src, transform_fields, mb_level_transform_type_flag); -+ COPY_BIT_FIELD(dest, src, transform_fields, frame_level_transform_type); -+ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx1); -+ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx2); -+ COPY_BIT_FIELD(dest, src, transform_fields, intra_transform_dc_table); -+ -+ if (src->picture_fields.bits.picture_type == 4) { -+ dest->BFM(picture_fields, bits, picture_type) = 1; /* P-frame */ -+ ctx->skip_frame = 1; -+ } -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(PictureParameter,MPEG2)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,MPEG2) *dest = dest_buffer; -+ const VAPictureParameterBufferMPEG2 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, horizontal_size); -+ COPY_FIELD(dest, src, vertical_size); -+ COPY_FIELD(dest, src, forward_reference_picture); -+ COPY_FIELD(dest, src, backward_reference_picture); -+ COPY_FIELD(dest, src, picture_coding_type); -+ COPY_FIELD(dest, src, f_code); -+ dest->BFV(picture_coding_extension, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_dc_precision); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, picture_structure); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, top_field_first); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, frame_pred_frame_dct); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, concealment_motion_vectors); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, q_scale_type); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_vlc_format); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, alternate_scan); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, repeat_first_field); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, progressive_frame); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, is_first_field); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(SliceParameter,MPEG2)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(SliceParameter,MPEG2) *dest = dest_buffer; -+ const VASliceParameterBufferMPEG2 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, slice_data_size); -+ COPY_FIELD(dest, src, slice_data_offset); -+ COPY_FIELD(dest, src, slice_data_flag); -+ COPY_FIELD(dest, src, macroblock_offset); -+ COPY_FIELD(dest, src, slice_vertical_position); -+ COPY_FIELD(dest, src, quantiser_scale_code); -+ COPY_FIELD(dest, src, intra_slice_flag); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(PictureParameter,MPEG4)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,MPEG4) *dest = dest_buffer; -+ const VAPictureParameterBufferMPEG4 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, vop_width); -+ COPY_FIELD(dest, src, vop_height); -+ COPY_FIELD(dest, src, forward_reference_picture); -+ COPY_FIELD(dest, src, backward_reference_picture); -+ dest->BFV(vol_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, vol_fields, short_video_header); -+ COPY_BIT_FIELD(dest, src, vol_fields, chroma_format); -+ COPY_BIT_FIELD(dest, src, vol_fields, interlaced); -+ COPY_BIT_FIELD(dest, src, vol_fields, obmc_disable); -+ COPY_BIT_FIELD(dest, src, vol_fields, sprite_enable); -+ COPY_BIT_FIELD(dest, src, vol_fields, sprite_warping_accuracy); -+ COPY_BIT_FIELD(dest, src, vol_fields, quant_type); -+ COPY_BIT_FIELD(dest, src, vol_fields, quarter_sample); -+ COPY_BIT_FIELD(dest, src, vol_fields, data_partitioned); -+ COPY_BIT_FIELD(dest, src, vol_fields, reversible_vlc); -+ COPY_FIELD(dest, src, no_of_sprite_warping_points); -+ COPY_ARRAY(dest, src, sprite_trajectory_du); -+ COPY_ARRAY(dest, src, sprite_trajectory_dv); -+ COPY_FIELD(dest, src, quant_precision); -+ dest->BFV(vop_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, vop_fields, vop_coding_type); -+ COPY_BIT_FIELD(dest, src, vop_fields, backward_reference_vop_coding_type); -+ COPY_BIT_FIELD(dest, src, vop_fields, vop_rounding_type); -+ COPY_BIT_FIELD(dest, src, vop_fields, intra_dc_vlc_thr); -+ COPY_BIT_FIELD(dest, src, vop_fields, top_field_first); -+ COPY_BIT_FIELD(dest, src, vop_fields, alternate_vertical_scan_flag); -+ COPY_FIELD(dest, src, vop_fcode_forward); -+ COPY_FIELD(dest, src, vop_fcode_backward); -+ COPY_FIELD(dest, src, num_gobs_in_vop); -+ COPY_FIELD(dest, src, num_macroblocks_in_gob); -+ COPY_FIELD(dest, src, TRB); -+ COPY_FIELD(dest, src, TRD); -+ -+ return VA_STATUS_SUCCESS; -+} -+#endif -+ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 -+static VAStatus TRANSLATE_(VAEncSliceParameterBuffer)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ MKCOMPAT(VAEncSliceParameterBuffer) * const dest = dest_buffer; -+ const VAEncSliceParameterBuffer * const src = src_buffer; -+ -+ COPY_FIELD(dest, src, start_row_number); -+ COPY_FIELD(dest, src, slice_height); -+ dest->BFV(slice_flags, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, slice_flags, is_intra); -+ COPY_BIT_FIELD(dest, src, slice_flags, disable_deblocking_filter_idc); -+ -+ return VA_STATUS_SUCCESS; -+} -+#endif -+ -+static void TRANSLATE_(VADriverContext)( -+ VACompatContext *dest, -+ const struct MKCOMPAT(VADriverContext) *src -+) -+{ -+ VACompatDriverVTable *dest_vtable = &dest->vtable; -+ const struct MKCOMPAT(VADriverVTable) *src_vtable = &src->vtable; -+ -+ memset(dest_vtable, 0, sizeof(*dest_vtable)); -+ COPY_VTABLE(dest, src, vaTerminate); -+ COPY_VTABLE(dest, src, vaQueryConfigProfiles); -+ COPY_VTABLE(dest, src, vaQueryConfigEntrypoints); -+ COPY_VTABLE(dest, src, vaGetConfigAttributes); -+ COPY_VTABLE(dest, src, vaCreateConfig); -+ COPY_VTABLE(dest, src, vaDestroyConfig); -+ COPY_VTABLE(dest, src, vaQueryConfigAttributes); -+ COPY_VTABLE(dest, src, vaCreateSurfaces); -+ COPY_VTABLE(dest, src, vaDestroySurfaces); -+ COPY_VTABLE(dest, src, vaCreateContext); -+ COPY_VTABLE(dest, src, vaDestroyContext); -+ COPY_VTABLE(dest, src, vaCreateBuffer); -+ COPY_VTABLE(dest, src, vaBufferSetNumElements); -+ COPY_VTABLE(dest, src, vaMapBuffer); -+ COPY_VTABLE(dest, src, vaUnmapBuffer); -+ COPY_VTABLE(dest, src, vaDestroyBuffer); -+ COPY_VTABLE(dest, src, vaBeginPicture); -+ COPY_VTABLE(dest, src, vaRenderPicture); -+ COPY_VTABLE(dest, src, vaEndPicture); -+ COPY_VTABLE(dest, src, vaQuerySurfaceStatus); -+ COPY_VTABLE(dest, src, vaPutSurface); -+ COPY_VTABLE(dest, src, vaQueryImageFormats); -+ COPY_VTABLE(dest, src, vaCreateImage); -+ COPY_VTABLE(dest, src, vaDeriveImage); -+ COPY_VTABLE(dest, src, vaDestroyImage); -+ COPY_VTABLE(dest, src, vaSetImagePalette); -+ COPY_VTABLE(dest, src, vaGetImage); -+ COPY_VTABLE(dest, src, vaQuerySubpictureFormats); -+ COPY_VTABLE(dest, src, vaCreateSubpicture); -+ COPY_VTABLE(dest, src, vaDestroySubpicture); -+ COPY_VTABLE(dest, src, vaSetSubpictureImage); -+ COPY_VTABLE(dest, src, vaSetSubpictureChromakey); -+ COPY_VTABLE(dest, src, vaSetSubpictureGlobalAlpha); -+ COPY_VTABLE(dest, src, vaDeassociateSubpicture); -+ COPY_VTABLE(dest, src, vaQueryDisplayAttributes); -+ COPY_VTABLE(dest, src, vaGetDisplayAttributes); -+ COPY_VTABLE(dest, src, vaSetDisplayAttributes); -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR <= 29 -+ COPY_VTABLE(dest, src, vaSetSubpicturePalette); -+ COPY_VTABLE(dest, src, vaDbgCopySurfaceToBuffer); -+#endif -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 30 -+ COPY_VTABLE(dest, src, vaCreateSurfaceFromCIFrame); -+ COPY_VTABLE(dest, src, vaCreateSurfaceFromV4L2Buf); -+ COPY_VTABLE(dest, src, vaCopySurfaceToBuffer); -+#endif -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 31 -+ COPY_VTABLE(dest, src, vaSyncSurface); -+ COPY_VTABLE(dest, src, vaPutImage); -+ COPY_VTABLE(dest, src, vaAssociateSubpicture); -+#else -+ COPY_VTABLE_(dest, pre31, src, vaSyncSurface); -+ COPY_VTABLE_(dest, pre31, src, vaPutImage); -+ COPY_VTABLE_(dest, pre31, src, vaPutImage2); -+ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture); -+ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture2); -+#endif -+} -+ -+#undef COMPAT_MAJOR -+#undef COMPAT_MINOR diff --git a/packages/multimedia/libva/patches/999_libtoolize.diff b/packages/multimedia/libva/patches/999_libtoolize.diff deleted file mode 100644 index eeee7b3b3f..0000000000 --- a/packages/multimedia/libva/patches/999_libtoolize.diff +++ /dev/null @@ -1,14207 +0,0 @@ -diff -Naur libva-0.31.0/ltmain.sh libva-0.31.0.diff/ltmain.sh ---- libva-0.31.0/ltmain.sh 2009-06-25 17:34:55.000000000 +0200 -+++ libva-0.31.0.diff/ltmain.sh 2009-07-30 18:46:57.000000000 +0200 -@@ -1,52 +1,83 @@ --# 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, 2003, 2004, 2005, 2006, --# 2007, 2008 Free Software Foundation, Inc. --# Originally by Gordon Matzigkeit , 1996 --# --# This program is free software; you can redistribute it and/or modify -+# Generated from ltmain.m4sh. -+ -+# ltmain.sh (GNU libtool) 2.2.6 -+# Written by Gordon Matzigkeit , 1996 -+ -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. -+# This is free software; see the source for copying conditions. There is NO -+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ -+# GNU Libtool 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 -+# As a special exception to the GNU General Public License, -+# if you distribute this file as part of a program or library that -+# is built using GNU Libtool, you may include this file under the -+# same distribution terms that you use for the rest of that program. -+# -+# GNU Libtool 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. -- --basename="s,^.*/,,g" -- --# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh --# is ksh but when the shell is invoked as "sh" and the current value of --# the _XPG environment variable is not equal to 1 (one), the special --# positional parameter $0, within a function call, is the name of the --# function. --progpath="$0" -- --# The name of this program: --progname=`echo "$progpath" | $SED $basename` --modename="$progname" -+# along with GNU Libtool; see the file COPYING. If not, a copy -+# can be downloaded from http://www.gnu.org/licenses/gpl.html, -+# or obtained by writing to the Free Software Foundation, Inc., -+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --# Global variables: --EXIT_SUCCESS=0 --EXIT_FAILURE=1 -+# Usage: $progname [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 -+# --mode=MODE use operation mode MODE -+# --preserve-dup-deps don't remove duplicate dependency libraries -+# --quiet, --silent don't print informational messages -+# --tag=TAG use configuration variables from tag TAG -+# -v, --verbose print informational messages (default) -+# --version print version information -+# -h, --help print short or long help message -+# -+# 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 `$progname --help --mode=MODE' for a more detailed description of MODE. -+# -+# When reporting a bug, please describe a test case to reproduce it and -+# include the following information: -+# -+# host-triplet: $host -+# shell: $SHELL -+# compiler: $LTCC -+# compiler flags: $LTCFLAGS -+# linker: $LD (gnu? $with_gnu_ld) -+# $progname: (GNU libtool) 2.2.6 -+# automake: $automake_version -+# autoconf: $autoconf_version -+# -+# Report bugs to . - - PROGRAM=ltmain.sh - PACKAGE=libtool --VERSION="1.5.26 Debian 1.5.26-1ubuntu1" --TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" -+VERSION=2.2.6 -+TIMESTAMP="" -+package_revision=1.3012 - --# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). -+# Be Bourne compatible - if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -@@ -60,104 +91,261 @@ - BIN_SH=xpg4; export BIN_SH # for Tru64 - DUALCASE=1; export DUALCASE # for MKS sh - --# 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 "$progpath" --no-reexec ${1+"$@"} --fi -- --if test "X$1" = X--fallback-echo; then -- # used as fallback echo -- shift -- cat <&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE --fi -+dirname="s,/[^/]*$,," -+basename="s,^.*/,," - --# Global variables. --mode=$default_mode --nonopt= --prev= --prevopt= --run= --show="$echo" --show_help= --execute_dlfiles= --duplicate_deps=no --preserve_args= --lo2o="s/\\.lo\$/.${objext}/" --o2lo="s/\\.${objext}\$/.lo/" --extracted_archives= --extracted_serial=0 -+# func_dirname_and_basename file append nondir_replacement -+# perform func_basename and func_dirname in a single function -+# call: -+# dirname: Compute the dirname of FILE. If nonempty, -+# add APPEND to the result, otherwise set result -+# to NONDIR_REPLACEMENT. -+# value returned in "$func_dirname_result" -+# basename: Compute filename of FILE. -+# value retuned in "$func_basename_result" -+# Implementation must be kept synchronized with func_dirname -+# and func_basename. For efficiency, we do not delegate to -+# those functions but instead duplicate the functionality here. -+func_dirname_and_basename () -+{ -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -+} -+ -+# Generated shell functions inserted here. -+ -+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -+# is ksh but when the shell is invoked as "sh" and the current value of -+# the _XPG environment variable is not equal to 1 (one), the special -+# positional parameter $0, within a function call, is the name of the -+# function. -+progpath="$0" -+ -+# The name of this program: -+# In the unlikely event $progname began with a '-', it would play havoc with -+# func_echo (imagine progname=-n), so we prepend ./ in that case: -+func_dirname_and_basename "$progpath" -+progname=$func_basename_result -+case $progname in -+ -*) progname=./$progname ;; -+esac -+ -+# Make sure we have an absolute path for reexecution: -+case $progpath in -+ [\\/]*|[A-Za-z]:\\*) ;; -+ *[\\/]*) -+ progdir=$func_dirname_result -+ progdir=`cd "$progdir" && pwd` -+ progpath="$progdir/$progname" -+ ;; -+ *) -+ save_IFS="$IFS" -+ IFS=: -+ for progdir in $PATH; do -+ IFS="$save_IFS" -+ test -x "$progdir/$progname" && break -+ done -+ IFS="$save_IFS" -+ test -n "$progdir" || progdir=`pwd` -+ progpath="$progdir/$progname" -+ ;; -+esac -+ -+# 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' -+ -+# Same as above, but do not quote variable references. -+double_quote_subst='s/\(["`\\]\)/\\\1/g' -+ -+# Re-`\' parameter expansions in output of double_quote_subst that were -+# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -+# in input to double_quote_subst, that '$' was protected from expansion. -+# Since each input `\' is now two `\'s, look for any number of runs of -+# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -+bs='\\' -+bs2='\\\\' -+bs4='\\\\\\\\' -+dollar='\$' -+sed_double_backslash="\ -+ s/$bs4/&\\ -+/g -+ s/^$bs2$dollar/$bs&/ -+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g -+ s/\n//g" -+ -+# Standard options: -+opt_dry_run=false -+opt_help=false -+opt_quiet=false -+opt_verbose=false -+opt_warning=: -+ -+# func_echo arg... -+# Echo program name prefixed message, along with the current mode -+# name if it has been set yet. -+func_echo () -+{ -+ $ECHO "$progname${mode+: }$mode: $*" -+} -+ -+# func_verbose arg... -+# Echo program name prefixed message in verbose mode only. -+func_verbose () -+{ -+ $opt_verbose && func_echo ${1+"$@"} -+ -+ # A bug in bash halts the script if the last line of a function -+ # fails when set -e is in force, so we need another command to -+ # work around that: -+ : -+} -+ -+# func_error arg... -+# Echo program name prefixed message to standard error. -+func_error () -+{ -+ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 -+} -+ -+# func_warning arg... -+# Echo program name prefixed warning message to standard error. -+func_warning () -+{ -+ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 -+ -+ # bash bug again: -+ : -+} -+ -+# func_fatal_error arg... -+# Echo program name prefixed message to standard error, and exit. -+func_fatal_error () -+{ -+ func_error ${1+"$@"} -+ exit $EXIT_FAILURE -+} -+ -+# func_fatal_help arg... -+# Echo program name prefixed message to standard error, followed by -+# a help hint, and exit. -+func_fatal_help () -+{ -+ func_error ${1+"$@"} -+ func_fatal_error "$help" -+} -+help="Try \`$progname --help' for more information." ## default -+ -+ -+# func_grep expression filename -+# Check whether EXPRESSION matches any line of FILENAME, without output. -+func_grep () -+{ -+ $GREP "$1" "$2" >/dev/null 2>&1 -+} -+ -+ -+# func_mkdir_p directory-path -+# Make sure the entire path to DIRECTORY-PATH is available. -+func_mkdir_p () -+{ -+ my_directory_path="$1" -+ my_dir_list= -+ -+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then -+ -+ # Protect directory names starting with `-' -+ case $my_directory_path in -+ -*) my_directory_path="./$my_directory_path" ;; -+ esac -+ -+ # While some portion of DIR does not yet exist... -+ while test ! -d "$my_directory_path"; do -+ # ...make a list in topmost first order. Use a colon delimited -+ # list incase some portion of path contains whitespace. -+ my_dir_list="$my_directory_path:$my_dir_list" -+ -+ # If the last portion added has no slash in it, the list is done -+ case $my_directory_path in */*) ;; *) break ;; esac -+ -+ # ...otherwise throw away the child directory and loop -+ my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` -+ done -+ my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` -+ -+ save_mkdir_p_IFS="$IFS"; IFS=':' -+ for my_dir in $my_dir_list; do -+ IFS="$save_mkdir_p_IFS" -+ # mkdir can fail with a `File exist' error if two processes -+ # try to create one of the directories concurrently. Don't -+ # stop in that case! -+ $MKDIR "$my_dir" 2>/dev/null || : -+ done -+ IFS="$save_mkdir_p_IFS" -+ -+ # Bail out if we (or some other process) failed to create a directory. -+ test -d "$my_directory_path" || \ -+ func_fatal_error "Failed to create \`$1'" -+ fi -+} - --##################################### --# Shell function definitions: --# This seems to be the best place for them - - # func_mktempdir [string] - # Make a temporary directory that won't clash with other running -@@ -167,7 +355,7 @@ - { - my_template="${TMPDIR-/tmp}/${1-$progname}" - -- if test "$run" = ":"; then -+ if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else -@@ -176,526 +364,787 @@ - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then -- # Failing that, at least try and use $RANDOM to avoid a race -- my_tmpdir="${my_template}-${RANDOM-0}$$" -+ # Failing that, at least try and use $RANDOM to avoid a race -+ my_tmpdir="${my_template}-${RANDOM-0}$$" - -- save_mktempdir_umask=`umask` -- umask 0077 -- $mkdir "$my_tmpdir" -- umask $save_mktempdir_umask -+ save_mktempdir_umask=`umask` -+ umask 0077 -+ $MKDIR "$my_tmpdir" -+ umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure -- test -d "$my_tmpdir" || { -- $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 -- exit $EXIT_FAILURE -- } -+ test -d "$my_tmpdir" || \ -+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - -- $echo "X$my_tmpdir" | $Xsed -+ $ECHO "X$my_tmpdir" | $Xsed - } - - --# func_win32_libid arg --# return the library type of file 'arg' --# --# Need a lot of goo to handle *both* DLLs and import libs --# Has to be a shell function in order to 'eat' the argument --# that is supplied when $file_magic_command is called. --func_win32_libid () -+# func_quote_for_eval arg -+# Aesthetically quote ARG to be evaled later. -+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -+# is double-quoted, suitable for a subsequent eval, whereas -+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -+# which are still active within double quotes backslashified. -+func_quote_for_eval () - { -- win32_libid_type="unknown" -- win32_fileres=`file -L $1 2>/dev/null` -- case $win32_fileres in -- *ar\ archive\ import\ library*) # definitely import -- win32_libid_type="x86 archive import" -- ;; -- *ar\ archive*) # could be an import, or static -- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ -- $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then -- win32_nmres=`eval $NM -f posix -A $1 | \ -- $SED -n -e '1,100{ -- / I /{ -- s,.*,import, -- p -- q -- } -- }'` -- case $win32_nmres in -- import*) win32_libid_type="x86 archive import";; -- *) win32_libid_type="x86 archive static";; -- esac -- fi -- ;; -- *DLL*) -- win32_libid_type="x86 DLL" -- ;; -- *executable*) # but shell scripts are "executable" too... -- case $win32_fileres in -- *MS\ Windows\ PE\ Intel*) -- win32_libid_type="x86 DLL" -- ;; -+ case $1 in -+ *[\\\`\"\$]*) -+ func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; -+ *) -+ func_quote_for_eval_unquoted_result="$1" ;; -+ esac -+ -+ case $func_quote_for_eval_unquoted_result in -+ # Double-quote args containing shell metacharacters to delay -+ # word splitting, command substitution and and variable -+ # expansion for a subsequent eval. -+ # Many Bourne shells cannot handle close brackets correctly -+ # in scan sets, so we specify it separately. -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" -+ ;; -+ *) -+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -- ;; -- esac -- $echo $win32_libid_type - } - - --# func_infer_tag arg --# Infer tagged configuration to use if any are available and --# if one wasn't chosen via the "--tag" command line option. --# Only attempt this if the compiler in the base compile --# command doesn't match the default compiler. --# arg is usually of the form 'gcc ...' --func_infer_tag () -+# func_quote_for_expand arg -+# Aesthetically quote ARG to be evaled later; same as above, -+# but do not quote variable references. -+func_quote_for_expand () - { -- if test -n "$available_tags" && test -z "$tagname"; then -- CC_quoted= -- for arg in $CC; do -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- CC_quoted="$CC_quoted $arg" -- done -- case $@ in -- # Blanks in the command may have been stripped by the calling shell, -- # but not from the CC environment variable when configure was run. -- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; -- # Blanks at the start of $base_compile will cause this to fail -- # if we don't check for them as well. -+ case $1 in -+ *[\\\`\"]*) -+ my_arg=`$ECHO "X$1" | $Xsed \ -+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) -- for z in $available_tags; do -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" -- CC_quoted= -- for arg in $CC; do -- # Double-quote args containing other shell metacharacters. -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- CC_quoted="$CC_quoted $arg" -- done -- case "$@ " in -- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) -- # The compiler in the base compile command matches -- # the one in the tagged configuration. -- # Assume this is the tagged configuration we want. -- tagname=$z -- break -- ;; -- esac -- fi -- done -- # If $tagname still isn't set, then no tagged configuration -- # was found and let the user know that the "--tag" command -- # line option must be used. -- if test -z "$tagname"; then -- $echo "$modename: unable to infer tagged configuration" -- $echo "$modename: specify a tag with \`--tag'" 1>&2 -- exit $EXIT_FAILURE --# else --# $echo "$modename: using $tagname tagged configuration" -- fi -- ;; -- esac -- fi -+ my_arg="$1" ;; -+ esac -+ -+ case $my_arg in -+ # Double-quote args containing shell metacharacters to delay -+ # word splitting and command substitution for a subsequent eval. -+ # Many Bourne shells cannot handle close brackets correctly -+ # in scan sets, so we specify it separately. -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ my_arg="\"$my_arg\"" -+ ;; -+ esac -+ -+ func_quote_for_expand_result="$my_arg" - } - - --# func_extract_an_archive dir oldlib --func_extract_an_archive () -+# func_show_eval cmd [fail_exp] -+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -+# is given, then evaluate it. -+func_show_eval () - { -- f_ex_an_ar_dir="$1"; shift -- f_ex_an_ar_oldlib="$1" -+ my_cmd="$1" -+ my_fail_exp="${2-:}" - -- $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" -- $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? -- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 -- exit $EXIT_FAILURE -+ ${opt_silent-false} || { -+ func_quote_for_expand "$my_cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ -+ if ${opt_dry_run-false}; then :; else -+ eval "$my_cmd" -+ my_status=$? -+ if test "$my_status" -eq 0; then :; else -+ eval "(exit $my_status); $my_fail_exp" -+ fi - fi - } - --# func_extract_archives gentop oldlib ... --func_extract_archives () -+ -+# func_show_eval_locale cmd [fail_exp] -+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -+# is given, then evaluate it. Use the saved locale for evaluation. -+func_show_eval_locale () - { -- my_gentop="$1"; shift -- my_oldlibs=${1+"$@"} -- my_oldobjs="" -- my_xlib="" -- my_xabs="" -- my_xdir="" -- my_status="" -+ my_cmd="$1" -+ my_fail_exp="${2-:}" -+ -+ ${opt_silent-false} || { -+ func_quote_for_expand "$my_cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } - -- $show "${rm}r $my_gentop" -- $run ${rm}r "$my_gentop" -- $show "$mkdir $my_gentop" -- $run $mkdir "$my_gentop" -- my_status=$? -- if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then -- exit $my_status -+ if ${opt_dry_run-false}; then :; else -+ eval "$lt_user_locale -+ $my_cmd" -+ my_status=$? -+ eval "$lt_safe_locale" -+ if test "$my_status" -eq 0; then :; else -+ eval "(exit $my_status); $my_fail_exp" -+ fi - fi -+} - -- for my_xlib in $my_oldlibs; do -- # Extract the objects. -- case $my_xlib in -- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; -- *) my_xabs=`pwd`"/$my_xlib" ;; -- esac -- my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` -- my_xlib_u=$my_xlib -- while :; do -- case " $extracted_archives " in -- *" $my_xlib_u "*) -- extracted_serial=`expr $extracted_serial + 1` -- my_xlib_u=lt$extracted_serial-$my_xlib ;; -- *) break ;; -- esac -- done -- extracted_archives="$extracted_archives $my_xlib_u" -- my_xdir="$my_gentop/$my_xlib_u" - -- $show "${rm}r $my_xdir" -- $run ${rm}r "$my_xdir" -- $show "$mkdir $my_xdir" -- $run $mkdir "$my_xdir" -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then -- exit $exit_status -- fi -- case $host in -- *-darwin*) -- $show "Extracting $my_xabs" -- # Do not bother doing anything if just a dry run -- if test -z "$run"; then -- darwin_orig_dir=`pwd` -- cd $my_xdir || exit $? -- darwin_archive=$my_xabs -- darwin_curdir=`pwd` -- darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` -- darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` -- if test -n "$darwin_arches"; then -- darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` -- darwin_arch= -- $show "$darwin_base_archive has multiple architectures $darwin_arches" -- for darwin_arch in $darwin_arches ; do -- mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" -- lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" -- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" -- func_extract_an_archive "`pwd`" "${darwin_base_archive}" -- cd "$darwin_curdir" -- $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" -- done # $darwin_arches -- ## Okay now we have a bunch of thin objects, gotta fatten them up :) -- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` -- darwin_file= -- darwin_files= -- for darwin_file in $darwin_filelist; do -- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -- lipo -create -output "$darwin_file" $darwin_files -- done # $darwin_filelist -- ${rm}r unfat-$$ -- cd "$darwin_orig_dir" -- else -- cd "$darwin_orig_dir" -- func_extract_an_archive "$my_xdir" "$my_xabs" -- fi # $darwin_arches -- fi # $run -- ;; -- *) -- func_extract_an_archive "$my_xdir" "$my_xabs" -- ;; -- esac -- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -- done -- func_extract_archives_result="$my_oldobjs" -+ -+ -+ -+# func_version -+# Echo version message to standard output and exit. -+func_version () -+{ -+ $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { -+ s/^# // -+ s/^# *$// -+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ -+ p -+ }' < "$progpath" -+ exit $? -+} -+ -+# func_usage -+# Echo short help message to standard output and exit. -+func_usage () -+{ -+ $SED -n '/^# Usage:/,/# -h/ { -+ s/^# // -+ s/^# *$// -+ s/\$progname/'$progname'/ -+ p -+ }' < "$progpath" -+ $ECHO -+ $ECHO "run \`$progname --help | more' for full usage" -+ exit $? -+} -+ -+# func_help -+# Echo long help message to standard output and exit. -+func_help () -+{ -+ $SED -n '/^# Usage:/,/# Report bugs to/ { -+ s/^# // -+ s/^# *$// -+ s*\$progname*'$progname'* -+ s*\$host*'"$host"'* -+ s*\$SHELL*'"$SHELL"'* -+ s*\$LTCC*'"$LTCC"'* -+ s*\$LTCFLAGS*'"$LTCFLAGS"'* -+ s*\$LD*'"$LD"'* -+ s/\$with_gnu_ld/'"$with_gnu_ld"'/ -+ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ -+ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ -+ p -+ }' < "$progpath" -+ exit $? -+} -+ -+# func_missing_arg argname -+# Echo program name prefixed message to standard error and set global -+# exit_cmd. -+func_missing_arg () -+{ -+ func_error "missing argument for $1" -+ exit_cmd=exit - } --# End of Shell function definitions --##################################### - --# Darwin sucks --eval std_shrext=\"$shrext_cmds\" -+exit_cmd=: - --disable_libs=no - --# Parse our command line options once, thoroughly. --while test "$#" -gt 0 --do -- arg="$1" -+ -+ -+ -+# 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 "$progpath" --no-reexec ${1+"$@"} -+fi - -- case $arg in -- -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; -- *) optarg= ;; -- esac -+if test "X$1" = X--fallback-echo; then -+ # used as fallback echo -+ shift -+ cat <&2 -- exit $EXIT_FAILURE -- ;; -- esac -+magic="%%%MAGIC variable%%%" -+magic_exe="%%%MAGIC EXE variable%%%" - -- case $tagname in -- CC) -- # Don't test for the "default" C tag, as we know, it's there, but -- # not specially marked. -- ;; -- *) -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then -- taglist="$taglist $tagname" -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" -- else -- $echo "$progname: ignoring unknown tag $tagname" 1>&2 -- fi -- ;; -- esac -- ;; -- *) -- eval "$prev=\$arg" -- ;; -- esac -+# Global variables. -+# $mode is unset -+nonopt= -+execute_dlfiles= -+preserve_args= -+lo2o="s/\\.lo\$/.${objext}/" -+o2lo="s/\\.${objext}\$/.lo/" -+extracted_archives= -+extracted_serial=0 - -- prev= -- prevopt= -- continue -- fi -+opt_dry_run=false -+opt_duplicate_deps=false -+opt_silent=false -+opt_debug=: - -- # Have we seen a non-optional argument yet? -- case $arg in -- --help) -- show_help=yes -- ;; -+# 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= - -- --version) -- echo "\ --$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP -- --Copyright (C) 2008 Free Software Foundation, Inc. --This is free software; see the source for copying conditions. There is NO --warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -- exit $? -- ;; -+# func_fatal_configuration arg... -+# Echo program name prefixed message to standard error, followed by -+# a configuration failure hint, and exit. -+func_fatal_configuration () -+{ -+ func_error ${1+"$@"} -+ func_error "See the $PACKAGE documentation for more information." -+ func_fatal_error "Fatal configuration error." -+} -+ -+ -+# func_config -+# Display the configuration for all the tags in this script. -+func_config () -+{ -+ re_begincf='^# ### BEGIN LIBTOOL' -+ re_endcf='^# ### END LIBTOOL' -+ -+ # Default configuration. -+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - -- --config) -- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do -- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" -+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done -- exit $? -- ;; -- -- --debug) -- $echo "$progname: enabling shell trace mode" -- set -x -- preserve_args="$preserve_args $arg" -- ;; - -- --dry-run | -n) -- run=: -- ;; -+ exit $? -+} - -- --features) -- $echo "host: $host" -+# func_features -+# Display the features supported by this script. -+func_features () -+{ -+ $ECHO "host: $host" - if test "$build_libtool_libs" = yes; then -- $echo "enable shared libraries" -+ $ECHO "enable shared libraries" - else -- $echo "disable shared libraries" -+ $ECHO "disable shared libraries" - fi - if test "$build_old_libs" = yes; then -- $echo "enable static libraries" -+ $ECHO "enable static libraries" - else -- $echo "disable static libraries" -+ $ECHO "disable static libraries" - fi -+ - exit $? -- ;; -+} - -- --finish) mode="finish" ;; -+# func_enable_tag tagname -+# Verify that TAGNAME is valid, and either flag an error and exit, or -+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -+# variable here. -+func_enable_tag () -+{ -+ # Global variable: -+ tagname="$1" -+ -+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" -+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" -+ sed_extractcf="/$re_begincf/,/$re_endcf/p" -+ -+ # Validate tagname. -+ case $tagname in -+ *[!-_A-Za-z0-9,/]*) -+ func_fatal_error "invalid tag name: $tagname" -+ ;; -+ esac - -- --mode) prevopt="--mode" prev=mode ;; -- --mode=*) mode="$optarg" ;; -+ # Don't test for the "default" C tag, as we know it's -+ # there but not specially marked. -+ case $tagname in -+ CC) ;; -+ *) -+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then -+ taglist="$taglist $tagname" - -- --preserve-dup-deps) duplicate_deps="yes" ;; -+ # Evaluate the configuration. Be careful to quote the path -+ # and the sed script, to avoid splitting on whitespace, but -+ # also don't use non-portable quotes within backquotes within -+ # quotes we have to do it in 2 steps: -+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` -+ eval "$extractedcf" -+ else -+ func_error "ignoring unknown tag $tagname" -+ fi -+ ;; -+ esac -+} - -- --quiet | --silent) -- show=: -- preserve_args="$preserve_args $arg" -- ;; -+# Parse options once, thoroughly. This comes as soon as possible in -+# the script to make things like `libtool --version' happen quickly. -+{ - -- --tag) -- prevopt="--tag" -- prev=tag -- preserve_args="$preserve_args --tag" -+ # Shorthand for --mode=foo, only valid as the first argument -+ case $1 in -+ clean|clea|cle|cl) -+ shift; set dummy --mode clean ${1+"$@"}; shift - ;; -- --tag=*) -- set tag "$optarg" ${1+"$@"} -- shift -- prev=tag -- preserve_args="$preserve_args --tag" -+ compile|compil|compi|comp|com|co|c) -+ shift; set dummy --mode compile ${1+"$@"}; shift - ;; -- -- -dlopen) -- prevopt="-dlopen" -- prev=execute_dlfiles -+ execute|execut|execu|exec|exe|ex|e) -+ shift; set dummy --mode execute ${1+"$@"}; shift - ;; -- -- -*) -- $echo "$modename: unrecognized option \`$arg'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ finish|finis|fini|fin|fi|f) -+ shift; set dummy --mode finish ${1+"$@"}; shift - ;; -- -- *) -- nonopt="$arg" -- break -+ install|instal|insta|inst|ins|in|i) -+ shift; set dummy --mode install ${1+"$@"}; shift -+ ;; -+ link|lin|li|l) -+ shift; set dummy --mode link ${1+"$@"}; shift -+ ;; -+ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -+ shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - esac --done - --if test -n "$prevopt"; then -- $echo "$modename: option \`$prevopt' requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE --fi -+ # Parse non-mode specific arguments: -+ while test "$#" -gt 0; do -+ opt="$1" -+ shift - --case $disable_libs in --no) -- ;; --shared) -- build_libtool_libs=no -- build_old_libs=yes -- ;; --static) -- build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -- ;; --esac -+ case $opt in -+ --config) func_config ;; - --# 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= -+ --debug) preserve_args="$preserve_args $opt" -+ func_echo "enabling shell trace mode" -+ opt_debug='set -x' -+ $opt_debug -+ ;; - --if test -z "$show_help"; then -+ -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ execute_dlfiles="$execute_dlfiles $1" -+ shift -+ ;; - -- # Infer the operation mode. -- if test -z "$mode"; then -- $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 -- $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 -- case $nonopt in -- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) -- 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 -+ --dry-run | -n) opt_dry_run=: ;; -+ --features) func_features ;; -+ --finish) mode="finish" ;; -+ -+ --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ case $1 in -+ # Valid mode arguments: -+ clean) ;; -+ compile) ;; -+ execute) ;; -+ finish) ;; -+ install) ;; -+ link) ;; -+ relink) ;; -+ uninstall) ;; -+ -+ # Catch anything else as an error -+ *) func_error "invalid argument for $opt" -+ exit_cmd=exit -+ break -+ ;; -+ esac -+ -+ mode="$1" -+ shift -+ ;; -+ -+ --preserve-dup-deps) -+ opt_duplicate_deps=: ;; -+ -+ --quiet|--silent) preserve_args="$preserve_args $opt" -+ opt_silent=: -+ ;; -+ -+ --verbose| -v) preserve_args="$preserve_args $opt" -+ opt_silent=false -+ ;; -+ -+ --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ preserve_args="$preserve_args $opt $1" -+ func_enable_tag "$1" # tagname is set here -+ shift -+ ;; -+ -+ # Separate optargs to long options: -+ -dlopen=*|--mode=*|--tag=*) -+ func_opt_split "$opt" -+ set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} -+ shift -+ ;; -+ -+ -\?|-h) func_usage ;; -+ --help) opt_help=: ;; -+ --version) func_version ;; -+ -+ -*) func_fatal_help "unrecognized option \`$opt'" ;; -+ -+ *) nonopt="$opt" -+ break -+ ;; -+ esac -+ done -+ -+ -+ case $host in -+ *cygwin* | *mingw* | *pw32* | *cegcc*) -+ # don't eliminate duplications in $postdeps and $predeps -+ opt_duplicate_compiler_generated_deps=: - ;; - *) -- # If we have no mode, but dlfiles were specified, then do execute mode. -- test -n "$execute_dlfiles" && mode=execute -+ opt_duplicate_compiler_generated_deps=$opt_duplicate_deps -+ ;; -+ esac - -- # 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 -+ # Having warned about all mis-specified options, bail out if -+ # anything was wrong. -+ $exit_cmd $EXIT_FAILURE -+} -+ -+# func_check_version_match -+# Ensure that we are using m4 macros, and libtool script from the same -+# release of libtool. -+func_check_version_match () -+{ -+ if test "$package_revision" != "$macro_revision"; then -+ if test "$VERSION" != "$macro_version"; then -+ if test -z "$macro_version"; then -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from an older release. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF - fi -- ;; -- esac -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -+$progname: but the definition of this LT_INIT comes from revision $macro_revision. -+$progname: You should recreate aclocal.m4 with macros from revision $package_revision -+$progname: of $PACKAGE $VERSION and run autoconf again. -+_LT_EOF -+ fi -+ -+ exit $EXIT_MISMATCH -+ fi -+} -+ -+ -+## ----------- ## -+## Main. ## -+## ----------- ## -+ -+$opt_help || { -+ # Sanity checks first: -+ func_check_version_match -+ -+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -+ func_fatal_configuration "not configured to build any kind of library" - fi - -+ test -z "$mode" && func_fatal_error "error: you must specify a MODE." -+ -+ -+ # Darwin sucks -+ eval std_shrext=\"$shrext_cmds\" -+ -+ - # 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 -+ func_error "unrecognized option \`-dlopen'" -+ $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" -- help="Try \`$modename --help --mode=$mode' for more information." -+ help="Try \`$progname --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= -- srcfile="$nonopt" # always keep a non-empty value in "srcfile" -- suppress_opt=yes -- suppress_output= -- arg_mode=normal -- libobj= -- later= - -- for arg -- do -- case $arg_mode in -- arg ) -- # do not "continue". Instead, add this to base_compile -- lastarg="$arg" -- arg_mode=normal -- ;; -+# func_lalib_p file -+# True iff FILE is a libtool `.la' library or `.lo' object file. -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_lalib_p () -+{ -+ test -f "$1" && -+ $SED -e 4q "$1" 2>/dev/null \ -+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -+} - -- target ) -- libobj="$arg" -- arg_mode=normal -- continue -- ;; -+# func_lalib_unsafe_p file -+# True iff FILE is a libtool `.la' library or `.lo' object file. -+# This function implements the same check as func_lalib_p without -+# resorting to external programs. To this end, it redirects stdin and -+# closes it afterwards, without saving the original file descriptor. -+# As a safety measure, use it only where a negative result would be -+# fatal anyway. Works if `file' does not exist. -+func_lalib_unsafe_p () -+{ -+ lalib_p=no -+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then -+ for lalib_p_l in 1 2 3 4 -+ do -+ read lalib_p_line -+ case "$lalib_p_line" in -+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; -+ esac -+ done -+ exec 0<&5 5<&- -+ fi -+ test "$lalib_p" = yes -+} - -- normal ) -- # Accept any command-line options. -- case $arg in -- -o) -- if test -n "$libobj" ; then -- $echo "$modename: you cannot specify \`-o' more than once" 1>&2 -- exit $EXIT_FAILURE -- fi -- arg_mode=target -- continue -- ;; -+# func_ltwrapper_script_p file -+# True iff FILE is a libtool wrapper script -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_script_p () -+{ -+ func_lalib_p "$1" -+} - -- -static | -prefer-pic | -prefer-non-pic) -- later="$later $arg" -- continue -- ;; -+# func_ltwrapper_executable_p file -+# True iff FILE is a libtool wrapper executable -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_executable_p () -+{ -+ func_ltwrapper_exec_suffix= -+ case $1 in -+ *.exe) ;; -+ *) func_ltwrapper_exec_suffix=.exe ;; -+ esac -+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -+} -+ -+# func_ltwrapper_scriptname file -+# Assumes file is an ltwrapper_executable -+# uses $file to determine the appropriate filename for a -+# temporary ltwrapper_script. -+func_ltwrapper_scriptname () -+{ -+ func_ltwrapper_scriptname_result="" -+ if func_ltwrapper_executable_p "$1"; then -+ func_dirname_and_basename "$1" "" "." -+ func_stripname '' '.exe' "$func_basename_result" -+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -+ fi -+} -+ -+# func_ltwrapper_p file -+# True iff FILE is a libtool wrapper script or wrapper executable -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_p () -+{ -+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -+} -+ -+ -+# func_execute_cmds commands fail_cmd -+# Execute tilde-delimited COMMANDS. -+# If FAIL_CMD is given, eval that upon failure. -+# FAIL_CMD may read-access the current command in variable CMD! -+func_execute_cmds () -+{ -+ $opt_debug -+ save_ifs=$IFS; IFS='~' -+ for cmd in $1; do -+ IFS=$save_ifs -+ eval cmd=\"$cmd\" -+ func_show_eval "$cmd" "${2-:}" -+ done -+ IFS=$save_ifs -+} -+ -+ -+# func_source file -+# Source FILE, adding directory component if necessary. -+# Note that it is not necessary on cygwin/mingw to append a dot to -+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -+# behavior happens only for exec(3), not for open(2)! Also, sourcing -+# `FILE.' does not work on cygwin managed mounts. -+func_source () -+{ -+ $opt_debug -+ case $1 in -+ */* | *\\*) . "$1" ;; -+ *) . "./$1" ;; -+ esac -+} -+ -+ -+# func_infer_tag arg -+# Infer tagged configuration to use if any are available and -+# if one wasn't chosen via the "--tag" command line option. -+# Only attempt this if the compiler in the base compile -+# command doesn't match the default compiler. -+# arg is usually of the form 'gcc ...' -+func_infer_tag () -+{ -+ $opt_debug -+ if test -n "$available_tags" && test -z "$tagname"; then -+ CC_quoted= -+ for arg in $CC; do -+ func_quote_for_eval "$arg" -+ CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ done -+ case $@ in -+ # Blanks in the command may have been stripped by the calling shell, -+ # but not from the CC environment variable when configure was run. -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; -+ # Blanks at the start of $base_compile will cause this to fail -+ # if we don't check for them as well. -+ *) -+ for z in $available_tags; do -+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then -+ # Evaluate the configuration. -+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" -+ CC_quoted= -+ for arg in $CC; do -+ # Double-quote args containing other shell metacharacters. -+ func_quote_for_eval "$arg" -+ CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ done -+ case "$@ " in -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) -+ # The compiler in the base compile command matches -+ # the one in the tagged configuration. -+ # Assume this is the tagged configuration we want. -+ tagname=$z -+ break -+ ;; -+ esac -+ fi -+ done -+ # If $tagname still isn't set, then no tagged configuration -+ # was found and let the user know that the "--tag" command -+ # line option must be used. -+ if test -z "$tagname"; then -+ func_echo "unable to infer tagged configuration" -+ func_fatal_error "specify a tag with \`--tag'" -+# else -+# func_verbose "using $tagname tagged configuration" -+ fi -+ ;; -+ esac -+ fi -+} -+ -+ -+ -+# func_write_libtool_object output_name pic_name nonpic_name -+# Create a libtool object file (analogous to a ".la" file), -+# but don't create it if we're doing a dry run. -+func_write_libtool_object () -+{ -+ write_libobj=${1} -+ if test "$build_libtool_libs" = yes; then -+ write_lobj=\'${2}\' -+ else -+ write_lobj=none -+ fi -+ -+ if test "$build_old_libs" = yes; then -+ write_oldobj=\'${3}\' -+ else -+ write_oldobj=none -+ fi -+ -+ $opt_dry_run || { -+ cat >${write_libobj}T <\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- lastarg="$lastarg $arg" -+ func_quote_for_eval "$arg" -+ lastarg="$lastarg $func_quote_for_eval_result" - done - IFS="$save_ifs" -- lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` -+ func_stripname ' ' '' "$lastarg" -+ lastarg=$func_stripname_result - - # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" - continue - ;; - -- * ) -+ *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # -@@ -744,66 +1187,42 @@ - esac # case $arg_mode - - # Aesthetically quote the previous argument. -- lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` -- -- case $lastarg in -- # Double-quote args containing other shell metacharacters. -- # Many Bourne shells cannot handle close brackets correctly -- # in scan sets, and some SunOS ksh mistreat backslash-escaping -- # in scan sets (worked around with variable expansion), -- # and furthermore cannot handle '|' '&' '(' ')' in scan sets -- # at all, so we specify them separately. -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- lastarg="\"$lastarg\"" -- ;; -- esac -- -- base_compile="$base_compile $lastarg" -+ func_quote_for_eval "$lastarg" -+ base_compile="$base_compile $func_quote_for_eval_result" - done # for arg - - case $arg_mode in - arg) -- $echo "$modename: you must specify an argument for -Xcompile" -- exit $EXIT_FAILURE -+ func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) -- $echo "$modename: you must specify a target with \`-o'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. -- [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` -+ test -z "$libobj" && { -+ func_basename "$srcfile" -+ libobj="$func_basename_result" -+ } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo -- xform='[cCFSifmso]' - case $libobj in -- *.ada) xform=ada ;; -- *.adb) xform=adb ;; -- *.ads) xform=ads ;; -- *.asm) xform=asm ;; -- *.c++) xform=c++ ;; -- *.cc) xform=cc ;; -- *.ii) xform=ii ;; -- *.class) xform=class ;; -- *.cpp) xform=cpp ;; -- *.cxx) xform=cxx ;; -- *.[fF][09]?) xform=[fF][09]. ;; -- *.for) xform=for ;; -- *.java) xform=java ;; -- *.obj) xform=obj ;; -- *.sx) xform=sx ;; -+ *.[cCFSifmso] | \ -+ *.ada | *.adb | *.ads | *.asm | \ -+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ -+ *.[fF][09]? | *.for | *.java | *.obj | *.sx) -+ func_xform "$libobj" -+ libobj=$func_xform_result -+ ;; - esac - -- libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` -- - case $libobj in -- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; -+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) -- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - -@@ -811,7 +1230,15 @@ - - for arg in $later; do - case $arg in -+ -shared) -+ test "$build_libtool_libs" != yes && \ -+ func_fatal_configuration "can not build a shared library" -+ build_old_libs=no -+ continue -+ ;; -+ - -static) -+ build_libtool_libs=no - build_old_libs=yes - continue - ;; -@@ -828,28 +1255,17 @@ - esac - done - -- qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` -- case $qlibobj in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qlibobj="\"$qlibobj\"" ;; -- esac -- test "X$libobj" != "X$qlibobj" \ -- && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ -- && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." -- objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$obj"; then -- xdir= -- else -- xdir=$xdir/ -- fi -+ func_quote_for_eval "$libobj" -+ test "X$libobj" != "X$func_quote_for_eval_result" \ -+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ -+ && func_warning "libobj name \`$libobj' may not contain shell special characters." -+ func_dirname_and_basename "$obj" "/" "" -+ objname="$func_basename_result" -+ xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - -- if test -z "$base_compile"; then -- $echo "$modename: you must specify a compilation command" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -z "$base_compile" && \ -+ func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then -@@ -858,12 +1274,9 @@ - removelist="$lobj $libobj ${libobj}T" - fi - -- $run $rm $removelist -- trap "$run $rm $removelist; exit $EXIT_FAILURE" 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*) -+ cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac -@@ -875,10 +1288,8 @@ - # 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} -+ 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 $EXIT_FAILURE" 1 2 15 - else - output_obj= - need_locks=no -@@ -888,13 +1299,13 @@ - # 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 "$progpath" "$lockfile" 2>/dev/null; do -- $show "Waiting for $lockfile to be removed" -+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do -+ func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile exists and contains: - `cat $lockfile 2>/dev/null` - -@@ -905,34 +1316,22 @@ - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi -- $echo "$srcfile" > "$lockfile" -+ removelist="$removelist $output_obj" -+ $ECHO "$srcfile" > "$lockfile" - fi - -+ $opt_dry_run || $RM $removelist -+ removelist="$removelist $lockfile" -+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 -+ - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi -- qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` -- case $qsrcfile in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qsrcfile="\"$qsrcfile\"" ;; -- esac -- -- $run $rm "$libobj" "${libobj}T" -- -- # Create a libtool object file (analogous to a ".la" file), -- # but don't create it if we're doing a dry run. -- test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile contains: - `cat $lockfile 2>/dev/null` - -@@ -985,45 +1371,27 @@ - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then -- $show "$mv $output_obj $lobj" -- if $run $mv $output_obj $lobj; then : -- else -- error=$? -- $run $rm $removelist -- exit $error -- fi -+ func_show_eval '$MV "$output_obj" "$lobj"' \ -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - -- # Append the name of the PIC object to the libtool object file. -- test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile contains: - `cat $lockfile 2>/dev/null` - -@@ -1057,5485 +1420,6777 @@ - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && 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 -+ func_show_eval '$MV "$output_obj" "$obj"' \ -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi -- -- # Append the name of the non-PIC object the libtool object file. -- # Only append if the libtool object file exists. -- test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 -- fi -- if test -n "$link_static_flag"; then -- dlopen_self=$dlopen_self_static -- fi -- prefer_static_libs=yes -- ;; -- -static) -- if test -z "$pic_flag" && test -n "$link_static_flag"; then -- dlopen_self=$dlopen_self_static -- fi -- prefer_static_libs=built -- ;; -- -static-libtool-libs) -- if test -z "$pic_flag" && test -n "$link_static_flag"; then -- dlopen_self=$dlopen_self_static -- fi -- prefer_static_libs=yes -- ;; -- esac -- build_libtool_libs=no -- build_old_libs=yes -- break -- ;; -- esac -- done -+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." -+ ;; - -- # See if our shared archives depend on static archives. -- test -n "$old_archive_from_new_cmds" && build_old_libs=yes -+ compile) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -- # 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" -+Compile a source file into a libtool library object. - -- # 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 -+This mode accepts the following additional options: - -- 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 $EXIT_FAILURE -- fi -- prev= -- continue -- ;; -- expsyms_regex) -- export_symbols_regex="$arg" -- prev= -- continue -- ;; -- inst_prefix) -- inst_prefix_dir="$arg" -- prev= -- continue -- ;; -- precious_regex) -- precious_files_regex="$arg" -- prev= -- continue -- ;; -- release) -- release="-$arg" -- prev= -- continue -- ;; -- objectlist) -- if test -f "$arg"; then -- save_arg=$arg -- moreargs= -- for fil in `cat $save_arg` -- do --# moreargs="$moreargs $fil" -- arg=$fil -- # A libtool-controlled object. -+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE -+ -no-suppress do not suppress compiler output for multiple passes -+ -prefer-pic try to building PIC objects only -+ -prefer-non-pic try to building non-PIC objects only -+ -shared do not build a \`.o' file suitable for static linking -+ -static only build a \`.o' file suitable for static linking - -- # Check to see that this really is a libtool object. -- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- pic_object= -- non_pic_object= -+COMPILE-COMMAND is a command to be used in creating a \`standard' object file -+from the given SOURCEFILE. - -- # Read the .lo file -- # If there is no directory component, then add one. -- case $arg in -- */* | *\\*) . $arg ;; -- *) . ./$arg ;; -- esac -+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'." -+ ;; - -- if test -z "$pic_object" || \ -- test -z "$non_pic_object" || -- test "$pic_object" = none && \ -- test "$non_pic_object" = none; then -- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit $EXIT_FAILURE -- fi -+ execute) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+Automatically set library path, then run a program. - -- if test "$pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- pic_object="$xdir$pic_object" -+This mode accepts the following additional options: - -- if test "$prev" = dlfiles; then -- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -- prev= -- continue -- else -- # If libtool objects are unsupported, then we need to preload. -- prev=dlprefiles -- fi -- fi -+ -dlopen FILE add the directory containing FILE to the library path - -- # CHECK ME: I think I busted this. -Ossama -- if test "$prev" = dlprefiles; then -- # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -- prev= -- fi -+This mode sets the library path environment variable according to \`-dlopen' -+flags. - -- # A PIC object. -- libobjs="$libobjs $pic_object" -- arg="$pic_object" -- fi -+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. - -- # Non-PIC object. -- if test "$non_pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- non_pic_object="$xdir$non_pic_object" -+Then, COMMAND is executed, with ARGS as arguments." -+ ;; - -- # A standard non-PIC object -- non_pic_objects="$non_pic_objects $non_pic_object" -- if test -z "$pic_object" || test "$pic_object" = none ; then -- arg="$non_pic_object" -- fi -- else -- # If the PIC object exists, use it instead. -- # $xdir was prepended to $pic_object above. -- non_pic_object="$pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- else -- # Only an error if not doing a dry-run. -- if test -z "$run"; then -- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit $EXIT_FAILURE -- else -- # Dry-run case. -+ finish) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+Complete the installation of libtool libraries. - -- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` -- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -- libobjs="$libobjs $pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- fi -- done -- else -- $echo "$modename: link input file \`$save_arg' does not exist" -- exit $EXIT_FAILURE -- fi -- arg=$save_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 $EXIT_FAILURE -- ;; -- 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 -- ;; -- xcclinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $qarg" -- prev= -- compile_command="$compile_command $qarg" -- finalize_command="$finalize_command $qarg" -- continue -- ;; -- shrext) -- shrext_cmds="$arg" -- prev= -- continue -- ;; -- darwin_framework|darwin_framework_skip) -- test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- prev= -- continue -- ;; -- *) -- eval "$prev=\"\$arg\"" -- prev= -- continue -- ;; -- esac -- fi # test -n "$prev" -+Each LIBDIR is a directory that contains libtool libraries. - -- prevarg="$arg" -+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." -+ ;; - -- 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 -- ;; -+ install) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -- -allow-undefined) -- # FIXME: remove this flag sometime in the future. -- $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 -- continue -- ;; -+Install executables or libraries. - -- -avoid-version) -- avoid_version=yes -- continue -- ;; -+INSTALL-COMMAND is the installation command. The first component should be -+either the \`install' or \`cp' program. - -- -dlopen) -- prev=dlfiles -- continue -- ;; -+The following components of INSTALL-COMMAND are treated specially: - -- -dlpreopen) -- prev=dlprefiles -- continue -- ;; -+ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -- -export-dynamic) -- export_dynamic=yes -- continue -- ;; -+The rest of the components are interpreted as arguments to that command (only -+BSD-compatible install options are recognized)." -+ ;; - -- -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 $EXIT_FAILURE -- fi -- if test "X$arg" = "X-export-symbols"; then -- prev=expsyms -- else -- prev=expsyms_regex -- fi -- continue -- ;; -+ link) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -- -framework|-arch|-isysroot) -- case " $CC " in -- *" ${arg} ${1} "* | *" ${arg} ${1} "*) -- prev=darwin_framework_skip ;; -- *) compiler_flags="$compiler_flags $arg" -- prev=darwin_framework ;; -- esac -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- continue -- ;; -+Link object files or libraries together to form another library, or to -+create an executable program. - -- -inst-prefix-dir) -- prev=inst_prefix -- continue -- ;; -+LINK-COMMAND is a command using the C compiler that you would use to create -+a program from several object files. - -- # 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* | /*-*-irix*) -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- ;; -- esac -- continue -- ;; -+The following components of LINK-COMMAND are treated specially: - -- -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 -- absdir="$dir" -- notinst_path="$notinst_path $dir" -- 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*) -- testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` -- case :$dllsearchpath: in -- *":$dir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$dir";; -- esac -- case :$dllsearchpath: in -- *":$testbindir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -- esac -- ;; -- esac -- continue -- ;; -+ -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 -+ -objectlist FILE Use a list of object files found in FILE to specify objects -+ -precious-files-regex REGEX -+ don't remove output files matching REGEX -+ -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 -+ -shared only do dynamic linking of libtool libraries -+ -shrext SUFFIX override the standard shared library file extension -+ -static do not do any dynamic linking of uninstalled libtool libraries -+ -static-libtool-libs -+ do not do any dynamic linking of libtool libraries -+ -version-info CURRENT[:REVISION[:AGE]] -+ specify library version info [each variable defaults to 0] -+ -weak LIBNAME declare that the target provides the LIBNAME interface - -- -l*) -- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then -- case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) -- # These systems don't actually have a C or math library (as such) -- continue -- ;; -- *-*-os2*) -- # These systems don't actually have a C library (as such) -- test "X$arg" = "X-lc" && continue -- ;; -- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) -- # Do not include libc due to us having libc/libc_r. -- test "X$arg" = "X-lc" && continue -- ;; -- *-*-rhapsody* | *-*-darwin1.[012]) -- # Rhapsody C and math libraries are in the System framework -- deplibs="$deplibs -framework System" -- continue -- ;; -- *-*-sco3.2v5* | *-*-sco5v6*) -- # Causes problems with __ctype -- test "X$arg" = "X-lc" && continue -- ;; -- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) -- # Compiler inserts libc in the correct place for threads to work -- test "X$arg" = "X-lc" && continue -- ;; -- esac -- elif test "X$arg" = "X-lc_r"; then -- case $host in -- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) -- # Do not include libc_r directly, use -pthread flag. -- continue -- ;; -- esac -- fi -- deplibs="$deplibs $arg" -- continue -- ;; -+All other options (arguments beginning with \`-') are ignored. - -- # Tru64 UNIX uses -model [arg] to determine the layout of C++ -- # classes, name mangling, and exception handling. -- -model) -- compile_command="$compile_command $arg" -- compiler_flags="$compiler_flags $arg" -- finalize_command="$finalize_command $arg" -- prev=xcompiler -- continue -- ;; -+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. - -- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -- compiler_flags="$compiler_flags $arg" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- continue -- ;; -+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. - -- -multi_module) -- single_module="${wl}-multi_module" -- continue -- ;; -+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -+using \`ar' and \`ranlib', or on Windows using \`lib'. - -- -module) -- module=yes -- continue -- ;; -+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -+is created, otherwise an executable program is created." -+ ;; - -- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -- # -r[0-9][0-9]* specifies the processor on the SGI compiler -- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -- # +DA*, +DD* enable 64-bit mode on the HP compiler -- # -q* pass through compiler args for the IBM compiler -- # -m* pass through architecture-specific compiler args for GCC -- # -m*, -t[45]*, -txscale* pass through architecture-specific -- # compiler args for GCC -- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -- # -F/path gives path to uninstalled frameworks, gcc on darwin -- # @file GCC response files -- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) -+ uninstall) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -- # 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 -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- compiler_flags="$compiler_flags $arg" -- continue -+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." - ;; - -- -shrext) -- prev=shrext -- continue -- ;; -+ *) -+ func_fatal_help "invalid operation mode \`$mode'" -+ ;; -+ esac - -- -no-fast-install) -- fast_install=no -- continue -- ;; -+ $ECHO -+ $ECHO "Try \`$progname --help' for more information about other modes." - -- -no-install) -- case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) -- # The PATH hackery in wrapper scripts is required on Windows -- # and Darwin 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 -- ;; -+ exit $? -+} - -- -no-undefined) -- allow_undefined=no -- continue -- ;; -+ # Now that we've collected a possible --mode arg, show help if necessary -+ $opt_help && func_mode_help - -- -objectlist) -- prev=objectlist -- continue -- ;; - -- -o) prev=output ;; -+# func_mode_execute arg... -+func_mode_execute () -+{ -+ $opt_debug -+ # The first argument is the command name. -+ cmd="$nonopt" -+ test -z "$cmd" && \ -+ func_fatal_help "you must specify a COMMAND" - -- -precious-files-regex) -- prev=precious_regex -- continue -- ;; -+ # Handle -dlopen flags immediately. -+ for file in $execute_dlfiles; do -+ test -f "$file" \ -+ || func_fatal_help "\`$file' is not a file" - -- -release) -- prev=release -- continue -- ;; -+ dir= -+ case $file in -+ *.la) -+ # Check to see that this really is a libtool archive. -+ func_lalib_unsafe_p "$file" \ -+ || func_fatal_help "\`$lib' is not a valid libtool archive" - -- -rpath) -- prev=rpath -- continue -- ;; -+ # Read the libtool library. -+ dlname= -+ library_names= -+ func_source "$file" - -- -R) -- prev=xrpath -- continue -- ;; -+ # Skip this library if it cannot be dlopened. -+ if test -z "$dlname"; then -+ # Warn if it was a shared library. -+ test -n "$library_names" && \ -+ func_warning "\`$file' was not linked with \`-export-dynamic'" -+ continue -+ fi - -- -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 $EXIT_FAILURE -- ;; -- esac -- case "$xrpath " in -- *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -- esac -- continue -- ;; -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" - -- -static | -static-libtool-libs) -- # 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 -+ if test -f "$dir/$objdir/$dlname"; then -+ dir="$dir/$objdir" -+ else -+ if test ! -f "$dir/$dlname"; then -+ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" -+ fi -+ fi - ;; - -- -thread-safe) -- thread_safe=yes -- continue -+ *.lo) -+ # Just add the directory containing the .lo file. -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" - ;; - -- -version-info) -- prev=vinfo -- continue -- ;; -- -version-number) -- prev=vinfo -- vinfo_number=yes -+ *) -+ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; -+ esac - -- -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/^ //"` -- ;; -+ # Get the absolute pathname. -+ absdir=`cd "$dir" && pwd` -+ test -n "$absdir" && dir="$absdir" - -- -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/^ //"` -- ;; -+ # 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 - -- -Xcompiler) -- prev=xcompiler -- continue -- ;; -+ # This variable tells wrapper scripts just to set shlibpath_var -+ # rather than running their programs. -+ libtool_execute_magic="$magic" - -- -Xlinker) -- prev=xlinker -- continue -+ # 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 func_ltwrapper_script_p "$file"; then -+ func_source "$file" -+ # Transform arg to wrapped name. -+ file="$progdir/$program" -+ elif func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ func_source "$func_ltwrapper_scriptname_result" -+ # Transform arg to wrapped name. -+ file="$progdir/$program" -+ fi - ;; -+ esac -+ # Quote arguments (to preserve shell metacharacters). -+ func_quote_for_eval "$file" -+ args="$args $func_quote_for_eval_result" -+ done - -- -XCClinker) -- prev=xcclinker -- continue -- ;; -+ if test "X$opt_dry_run" = Xfalse; then -+ if test -n "$shlibpath_var"; then -+ # Export the shlibpath_var. -+ eval "export $shlibpath_var" -+ fi - -- # 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 -- ;; -+ # Restore saved environment variables -+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -+ do -+ eval "if test \"\${save_$lt_var+set}\" = set; then -+ $lt_var=\$save_$lt_var; export $lt_var -+ else -+ $lt_unset $lt_var -+ fi" -+ done - -- *.$objext) -- # A standard object. -- objs="$objs $arg" -- ;; -+ # 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 $EXIT_SUCCESS -+ fi -+} - -- *.lo) -- # A libtool-controlled object. -+test "$mode" = execute && func_mode_execute ${1+"$@"} - -- # Check to see that this really is a libtool object. -- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- pic_object= -- non_pic_object= - -- # Read the .lo file -- # If there is no directory component, then add one. -- case $arg in -- */* | *\\*) . $arg ;; -- *) . ./$arg ;; -- esac -+# func_mode_finish arg... -+func_mode_finish () -+{ -+ $opt_debug -+ libdirs="$nonopt" -+ admincmds= - -- if test -z "$pic_object" || \ -- test -z "$non_pic_object" || -- test "$pic_object" = none && \ -- test "$non_pic_object" = none; then -- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit $EXIT_FAILURE -- fi -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -+ for dir -+ do -+ libdirs="$libdirs $dir" -+ done - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+ for libdir in $libdirs; do -+ if test -n "$finish_cmds"; then -+ # Do each command in the finish commands. -+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -+'"$cmd"'"' -+ fi -+ if test -n "$finish_eval"; then -+ # Do the single finish_eval. -+ eval cmds=\"$finish_eval\" -+ $opt_dry_run || eval "$cmds" || admincmds="$admincmds -+ $cmds" -+ fi -+ done -+ fi - -- if test "$pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- pic_object="$xdir$pic_object" -+ # Exit here if they wanted silent mode. -+ $opt_silent && exit $EXIT_SUCCESS - -- if test "$prev" = dlfiles; then -- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -- prev= -- continue -- else -- # If libtool objects are unsupported, then we need to preload. -- prev=dlprefiles -- fi -- fi -+ $ECHO "X----------------------------------------------------------------------" | $Xsed -+ $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\" - -- # CHECK ME: I think I busted this. -Ossama -- if test "$prev" = dlprefiles; then -- # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -- prev= -- fi -+ $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 - -- # A PIC object. -- libobjs="$libobjs $pic_object" -- arg="$pic_object" -- fi -+ $ECHO "See any operating system documentation about shared libraries for" -+ case $host in -+ solaris2.[6789]|solaris2.1[0-9]) -+ $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" -+ $ECHO "pages." -+ ;; -+ *) -+ $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." -+ ;; -+ esac -+ $ECHO "X----------------------------------------------------------------------" | $Xsed -+ exit $EXIT_SUCCESS -+} - -- # Non-PIC object. -- if test "$non_pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- non_pic_object="$xdir$non_pic_object" -+test "$mode" = finish && func_mode_finish ${1+"$@"} - -- # A standard non-PIC object -- non_pic_objects="$non_pic_objects $non_pic_object" -- if test -z "$pic_object" || test "$pic_object" = none ; then -- arg="$non_pic_object" -- fi -- else -- # If the PIC object exists, use it instead. -- # $xdir was prepended to $pic_object above. -- non_pic_object="$pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- else -- # Only an error if not doing a dry-run. -- if test -z "$run"; then -- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit $EXIT_FAILURE -- else -- # Dry-run case. - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+# func_mode_install arg... -+func_mode_install () -+{ -+ $opt_debug -+ # 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" | $GREP shtool >/dev/null; then -+ # Aesthetically quote it. -+ func_quote_for_eval "$nonopt" -+ install_prog="$func_quote_for_eval_result " -+ arg=$1 -+ shift -+ else -+ install_prog= -+ arg=$nonopt -+ fi - -- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` -- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -- libobjs="$libobjs $pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- fi -- ;; -+ # The real first argument should be the name of the installation program. -+ # Aesthetically quote it. -+ func_quote_for_eval "$arg" -+ install_prog="$install_prog$func_quote_for_eval_result" - -- *.$libext) -- # An archive. -- deplibs="$deplibs $arg" -- old_deplibs="$old_deplibs $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 -- ;; -- -- *.la) -- # A libtool-controlled library. -+ fi - -- 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" -+ case $arg in -+ -d) isdir=yes ;; -+ -f) -+ case " $install_prog " in -+ *[\\\ /]cp\ *) ;; -+ *) prev=$arg ;; -+ esac -+ ;; -+ -g | -m | -o) -+ prev=$arg -+ ;; -+ -s) -+ stripme=" -s" -+ continue -+ ;; -+ -*) -+ ;; -+ *) -+ # If the previous option needed an argument, then skip it. -+ if test -n "$prev"; then - prev= - else -- deplibs="$deplibs $arg" -+ dest=$arg -+ continue - fi -- continue - ;; -+ esac - -- # 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 -+ # Aesthetically quote the argument. -+ func_quote_for_eval "$arg" -+ install_prog="$install_prog $func_quote_for_eval_result" -+ done - -- # 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 -+ test -z "$install_prog" && \ -+ func_fatal_help "you must specify an install program" - -- if test -n "$prev"; then -- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -n "$prev" && \ -+ func_fatal_help "the \`$prev' option requires an argument" - -- 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" -+ if test -z "$files"; then -+ if test -z "$dest"; then -+ func_fatal_help "no file or destination specified" -+ else -+ func_fatal_help "you must specify a destination" -+ fi - fi - -- oldlibs= -- # calculate the name of the file, without its directory -- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` -- libobjs_save="$libobjs" -+ # Strip any trailing slash from the destination. -+ func_stripname '' '/' "$dest" -+ dest=$func_stripname_result - -- 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\'\` -+ # Check to see that the destination is a directory. -+ test -d "$dest" && isdir=yes -+ if test "$isdir" = yes; then -+ destdir="$dest" -+ destname= - 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\" -+ func_dirname_and_basename "$dest" "" "." -+ destdir="$func_dirname_result" -+ destname="$func_basename_result" - -- 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 -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then -- exit $exit_status -- fi -+ # Not a directory, so check to see that there is only one file specified. -+ set dummy $files; shift -+ test "$#" -gt 1 && \ -+ func_fatal_help "\`$dest' is not a directory" - fi -- -- # Determine the type of output -- case $output in -- "") -- $echo "$modename: you must specify an output file" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- *.$libext) linkmode=oldlib ;; -- *.lo | *.$objext) linkmode=obj ;; -- *.la) linkmode=lib ;; -- *) linkmode=prog ;; # Anything else should be a program. -- esac -- -- case $host in -- *cygwin* | *mingw* | *pw32*) -- # don't eliminate duplications in $postdeps and $predeps -- duplicate_compiler_generated_deps=yes -- ;; -+ case $destdir in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; - *) -- duplicate_compiler_generated_deps=$duplicate_deps -+ for file in $files; do -+ case $file in -+ *.lo) ;; -+ *) -+ func_fatal_help "\`$destdir' must be an absolute directory name" -+ ;; -+ esac -+ done - ;; - 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 -+ # This variable tells wrapper scripts just to set variables rather -+ # than running their programs. -+ libtool_install_magic="$magic" - -- if test "$linkmode" = lib; then -- libs="$predeps $libs $compiler_lib_search_path $postdeps" -+ staticlibs= -+ future_libdirs= -+ current_libdirs= -+ for file in $files; do - -- # Compute libraries that are listed more than once in $predeps -- # $postdeps and mark them as special (i.e., whose duplicates are -- # not to be eliminated). -- pre_post_deps= -- if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then -- for pre_post_dep in $predeps $postdeps; do -- case "$pre_post_deps " in -- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -+ # 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. -+ func_lalib_unsafe_p "$file" \ -+ || func_fatal_help "\`$file' is not a valid libtool archive" -+ -+ library_names= -+ old_library= -+ relink_command= -+ func_source "$file" -+ -+ # Add the libdir to current_libdirs if it is the destination. -+ if test "X$destdir" = "X$libdir"; then -+ case "$current_libdirs " in -+ *" $libdir "*) ;; -+ *) current_libdirs="$current_libdirs $libdir" ;; - esac -- pre_post_deps="$pre_post_deps $pre_post_dep" -- done -- fi -- pre_post_deps= -- fi -+ else -+ # Note the libdir as a future libdir. -+ case "$future_libdirs " in -+ *" $libdir "*) ;; -+ *) future_libdirs="$future_libdirs $libdir" ;; -+ esac -+ fi - -- deplibs= -- newdependency_libs= -- newlib_search_path= -- need_relink=no # whether we're linking any uninstalled libtool libraries -- notinst_deplibs= # 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 $EXIT_FAILURE -+ func_dirname "$file" "/" "" -+ dir="$func_dirname_result" -+ dir="$dir$objdir" -+ -+ if test -n "$relink_command"; then -+ # Determine the prefix the user has applied to our future dir. -+ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` -+ -+ # Don't allow the user to place us outside of our expected -+ # location b/c this prevents finding dependent libraries that -+ # are installed to the same prefix. -+ # At present, this check doesn't affect windows .dll's that -+ # are installed into $libdir/../bin (currently, that works fine) -+ # but it's something to keep an eye on. -+ test "$inst_prefix_dir" = "$destdir" && \ -+ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" -+ -+ if test -n "$inst_prefix_dir"; then -+ # Stick the inst_prefix_dir data into the link command. -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` -+ else -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` -+ fi -+ -+ func_warning "relinking \`$file'" -+ func_show_eval "$relink_command" \ -+ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' -+ fi -+ -+ # See the names of the shared library. -+ set dummy $library_names; shift -+ if test -n "$1"; then -+ realname="$1" -+ shift -+ -+ srcname="$realname" -+ test -n "$relink_command" && srcname="$realname"T -+ -+ # Install the shared library and build the symlinks. -+ func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ -+ 'exit $?' -+ tstripme="$stripme" -+ case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ case $realname in -+ *.dll.a) -+ tstripme="" -+ ;; -+ esac - ;; - 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,$pass" = "lib,link" || -- test "$linkmode,$pass" = "prog,scan"; then -- libs="$deplibs" -- deplibs= -- fi -- if test "$linkmode" = prog; then -- case $pass in -- dlopen) libs="$dlfiles" ;; -- dlpreopen) libs="$dlprefiles" ;; -- link) -- libs="$deplibs %DEPLIBS%" -- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" -- ;; -- esac -- fi -- if test "$pass" = dlopen; then -- # Collect dlpreopened libraries -- save_deplibs="$deplibs" -- deplibs= -- fi -- for deplib in $libs; do -- lib= -- found=no -- case $deplib in -- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -- if test "$linkmode,$pass" = "prog,link"; then -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- else -- compiler_flags="$compiler_flags $deplib" -- fi -- continue -- ;; -- -l*) -- if test "$linkmode" != lib && test "$linkmode" != prog; then -- $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 -- continue -- fi -- name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` -- if test "$linkmode" = lib; then -- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" -- else -- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" -+ if test -n "$tstripme" && test -n "$striplib"; then -+ func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi -- for searchdir in $searchdirs; do -- for search_ext in .la $std_shrext .so .a; do -- # Search the libtool library -- lib="$searchdir/lib${name}${search_ext}" -- if test -f "$lib"; then -- if test "$search_ext" = ".la"; then -- found=yes -- else -- found=no -- fi -- break 2 -- fi -+ -+ if test "$#" -gt 0; then -+ # Delete the old symlinks, and create new ones. -+ # Try `ln -sf' first, because the `ln' binary might depend on -+ # the symlink we replace! Solaris /bin/ln does not understand -f, -+ # so we also need to try rm && ln -s. -+ for linkname -+ do -+ test "$linkname" != "$realname" \ -+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done -- 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 -- else # deplib is a libtool library -- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, -- # We need to do some special things here, and not later. -- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -- case " $predeps $postdeps " in -- *" $deplib "*) -- if (${SED} -e '2q' $lib | -- grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- library_names= -- old_library= -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -- for l in $old_library $library_names; do -- ll="$l" -- done -- if test "X$ll" = "X$old_library" ; then # only static version available -- found=no -- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -- test "X$ladir" = "X$lib" && ladir="." -- lib=$ladir/$old_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 -- fi -- ;; -- *) ;; -- esac -- fi -- 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" -- else -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- fi -- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` -- ;; -- *) -- $echo "$modename: warning: \`-L' is ignored for archives/objects" 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) -- valid_a_lib=no -- case $deplibs_check_method in -- match_pattern*) -- set dummy $deplibs_check_method -- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` -- if eval $echo \"$deplib\" 2>/dev/null \ -- | $SED 10q \ -- | $EGREP "$match_pattern_regex" > /dev/null; then -- valid_a_lib=yes -- fi -- ;; -- pass_all) -- valid_a_lib=yes -- ;; -- esac -- if test "$valid_a_lib" != yes; 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" = conv; then -- deplibs="$deplib $deplibs" -- elif test "$linkmode" = prog; then -- 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 - 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' or unhandled argument \`$deplib'" 1>&2 -- exit $EXIT_FAILURE -- fi - -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -- else -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -+ # Do each command in the postinstall commands. -+ lib="$destdir/$realname" -+ func_execute_cmds "$postinstall_cmds" 'exit $?' - 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 variables installed, or shouldnotlink -- installed=yes -- shouldnotlink=no -- avoidtemprpath= -+ # Install the pseudo-library for information purposes. -+ func_basename "$file" -+ name="$func_basename_result" -+ instname="$dir/$name"i -+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - -+ # Maybe install the static library, too. -+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -+ ;; - -- # Read the .la file -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -+ *.lo) -+ # Install (i.e. copy) a libtool object. - -- if test "$linkmode,$pass" = "lib,link" || -- test "$linkmode,$pass" = "prog,scan" || -- { test "$linkmode" != prog && test "$linkmode" != lib; }; then -- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" -- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" -+ # Figure out destination file name, if it wasn't already specified. -+ if test -n "$destname"; then -+ destfile="$destdir/$destname" -+ else -+ func_basename "$file" -+ destfile="$func_basename_result" -+ destfile="$destdir/$destfile" - 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 $EXIT_FAILURE -- 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 $EXIT_FAILURE -- fi -- continue -- fi # $pass = conv -+ # Deduce the name of the destination old-style object file. -+ case $destfile in -+ *.lo) -+ func_lo2o "$destfile" -+ staticdest=$func_lo2o_result -+ ;; -+ *.$objext) -+ staticdest="$destfile" -+ destfile= -+ ;; -+ *) -+ func_fatal_help "cannot copy a libtool object to \`$destfile'" -+ ;; -+ esac - -+ # Install the libtool object if requested. -+ test -n "$destfile" && \ -+ func_show_eval "$install_prog $file $destfile" 'exit $?' - -- # 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 $EXIT_FAILURE -+ # Install the old object if enabled. -+ if test "$build_old_libs" = yes; then -+ # Deduce the name of the old-style object file. -+ func_lo2o "$file" -+ staticobj=$func_lo2o_result -+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi -+ exit $EXIT_SUCCESS -+ ;; - -- # 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 $EXIT_FAILURE -- 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. We also need to preload any -- # dependent libraries so libltdl's deplib preloader doesn't -- # bomb out in the load deplibs phase. -- dlprefiles="$dlprefiles $lib $dependency_libs" -- else -- newdlfiles="$newdlfiles $lib" -- fi -- continue -- fi # $pass = dlopen -- -- # We need an absolute path. -- case $ladir in -- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; -+ *) -+ # Figure out destination file name, if it wasn't already specified. -+ if test -n "$destname"; then -+ destfile="$destdir/$destname" -+ else -+ func_basename "$file" -+ destfile="$func_basename_result" -+ destfile="$destdir/$destfile" -+ fi -+ -+ # If the file is missing, and there is a .exe on the end, strip it -+ # because it is most likely a libtool script we actually want to -+ # install -+ stripped_ext="" -+ case $file in -+ *.exe) -+ if test ! -f "$file"; then -+ func_stripname '' '.exe' "$file" -+ file=$func_stripname_result -+ stripped_ext=".exe" -+ fi -+ ;; -+ esac -+ -+ # Do a test to see if this is really a libtool program. -+ case $host in -+ *cygwin* | *mingw*) -+ if func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ wrapper=$func_ltwrapper_scriptname_result -+ else -+ func_stripname '' '.exe' "$file" -+ wrapper=$func_stripname_result -+ fi -+ ;; - *) -- 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" -+ wrapper=$file -+ ;; -+ esac -+ if func_ltwrapper_script_p "$wrapper"; then -+ notinst_deplibs= -+ relink_command= -+ -+ func_source "$wrapper" -+ -+ # Check the variables that should have been set. -+ test -z "$generated_by_libtool_version" && \ -+ func_fatal_error "invalid libtool wrapper script \`$wrapper'" -+ -+ finalize=yes -+ for lib in $notinst_deplibs; do -+ # Check to see that each library is installed. -+ libdir= -+ if test -f "$lib"; then -+ func_source "$lib" -+ fi -+ libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test -+ if test -n "$libdir" && test ! -f "$libfile"; then -+ func_warning "\`$lib' has not been installed in \`$libdir'" -+ finalize=no -+ fi -+ done -+ -+ relink_command= -+ func_source "$wrapper" -+ -+ outputname= -+ if test "$fast_install" = no && test -n "$relink_command"; then -+ $opt_dry_run || { -+ if test "$finalize" = yes; then -+ tmpdir=`func_mktempdir` -+ func_basename "$file$stripped_ext" -+ file="$func_basename_result" -+ outputname="$tmpdir/$file" -+ # Replace the output file specification. -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` -+ -+ $opt_silent || { -+ func_quote_for_expand "$relink_command" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ if eval "$relink_command"; then : -+ else -+ func_error "error: relink \`$file' with the above command before installing it" -+ $opt_dry_run || ${RM}r "$tmpdir" -+ continue -+ fi -+ file="$outputname" -+ else -+ func_warning "cannot relink \`$file'" -+ fi -+ } -+ else -+ # Install the binary that we compiled earlier. -+ file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi -+ fi -+ -+ # remove .exe since cygwin /usr/bin/install will append another -+ # one anyway -+ case $install_prog,$host in -+ */usr/bin/install*,*cygwin*) -+ case $file:$destfile in -+ *.exe:*.exe) -+ # this is ok -+ ;; -+ *.exe:*) -+ destfile=$destfile.exe -+ ;; -+ *:*.exe) -+ func_stripname '' '.exe' "$destfile" -+ destfile=$func_stripname_result -+ ;; -+ esac - ;; - esac -- laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' -+ $opt_dry_run || if test -n "$outputname"; then -+ ${RM}r "$tmpdir" -+ fi -+ ;; -+ esac -+ done - -- # 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" -+ for file in $staticlibs; do -+ func_basename "$file" -+ name="$func_basename_result" -+ -+ # Set up the ranlib parameters. -+ oldlib="$destdir/$name" -+ -+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?' -+ -+ if test -n "$stripme" && test -n "$old_striplib"; then -+ func_show_eval "$old_striplib $oldlib" 'exit $?' -+ fi -+ -+ # Do each command in the postinstall commands. -+ func_execute_cmds "$old_postinstall_cmds" 'exit $?' -+ done -+ -+ test -n "$future_libdirs" && \ -+ func_warning "remember to run \`$progname --finish$future_libdirs'" -+ -+ if test -n "$current_libdirs"; then -+ # Maybe just do a dry run. -+ $opt_dry_run && current_libdirs=" -n$current_libdirs" -+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -+ else -+ exit $EXIT_SUCCESS -+ fi -+} -+ -+test "$mode" = install && func_mode_install ${1+"$@"} -+ -+ -+# func_generate_dlsyms outputname originator pic_p -+# Extract symbols from dlprefiles and create ${outputname}S.o with -+# a dlpreopen symbol table. -+func_generate_dlsyms () -+{ -+ $opt_debug -+ my_outputname="$1" -+ my_originator="$2" -+ my_pic_p="${3-no}" -+ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` -+ my_dlsyms= -+ -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ if test -n "$NM" && test -n "$global_symbol_pipe"; then -+ my_dlsyms="${my_outputname}S.c" -+ else -+ func_error "not configured to extract global symbols from dlpreopened files" -+ fi -+ fi -+ -+ if test -n "$my_dlsyms"; then -+ case $my_dlsyms in -+ "") ;; -+ *.c) -+ # Discover the nlist of each of the dlfiles. -+ nlist="$output_objdir/${my_outputname}.nm" -+ -+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T" -+ -+ # Parse the name list into a source file. -+ func_verbose "creating $output_objdir/$my_dlsyms" -+ -+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ -+ -+#ifdef __cplusplus -+extern \"C\" { -+#endif -+ -+/* External symbol declarations for the compiler. */\ -+" -+ -+ if test "$dlself" = yes; then -+ func_verbose "generating symbol list for \`$output'" -+ -+ $opt_dry_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 progfile in $progfiles; do -+ func_verbose "extracting global C symbols from \`$progfile'" -+ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" -+ done -+ -+ if test -n "$exclude_expsyms"; then -+ $opt_dry_run || { -+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ } - fi -- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes -- else -- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then -- dir="$ladir" -- absdir="$abs_ladir" -- # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ -+ if test -n "$export_symbols_regex"; then -+ $opt_dry_run || { -+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ } -+ fi -+ -+ # Prepare the list of exported symbols -+ if test -z "$export_symbols"; then -+ export_symbols="$output_objdir/$outputname.exp" -+ $opt_dry_run || { -+ $RM $export_symbols -+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac -+ } - else -- dir="$ladir/$objdir" -- absdir="$abs_ladir/$objdir" -- # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ $opt_dry_run || { -+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ case $host in -+ *cygwin | *mingw* | *cegcc* ) -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac -+ } - fi -- fi # $installed = yes -- name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` -+ fi - -- # 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 $EXIT_FAILURE -+ for dlprefile in $dlprefiles; do -+ func_verbose "extracting global C symbols from \`$dlprefile'" -+ func_basename "$dlprefile" -+ name="$func_basename_result" -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ done -+ -+ $opt_dry_run || { -+ # 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 -- # 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" -+ -+ # Try sorting and uniquifying the output. -+ if $GREP -v "^: " < "$nlist" | -+ if sort -k 3 /dev/null 2>&1; then -+ sort -k 3 -+ else -+ sort +2 -+ fi | -+ uniq > "$nlist"S; then -+ : - else -- newdlprefiles="$newdlprefiles $dir/$linklib" -+ $GREP -v "^: " < "$nlist" > "$nlist"S - 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" -+ if test -f "$nlist"S; then -+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else -- deplibs="$lib $deplibs" # used for prog,scan pass -+ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi -- continue -- fi -- - -- if test "$linkmode" = prog && test "$pass" != link; then -- newlib_search_path="$newlib_search_path $ladir" -- deplibs="$lib $deplibs" -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ - -- linkalldeplibs=no -- if test "$link_all_deplibs" != no || test -z "$library_names" || -- test "$build_libtool_libs" = no; then -- linkalldeplibs=yes -- fi -+/* The mapping between symbol names and symbols. */ -+typedef struct { -+ const char *name; -+ void *address; -+} lt_dlsymlist; -+" -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+/* DATA imports from DLLs on WIN32 con't be const, because -+ runtime relocations are performed -- see ld's documentation -+ on pseudo-relocs. */" -+ lt_dlsym_const= ;; -+ *osf5*) -+ echo >> "$output_objdir/$my_dlsyms" "\ -+/* This system does not cope well with relocations in const data */" -+ lt_dlsym_const= ;; -+ *) -+ lt_dlsym_const=const ;; -+ esac - -- 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... -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+extern $lt_dlsym_const lt_dlsymlist -+lt_${my_prefix}_LTX_preloaded_symbols[]; -+$lt_dlsym_const lt_dlsymlist -+lt_${my_prefix}_LTX_preloaded_symbols[] = -+{\ -+ { \"$my_originator\", (void *) 0 }," - -- if test "$linkmode,$pass" = "prog,link"; then -- if test -n "$library_names" && -- { { test "$prefer_static_libs" = no || -- test "$prefer_static_libs,$installed" = "built,yes"; } || -- test -z "$old_library"; }; then -- # We need to hardcode the library path -- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then -- # Make sure the rpath contains only unique directories. -- case "$temp_rpath " in -- *" $dir "*) ;; -- *" $absdir "*) ;; -- *) temp_rpath="$temp_rpath $absdir" ;; -- esac -- fi -+ case $need_lib_prefix in -+ no) -+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" -+ ;; -+ *) -+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" -+ ;; -+ esac -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+ {0, (void *) 0} -+}; - -- # 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 -- 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 -- fi -+/* This works around a problem in FreeBSD linker */ -+#ifdef FREEBSD_WORKAROUND -+static const void *lt_preloaded_setup() { -+ return lt_${my_prefix}_LTX_preloaded_symbols; -+} -+#endif - -- link_static=no # Whether the deplib will be linked statically -- use_static_libs=$prefer_static_libs -- if test "$use_static_libs" = built && test "$installed" = yes ; then -- use_static_libs=no -- fi -- if test -n "$library_names" && -- { test "$use_static_libs" = no || test -z "$old_library"; }; then -- if test "$installed" = no; then -- notinst_deplibs="$notinst_deplibs $lib" -- need_relink=yes -- fi -- # This is a shared library -+#ifdef __cplusplus -+} -+#endif\ -+" -+ } # !$opt_dry_run - -- # Warn about portability, can't link against -module's on -- # some systems (darwin) -- if test "$shouldnotlink" = yes && test "$pass" = link ; then -- $echo -- if test "$linkmode" = prog; then -- $echo "*** Warning: Linking the executable $output against the loadable module" -- else -- $echo "*** Warning: Linking the shared library $output against the loadable module" -+ pic_flag_for_symtable= -+ case "$compile_command " in -+ *" -static "*) ;; -+ *) -+ 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*) -+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; -+ *-*-hpux*) -+ pic_flag_for_symtable=" $pic_flag" ;; -+ *) -+ if test "X$my_pic_p" != Xno; then -+ pic_flag_for_symtable=" $pic_flag" - fi -- $echo "*** $linklib is not portable!" -- fi -- if 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 -+ ;; -+ esac -+ ;; -+ esac -+ symtab_cflags= -+ for arg in $LTCFLAGS; do -+ case $arg in -+ -pie | -fpie | -fPIE) ;; -+ *) symtab_cflags="$symtab_cflags $arg" ;; -+ esac -+ done -+ -+ # Now compile the dynamic symbol file. -+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' -+ -+ # Clean up the generated files. -+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' -+ -+ # Transform the symbol file into the correct name. -+ symfileobj="$output_objdir/${my_outputname}S.$objext" -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ if test -f "$output_objdir/$my_outputname.def"; then -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` -+ else -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - fi -+ ;; -+ *) -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ ;; -+ esac -+ ;; -+ *) -+ func_fatal_error "unknown suffix for \`$my_dlsyms'" -+ ;; -+ 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 -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* | mingw*) -- major=`expr $current - $age` -- versuffix="-$major" -- ;; -- esac -- eval soname=\"$soname_spec\" -- else -- soname="$realname" -- fi -+# func_win32_libid arg -+# return the library type of file 'arg' -+# -+# Need a lot of goo to handle *both* DLLs and import libs -+# Has to be a shell function in order to 'eat' the argument -+# that is supplied when $file_magic_command is called. -+func_win32_libid () -+{ -+ $opt_debug -+ win32_libid_type="unknown" -+ win32_fileres=`file -L $1 2>/dev/null` -+ case $win32_fileres in -+ *ar\ archive\ import\ library*) # definitely import -+ win32_libid_type="x86 archive import" -+ ;; -+ *ar\ archive*) # could be an import, or static -+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -+ $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then -+ win32_nmres=`eval $NM -f posix -A $1 | -+ $SED -n -e ' -+ 1,100{ -+ / I /{ -+ s,.*,import, -+ p -+ q -+ } -+ }'` -+ case $win32_nmres in -+ import*) win32_libid_type="x86 archive import";; -+ *) win32_libid_type="x86 archive static";; -+ esac -+ fi -+ ;; -+ *DLL*) -+ win32_libid_type="x86 DLL" -+ ;; -+ *executable*) # but shell scripts are "executable" too... -+ case $win32_fileres in -+ *MS\ Windows\ PE\ Intel*) -+ win32_libid_type="x86 DLL" -+ ;; -+ esac -+ ;; -+ esac -+ $ECHO "$win32_libid_type" -+} - -- # 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='~' -- cmds=$extract_expsyms_cmds -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $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='~' -- cmds=$old_archive_from_expsyms_cmds -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $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" -+# func_extract_an_archive dir oldlib -+func_extract_an_archive () -+{ -+ $opt_debug -+ f_ex_an_ar_dir="$1"; shift -+ f_ex_an_ar_oldlib="$1" -+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' -+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then -+ : -+ else -+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" -+ fi -+} - -- 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" -- case $host in -- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; -- *-*-sysv4*uw2*) add_dir="-L$dir" ;; -- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ -- *-*-unixware7*) add_dir="-L$dir" ;; -- *-*-darwin* ) -- # if the lib is a module then we can not link against -- # it, someone is ignoring the new warnings I added -- if /usr/bin/file -L $add 2> /dev/null | -- $EGREP ": [^:]* bundle" >/dev/null ; then -- $echo "** Warning, lib $linklib is a module, not a shared library" -- if test -z "$old_library" ; then -- $echo -- $echo "** And there doesn't seem to be a static archive available" -- $echo "** The link will probably fail, sorry" -- else -- add="$dir/$old_library" -- fi -- fi -- esac -- 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" -- # Try looking first in the location we're being installed to. -- if test -n "$inst_prefix_dir"; then -- case $libdir in -- [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -- ;; -- esac -- fi -- 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 $EXIT_FAILURE -- fi -+# func_extract_archives gentop oldlib ... -+func_extract_archives () -+{ -+ $opt_debug -+ my_gentop="$1"; shift -+ my_oldlibs=${1+"$@"} -+ my_oldobjs="" -+ my_xlib="" -+ my_xabs="" -+ my_xdir="" - -- 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 -+ for my_xlib in $my_oldlibs; do -+ # Extract the objects. -+ case $my_xlib in -+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; -+ *) my_xabs=`pwd`"/$my_xlib" ;; -+ esac -+ func_basename "$my_xlib" -+ my_xlib="$func_basename_result" -+ my_xlib_u=$my_xlib -+ while :; do -+ case " $extracted_archives " in -+ *" $my_xlib_u "*) -+ func_arith $extracted_serial + 1 -+ extracted_serial=$func_arith_result -+ my_xlib_u=lt$extracted_serial-$my_xlib ;; -+ *) break ;; -+ esac -+ done -+ extracted_archives="$extracted_archives $my_xlib_u" -+ my_xdir="$my_gentop/$my_xlib_u" - -- 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" -- elif test "$hardcode_automatic" = yes; then -- if test -n "$inst_prefix_dir" && -- test -f "$inst_prefix_dir$libdir/$linklib" ; then -- add="$inst_prefix_dir$libdir/$linklib" -- else -- add="$libdir/$linklib" -- fi -- else -- # We cannot seem to hardcode it, guess we'll fake it. -- add_dir="-L$libdir" -- # Try looking first in the location we're being installed to. -- if test -n "$inst_prefix_dir"; then -- case $libdir in -- [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -- ;; -- esac -- fi -- add="-l$name" -- fi -+ func_mkdir_p "$my_xdir" - -- 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 -- # 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" -+ case $host in -+ *-darwin*) -+ func_verbose "Extracting $my_xabs" -+ # Do not bother doing anything if just a dry run -+ $opt_dry_run || { -+ darwin_orig_dir=`pwd` -+ cd $my_xdir || exit $? -+ darwin_archive=$my_xabs -+ darwin_curdir=`pwd` -+ darwin_base_archive=`basename "$darwin_archive"` -+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` -+ if test -n "$darwin_arches"; then -+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` -+ darwin_arch= -+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" -+ for darwin_arch in $darwin_arches ; do -+ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" -+ $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" -+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" -+ func_extract_an_archive "`pwd`" "${darwin_base_archive}" -+ cd "$darwin_curdir" -+ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" -+ done # $darwin_arches -+ ## Okay now we've a bunch of thin objects, gotta fatten them up :) -+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` -+ darwin_file= -+ darwin_files= -+ for darwin_file in $darwin_filelist; do -+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -+ $LIPO -create -output "$darwin_file" $darwin_files -+ done # $darwin_filelist -+ $RM -rf unfat-$$ -+ cd "$darwin_orig_dir" - 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. -+ cd $darwin_orig_dir -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ fi # $darwin_arches -+ } # !$opt_dry_run -+ ;; -+ *) -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ ;; -+ esac -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -+ done - -- # 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 -- deplibs="$dir/$old_library $deplibs" -- link_static=yes -- fi -- fi # link shared/static library? -+ func_extract_archives_result="$my_oldobjs" -+} - -- 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="$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 $EXIT_FAILURE -- fi -- if test "$absdir" != "$libdir"; then -- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 -- fi -- path="$absdir" -- fi -- depdepl= -- case $host in -- *-*-darwin*) -- # we do not want to link against static libs, -- # but need to link against shared -- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -- eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -- if test -n "$deplibrary_names" ; then -- for tmp in $deplibrary_names ; do -- depdepl=$tmp -- done -- if test -f "$deplibdir/$depdepl" ; then -- depdepl="$deplibdir/$depdepl" -- elif test -f "$path/$depdepl" ; then -- depdepl="$path/$depdepl" -- else -- # Can't find it, oh well... -- depdepl= -- fi -- # do not add paths which are already there -- case " $newlib_search_path " in -- *" $path "*) ;; -- *) newlib_search_path="$newlib_search_path $path";; -- esac -- fi -- path="" -- ;; -- *) -- path="-L$path" -- ;; -- esac -- ;; -- -l*) -- case $host in -- *-*-darwin*) -- # Again, we only want to link against shared libraries -- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` -- for tmp in $newlib_search_path ; do -- if test -f "$tmp/lib$tmp_libs.dylib" ; then -- eval depdepl="$tmp/lib$tmp_libs.dylib" -- break -- fi -- done -- path="" -- ;; -- *) continue ;; -- esac -- ;; -- *) continue ;; -- esac -- case " $deplibs " in -- *" $path "*) ;; -- *) deplibs="$path $deplibs" ;; -- esac -- case " $deplibs " in -- *" $depdepl "*) ;; -- *) deplibs="$depdepl $deplibs" ;; -- esac -- done -- fi # link_all_deplibs != no -- fi # linkmode = lib -- done # for deplib in $libs -- dependency_libs="$newdependency_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 -- 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= -+# func_emit_wrapper_part1 [arg=no] -+# -+# Emit the first part of a libtool wrapper script on stdout. -+# For more information, see the description associated with -+# func_emit_wrapper(), below. -+func_emit_wrapper_part1 () -+{ -+ func_emit_wrapper_part1_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_part1_arg1=$1 - 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 -- # FIXME: Pedantically, this is the right thing to do, so -- # that some nasty dependency loop isn't accidentally -- # broken: -- #new_libs="$deplib $new_libs" -- # Pragmatically, this seems to cause very few problems in -- # practice: -- case $deplib in -- -L*) new_libs="$deplib $new_libs" ;; -- -R*) ;; -- *) -- # And here is the reason: when a library appears more -- # than once as an explicit dependence of a library, or -- # is implicitly linked in more than once by the -- # compiler, it is considered special, and multiple -- # occurrences thereof are not removed. Compare this -- # with having the same library being listed as a -- # dependency of multiple other libraries: in this case, -- # we know (pedantically, we assume) the library does not -- # need to be listed more than once, so we keep only the -- # last copy. This is not always right, but it is rare -- # enough that we require users that really mean to play -- # such unportable linking tricks to link the library -- # using -Wl,-lname, so that libtool does not consider it -- # for duplicate removal. -- 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 -- # Last step: remove runtime libs from dependency_libs -- # (they stay in deplibs) -- tmp_libs= -- for i in $dependency_libs ; do -- case " $predeps $postdeps $compiler_lib_search_path " in -- *" $i "*) -- i="" -- ;; -- esac -- if test -n "$i" ; then -- tmp_libs="$tmp_libs $i" -- fi -- done -- dependency_libs=$tmp_libs -- done # for pass -- if test "$linkmode" = prog; then -- dlfiles="$newdlfiles" -- dlprefiles="$newdlprefiles" -+ $ECHO "\ -+#! $SHELL -+ -+# $output - temporary wrapper script for $objdir/$outputname -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -+# -+# 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' -+ -+# Be Bourne compatible -+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '\${1+\"\$@\"}'='\"\$@\"' -+ setopt NO_GLOB_SUBST -+else -+ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -+fi -+BIN_SH=xpg4; export BIN_SH # for Tru64 -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+# The HP-UX ksh and POSIX shell print the target directory to stdout -+# if CDPATH is set. -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+ -+relink_command=\"$relink_command\" -+ -+# This environment variable determines our operation mode. -+if test \"\$libtool_install_magic\" = \"$magic\"; then -+ # install mode needs the following variables: -+ generated_by_libtool_version='$macro_version' -+ 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 "\ - -- case $linkmode in -- oldlib) -- case " $deplibs" in -- *\ -l* | *\ -L*) -- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; -+ # 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 - -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 -- fi -+ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` -+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` -+ done -+" -+} -+# end: func_emit_wrapper_part1 - -- if test -n "$rpath"; then -- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 -- fi -+# func_emit_wrapper_part2 [arg=no] -+# -+# Emit the second part of a libtool wrapper script on stdout. -+# For more information, see the description associated with -+# func_emit_wrapper(), below. -+func_emit_wrapper_part2 () -+{ -+ func_emit_wrapper_part2_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_part2_arg1=$1 -+ fi -+ -+ $ECHO "\ -+ -+ # Usually 'no', except on cygwin/mingw when embedded into -+ # the cwrapper. -+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 -+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then -+ # special case for '.' -+ if test \"\$thisdir\" = \".\"; then -+ thisdir=\`pwd\` -+ fi -+ # remove .libs from thisdir -+ case \"\$thisdir\" in -+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; -+ $objdir ) thisdir=. ;; -+ esac -+ fi - -- if test -n "$xrpath"; then -- $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 -- fi -+ # Try to get the absolute directory name. -+ absdir=\`cd \"\$thisdir\" && pwd\` -+ test -n \"\$absdir\" && thisdir=\"\$absdir\" -+" - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 -- fi -+ if test "$fast_install" = yes; then -+ $ECHO "\ -+ program=lt-'$outputname'$exeext -+ progdir=\"\$thisdir/$objdir\" - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 -- fi -+ if test ! -f \"\$progdir/\$program\" || -+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ -+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then - -- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then -- $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 -- fi -+ file=\"\$\$-\$program\" - -- # Now set the variables for building old libraries. -- build_libtool_libs=no -- oldlibs="$output" -- objs="$objs$old_deplibs" -- ;; -+ if test ! -d \"\$progdir\"; then -+ $MKDIR \"\$progdir\" -+ else -+ $RM \"\$progdir/\$file\" -+ fi" - -- 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 shared_ext=\"$shrext_cmds\" -- 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 $EXIT_FAILURE -- 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 shared_ext=\"$shrext_cmds\" -- eval libname=\"$libname_spec\" -- else -- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -- fi -- ;; -- esac -+ $ECHO "\ - -- 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 $EXIT_FAILURE -+ # 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 -- $echo "*** Warning: Linking the shared library $output against the non-libtool" -- $echo "*** objects $objs is not portable!" -- libobjs="$libobjs $objs" -+ $ECHO "\ -+ program='$outputname' -+ progdir=\"\$thisdir/$objdir\" -+" - fi -- fi - -- if test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 -- fi -+ $ECHO "\ - -- 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" -+ if test -f \"\$progdir/\$program\"; then" - -- oldlibs= -- if test -z "$rpath"; then -- if test "$build_libtool_libs" = yes; then -- # Building a libtool convenience library. -- # Some compilers have problems with a `.al' extension so -- # convenience libraries should have the same extension an -- # archive normally would. -- oldlibs="$output_objdir/$libname.$libext $oldlibs" -- build_libtool_libs=convenience -- build_old_libs=yes -- fi -+ # Export our shlibpath_var if we have one. -+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -+ $ECHO "\ -+ # 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/::*\$//'\` - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 -+ export $shlibpath_var -+" - fi - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 -+ # fixup the dll searchpath if we need to. -+ if test -n "$dllsearchpath"; then -+ $ECHO "\ -+ # Add the dll search path components to the executable PATH -+ PATH=$dllsearchpath:\$PATH -+" - fi -- else - -- # Parse the version information argument. -- save_ifs="$IFS"; IFS=':' -- set dummy $vinfo 0 0 0 -- IFS="$save_ifs" -+ $ECHO "\ -+ if test \"\$libtool_execute_magic\" != \"$magic\"; then -+ # Run the actual program with our arguments. -+" -+ case $host in -+ # Backslashes separate directories on plain windows -+ *-*-mingw | *-*-os2* | *-cegcc*) -+ $ECHO "\ -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -+" -+ ;; -+ -+ *) -+ $ECHO "\ -+ exec \"\$progdir/\$program\" \${1+\"\$@\"} -+" -+ ;; -+ esac -+ $ECHO "\ -+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -+ 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\ -+" -+} -+# end: func_emit_wrapper_part2 -+ - -- if test -n "$8"; then -- $echo "$modename: too many parameters to \`-version-info'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+# func_emit_wrapper [arg=no] -+# -+# Emit a libtool wrapper script on stdout. -+# Don't directly open a file because we may want to -+# incorporate the script contents within a cygwin/mingw -+# wrapper executable. Must ONLY be called from within -+# func_mode_link because it depends on a number of variables -+# set therein. -+# -+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -+# variable will take. If 'yes', then the emitted script -+# will assume that the directory in which it is stored is -+# the $objdir directory. This is a cygwin/mingw-specific -+# behavior. -+func_emit_wrapper () -+{ -+ func_emit_wrapper_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_arg1=$1 - fi - -- # convert absolute version numbers to libtool ages -- # this retains compatibility with .la files and attempts -- # to make the code below a bit more comprehensible -+ # split this up so that func_emit_cwrapperexe_src -+ # can call each part independently. -+ func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" -+ func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" -+} - -- case $vinfo_number in -- yes) -- number_major="$2" -- number_minor="$3" -- number_revision="$4" -- # -- # There are really only two kinds -- those that -- # use the current revision as the major version -- # and those that subtract age and use age as -- # a minor version. But, then there is irix -- # which has an extra 1 added just for fun -- # -- case $version_type in -- darwin|linux|osf|windows|none) -- current=`expr $number_major + $number_minor` -- age="$number_minor" -- revision="$number_revision" -- ;; -- freebsd-aout|freebsd-elf|sunos) -- current="$number_major" -- revision="$number_minor" -- age="0" -- ;; -- irix|nonstopux) -- current=`expr $number_major + $number_minor` -- age="$number_minor" -- revision="$number_minor" -- lt_irix_increment=no -- ;; -- *) -- $echo "$modename: unknown library version type \`$version_type'" 1>&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- ;; -- no) -- current="$2" -- revision="$3" -- age="$4" -- ;; -- esac - -- # 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -- *) -- $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+# func_to_host_path arg -+# -+# Convert paths to host format when used with build tools. -+# Intended for use with "native" mingw (where libtool itself -+# is running under the msys shell), or in the following cross- -+# build environments: -+# $build $host -+# mingw (msys) mingw [e.g. native] -+# cygwin mingw -+# *nix + wine mingw -+# where wine is equipped with the `winepath' executable. -+# In the native mingw case, the (msys) shell automatically -+# converts paths for any non-msys applications it launches, -+# but that facility isn't available from inside the cwrapper. -+# Similar accommodations are necessary for $host mingw and -+# $build cygwin. Calling this function does no harm for other -+# $host/$build combinations not listed above. -+# -+# ARG is the path (on $build) that should be converted to -+# the proper representation for $host. The result is stored -+# in $func_to_host_path_result. -+func_to_host_path () -+{ -+ func_to_host_path_result="$1" -+ if test -n "$1" ; then -+ case $host in -+ *mingw* ) -+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ case $build in -+ *mingw* ) # actually, msys -+ # awkward: cmd appends spaces to result -+ lt_sed_strip_trailing_spaces="s/[ ]*\$//" -+ func_to_host_path_tmp1=`( cmd //c echo "$1" |\ -+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ *cygwin* ) -+ func_to_host_path_tmp1=`cygpath -w "$1"` -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ * ) -+ # Unfortunately, winepath does not exit with a non-zero -+ # error code, so we are forced to check the contents of -+ # stdout. On the other hand, if the command is not -+ # found, the shell will set an exit code of 127 and print -+ # *an error message* to stdout. So we must check for both -+ # error code of zero AND non-empty stdout, which explains -+ # the odd construction: -+ func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` -+ if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ else -+ # Allow warning below. -+ func_to_host_path_result="" -+ fi -+ ;; -+ esac -+ if test -z "$func_to_host_path_result" ; then -+ func_error "Could not determine host path corresponding to" -+ func_error " '$1'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback: -+ func_to_host_path_result="$1" -+ fi -+ ;; -+ esac -+ fi -+} -+# end: func_to_host_path - -- case $revision in -- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -- *) -- $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+# func_to_host_pathlist arg -+# -+# Convert pathlists to host format when used with build tools. -+# See func_to_host_path(), above. This function supports the -+# following $build/$host combinations (but does no harm for -+# combinations not listed here): -+# $build $host -+# mingw (msys) mingw [e.g. native] -+# cygwin mingw -+# *nix + wine mingw -+# -+# Path separators are also converted from $build format to -+# $host format. If ARG begins or ends with a path separator -+# character, it is preserved (but converted to $host format) -+# on output. -+# -+# ARG is a pathlist (on $build) that should be converted to -+# the proper representation on $host. The result is stored -+# in $func_to_host_pathlist_result. -+func_to_host_pathlist () -+{ -+ func_to_host_pathlist_result="$1" -+ if test -n "$1" ; then -+ case $host in -+ *mingw* ) -+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ # Remove leading and trailing path separator characters from -+ # ARG. msys behavior is inconsistent here, cygpath turns them -+ # into '.;' and ';.', and winepath ignores them completely. -+ func_to_host_pathlist_tmp2="$1" -+ # Once set for this call, this variable should not be -+ # reassigned. It is used in tha fallback case. -+ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e 's|^:*||' -e 's|:*$||'` -+ case $build in -+ *mingw* ) # Actually, msys. -+ # Awkward: cmd appends spaces to result. -+ lt_sed_strip_trailing_spaces="s/[ ]*\$//" -+ func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ -+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ *cygwin* ) -+ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ * ) -+ # unfortunately, winepath doesn't convert pathlists -+ func_to_host_pathlist_result="" -+ func_to_host_pathlist_oldIFS=$IFS -+ IFS=: -+ for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do -+ IFS=$func_to_host_pathlist_oldIFS -+ if test -n "$func_to_host_pathlist_f" ; then -+ func_to_host_path "$func_to_host_pathlist_f" -+ if test -n "$func_to_host_path_result" ; then -+ if test -z "$func_to_host_pathlist_result" ; then -+ func_to_host_pathlist_result="$func_to_host_path_result" -+ else -+ func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" -+ fi -+ fi -+ fi -+ IFS=: -+ done -+ IFS=$func_to_host_pathlist_oldIFS -+ ;; -+ esac -+ if test -z "$func_to_host_pathlist_result" ; then -+ func_error "Could not determine the host path(s) corresponding to" -+ func_error " '$1'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback. This may break if $1 contains DOS-style drive -+ # specifications. The fix is not to complicate the expression -+ # below, but for the user to provide a working wine installation -+ # with winepath so that path translation in the cross-to-mingw -+ # case works properly. -+ lt_replace_pathsep_nix_to_dos="s|:|;|g" -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ -+ $SED -e "$lt_replace_pathsep_nix_to_dos"` -+ fi -+ # Now, add the leading and trailing path separators back -+ case "$1" in -+ :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" -+ ;; -+ esac -+ case "$1" in -+ *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" -+ ;; -+ esac -+ ;; -+ esac -+ fi -+} -+# end: func_to_host_pathlist - -- case $age in -- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -- *) -- $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+# func_emit_cwrapperexe_src -+# emit the source code for a wrapper executable on stdout -+# Must ONLY be called from within func_mode_link because -+# it depends on a number of variable set therein. -+func_emit_cwrapperexe_src () -+{ -+ cat <&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- fi -+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname -+ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION - -- # Calculate the version variables. -- major= -- versuffix= -- verstring= -- case $version_type in -- none) ;; -+ The $output program cannot be directly executed until all the libtool -+ libraries that it depends on are installed. - -- 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` -- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" -- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" -- ;; -+ This wrapper executable should never be moved out of the build directory. -+ If it is, it will not operate correctly. - -- freebsd-aout) -- major=".$current" -- versuffix=".$current.$revision"; -- ;; -+ Currently, it simply execs the wrapper *script* "$SHELL $output", -+ but could eventually absorb all of the scripts functionality and -+ exec $objdir/$outputname directly. -+*/ -+EOF -+ cat <<"EOF" -+#include -+#include -+#ifdef _MSC_VER -+# include -+# include -+# include -+# define setmode _setmode -+#else -+# include -+# include -+# ifdef __CYGWIN__ -+# include -+# define HAVE_SETENV -+# ifdef __STRICT_ANSI__ -+char *realpath (const char *, char *); -+int putenv (char *); -+int setenv (const char *, const char *, int); -+# endif -+# endif -+#endif -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include - -- freebsd-elf) -- major=".$current" -- versuffix=".$current"; -- ;; -+#if defined(PATH_MAX) -+# define LT_PATHMAX PATH_MAX -+#elif defined(MAXPATHLEN) -+# define LT_PATHMAX MAXPATHLEN -+#else -+# define LT_PATHMAX 1024 -+#endif - -- irix | nonstopux) -- if test "X$lt_irix_increment" = "Xno"; then -- major=`expr $current - $age` -- else -- major=`expr $current - $age + 1` -- fi -- case $version_type in -- nonstopux) verstring_prefix=nonstopux ;; -- *) verstring_prefix=sgi ;; -- esac -- verstring="$verstring_prefix$major.$revision" -+#ifndef S_IXOTH -+# define S_IXOTH 0 -+#endif -+#ifndef S_IXGRP -+# define S_IXGRP 0 -+#endif - -- # Add in all the interfaces that we are compatible with. -- loop=$revision -- while test "$loop" -ne 0; do -- iface=`expr $revision - $loop` -- loop=`expr $loop - 1` -- verstring="$verstring_prefix$major.$iface:$verstring" -- done -+#ifdef _MSC_VER -+# define S_IXUSR _S_IEXEC -+# define stat _stat -+# ifndef _INTPTR_T_DEFINED -+# define intptr_t int -+# endif -+#endif - -- # Before this point, $major must not contain `.'. -- major=.$major -- versuffix="$major.$revision" -- ;; -+#ifndef DIR_SEPARATOR -+# define DIR_SEPARATOR '/' -+# define PATH_SEPARATOR ':' -+#endif - -- linux) -- major=.`expr $current - $age` -- versuffix="$major.$age.$revision" -- ;; -+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ -+ defined (__OS2__) -+# define HAVE_DOS_BASED_FILE_SYSTEM -+# define FOPEN_WB "wb" -+# ifndef DIR_SEPARATOR_2 -+# define DIR_SEPARATOR_2 '\\' -+# endif -+# ifndef PATH_SEPARATOR_2 -+# define PATH_SEPARATOR_2 ';' -+# endif -+#endif - -- osf) -- major=.`expr $current - $age` -- versuffix=".$current.$age.$revision" -- verstring="$current.$age.$revision" -+#ifndef DIR_SEPARATOR_2 -+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -+#else /* DIR_SEPARATOR_2 */ -+# define IS_DIR_SEPARATOR(ch) \ -+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -+#endif /* DIR_SEPARATOR_2 */ - -- # Add in all the interfaces that we are compatible with. -- loop=$age -- while test "$loop" -ne 0; do -- iface=`expr $current - $loop` -- loop=`expr $loop - 1` -- verstring="$verstring:${iface}.0" -- done -+#ifndef PATH_SEPARATOR_2 -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -+#else /* PATH_SEPARATOR_2 */ -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -+#endif /* PATH_SEPARATOR_2 */ - -- # Make executables depend on our current version. -- verstring="$verstring:${current}.0" -- ;; -+#ifdef __CYGWIN__ -+# define FOPEN_WB "wb" -+#endif - -- sunos) -- major=".$current" -- versuffix=".$current.$revision" -- ;; -+#ifndef FOPEN_WB -+# define FOPEN_WB "w" -+#endif -+#ifndef _O_BINARY -+# define _O_BINARY 0 -+#endif - -- windows) -- # Use '-' rather than '.', since we only want one -- # extension on DOS 8.3 filesystems. -- major=`expr $current - $age` -- versuffix="-$major" -- ;; -+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -+#define XFREE(stale) do { \ -+ if (stale) { free ((void *) stale); stale = 0; } \ -+} while (0) - -- *) -- $echo "$modename: unknown library version type \`$version_type'" 1>&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+#undef LTWRAPPER_DEBUGPRINTF -+#if defined DEBUGWRAPPER -+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args -+static void -+ltwrapper_debugprintf (const char *fmt, ...) -+{ -+ va_list args; -+ va_start (args, fmt); -+ (void) vfprintf (stderr, fmt, args); -+ va_end (args); -+} -+#else -+# define LTWRAPPER_DEBUGPRINTF(args) -+#endif - -- # Clear the version info if we defaulted, and they specified a release. -- if test -z "$vinfo" && test -n "$release"; then -- major= -- 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 -+const char *program_name = NULL; - -- # Remove version info from name if versioning should be avoided -- if test "$avoid_version" = yes && test "$need_version" = no; then -- major= -- versuffix= -- verstring="" -- fi -+void *xmalloc (size_t num); -+char *xstrdup (const char *string); -+const char *base_name (const char *name); -+char *find_executable (const char *wrapper); -+char *chase_symlinks (const char *pathspec); -+int make_executable (const char *path); -+int check_executable (const char *path); -+char *strendzap (char *str, const char *pat); -+void lt_fatal (const char *message, ...); -+void lt_setenv (const char *name, const char *value); -+char *lt_extend_str (const char *orig_value, const char *add, int to_end); -+void lt_opt_process_env_set (const char *arg); -+void lt_opt_process_env_prepend (const char *arg); -+void lt_opt_process_env_append (const char *arg); -+int lt_split_name_value (const char *arg, char** name, char** value); -+void lt_update_exe_path (const char *name, const char *value); -+void lt_update_lib_path (const char *name, const char *value); - -- # 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 -+static const char *script_text_part1 = -+EOF - -- if test "$mode" != relink; then -- # Remove our outputs, but don't remove object files since they -- # may have been created when compiling PIC objects. -- removelist= -- tempremovelist=`$echo "$output_objdir/*"` -- for p in $tempremovelist; do -- case $p in -- *.$objext) -- ;; -- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) -- if test "X$precious_files_regex" != "X"; then -- if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 -- then -- continue -- fi -- fi -- removelist="$removelist $p" -- ;; -- *) ;; -- esac -- done -- if test -n "$removelist"; then -- $show "${rm}r $removelist" -- $run ${rm}r $removelist -- fi -- fi -+ func_emit_wrapper_part1 yes | -+ $SED -e 's/\([\\"]\)/\\\1/g' \ -+ -e 's/^/ "/' -e 's/$/\\n"/' -+ echo ";" -+ cat <"))); -+ for (i = 0; i < newargc; i++) -+ { -+ LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); -+ } - -- # 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 behavior. -- 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 </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 -- fi -- 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 -- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -- case " $predeps $postdeps " in -- *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -- a_deplib="" -- ;; -- esac -- fi -- if test -n "$a_deplib" ; 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 above 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 -- fi -- 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="" -- tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -- -e 's/ -[LR][^ ]*//g'` -- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -- for i in $predeps $postdeps ; do -- # can't use Xsed below, because $i might contain '/' -- tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` -- done -- fi -- if $echo "X $tmp_deplibs" | $Xsed -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 -+ case $host_os in -+ mingw*) -+ cat <<"EOF" -+ /* execv doesn't actually work on mingw as expected on unix */ -+ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); -+ if (rval == -1) -+ { -+ /* failed to start process */ -+ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); -+ return 127; -+ } -+ return rval; -+EOF -+ ;; -+ *) -+ cat <<"EOF" -+ execv (lt_argv_zero, newargz); -+ return rval; /* =127, but avoids unused variable warning */ -+EOF -+ ;; -+ 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." -+ cat <<"EOF" -+} - -- 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 -+void * -+xmalloc (size_t num) -+{ -+ void *p = (void *) malloc (num); -+ if (!p) -+ lt_fatal ("Memory exhausted"); - -+ return p; -+} - -- # move library search paths that coincide with paths to not yet -- # installed libraries to the beginning of the library search list -- new_libs= -- for path in $notinst_path; do -- case " $new_libs " in -- *" -L$path/$objdir "*) ;; -- *) -- case " $deplibs " in -- *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -- esac -- ;; -- esac -- done -- for deplib in $deplibs; do -- case $deplib in -- -L*) -- case " $new_libs " in -- *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -- esac -- ;; -- *) new_libs="$new_libs $deplib" ;; -- esac -- done -- deplibs="$new_libs" -+char * -+xstrdup (const char *string) -+{ -+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), -+ string) : NULL; -+} - -+const char * -+base_name (const char *name) -+{ -+ const char *base; - -- # All the library-specific variables (install_libdir is set above). -- library_names= -- old_library= -- dlname= -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ /* Skip over the disk name in MSDOS pathnames. */ -+ if (isalpha ((unsigned char) name[0]) && name[1] == ':') -+ name += 2; -+#endif - -- # 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" -- if test -n "$hardcode_libdir_flag_spec_ld"; then -- case $archive_cmds in -- *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; -- *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; -- esac -- else -- eval dep_rpath=\"$hardcode_libdir_flag_spec\" -- fi -- 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 -+ for (base = name; *name; name++) -+ if (IS_DIR_SEPARATOR (*name)) -+ base = name + 1; -+ return base; -+} - -- 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 -+int -+check_executable (const char *path) -+{ -+ struct stat st; - -- # Get the real and link names of the library. -- eval shared_ext=\"$shrext_cmds\" -- eval library_names=\"$library_names_spec\" -- set dummy $library_names -- realname="$2" -- shift; shift -+ LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", -+ path ? (*path ? path : "EMPTY!") : "NULL!")); -+ if ((!path) || (!*path)) -+ return 0; - -- if test -n "$soname_spec"; then -- eval soname=\"$soname_spec\" -- else -- soname="$realname" -- fi -- if test -z "$dlname"; then -- dlname=$soname -- fi -+ if ((stat (path, &st) >= 0) -+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) -+ return 1; -+ else -+ return 0; -+} - -- lib="$output_objdir/$realname" -- linknames= -- for link -- do -- linknames="$linknames $link" -- done -+int -+make_executable (const char *path) -+{ -+ int rval = 0; -+ struct stat st; - -- # Use standard objects if they are pic -- test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", -+ path ? (*path ? path : "EMPTY!") : "NULL!")); -+ if ((!path) || (!*path)) -+ return 0; - -- # 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 -- cmds=$export_symbols_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- if len=`expr "X$cmd" : ".*"` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- $show "$cmd" -- $run eval "$cmd" || exit $? -- skipped_export=false -- else -- # The command line is too long to execute in one step. -- $show "using reloadable object file for export list..." -- skipped_export=: -- # Break out early, otherwise skipped_export may be -- # set to false by a later but shorter cmd. -- break -- fi -- 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 (stat (path, &st) >= 0) -+ { -+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); -+ } -+ return rval; -+} - -- if test -n "$export_symbols" && test -n "$include_expsyms"; then -- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' -- fi -+/* Searches for the full path of the wrapper. Returns -+ newly allocated full path name if found, NULL otherwise -+ Does not chase symlinks, even on platforms that support them. -+*/ -+char * -+find_executable (const char *wrapper) -+{ -+ int has_slash = 0; -+ const char *p; -+ const char *p_next; -+ /* static buffer for getcwd */ -+ char tmp[LT_PATHMAX + 1]; -+ int tmp_len; -+ char *concat_name; - -- tmp_deplibs= -- for test_deplib in $deplibs; do -- case " $convenience " in -- *" $test_deplib "*) ;; -- *) -- tmp_deplibs="$tmp_deplibs $test_deplib" -- ;; -- esac -- done -- deplibs="$tmp_deplibs" -+ LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", -+ wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); - -- if test -n "$convenience"; then -- if test -n "$whole_archive_flag_spec"; then -- save_libobjs=$libobjs -- eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -- else -- gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ if ((wrapper == NULL) || (*wrapper == '\0')) -+ return NULL; - -- func_extract_archives $gentop $convenience -- libobjs="$libobjs $func_extract_archives_result" -- 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 -+ /* Absolute path? */ -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') -+ { -+ concat_name = xstrdup (wrapper); -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+ else -+ { -+#endif -+ if (IS_DIR_SEPARATOR (wrapper[0])) -+ { -+ concat_name = xstrdup (wrapper); -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ } -+#endif - -- # 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 -+ for (p = wrapper; *p; p++) -+ if (*p == '/') -+ { -+ has_slash = 1; -+ break; -+ } -+ if (!has_slash) -+ { -+ /* no slashes; search PATH */ -+ const char *path = getenv ("PATH"); -+ if (path != NULL) -+ { -+ for (p = path; *p; p = p_next) -+ { -+ const char *q; -+ size_t p_len; -+ for (q = p; *q; q++) -+ if (IS_PATH_SEPARATOR (*q)) -+ break; -+ p_len = q - p; -+ p_next = (*q == '\0' ? q : q + 1); -+ if (p_len == 0) -+ { -+ /* empty path: current directory */ -+ if (getcwd (tmp, LT_PATHMAX) == NULL) -+ lt_fatal ("getcwd failed"); -+ tmp_len = strlen (tmp); -+ concat_name = -+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, tmp, tmp_len); -+ concat_name[tmp_len] = '/'; -+ strcpy (concat_name + tmp_len + 1, wrapper); -+ } -+ else -+ { -+ concat_name = -+ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, p, p_len); -+ concat_name[p_len] = '/'; -+ strcpy (concat_name + p_len + 1, wrapper); -+ } -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+ } -+ /* not found in PATH; assume curdir */ -+ } -+ /* Relative path | not found in path: prepend cwd */ -+ if (getcwd (tmp, LT_PATHMAX) == NULL) -+ lt_fatal ("getcwd failed"); -+ tmp_len = strlen (tmp); -+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, tmp, tmp_len); -+ concat_name[tmp_len] = '/'; -+ strcpy (concat_name + tmp_len + 1, wrapper); - -- # Do each of the archive commands. -- if test "$module" = yes && test -n "$module_cmds" ; then -- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -- eval test_cmds=\"$module_expsym_cmds\" -- cmds=$module_expsym_cmds -- else -- eval test_cmds=\"$module_cmds\" -- cmds=$module_cmds -- fi -- else -- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- eval test_cmds=\"$archive_expsym_cmds\" -- cmds=$archive_expsym_cmds -- else -- eval test_cmds=\"$archive_cmds\" -- cmds=$archive_cmds -- fi -- fi -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ return NULL; -+} - -- if test "X$skipped_export" != "X:" && -- len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- : -- else -- # The command line is too long to link in one step, link piecewise. -- $echo "creating reloadable object files..." -+char * -+chase_symlinks (const char *pathspec) -+{ -+#ifndef S_ISLNK -+ return xstrdup (pathspec); -+#else -+ char buf[LT_PATHMAX]; -+ struct stat s; -+ char *tmp_pathspec = xstrdup (pathspec); -+ char *p; -+ int has_symlinks = 0; -+ while (strlen (tmp_pathspec) && !has_symlinks) -+ { -+ LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", -+ tmp_pathspec)); -+ if (lstat (tmp_pathspec, &s) == 0) -+ { -+ if (S_ISLNK (s.st_mode) != 0) -+ { -+ has_symlinks = 1; -+ break; -+ } - -- # Save the value of $output and $libobjs because we want to -- # use them later. If we have whole_archive_flag_spec, we -- # want to use save_libobjs as it was before -- # whole_archive_flag_spec was expanded, because we can't -- # assume the linker understands whole_archive_flag_spec. -- # This may have to be revisited, in case too many -- # convenience libraries get linked in and end up exceeding -- # the spec. -- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then -- save_libobjs=$libobjs -- fi -- save_output=$output -- output_la=`$echo "X$output" | $Xsed -e "$basename"` -+ /* search backwards for last DIR_SEPARATOR */ -+ p = tmp_pathspec + strlen (tmp_pathspec) - 1; -+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) -+ p--; -+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) -+ { -+ /* no more DIR_SEPARATORS left */ -+ break; -+ } -+ *p = '\0'; -+ } -+ else -+ { -+ char *errstr = strerror (errno); -+ lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); -+ } -+ } -+ XFREE (tmp_pathspec); - -- # Clear the reloadable object creation command queue and -- # initialize k to one. -- test_cmds= -- concat_cmds= -- objlist= -- delfiles= -- last_robj= -- k=1 -- output=$output_objdir/$output_la-${k}.$objext -- # Loop over the list of objects to be linked. -- for obj in $save_libobjs -- do -- eval test_cmds=\"$reload_cmds $objlist $last_robj\" -- if test "X$objlist" = X || -- { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len"; }; then -- objlist="$objlist $obj" -- else -- # The command $test_cmds is almost too long, add a -- # command to the queue. -- if test "$k" -eq 1 ; then -- # The first file doesn't have a previous command to add. -- eval concat_cmds=\"$reload_cmds $objlist $last_robj\" -- else -- # All subsequent reloadable object files will link in -- # the last one created. -- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" -- fi -- last_robj=$output_objdir/$output_la-${k}.$objext -- k=`expr $k + 1` -- output=$output_objdir/$output_la-${k}.$objext -- objlist=$obj -- len=1 -- fi -- done -- # Handle the remaining objects by creating one last -- # reloadable object file. All subsequent reloadable object -- # files will link in the last one created. -- test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" -+ if (!has_symlinks) -+ { -+ return xstrdup (pathspec); -+ } - -- if ${skipped_export-false}; then -- $show "generating symbol list for \`$libname.la'" -- export_symbols="$output_objdir/$libname.exp" -- $run $rm $export_symbols -- libobjs=$output -- # Append the command to create the export file. -- eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" -- fi -- -- # Set up a command to remove the reloadable object files -- # after they are used. -- i=0 -- while test "$i" -lt "$k" -- do -- i=`expr $i + 1` -- delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" -- done -+ tmp_pathspec = realpath (pathspec, buf); -+ if (tmp_pathspec == 0) -+ { -+ lt_fatal ("Could not follow symlinks for %s", pathspec); -+ } -+ return xstrdup (tmp_pathspec); -+#endif -+} - -- $echo "creating a temporary reloadable object file: $output" -+char * -+strendzap (char *str, const char *pat) -+{ -+ size_t len, patlen; - -- # Loop through the commands generated above and execute them. -- save_ifs="$IFS"; IFS='~' -- for cmd in $concat_cmds; do -- IFS="$save_ifs" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ assert (str != NULL); -+ assert (pat != NULL); - -- libobjs=$output -- # Restore the value of output. -- output=$save_output -+ len = strlen (str); -+ patlen = strlen (pat); - -- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then -- eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -- fi -- # Expand the library linking commands again to reset the -- # value of $libobjs for piecewise linking. -+ if (patlen <= len) -+ { -+ str += len - patlen; -+ if (strcmp (str, pat) == 0) -+ *str = '\0'; -+ } -+ return str; -+} - -- # Do each of the archive commands. -- if test "$module" = yes && test -n "$module_cmds" ; then -- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -- cmds=$module_expsym_cmds -- else -- cmds=$module_cmds -- fi -- else -- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- cmds=$archive_expsym_cmds -- else -- cmds=$archive_cmds -- fi -- fi -+static void -+lt_error_core (int exit_status, const char *mode, -+ const char *message, va_list ap) -+{ -+ fprintf (stderr, "%s: %s: ", program_name, mode); -+ vfprintf (stderr, message, ap); -+ fprintf (stderr, ".\n"); - -- # Append the command to remove the reloadable object files -- # to the just-reset $cmds. -- eval cmds=\"\$cmds~\$rm $delfiles\" -- fi -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || { -- lt_exit=$? -+ if (exit_status >= 0) -+ exit (exit_status); -+} - -- # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' -- fi -+void -+lt_fatal (const char *message, ...) -+{ -+ va_list ap; -+ va_start (ap, message); -+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -+ va_end (ap); -+} - -- exit $lt_exit -- } -- done -- IFS="$save_ifs" -+void -+lt_setenv (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", -+ (name ? name : ""), -+ (value ? value : ""))); -+ { -+#ifdef HAVE_SETENV -+ /* always make a copy, for consistency with !HAVE_SETENV */ -+ char *str = xstrdup (value); -+ setenv (name, str, 1); -+#else -+ int len = strlen (name) + 1 + strlen (value) + 1; -+ char *str = XMALLOC (char, len); -+ sprintf (str, "%s=%s", name, value); -+ if (putenv (str) != EXIT_SUCCESS) -+ { -+ XFREE (str); -+ } -+#endif -+ } -+} - -- # 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 $? -+char * -+lt_extend_str (const char *orig_value, const char *add, int to_end) -+{ -+ char *new_value; -+ if (orig_value && *orig_value) -+ { -+ int orig_value_len = strlen (orig_value); -+ int add_len = strlen (add); -+ new_value = XMALLOC (char, add_len + orig_value_len + 1); -+ if (to_end) -+ { -+ strcpy (new_value, orig_value); -+ strcpy (new_value + orig_value_len, add); -+ } -+ else -+ { -+ strcpy (new_value, add); -+ strcpy (new_value + add_len, orig_value); -+ } -+ } -+ else -+ { -+ new_value = xstrdup (add); -+ } -+ return new_value; -+} - -- if test -n "$convenience"; then -- if test -z "$whole_archive_flag_spec"; then -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- fi -- fi -+int -+lt_split_name_value (const char *arg, char** name, char** value) -+{ -+ const char *p; -+ int len; -+ if (!arg || !*arg) -+ return 1; - -- exit $EXIT_SUCCESS -- fi -+ p = strchr (arg, (int)'='); - -- # 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 -- ;; -+ if (!p) -+ return 1; - -- obj) -- case " $deplibs" in -- *\ -l* | *\ -L*) -- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; -- esac -+ *value = xstrdup (++p); - -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 -- fi -+ len = strlen (arg) - strlen (*value); -+ *name = XMALLOC (char, len); -+ strncpy (*name, arg, len-1); -+ (*name)[len - 1] = '\0'; - -- if test -n "$rpath"; then -- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 -- fi -+ return 0; -+} - -- if test -n "$xrpath"; then -- $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 -- fi -+void -+lt_opt_process_env_set (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 -- fi -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); -+ } - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 -- fi -+ lt_setenv (name, value); -+ XFREE (name); -+ XFREE (value); -+} - -- 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 $EXIT_FAILURE -- fi -- libobj="$output" -- obj=`$echo "X$output" | $Xsed -e "$lo2o"` -- ;; -- *) -- libobj= -- obj="$output" -- ;; -- esac -+void -+lt_opt_process_env_prepend (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; -+ char *new_value = NULL; - -- # Delete the old objects. -- $run $rm $obj $libobj -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); -+ } - -- # 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 and hope we can get by with -- # turning comma into space.. -- wl= -+ new_value = lt_extend_str (getenv (name), value, 0); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ XFREE (name); -+ XFREE (value); -+} - -- if test -n "$convenience"; then -- if test -n "$whole_archive_flag_spec"; then -- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" -- reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` -- else -- gentop="$output_objdir/${obj}x" -- generated="$generated $gentop" -+void -+lt_opt_process_env_append (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; -+ char *new_value = NULL; - -- func_extract_archives $gentop $convenience -- reload_conv_objs="$reload_objs $func_extract_archives_result" -- fi -- fi -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); -+ } - -- # 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 -+ new_value = lt_extend_str (getenv (name), value, 1); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ XFREE (name); -+ XFREE (value); -+} - -- output="$obj" -- cmds=$reload_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+void -+lt_update_exe_path (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -+ (name ? name : ""), -+ (value ? value : ""))); - -- # 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 -+ if (name && *name && value && *value) -+ { -+ char *new_value = lt_extend_str (getenv (name), value, 0); -+ /* some systems can't cope with a ':'-terminated path #' */ -+ int len = strlen (new_value); -+ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) -+ { -+ new_value[len-1] = '\0'; -+ } -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ } -+} - -- exit $EXIT_SUCCESS -- fi -+void -+lt_update_lib_path (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -+ (name ? name : ""), -+ (value ? value : ""))); - -- if test "$build_libtool_libs" != yes; then -- if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -- fi -+ if (name && *name && value && *value) -+ { -+ char *new_value = lt_extend_str (getenv (name), value, 0); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ } -+} - -- # 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 $EXIT_SUCCESS -- 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" -- cmds=$reload_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- fi -+EOF -+} -+# end: func_emit_cwrapperexe_src - -- if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -- fi -+# func_mode_link arg... -+func_mode_link () -+{ -+ $opt_debug -+ case $host in -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) -+ # 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 invocation. -+ # allow_undefined=no - -- exit $EXIT_SUCCESS -+ # 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 -+ base_compile="$nonopt $@" -+ compile_command=$nonopt -+ finalize_command=$nonopt - -- 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 -+ compile_rpath= -+ finalize_rpath= -+ compile_shlibpath= -+ finalize_shlibpath= -+ convenience= -+ old_convenience= -+ deplibs= -+ old_deplibs= -+ compiler_flags= -+ linker_flags= -+ dllsearchpath= -+ lib_search_path=`pwd` -+ inst_prefix_dir= -+ new_inherited_linker_flags= - -- 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 -+ avoid_version=no -+ dlfiles= -+ dlprefiles= -+ dlself=no -+ export_dynamic=no -+ export_symbols= -+ export_symbols_regex= -+ generated= -+ libobjs= -+ ltlibs= -+ module=no -+ no_install=no -+ objs= -+ non_pic_objects= -+ precious_files_regex= -+ prefer_static_libs=no -+ preload=no -+ prev= -+ prevarg= -+ release= -+ rpath= -+ xrpath= -+ perm_rpath= -+ temp_rpath= -+ thread_safe=no -+ vinfo= -+ vinfo_number=no -+ weak_libs= -+ single_module="${wl}-single_module" -+ func_infer_tag $base_compile - -- 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 /'` -+ # We need to know -static, to get the right output filenames. -+ for arg -+ do -+ case $arg in -+ -shared) -+ test "$build_libtool_libs" != yes && \ -+ func_fatal_configuration "can not build a shared library" -+ build_old_libs=no -+ break -+ ;; -+ -all-static | -static | -static-libtool-libs) -+ case $arg in -+ -all-static) -+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then -+ func_warning "complete static linking is impossible in this configuration" -+ fi -+ if test -n "$link_static_flag"; then -+ dlopen_self=$dlopen_self_static -+ fi -+ prefer_static_libs=yes -+ ;; -+ -static) -+ if test -z "$pic_flag" && test -n "$link_static_flag"; then -+ dlopen_self=$dlopen_self_static -+ fi -+ prefer_static_libs=built -+ ;; -+ -static-libtool-libs) -+ if test -z "$pic_flag" && test -n "$link_static_flag"; then -+ dlopen_self=$dlopen_self_static -+ fi -+ prefer_static_libs=yes -+ ;; -+ esac -+ build_libtool_libs=no -+ build_old_libs=yes -+ break - ;; - esac -+ done - -- case $host in -- *darwin*) -- # Don't allow lazy linking, it breaks C++ global constructors -- if test "$tagname" = CXX ; then -- compile_command="$compile_command ${wl}-bind_at_load" -- finalize_command="$finalize_command ${wl}-bind_at_load" -- fi -- ;; -- esac -+ # 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 -+ func_quote_for_eval "$arg" -+ qarg=$func_quote_for_eval_unquoted_result -+ func_append libtool_args " $func_quote_for_eval_result" - -- # move library search paths that coincide with paths to not yet -- # installed libraries to the beginning of the library search list -- new_libs= -- for path in $notinst_path; do -- case " $new_libs " in -- *" -L$path/$objdir "*) ;; -- *) -- case " $compile_deplibs " in -- *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -- esac -- ;; -- esac -- done -- for deplib in $compile_deplibs; do -- case $deplib in -- -L*) -- case " $new_libs " in -- *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -- esac -+ # If the previous option needs an argument, assign it. -+ if test -n "$prev"; then -+ case $prev in -+ output) -+ func_append compile_command " @OUTPUT@" -+ func_append finalize_command " @OUTPUT@" - ;; -- *) new_libs="$new_libs $deplib" ;; - esac -- done -- compile_deplibs="$new_libs" -- - -- 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" -+ case $prev in -+ dlfiles|dlprefiles) -+ if test "$preload" = no; then -+ # Add the symbol object into the linking commands. -+ func_append compile_command " @SYMFILE@" -+ func_append 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 -- # 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 -+ dlself=needless -+ export_dynamic=yes - 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*) -- testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` -- case :$dllsearchpath: in -- *":$libdir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$libdir";; -- esac -- case :$dllsearchpath: in -- *":$testbindir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ prev= -+ continue -+ ;; -+ *) -+ if test "$prev" = dlfiles; then -+ dlfiles="$dlfiles $arg" -+ else -+ dlprefiles="$dlprefiles $arg" -+ fi -+ prev= -+ continue -+ ;; - 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" -- ;; -+ expsyms) -+ export_symbols="$arg" -+ test -f "$arg" \ -+ || func_fatal_error "symbol file \`$arg' does not exist" -+ prev= -+ continue -+ ;; -+ expsyms_regex) -+ export_symbols_regex="$arg" -+ prev= -+ continue -+ ;; -+ framework) -+ case $host in -+ *-*-darwin*) -+ case "$deplibs " in -+ *" $qarg.ltframework "*) ;; -+ *) deplibs="$deplibs $qarg.ltframework" # this is fixed later -+ ;; - 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 -+ prev= -+ continue -+ ;; -+ inst_prefix) -+ inst_prefix_dir="$arg" -+ prev= -+ continue -+ ;; -+ objectlist) -+ if test -f "$arg"; then -+ save_arg=$arg -+ moreargs= -+ for fil in `cat "$save_arg"` -+ do -+# moreargs="$moreargs $fil" -+ arg=$fil -+ # A libtool-controlled object. - -- 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 -+ # Check to see that this really is a libtool object. -+ if func_lalib_unsafe_p "$arg"; then -+ pic_object= -+ non_pic_object= - -- if test -n "$dlsyms"; then -- case $dlsyms in -- "") ;; -- *.c) -- # Discover the nlist of each of the dlfiles. -- nlist="$output_objdir/${outputname}.nm" -+ # Read the .lo file -+ func_source "$arg" - -- $show "$rm $nlist ${nlist}S ${nlist}T" -- $run $rm "$nlist" "${nlist}S" "${nlist}T" -+ if test -z "$pic_object" || -+ test -z "$non_pic_object" || -+ test "$pic_object" = none && -+ test "$non_pic_object" = none; then -+ func_fatal_error "cannot find name of object for \`$arg'" -+ fi - -- # Parse the name list into a source file. -- $show "creating $output_objdir/$dlsyms" -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ --/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ --/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ -+ if test "$pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ pic_object="$xdir$pic_object" - --#ifdef __cplusplus --extern \"C\" { --#endif -+ if test "$prev" = dlfiles; then -+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -+ dlfiles="$dlfiles $pic_object" -+ prev= -+ continue -+ else -+ # If libtool objects are unsupported, then we need to preload. -+ prev=dlprefiles -+ fi -+ fi - --/* Prevent the only kind of declaration conflicts we can make. */ --#define lt_preloaded_symbols some_other_symbol -+ # CHECK ME: I think I busted this. -Ossama -+ if test "$prev" = dlprefiles; then -+ # Preload the old-style object. -+ dlprefiles="$dlprefiles $pic_object" -+ prev= -+ fi - --/* External symbol declarations for the compiler. */\ --" -+ # A PIC object. -+ func_append libobjs " $pic_object" -+ arg="$pic_object" -+ fi - -- if test "$dlself" = yes; then -- $show "generating symbol list for \`$output'" -+ # Non-PIC object. -+ if test "$non_pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ non_pic_object="$xdir$non_pic_object" - -- test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" -+ # A standard non-PIC object -+ func_append non_pic_objects " $non_pic_object" -+ if test -z "$pic_object" || test "$pic_object" = none ; then -+ arg="$non_pic_object" -+ fi -+ else -+ # If the PIC object exists, use it instead. -+ # $xdir was prepended to $pic_object above. -+ non_pic_object="$pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ fi -+ else -+ # Only an error if not doing a dry-run. -+ if $opt_dry_run; then -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- # 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'" -+ func_lo2o "$arg" -+ pic_object=$xdir$objdir/$func_lo2o_result -+ non_pic_object=$xdir$func_lo2o_result -+ func_append libobjs " $pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ else -+ func_fatal_error "\`$arg' is not a valid libtool object" -+ fi -+ fi - 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/$outputname.exp" -- $run $rm $export_symbols -- $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -- case $host in -- *cygwin* | *mingw* ) -- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -- $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' -- ;; -- esac -- else -- $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -- $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -- $run eval 'mv "$nlist"T "$nlist"' -- case $host in -- *cygwin* | *mingw* ) -- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -- $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' -- ;; -- esac -- fi -+ else -+ func_fatal_error "link input file \`$arg' does not exist" - 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" | -- if sort -k 3 /dev/null 2>&1; then -- sort -k 3 -- else -- sort +2 -- fi | -- 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. */ --" -- -- case $host in -- *cygwin* | *mingw* ) -- $echo >> "$output_objdir/$dlsyms" "\ --/* DATA imports from DLLs on WIN32 can't be const, because -- runtime relocations are performed -- see ld's documentation -- on pseudo-relocs */ --struct { --" -- ;; -- * ) -- $echo >> "$output_objdir/$dlsyms" "\ --const struct { --" -- ;; -- esac -- -- -- $echo >> "$output_objdir/$dlsyms" "\ -- 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 -DFREEBSD_WORKAROUND";; -- esac;; -- *-*-hpux*) -- case "$compile_command " in -- *" -static "*) ;; -- *) pic_flag_for_symtable=" $pic_flag";; -- esac -+ arg=$save_arg -+ prev= -+ continue -+ ;; -+ precious_regex) -+ precious_files_regex="$arg" -+ prev= -+ continue -+ ;; -+ release) -+ release="-$arg" -+ prev= -+ continue -+ ;; -+ rpath | xrpath) -+ # We need an absolute path. -+ case $arg in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; -+ *) -+ func_fatal_error "only absolute run-paths are allowed" -+ ;; - esac -- -- # Now compile the dynamic symbol file. -- $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" -- $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -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. -- case $host in -- *cygwin* | *mingw* ) -- if test -f "$output_objdir/${outputname}.def" ; then -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` -- else -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- fi -- ;; -- * ) -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- ;; -- 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 -+ ;; -+ shrext) -+ shrext_cmds="$arg" -+ prev= -+ continue -+ ;; -+ weak) -+ weak_libs="$weak_libs $arg" -+ prev= -+ continue -+ ;; -+ xcclinker) -+ linker_flags="$linker_flags $qarg" -+ compiler_flags="$compiler_flags $qarg" -+ prev= -+ func_append compile_command " $qarg" -+ func_append finalize_command " $qarg" -+ continue -+ ;; -+ xcompiler) -+ compiler_flags="$compiler_flags $qarg" -+ prev= -+ func_append compile_command " $qarg" -+ func_append finalize_command " $qarg" -+ continue -+ ;; -+ xlinker) -+ linker_flags="$linker_flags $qarg" -+ compiler_flags="$compiler_flags $wl$qarg" -+ prev= -+ func_append compile_command " $wl$qarg" -+ func_append finalize_command " $wl$qarg" -+ continue - ;; - *) -- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 -- exit $EXIT_FAILURE -+ eval "$prev=\"\$arg\"" -+ prev= -+ continue - ;; - 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" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` -- fi -- -- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then -- # Replace the output file specification. -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` -- link_command="$compile_command$compile_rpath" -+ fi # test -n "$prev" - -- # We have no uninstalled library dependencies, so finalize right now. -- $show "$link_command" -- $run eval "$link_command" -- exit_status=$? -+ prevarg="$arg" - -- # Delete the generated files. -- if test -n "$dlsyms"; then -- $show "$rm $output_objdir/${outputname}S.${objext}" -- $run $rm "$output_objdir/${outputname}S.${objext}" -+ case $arg in -+ -all-static) -+ if test -n "$link_static_flag"; then -+ # See comment for -static flag below, for more details. -+ func_append compile_command " $link_static_flag" -+ func_append finalize_command " $link_static_flag" - fi -+ continue -+ ;; - -- exit $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 -+ -allow-undefined) -+ # FIXME: remove this flag sometime in the future. -+ func_fatal_error "\`-allow-undefined' must not be used because it is the default" -+ ;; - -- 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 -+ -avoid-version) -+ avoid_version=yes -+ continue -+ ;; - -- 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 -+ -dlopen) -+ prev=dlfiles -+ continue -+ ;; - -- 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 $EXIT_SUCCESS -- fi -+ -dlpreopen) -+ prev=dlprefiles -+ continue -+ ;; - -- 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" -+ -export-dynamic) -+ export_dynamic=yes -+ continue -+ ;; - -- $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" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` -- else -- # fast_install is set to needless -- relink_command= -- fi -+ -export-symbols | -export-symbols-regex) -+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then -+ func_fatal_error "more than one -exported-symbols argument is not allowed" -+ fi -+ if test "X$arg" = "X-export-symbols"; then -+ prev=expsyms - else -- link_command="$compile_var$compile_command$compile_rpath" -- relink_command="$finalize_var$finalize_command$finalize_rpath" -+ prev=expsyms_regex - fi -- fi -- -- # Replace the output file specification. -- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` -+ continue -+ ;; - -- # Delete the old output files. -- $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname -+ -framework) -+ prev=framework -+ continue -+ ;; - -- $show "$link_command" -- $run eval "$link_command" || exit $? -+ -inst-prefix-dir) -+ prev=inst_prefix -+ continue -+ ;; - -- # Now create the wrapper script. -- $show "creating $output" -+ # 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* | /*-*-irix*) -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ ;; -+ esac -+ continue -+ ;; - -- # 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" -+ -L*) -+ func_stripname '-L' '' "$arg" -+ dir=$func_stripname_result -+ if test -z "$dir"; then -+ if test "$#" -gt 0; then -+ func_fatal_error "require no space between \`-L' and \`$1'" - else -- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` -- relink_command="$var=\"$var_value\"; export $var; $relink_command" -+ func_fatal_error "need path for \`-L' option" - fi -- done -- relink_command="(cd `pwd`; $relink_command)" -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` -- fi -- -- # Quote $echo for shipping. -- if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then -- case $progpath in -- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; -- *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; -+ fi -+ # We need an absolute path. -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; -+ *) -+ absdir=`cd "$dir" && pwd` -+ test -z "$absdir" && \ -+ func_fatal_error "cannot determine absolute directory name of \`$dir'" -+ dir="$absdir" -+ ;; - 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$,,'` ;; -+ case "$deplibs " in -+ *" -L$dir "*) ;; -+ *) -+ deplibs="$deplibs -L$dir" -+ lib_search_path="$lib_search_path $dir" -+ ;; - esac -- # test for cygwin because mv fails w/o .exe extensions - case $host in -- *cygwin*) -- exeext=.exe -- outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; -- *) exeext= ;; -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) -+ testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` -+ case :$dllsearchpath: in -+ *":$dir:"*) ;; -+ ::) dllsearchpath=$dir;; -+ *) dllsearchpath="$dllsearchpath:$dir";; -+ esac -+ case :$dllsearchpath: in -+ *":$testbindir:"*) ;; -+ ::) dllsearchpath=$testbindir;; -+ *) dllsearchpath="$dllsearchpath:$testbindir";; -+ esac -+ ;; - esac -- case $host in -- *cygwin* | *mingw* ) -- output_name=`basename $output` -- output_path=`dirname $output` -- cwrappersource="$output_path/$objdir/lt-$output_name.c" -- cwrapper="$output_path/$output_name.exe" -- $rm $cwrappersource $cwrapper -- trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 -+ continue -+ ;; - -- cat > $cwrappersource <> $cwrappersource<<"EOF" --#include --#include --#include --#include --#include --#include --#include --#include --#include -+ -multi_module) -+ single_module="${wl}-multi_module" -+ continue -+ ;; - --#if defined(PATH_MAX) --# define LT_PATHMAX PATH_MAX --#elif defined(MAXPATHLEN) --# define LT_PATHMAX MAXPATHLEN --#else --# define LT_PATHMAX 1024 --#endif -+ -no-fast-install) -+ fast_install=no -+ continue -+ ;; - --#ifndef DIR_SEPARATOR --# define DIR_SEPARATOR '/' --# define PATH_SEPARATOR ':' --#endif -+ -no-install) -+ case $host in -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) -+ # The PATH hackery in wrapper scripts is required on Windows -+ # and Darwin in order for the loader to find any dlls it needs. -+ func_warning "\`-no-install' is ignored for $host" -+ func_warning "assuming \`-no-fast-install' instead" -+ fast_install=no -+ ;; -+ *) no_install=yes ;; -+ esac -+ continue -+ ;; - --#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ -- defined (__OS2__) --# define HAVE_DOS_BASED_FILE_SYSTEM --# ifndef DIR_SEPARATOR_2 --# define DIR_SEPARATOR_2 '\\' --# endif --# ifndef PATH_SEPARATOR_2 --# define PATH_SEPARATOR_2 ';' --# endif --#endif -+ -no-undefined) -+ allow_undefined=no -+ continue -+ ;; - --#ifndef DIR_SEPARATOR_2 --# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) --#else /* DIR_SEPARATOR_2 */ --# define IS_DIR_SEPARATOR(ch) \ -- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) --#endif /* DIR_SEPARATOR_2 */ -+ -objectlist) -+ prev=objectlist -+ continue -+ ;; - --#ifndef PATH_SEPARATOR_2 --# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) --#else /* PATH_SEPARATOR_2 */ --# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) --#endif /* PATH_SEPARATOR_2 */ -+ -o) prev=output ;; - --#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) --#define XFREE(stale) do { \ -- if (stale) { free ((void *) stale); stale = 0; } \ --} while (0) -+ -precious-files-regex) -+ prev=precious_regex -+ continue -+ ;; - --/* -DDEBUG is fairly common in CFLAGS. */ --#undef DEBUG --#if defined DEBUGWRAPPER --# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) --#else --# define DEBUG(format, ...) --#endif -+ -release) -+ prev=release -+ continue -+ ;; - --const char *program_name = NULL; -+ -rpath) -+ prev=rpath -+ continue -+ ;; - --void * xmalloc (size_t num); --char * xstrdup (const char *string); --const char * base_name (const char *name); --char * find_executable(const char *wrapper); --int check_executable(const char *path); --char * strendzap(char *str, const char *pat); --void lt_fatal (const char *message, ...); -+ -R) -+ prev=xrpath -+ continue -+ ;; - --int --main (int argc, char *argv[]) --{ -- char **newargz; -- int i; -+ -R*) -+ func_stripname '-R' '' "$arg" -+ dir=$func_stripname_result -+ # We need an absolute path. -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; -+ *) -+ func_fatal_error "only absolute run-paths are allowed" -+ ;; -+ esac -+ case "$xrpath " in -+ *" $dir "*) ;; -+ *) xrpath="$xrpath $dir" ;; -+ esac -+ continue -+ ;; - -- program_name = (char *) xstrdup (base_name (argv[0])); -- DEBUG("(main) argv[0] : %s\n",argv[0]); -- DEBUG("(main) program_name : %s\n",program_name); -- newargz = XMALLOC(char *, argc+2); --EOF -+ -shared) -+ # The effects of -shared are defined in a previous loop. -+ continue -+ ;; - -- cat >> $cwrappersource <> $cwrappersource <<"EOF" -- newargz[1] = find_executable(argv[0]); -- if (newargz[1] == NULL) -- lt_fatal("Couldn't find %s", argv[0]); -- DEBUG("(main) found exe at : %s\n",newargz[1]); -- /* we know the script has the same name, without the .exe */ -- /* so make sure newargz[1] doesn't end in .exe */ -- strendzap(newargz[1],".exe"); -- for (i = 1; i < argc; i++) -- newargz[i+1] = xstrdup(argv[i]); -- newargz[argc+1] = NULL; -+ -static | -static-libtool-libs) -+ # 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 -+ ;; - -- for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" -- return 127; --} -+ -weak) -+ prev=weak -+ continue -+ ;; - --void * --xmalloc (size_t num) --{ -- void * p = (void *) malloc (num); -- if (!p) -- lt_fatal ("Memory exhausted"); -+ -Wc,*) -+ func_stripname '-Wc,' '' "$arg" -+ args=$func_stripname_result -+ arg= -+ save_ifs="$IFS"; IFS=',' -+ for flag in $args; do -+ IFS="$save_ifs" -+ func_quote_for_eval "$flag" -+ arg="$arg $wl$func_quote_for_eval_result" -+ compiler_flags="$compiler_flags $func_quote_for_eval_result" -+ done -+ IFS="$save_ifs" -+ func_stripname ' ' '' "$arg" -+ arg=$func_stripname_result -+ ;; - -- return p; --} -+ -Wl,*) -+ func_stripname '-Wl,' '' "$arg" -+ args=$func_stripname_result -+ arg= -+ save_ifs="$IFS"; IFS=',' -+ for flag in $args; do -+ IFS="$save_ifs" -+ func_quote_for_eval "$flag" -+ arg="$arg $wl$func_quote_for_eval_result" -+ compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" -+ linker_flags="$linker_flags $func_quote_for_eval_result" -+ done -+ IFS="$save_ifs" -+ func_stripname ' ' '' "$arg" -+ arg=$func_stripname_result -+ ;; - --char * --xstrdup (const char *string) --{ -- return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL --; --} -+ -Xcompiler) -+ prev=xcompiler -+ continue -+ ;; - --const char * --base_name (const char *name) --{ -- const char *base; -+ -Xlinker) -+ prev=xlinker -+ continue -+ ;; - --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- /* Skip over the disk name in MSDOS pathnames. */ -- if (isalpha ((unsigned char)name[0]) && name[1] == ':') -- name += 2; --#endif -+ -XCClinker) -+ prev=xcclinker -+ continue -+ ;; - -- for (base = name; *name; name++) -- if (IS_DIR_SEPARATOR (*name)) -- base = name + 1; -- return base; --} -+ # -msg_* for osf cc -+ -msg_*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ ;; - --int --check_executable(const char * path) --{ -- struct stat st; -+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -+ # -r[0-9][0-9]* specifies the processor on the SGI compiler -+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -+ # +DA*, +DD* enable 64-bit mode on the HP compiler -+ # -q* pass through compiler args for the IBM compiler -+ # -m*, -t[45]*, -txscale* pass through architecture-specific -+ # compiler args for GCC -+ # -F/path gives path to uninstalled frameworks, gcc on darwin -+ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -+ # @file GCC response files -+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ compiler_flags="$compiler_flags $arg" -+ continue -+ ;; - -- DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); -- if ((!path) || (!*path)) -- return 0; -+ # Some other compiler flag. -+ -* | +*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ ;; - -- if ((stat (path, &st) >= 0) && -- ( -- /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ --#if defined (S_IXOTH) -- ((st.st_mode & S_IXOTH) == S_IXOTH) || --#endif --#if defined (S_IXGRP) -- ((st.st_mode & S_IXGRP) == S_IXGRP) || --#endif -- ((st.st_mode & S_IXUSR) == S_IXUSR)) -- ) -- return 1; -- else -- return 0; --} -+ *.$objext) -+ # A standard object. -+ objs="$objs $arg" -+ ;; - --/* Searches for the full path of the wrapper. Returns -- newly allocated full path name if found, NULL otherwise */ --char * --find_executable (const char* wrapper) --{ -- int has_slash = 0; -- const char* p; -- const char* p_next; -- /* static buffer for getcwd */ -- char tmp[LT_PATHMAX + 1]; -- int tmp_len; -- char* concat_name; -+ *.lo) -+ # A libtool-controlled object. - -- DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); -+ # Check to see that this really is a libtool object. -+ if func_lalib_unsafe_p "$arg"; then -+ pic_object= -+ non_pic_object= - -- if ((wrapper == NULL) || (*wrapper == '\0')) -- return NULL; -+ # Read the .lo file -+ func_source "$arg" - -- /* Absolute path? */ --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') -- { -- concat_name = xstrdup (wrapper); -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } -- else -- { --#endif -- if (IS_DIR_SEPARATOR (wrapper[0])) -- { -- concat_name = xstrdup (wrapper); -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- } --#endif -+ if test -z "$pic_object" || -+ test -z "$non_pic_object" || -+ test "$pic_object" = none && -+ test "$non_pic_object" = none; then -+ func_fatal_error "cannot find name of object for \`$arg'" -+ fi - -- for (p = wrapper; *p; p++) -- if (*p == '/') -- { -- has_slash = 1; -- break; -- } -- if (!has_slash) -- { -- /* no slashes; search PATH */ -- const char* path = getenv ("PATH"); -- if (path != NULL) -- { -- for (p = path; *p; p = p_next) -- { -- const char* q; -- size_t p_len; -- for (q = p; *q; q++) -- if (IS_PATH_SEPARATOR(*q)) -- break; -- p_len = q - p; -- p_next = (*q == '\0' ? q : q + 1); -- if (p_len == 0) -- { -- /* empty path: current directory */ -- if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -- tmp_len = strlen(tmp); -- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, tmp, tmp_len); -- concat_name[tmp_len] = '/'; -- strcpy (concat_name + tmp_len + 1, wrapper); -- } -- else -- { -- concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, p, p_len); -- concat_name[p_len] = '/'; -- strcpy (concat_name + p_len + 1, wrapper); -- } -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } -- } -- /* not found in PATH; assume curdir */ -- } -- /* Relative path | not found in path: prepend cwd */ -- if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -- tmp_len = strlen(tmp); -- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, tmp, tmp_len); -- concat_name[tmp_len] = '/'; -- strcpy (concat_name + tmp_len + 1, wrapper); -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- return NULL; --} -+ if test "$pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ pic_object="$xdir$pic_object" - --char * --strendzap(char *str, const char *pat) --{ -- size_t len, patlen; -+ if test "$prev" = dlfiles; then -+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -+ dlfiles="$dlfiles $pic_object" -+ prev= -+ continue -+ else -+ # If libtool objects are unsupported, then we need to preload. -+ prev=dlprefiles -+ fi -+ fi - -- assert(str != NULL); -- assert(pat != NULL); -+ # CHECK ME: I think I busted this. -Ossama -+ if test "$prev" = dlprefiles; then -+ # Preload the old-style object. -+ dlprefiles="$dlprefiles $pic_object" -+ prev= -+ fi - -- len = strlen(str); -- patlen = strlen(pat); -+ # A PIC object. -+ func_append libobjs " $pic_object" -+ arg="$pic_object" -+ fi - -- if (patlen <= len) -- { -- str += len - patlen; -- if (strcmp(str, pat) == 0) -- *str = '\0'; -- } -- return str; --} -+ # Non-PIC object. -+ if test "$non_pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ non_pic_object="$xdir$non_pic_object" - --static void --lt_error_core (int exit_status, const char * mode, -- const char * message, va_list ap) --{ -- fprintf (stderr, "%s: %s: ", program_name, mode); -- vfprintf (stderr, message, ap); -- fprintf (stderr, ".\n"); -+ # A standard non-PIC object -+ func_append non_pic_objects " $non_pic_object" -+ if test -z "$pic_object" || test "$pic_object" = none ; then -+ arg="$non_pic_object" -+ fi -+ else -+ # If the PIC object exists, use it instead. -+ # $xdir was prepended to $pic_object above. -+ non_pic_object="$pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ fi -+ else -+ # Only an error if not doing a dry-run. -+ if $opt_dry_run; then -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- if (exit_status >= 0) -- exit (exit_status); --} -+ func_lo2o "$arg" -+ pic_object=$xdir$objdir/$func_lo2o_result -+ non_pic_object=$xdir$func_lo2o_result -+ func_append libobjs " $pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ else -+ func_fatal_error "\`$arg' is not a valid libtool object" -+ fi -+ fi -+ ;; - --void --lt_fatal (const char *message, ...) --{ -- va_list ap; -- va_start (ap, message); -- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -- va_end (ap); --} --EOF -- # we should really use a build-platform specific compiler -- # here, but OTOH, the wrappers (shell script and this C one) -- # are only useful if you want to execute the "real" binary. -- # Since the "real" binary is built for $host, then this -- # wrapper might as well be built for $host, too. -- $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource -- ;; -- esac -- $rm $output -- trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 -+ *.$libext) -+ # An archive. -+ deplibs="$deplibs $arg" -+ old_deplibs="$old_deplibs $arg" -+ continue -+ ;; - -- $echo > $output "\ --#! $SHELL -+ *.la) -+ # A libtool-controlled library. - --# $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. -+ 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 -+ ;; - --# 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' -+ # Some other compiler argument. -+ *) -+ # Unknown arguments in both finalize_command and compile_command need -+ # to be aesthetically quoted because they are evaled later. -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ ;; -+ esac # arg - --# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). --if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then -- emulate sh -- NULLCMD=: -- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which -- # is contrary to our usage. Disable this feature. -- alias -g '\${1+\"\$@\"}'='\"\$@\"' -- setopt NO_GLOB_SUBST --else -- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac --fi --BIN_SH=xpg4; export BIN_SH # for Tru64 --DUALCASE=1; export DUALCASE # for MKS sh -+ # Now actually substitute the argument into the commands. -+ if test -n "$arg"; then -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ fi -+ done # argument parsing loop - --# The HP-UX ksh and POSIX shell print the target directory to stdout --# if CDPATH is set. --(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+ test -n "$prev" && \ -+ func_fatal_help "the \`$prevarg' option requires an argument" - --relink_command=\"$relink_command\" -+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -+ eval arg=\"$export_dynamic_flag_spec\" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ fi - --# 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! -- : -+ oldlibs= -+ # calculate the name of the file, without its directory -+ func_basename "$output" -+ outputname="$func_basename_result" -+ 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 -- # Restart under the correct shell, and then maybe \$echo will work. -- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} -+ shlib_search_path= - fi -- fi\ --" -- $echo >> $output "\ -+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" -+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - -- # Find the directory that this script lives in. -- thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` -- test \"x\$thisdir\" = \"x\$file\" && thisdir=. -+ func_dirname "$output" "/" "" -+ output_objdir="$func_dirname_result$objdir" -+ # Create the object directory. -+ func_mkdir_p "$output_objdir" - -- # 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%/[^/]*\$%%'\` -+ # Determine the type of output -+ case $output in -+ "") -+ func_fatal_help "you must specify an output file" -+ ;; -+ *.$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 $opt_duplicate_deps ; then -+ case "$libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ libs="$libs $deplib" -+ done -+ -+ if test "$linkmode" = lib; then -+ libs="$predeps $libs $compiler_lib_search_path $postdeps" -+ -+ # Compute libraries that are listed more than once in $predeps -+ # $postdeps and mark them as special (i.e., whose duplicates are -+ # not to be eliminated). -+ pre_post_deps= -+ if $opt_duplicate_compiler_generated_deps; then -+ for pre_post_dep in $predeps $postdeps; do -+ case "$pre_post_deps " in -+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -+ esac -+ pre_post_deps="$pre_post_deps $pre_post_dep" -+ done -+ fi -+ pre_post_deps= -+ fi -+ -+ 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 dlpreopen link" -+ for file in $dlfiles $dlprefiles; do -+ case $file in -+ *.la) ;; -+ *) -+ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" -+ ;; -+ 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 -+ # The preopen pass in lib mode reverses $deplibs; put it back here -+ # so that -L comes before libs that need it for instance... -+ if test "$linkmode,$pass" = "lib,link"; then -+ ## FIXME: Find the place where the list is rebuilt in the wrong -+ ## order, and fix it there properly -+ tmp_deplibs= -+ for deplib in $deplibs; do -+ tmp_deplibs="$deplib $tmp_deplibs" -+ done -+ deplibs="$tmp_deplibs" -+ fi -+ -+ if test "$linkmode,$pass" = "lib,link" || -+ test "$linkmode,$pass" = "prog,scan"; then -+ libs="$deplibs" -+ deplibs= -+ fi -+ if test "$linkmode" = prog; then -+ case $pass in -+ dlopen) libs="$dlfiles" ;; -+ dlpreopen) libs="$dlprefiles" ;; -+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; -+ esac -+ fi -+ if test "$linkmode,$pass" = "lib,dlpreopen"; then -+ # Collect and forward deplibs of preopened libtool libs -+ for lib in $dlprefiles; do -+ # Ignore non-libtool-libs -+ dependency_libs= -+ case $lib in -+ *.la) func_source "$lib" ;; -+ esac -+ -+ # Collect preopened libtool deplibs, except any this library -+ # has declared as weak libs -+ for deplib in $dependency_libs; do -+ deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` -+ case " $weak_libs " in -+ *" $deplib_base "*) ;; -+ *) deplibs="$deplibs $deplib" ;; -+ esac -+ done -+ done -+ libs="$dlprefiles" -+ fi -+ if test "$pass" = dlopen; then -+ # Collect dlpreopened libraries -+ save_deplibs="$deplibs" -+ deplibs= -+ fi -+ -+ for deplib in $libs; do -+ lib= -+ found=no -+ case $deplib in -+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ compiler_flags="$compiler_flags $deplib" -+ if test "$linkmode" = lib ; then -+ case "$new_inherited_linker_flags " in -+ *" $deplib "*) ;; -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ esac -+ fi -+ fi -+ continue -+ ;; -+ -l*) -+ if test "$linkmode" != lib && test "$linkmode" != prog; then -+ func_warning "\`-l' is ignored for archives/objects" -+ continue -+ fi -+ func_stripname '-l' '' "$deplib" -+ name=$func_stripname_result -+ if test "$linkmode" = lib; then -+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" -+ else -+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" -+ fi -+ for searchdir in $searchdirs; do -+ for search_ext in .la $std_shrext .so .a; do -+ # Search the libtool library -+ lib="$searchdir/lib${name}${search_ext}" -+ if test -f "$lib"; then -+ if test "$search_ext" = ".la"; then -+ found=yes -+ else -+ found=no -+ fi -+ break 2 -+ fi -+ done -+ 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 -+ else # deplib is a libtool library -+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, -+ # We need to do some special things here, and not later. -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -+ case " $predeps $postdeps " in -+ *" $deplib "*) -+ if func_lalib_p "$lib"; then -+ library_names= -+ old_library= -+ func_source "$lib" -+ for l in $old_library $library_names; do -+ ll="$l" -+ done -+ if test "X$ll" = "X$old_library" ; then # only static version available -+ found=no -+ func_dirname "$lib" "" "." -+ ladir="$func_dirname_result" -+ lib=$ladir/$old_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 -+ fi -+ ;; -+ *) ;; -+ esac -+ fi -+ fi -+ ;; # -l -+ *.ltframework) -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ deplibs="$deplib $deplibs" -+ if test "$linkmode" = lib ; then -+ case "$new_inherited_linker_flags " in -+ *" $deplib "*) ;; -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ esac -+ fi -+ fi -+ continue -+ ;; -+ -L*) -+ case $linkmode in -+ lib) -+ deplibs="$deplib $deplibs" -+ test "$pass" = conv && continue -+ newdependency_libs="$deplib $newdependency_libs" -+ func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" -+ ;; -+ prog) -+ if test "$pass" = conv; then -+ deplibs="$deplib $deplibs" -+ continue -+ fi -+ if test "$pass" = scan; then -+ deplibs="$deplib $deplibs" -+ else -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ fi -+ func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" -+ ;; -+ *) -+ func_warning "\`-L' is ignored for archives/objects" -+ ;; -+ esac # linkmode -+ continue -+ ;; # -L -+ -R*) -+ if test "$pass" = link; then -+ func_stripname '-R' '' "$deplib" -+ dir=$func_stripname_result -+ # 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) -+ # Linking convenience modules into shared libraries is allowed, -+ # but linking other static libraries is non-portable. -+ case " $dlpreconveniencelibs " in -+ *" $deplib "*) ;; -+ *) -+ valid_a_lib=no -+ case $deplibs_check_method in -+ match_pattern*) -+ set dummy $deplibs_check_method; shift -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` -+ if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ -+ | $EGREP "$match_pattern_regex" > /dev/null; then -+ valid_a_lib=yes -+ fi -+ ;; -+ pass_all) -+ valid_a_lib=yes -+ ;; -+ esac -+ if test "$valid_a_lib" != yes; 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 use here." -+ else -+ $ECHO -+ $ECHO "*** Warning: Linking the shared library $output against the" -+ $ECHO "*** static library $deplib is not portable!" -+ deplibs="$deplib $deplibs" -+ fi -+ ;; -+ esac -+ 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" = conv; then -+ deplibs="$deplib $deplibs" -+ elif test "$linkmode" = prog; then -+ 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 -+ fi -+ continue -+ ;; -+ %DEPLIBS%) -+ alldeplibs=yes -+ continue -+ ;; -+ esac # case $deplib -+ -+ if test "$found" = yes || test -f "$lib"; then : -+ else -+ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" -+ fi -+ -+ # Check to see that this really is a libtool archive. -+ func_lalib_unsafe_p "$lib" \ -+ || func_fatal_error "\`$lib' is not a valid libtool archive" -+ -+ func_dirname "$lib" "" "." -+ ladir="$func_dirname_result" -+ -+ dlname= -+ dlopen= -+ dlpreopen= -+ libdir= -+ library_names= -+ old_library= -+ inherited_linker_flags= -+ # If the library was installed with an old release of libtool, -+ # it will not redefine variables installed, or shouldnotlink -+ installed=yes -+ shouldnotlink=no -+ avoidtemprpath= -+ -+ -+ # Read the .la file -+ func_source "$lib" -+ -+ # Convert "-framework foo" to "foo.ltframework" -+ if test -n "$inherited_linker_flags"; then -+ tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` -+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do -+ case " $new_inherited_linker_flags " in -+ *" $tmp_inherited_linker_flag "*) ;; -+ *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; -+ esac -+ done -+ fi -+ dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ if test "$linkmode,$pass" = "lib,link" || -+ test "$linkmode,$pass" = "prog,scan" || -+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then -+ 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 -+ func_fatal_error "cannot find name of link library for \`$lib'" -+ 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" -+ elif test "$linkmode" != prog && test "$linkmode" != lib; then -+ func_fatal_error "\`$lib' is not a convenience library" -+ fi -+ tmp_libs= -+ for deplib in $dependency_libs; do -+ deplibs="$deplib $deplibs" -+ if $opt_duplicate_deps ; then -+ case "$tmp_libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ tmp_libs="$tmp_libs $deplib" -+ done -+ 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 -+ func_fatal_error "cannot find name of link library for \`$lib'" -+ fi -+ -+ # This library was specified with -dlopen. -+ if test "$pass" = dlopen; then -+ if test -z "$libdir"; then -+ func_fatal_error "cannot -dlopen a convenience library: \`$lib'" -+ 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. We also need to preload any -+ # dependent libraries so libltdl's deplib preloader doesn't -+ # bomb out in the load deplibs phase. -+ dlprefiles="$dlprefiles $lib $dependency_libs" -+ 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 -+ func_warning "cannot determine absolute directory name of \`$ladir'" -+ func_warning "passing it literally to the linker, although it might fail" -+ abs_ladir="$ladir" -+ fi -+ ;; -+ esac -+ func_basename "$lib" -+ laname="$func_basename_result" -+ -+ # 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 -+ func_warning "library \`$lib' was moved." -+ dir="$ladir" -+ absdir="$abs_ladir" -+ libdir="$abs_ladir" -+ else -+ dir="$libdir" -+ absdir="$libdir" -+ fi -+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes -+ else -+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then -+ dir="$ladir" -+ absdir="$abs_ladir" -+ # Remove this search path later -+ notinst_path="$notinst_path $abs_ladir" -+ else -+ dir="$ladir/$objdir" -+ absdir="$abs_ladir/$objdir" -+ # Remove this search path later -+ notinst_path="$notinst_path $abs_ladir" -+ fi -+ fi # $installed = yes -+ func_stripname 'lib' '.la' "$laname" -+ name=$func_stripname_result -+ -+ # This library was specified with -dlpreopen. -+ if test "$pass" = dlpreopen; then -+ if test -z "$libdir" && test "$linkmode" = prog; then -+ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" -+ 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" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ dlpreconveniencelibs="$dlpreconveniencelibs $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" # used for prog,scan pass -+ 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*) func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" -+ ;; -+ 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 $opt_duplicate_deps ; then -+ case "$tmp_libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ tmp_libs="$tmp_libs $deplib" -+ done # for deplib -+ continue -+ fi # $linkmode = prog... -+ -+ if test "$linkmode,$pass" = "prog,link"; then -+ if test -n "$library_names" && -+ { { test "$prefer_static_libs" = no || -+ test "$prefer_static_libs,$installed" = "built,yes"; } || -+ test -z "$old_library"; }; then -+ # We need to hardcode the library path -+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then -+ # Make sure the rpath contains only unique directories. -+ case "$temp_rpath:" in -+ *"$absdir:"*) ;; -+ *) temp_rpath="$temp_rpath$absdir:" ;; -+ esac -+ fi -+ -+ # 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 -+ 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 -+ fi -+ -+ link_static=no # Whether the deplib will be linked statically -+ use_static_libs=$prefer_static_libs -+ if test "$use_static_libs" = built && test "$installed" = yes; then -+ use_static_libs=no -+ fi -+ if test -n "$library_names" && -+ { test "$use_static_libs" = no || test -z "$old_library"; }; then -+ case $host in -+ *cygwin* | *mingw* | *cegcc*) -+ # No point in relinking DLLs because paths are not encoded -+ notinst_deplibs="$notinst_deplibs $lib" -+ need_relink=no -+ ;; -+ *) -+ if test "$installed" = no; then -+ notinst_deplibs="$notinst_deplibs $lib" -+ need_relink=yes -+ fi -+ ;; -+ esac -+ # This is a shared library -+ -+ # Warn about portability, can't link against -module's on some -+ # systems (darwin). Don't bleat about dlopened modules though! -+ dlopenmodule="" -+ for dlpremoduletest in $dlprefiles; do -+ if test "X$dlpremoduletest" = "X$lib"; then -+ dlopenmodule="$dlpremoduletest" -+ break -+ fi -+ done -+ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then -+ $ECHO -+ if test "$linkmode" = prog; then -+ $ECHO "*** Warning: Linking the executable $output against the loadable module" -+ else -+ $ECHO "*** Warning: Linking the shared library $output against the loadable module" -+ fi -+ $ECHO "*** $linklib is not portable!" -+ fi -+ if 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 -+ fi -+ -+ if test -n "$old_archive_from_expsyms_cmds"; then -+ # figure out the soname -+ set dummy $library_names -+ shift -+ realname="$1" -+ 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* | mingw* | *cegcc*) -+ func_arith $current - $age -+ major=$func_arith_result -+ versuffix="-$major" -+ ;; -+ esac -+ eval soname=\"$soname_spec\" -+ else -+ soname="$realname" -+ fi -+ -+ # Make a new name for the extract_expsyms_cmds to use -+ soroot="$soname" -+ func_basename "$soroot" -+ soname="$func_basename_result" -+ func_stripname 'lib' '.dll' "$soname" -+ newlib=libimp-$func_stripname_result.a -+ -+ # If the library has no export list, then create one now -+ if test -f "$output_objdir/$soname-def"; then : -+ else -+ func_verbose "extracting exported symbol list from \`$soname'" -+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?' -+ fi -+ -+ # Create $newlib -+ if test -f "$output_objdir/$newlib"; then :; else -+ func_verbose "generating import library for \`$soname'" -+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' -+ 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" -+ case $host in -+ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; -+ *-*-sysv4*uw2*) add_dir="-L$dir" ;; -+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ -+ *-*-unixware7*) add_dir="-L$dir" ;; -+ *-*-darwin* ) -+ # if the lib is a (non-dlopened) module then we can not -+ # link against it, someone is ignoring the earlier warnings -+ if /usr/bin/file -L $add 2> /dev/null | -+ $GREP ": [^:]* bundle" >/dev/null ; then -+ if test "X$dlopenmodule" != "X$lib"; then -+ $ECHO "*** Warning: lib $linklib is a module, not a shared library" -+ if test -z "$old_library" ; then -+ $ECHO -+ $ECHO "*** And there doesn't seem to be a static archive available" -+ $ECHO "*** The link will probably fail, sorry" -+ else -+ add="$dir/$old_library" -+ fi -+ elif test -n "$old_library"; then -+ add="$dir/$old_library" -+ fi -+ fi -+ esac -+ 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 && -+ test "$hardcode_direct_absolute" = no; then -+ add="$dir/$linklib" -+ elif test "$hardcode_minus_L" = yes; then -+ add_dir="-L$dir" -+ # Try looking first in the location we're being installed to. -+ if test -n "$inst_prefix_dir"; then -+ case $libdir in -+ [\\/]*) -+ add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ ;; -+ esac -+ fi -+ 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 -+ func_fatal_configuration "unsupported hardcode properties" -+ 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 && -+ test "$hardcode_direct_absolute" = no; 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" -+ elif test "$hardcode_automatic" = yes; then -+ if test -n "$inst_prefix_dir" && -+ test -f "$inst_prefix_dir$libdir/$linklib" ; then -+ add="$inst_prefix_dir$libdir/$linklib" -+ else -+ add="$libdir/$linklib" -+ fi -+ else -+ # We cannot seem to hardcode it, guess we'll fake it. -+ add_dir="-L$libdir" -+ # Try looking first in the location we're being installed to. -+ if test -n "$inst_prefix_dir"; then -+ case $libdir in -+ [\\/]*) -+ add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ ;; -+ esac -+ 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 -+ # 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 -+ 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*) func_stripname '-R' '' "$libdir" -+ temp_xrpath=$func_stripname_result -+ 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 $opt_duplicate_deps ; 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) -+ func_dirname "$deplib" "" "." -+ dir="$func_dirname_result" -+ # We need an absolute path. -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; -+ *) -+ absdir=`cd "$dir" && pwd` -+ if test -z "$absdir"; then -+ func_warning "cannot determine absolute directory name of \`$dir'" -+ absdir="$dir" -+ fi -+ ;; -+ esac -+ if $GREP "^installed=no" $deplib > /dev/null; then -+ case $host in -+ *-*-darwin*) -+ depdepl= -+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -+ if test -n "$deplibrary_names" ; then -+ for tmp in $deplibrary_names ; do -+ depdepl=$tmp -+ done -+ if test -f "$absdir/$objdir/$depdepl" ; then -+ depdepl="$absdir/$objdir/$depdepl" -+ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` -+ if test -z "$darwin_install_name"; then -+ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` -+ fi -+ compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -+ linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" -+ path= -+ fi -+ fi -+ ;; -+ *) -+ path="-L$absdir/$objdir" -+ ;; -+ esac -+ else -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$deplib' is not a valid libtool archive" -+ test "$absdir" != "$libdir" && \ -+ func_warning "\`$deplib' seems to be moved" -+ -+ path="-L$absdir" -+ fi -+ ;; -+ esac -+ case " $deplibs " in -+ *" $path "*) ;; -+ *) deplibs="$path $deplibs" ;; -+ esac -+ done -+ fi # link_all_deplibs != no -+ fi # linkmode = lib -+ done # for deplib in $libs -+ if test "$pass" = link; then -+ if test "$linkmode" = "prog"; then -+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs" -+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" -+ else -+ compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ fi -+ fi -+ dependency_libs="$newdependency_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 -+ 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 -+ # FIXME: Pedantically, this is the right thing to do, so -+ # that some nasty dependency loop isn't accidentally -+ # broken: -+ #new_libs="$deplib $new_libs" -+ # Pragmatically, this seems to cause very few problems in -+ # practice: -+ case $deplib in -+ -L*) new_libs="$deplib $new_libs" ;; -+ -R*) ;; -+ *) -+ # And here is the reason: when a library appears more -+ # than once as an explicit dependence of a library, or -+ # is implicitly linked in more than once by the -+ # compiler, it is considered special, and multiple -+ # occurrences thereof are not removed. Compare this -+ # with having the same library being listed as a -+ # dependency of multiple other libraries: in this case, -+ # we know (pedantically, we assume) the library does not -+ # need to be listed more than once, so we keep only the -+ # last copy. This is not always right, but it is rare -+ # enough that we require users that really mean to play -+ # such unportable linking tricks to link the library -+ # using -Wl,-lname, so that libtool does not consider it -+ # for duplicate removal. -+ 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 -+ # Last step: remove runtime libs from dependency_libs -+ # (they stay in deplibs) -+ tmp_libs= -+ for i in $dependency_libs ; do -+ case " $predeps $postdeps $compiler_lib_search_path " in -+ *" $i "*) -+ i="" -+ ;; -+ esac -+ if test -n "$i" ; then -+ tmp_libs="$tmp_libs $i" -+ fi -+ done -+ dependency_libs=$tmp_libs -+ done # for pass -+ if test "$linkmode" = prog; then -+ dlfiles="$newdlfiles" -+ fi -+ if test "$linkmode" = prog || test "$linkmode" = lib; then -+ dlprefiles="$newdlprefiles" -+ fi -+ -+ case $linkmode in -+ oldlib) -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ func_warning "\`-dlopen' is ignored for archives" -+ fi -+ -+ case " $deplibs" in -+ *\ -l* | *\ -L*) -+ func_warning "\`-l' and \`-L' are ignored for archives" ;; -+ esac -+ -+ test -n "$rpath" && \ -+ func_warning "\`-rpath' is ignored for archives" -+ -+ test -n "$xrpath" && \ -+ func_warning "\`-R' is ignored for archives" -+ -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info/-version-number' is ignored for archives" -+ -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for archives" -+ -+ test -n "$export_symbols$export_symbols_regex" && \ -+ func_warning "\`-export-symbols' is ignored for archives" -+ -+ # 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*) -+ func_stripname 'lib' '.la' "$outputname" -+ name=$func_stripname_result -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" -+ ;; -+ *) -+ test "$module" = no && \ -+ func_fatal_help "libtool library \`$output' must begin with \`lib'" -+ -+ if test "$need_lib_prefix" != no; then -+ # Add the "lib" prefix for modules if required -+ func_stripname '' '.la' "$outputname" -+ name=$func_stripname_result -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" -+ else -+ func_stripname '' '.la' "$outputname" -+ libname=$func_stripname_result -+ fi -+ ;; -+ esac -+ -+ if test -n "$objs"; then -+ if test "$deplibs_check_method" != pass_all; then -+ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" -+ else -+ $ECHO -+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool" -+ $ECHO "*** objects $objs is not portable!" -+ libobjs="$libobjs $objs" -+ fi -+ fi -+ -+ test "$dlself" != no && \ -+ func_warning "\`-dlopen self' is ignored for libtool libraries" -+ -+ set dummy $rpath -+ shift -+ test "$#" -gt 1 && \ -+ func_warning "ignoring multiple \`-rpath's for a libtool library" -+ -+ install_libdir="$1" -+ -+ oldlibs= -+ if test -z "$rpath"; then -+ if test "$build_libtool_libs" = yes; then -+ # Building a libtool convenience library. -+ # Some compilers have problems with a `.al' extension so -+ # convenience libraries should have the same extension an -+ # archive normally would. -+ oldlibs="$output_objdir/$libname.$libext $oldlibs" -+ build_libtool_libs=convenience -+ build_old_libs=yes -+ fi -+ -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" -+ -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for convenience libraries" -+ else -+ -+ # Parse the version information argument. -+ save_ifs="$IFS"; IFS=':' -+ set dummy $vinfo 0 0 0 -+ shift -+ IFS="$save_ifs" -+ -+ test -n "$7" && \ -+ func_fatal_help "too many parameters to \`-version-info'" -+ -+ # convert absolute version numbers to libtool ages -+ # this retains compatibility with .la files and attempts -+ # to make the code below a bit more comprehensible -+ -+ case $vinfo_number in -+ yes) -+ number_major="$1" -+ number_minor="$2" -+ number_revision="$3" -+ # -+ # There are really only two kinds -- those that -+ # use the current revision as the major version -+ # and those that subtract age and use age as -+ # a minor version. But, then there is irix -+ # which has an extra 1 added just for fun -+ # -+ case $version_type in -+ darwin|linux|osf|windows|none) -+ func_arith $number_major + $number_minor -+ current=$func_arith_result -+ age="$number_minor" -+ revision="$number_revision" -+ ;; -+ freebsd-aout|freebsd-elf|sunos) -+ current="$number_major" -+ revision="$number_minor" -+ age="0" -+ ;; -+ irix|nonstopux) -+ func_arith $number_major + $number_minor -+ current=$func_arith_result -+ age="$number_minor" -+ revision="$number_minor" -+ lt_irix_increment=no -+ ;; -+ esac -+ ;; -+ no) -+ current="$1" -+ revision="$2" -+ age="$3" -+ ;; -+ esac -+ -+ # 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -+ *) -+ func_error "CURRENT \`$current' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ ;; -+ esac -+ -+ case $revision in -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -+ *) -+ func_error "REVISION \`$revision' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ ;; -+ esac -+ -+ case $age in -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -+ *) -+ func_error "AGE \`$age' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ ;; -+ esac -+ -+ if test "$age" -gt "$current"; then -+ func_error "AGE \`$age' is greater than the current interface number \`$current'" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ 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 -+ func_arith $current - $age -+ major=.$func_arith_result -+ versuffix="$major.$age.$revision" -+ # Darwin ld doesn't like 0 for these options... -+ func_arith $current + 1 -+ minor_current=$func_arith_result -+ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" -+ 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) -+ if test "X$lt_irix_increment" = "Xno"; then -+ func_arith $current - $age -+ else -+ func_arith $current - $age + 1 -+ fi -+ major=$func_arith_result -+ -+ case $version_type in -+ nonstopux) verstring_prefix=nonstopux ;; -+ *) verstring_prefix=sgi ;; -+ esac -+ verstring="$verstring_prefix$major.$revision" -+ -+ # Add in all the interfaces that we are compatible with. -+ loop=$revision -+ while test "$loop" -ne 0; do -+ func_arith $revision - $loop -+ iface=$func_arith_result -+ func_arith $loop - 1 -+ loop=$func_arith_result -+ verstring="$verstring_prefix$major.$iface:$verstring" -+ done -+ -+ # Before this point, $major must not contain `.'. -+ major=.$major -+ versuffix="$major.$revision" -+ ;; -+ -+ linux) -+ func_arith $current - $age -+ major=.$func_arith_result -+ versuffix="$major.$age.$revision" -+ ;; -+ -+ osf) -+ func_arith $current - $age -+ major=.$func_arith_result -+ versuffix=".$current.$age.$revision" -+ verstring="$current.$age.$revision" -+ -+ # Add in all the interfaces that we are compatible with. -+ loop=$age -+ while test "$loop" -ne 0; do -+ func_arith $current - $loop -+ iface=$func_arith_result -+ func_arith $loop - 1 -+ loop=$func_arith_result -+ verstring="$verstring:${iface}.0" -+ done -+ -+ # Make executables depend on our current version. -+ verstring="$verstring:${current}.0" -+ ;; -+ -+ qnx) -+ major=".$current" -+ versuffix=".$current" -+ ;; -+ -+ sunos) -+ major=".$current" -+ versuffix=".$current.$revision" -+ ;; -+ -+ windows) -+ # Use '-' rather than '.', since we only want one -+ # extension on DOS 8.3 filesystems. -+ func_arith $current - $age -+ major=$func_arith_result -+ versuffix="-$major" -+ ;; -+ -+ *) -+ func_fatal_configuration "unknown library version type \`$version_type'" -+ ;; -+ esac -+ -+ # Clear the version info if we defaulted, and they specified a release. -+ if test -z "$vinfo" && test -n "$release"; then -+ major= -+ 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 -+ func_warning "undefined symbols not allowed in $host shared libraries" -+ build_libtool_libs=no -+ build_old_libs=yes -+ fi -+ else -+ # Don't allow undefined symbols. -+ allow_undefined_flag="$no_undefined_flag" -+ fi -+ -+ fi -+ -+ func_generate_dlsyms "$libname" "$libname" "yes" -+ libobjs="$libobjs $symfileobj" -+ test "X$libobjs" = "X " && libobjs= -+ -+ if test "$mode" != relink; then -+ # Remove our outputs, but don't remove object files since they -+ # may have been created when compiling PIC objects. -+ removelist= -+ tempremovelist=`$ECHO "$output_objdir/*"` -+ for p in $tempremovelist; do -+ case $p in -+ *.$objext | *.gcno) -+ ;; -+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) -+ if test "X$precious_files_regex" != "X"; then -+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 -+ then -+ continue -+ fi -+ fi -+ removelist="$removelist $p" -+ ;; -+ *) ;; -+ esac -+ done -+ test -n "$removelist" && \ -+ func_show_eval "${RM}r \$removelist" -+ 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 "X$lib_search_path " | $Xsed -e "s% $path % %g"` -+ # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` -+ # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -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* | *-cegcc*) -+ # these systems don't actually have a c library (as such)! -+ ;; -+ *-*-rhapsody* | *-*-darwin1.[012]) -+ # Rhapsody C library is in the System framework -+ deplibs="$deplibs System.ltframework" -+ ;; -+ *-*-netbsd*) -+ # Don't link with libc until the a.out ld.so is fixed. -+ ;; -+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) -+ # Do not include libc due to us having libc/libc_r. -+ ;; -+ *-*-sco3.2v5* | *-*-sco5v6*) -+ # Causes problems with __ctype -+ ;; -+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) -+ # Compiler inserts libc in the correct place for threads to work -+ ;; -+ *) -+ # 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 behavior. -+ 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. -+ $opt_dry_run || $RM conftest.c -+ cat > conftest.c </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 -e 10q | -+ $EGREP "$file_magic_regex" > /dev/null; then -+ newdeplibs="$newdeplibs $a_deplib" -+ a_deplib="" -+ break 2 -+ fi -+ done -+ done -+ fi -+ 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 -+ ;; -+ *) -+ # Add a -L argument. -+ newdeplibs="$newdeplibs $a_deplib" -+ ;; -+ esac -+ done # Gone through all deplibs. -+ ;; -+ match_pattern*) -+ set dummy $deplibs_check_method; shift -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` -+ for a_deplib in $deplibs; do -+ case $a_deplib in -+ -l*) -+ func_stripname -l '' "$a_deplib" -+ name=$func_stripname_result -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -+ case " $predeps $postdeps " in -+ *" $a_deplib "*) -+ newdeplibs="$newdeplibs $a_deplib" -+ a_deplib="" -+ ;; -+ esac -+ fi -+ if test -n "$a_deplib" ; 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 above in file_magic test -+ if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ -+ $EGREP "$match_pattern_regex" > /dev/null; then -+ newdeplibs="$newdeplibs $a_deplib" -+ a_deplib="" -+ break 2 -+ fi -+ done -+ done -+ fi -+ 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 -+ ;; -+ *) -+ # Add a -L argument. -+ newdeplibs="$newdeplibs $a_deplib" -+ ;; -+ esac -+ done # Gone through all deplibs. -+ ;; -+ none | unknown | *) -+ newdeplibs="" -+ tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -+ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -+ for i in $predeps $postdeps ; do -+ # can't use Xsed below, because $i might contain '/' -+ tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` -+ done -+ fi -+ if $ECHO "X $tmp_deplibs" | $Xsed -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 - -- # 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\" ;; -+ case $host in -+ *-*-rhapsody* | *-*-darwin1.[012]) -+ # On Rhapsody replace the C library with the System framework -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` -+ ;; -+ 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 -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo" -+ case $host in -+ *-*-darwin*) -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ ;; - esac -- fi - -- file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` -- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` -- done -+ # move library search paths that coincide with paths to not yet -+ # installed libraries to the beginning of the library search list -+ new_libs= -+ for path in $notinst_path; do -+ case " $new_libs " in -+ *" -L$path/$objdir "*) ;; -+ *) -+ case " $deplibs " in -+ *" -L$path/$objdir "*) -+ new_libs="$new_libs -L$path/$objdir" ;; -+ esac -+ ;; -+ esac -+ done -+ for deplib in $deplibs; do -+ case $deplib in -+ -L*) -+ case " $new_libs " in -+ *" $deplib "*) ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ done -+ deplibs="$new_libs" - -- # Try to get the absolute directory name. -- absdir=\`cd \"\$thisdir\" && pwd\` -- test -n \"\$absdir\" && thisdir=\"\$absdir\" --" -+ # 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" -+ if test -n "$hardcode_libdir_flag_spec_ld"; then -+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" -+ else -+ eval dep_rpath=\"$hardcode_libdir_flag_spec\" -+ fi -+ 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 - -- if test "$fast_install" = yes; then -- $echo >> $output "\ -- program=lt-'$outputname'$exeext -- progdir=\"\$thisdir/$objdir\" -+ 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 - -- if test ! -f \"\$progdir/\$program\" || \\ -- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ -- test \"X\$file\" != \"X\$progdir/\$program\"; }; then -+ # Get the real and link names of the library. -+ eval shared_ext=\"$shrext_cmds\" -+ eval library_names=\"$library_names_spec\" -+ set dummy $library_names -+ shift -+ realname="$1" -+ shift - -- file=\"\$\$-\$program\" -+ if test -n "$soname_spec"; then -+ eval soname=\"$soname_spec\" -+ else -+ soname="$realname" -+ fi -+ if test -z "$dlname"; then -+ dlname=$soname -+ fi - -- if test ! -d \"\$progdir\"; then -- $mkdir \"\$progdir\" -- else -- $rm \"\$progdir/\$file\" -- fi" -+ lib="$output_objdir/$realname" -+ linknames= -+ for link -+ do -+ linknames="$linknames $link" -+ done - -- $echo >> $output "\ -+ # Use standard objects if they are pic -+ test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ test "X$libobjs" = "X " && libobjs= - -- # 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 $EXIT_FAILURE -- fi -- fi -+ delfiles= -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" -+ export_symbols="$output_objdir/$libname.uexp" -+ delfiles="$delfiles $export_symbols" -+ fi -+ -+ orig_export_symbols= -+ case $host_os in -+ cygwin* | mingw* | cegcc*) -+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then -+ # exporting using user supplied symfile -+ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then -+ # and it's NOT already a .def file. Must figure out -+ # which of the given symbols are data symbols and tag -+ # them as such. So, trigger use of export_symbols_cmds. -+ # export_symbols gets reassigned inside the "prepare -+ # the list of exported symbols" if statement, so the -+ # include_expsyms logic still works. -+ orig_export_symbols="$export_symbols" -+ export_symbols= -+ always_export_symbols=yes -+ fi -+ fi -+ ;; -+ esac - -- $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\" --" -+ # Prepare the list of exported symbols -+ if test -z "$export_symbols"; then -+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then -+ func_verbose "generating symbol list for \`$libname.la'" -+ export_symbols="$output_objdir/$libname.exp" -+ $opt_dry_run || $RM $export_symbols -+ cmds=$export_symbols_cmds -+ save_ifs="$IFS"; IFS='~' -+ for cmd in $cmds; do -+ IFS="$save_ifs" -+ eval cmd=\"$cmd\" -+ func_len " $cmd" -+ len=$func_len_result -+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ func_show_eval "$cmd" 'exit $?' -+ skipped_export=false -+ else -+ # The command line is too long to execute in one step. -+ func_verbose "using reloadable object file for export list..." -+ skipped_export=: -+ # Break out early, otherwise skipped_export may be -+ # set to false by a later but shorter cmd. -+ break -+ fi -+ done -+ IFS="$save_ifs" -+ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' -+ fi -+ fi - fi - -- $echo >> $output "\ -- -- if test -f \"\$progdir/\$program\"; then" -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ tmp_export_symbols="$export_symbols" -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' -+ fi -+ -+ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then -+ # The given exports_symbols file has to be filtered, so filter it. -+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of -+ # 's' commands which not all seds can handle. GNU sed should be fine -+ # though. Also, the filter scales superlinearly with the number of -+ # global variables. join(1) would be nice here, but unfortunately -+ # isn't a blessed tool. -+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -+ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ export_symbols=$output_objdir/$libname.def -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols -+ fi - -- # 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\" -+ tmp_deplibs= -+ for test_deplib in $deplibs; do -+ case " $convenience " in -+ *" $test_deplib "*) ;; -+ *) -+ tmp_deplibs="$tmp_deplibs $test_deplib" -+ ;; -+ esac -+ done -+ deplibs="$tmp_deplibs" - -- # 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/::*\$//'\` -+ if test -n "$convenience"; then -+ if test -n "$whole_archive_flag_spec" && -+ test "$compiler_needs_object" = yes && -+ test -z "$libobjs"; then -+ # extract the archives, so we have objects to list. -+ # TODO: could optimize this to just extract one archive. -+ whole_archive_flag_spec= -+ fi -+ if test -n "$whole_archive_flag_spec"; then -+ save_libobjs=$libobjs -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -+ test "X$libobjs" = "X " && libobjs= -+ else -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- export $shlibpath_var --" -+ func_extract_archives $gentop $convenience -+ libobjs="$libobjs $func_extract_archives_result" -+ test "X$libobjs" = "X " && libobjs= -+ fi - 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 --" -+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then -+ eval flag=\"$thread_safe_flag_spec\" -+ linker_flags="$linker_flags $flag" - fi - -- $echo >> $output "\ -- if test \"\$libtool_execute_magic\" != \"$magic\"; then -- # Run the actual program with our arguments. --" -- case $host in -- # Backslashes separate directories on plain windows -- *-*-mingw | *-*-os2*) -- $echo >> $output "\ -- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} --" -- ;; -- -- *) -- $echo >> $output "\ -- exec \"\$progdir/\$program\" \${1+\"\$@\"} --" -- ;; -- esac -- $echo >> $output "\ -- \$echo \"\$0: cannot exec \$program \$*\" -- exit $EXIT_FAILURE -- 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 $EXIT_FAILURE -- fi --fi\ --" -- chmod +x $output -- fi -- exit $EXIT_SUCCESS -- ;; -- esac -- -- # See if we need to build an old-fashioned archive. -- for oldlib in $oldlibs; do -+ # Make a backup of the uninstalled library when relinking -+ if test "$mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? -+ fi - -- 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 -+ # Do each of the archive commands. -+ if test "$module" = yes && test -n "$module_cmds" ; then -+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -+ eval test_cmds=\"$module_expsym_cmds\" -+ cmds=$module_expsym_cmds -+ else -+ eval test_cmds=\"$module_cmds\" -+ cmds=$module_cmds -+ fi - else -- oldobjs="$old_deplibs $non_pic_objects" -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -+ eval test_cmds=\"$archive_expsym_cmds\" -+ cmds=$archive_expsym_cmds -+ else -+ eval test_cmds=\"$archive_cmds\" -+ cmds=$archive_cmds -+ fi - fi -- addlibs="$old_convenience" -- fi - -- if test -n "$addlibs"; then -- gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ if test "X$skipped_export" != "X:" && -+ func_len " $test_cmds" && -+ len=$func_len_result && -+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ : -+ else -+ # The command line is too long to link in one step, link piecewise -+ # or, if using GNU ld and skipped_export is not :, use a linker -+ # script. - -- func_extract_archives $gentop $addlibs -- oldobjs="$oldobjs $func_extract_archives_result" -- fi -+ # Save the value of $output and $libobjs because we want to -+ # use them later. If we have whole_archive_flag_spec, we -+ # want to use save_libobjs as it was before -+ # whole_archive_flag_spec was expanded, because we can't -+ # assume the linker understands whole_archive_flag_spec. -+ # This may have to be revisited, in case too many -+ # convenience libraries get linked in and end up exceeding -+ # the spec. -+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then -+ save_libobjs=$libobjs -+ fi -+ save_output=$output -+ output_la=`$ECHO "X$output" | $Xsed -e "$basename"` - -- # Do each command in the archive commands. -- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then -- cmds=$old_archive_from_new_cmds -- else -- # POSIX demands no paths to be encoded in archives. We have -- # to avoid creating archives with duplicate basenames if we -- # might have to extract them afterwards, e.g., when creating a -- # static archive out of a convenience library, or when linking -- # the entirety of a libtool archive into another (currently -- # not supported by libtool). -- if (for obj in $oldobjs -+ # Clear the reloadable object creation command queue and -+ # initialize k to one. -+ test_cmds= -+ concat_cmds= -+ objlist= -+ last_robj= -+ k=1 -+ -+ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then -+ output=${output_objdir}/${output_la}.lnkscript -+ func_verbose "creating GNU ld script: $output" -+ $ECHO 'INPUT (' > $output -+ for obj in $save_libobjs - do -- $echo "X$obj" | $Xsed -e 's%^.*/%%' -- done | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "copying selected object files to avoid basename conflicts..." -+ $ECHO "$obj" >> $output -+ done -+ $ECHO ')' >> $output -+ delfiles="$delfiles $output" -+ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then -+ output=${output_objdir}/${output_la}.lnk -+ func_verbose "creating linker input file list: $output" -+ : > $output -+ set x $save_libobjs -+ shift -+ firstobj= -+ if test "$compiler_needs_object" = yes; then -+ firstobj="$1 " -+ shift -+ fi -+ for obj -+ do -+ $ECHO "$obj" >> $output -+ done -+ delfiles="$delfiles $output" -+ output=$firstobj\"$file_list_spec$output\" -+ else -+ if test -n "$save_libobjs"; then -+ func_verbose "creating reloadable object files..." -+ output=$output_objdir/$output_la-${k}.$objext -+ eval test_cmds=\"$reload_cmds\" -+ func_len " $test_cmds" -+ len0=$func_len_result -+ len=$len0 -+ -+ # Loop over the list of objects to be linked. -+ for obj in $save_libobjs -+ do -+ func_len " $obj" -+ func_arith $len + $func_len_result -+ len=$func_arith_result -+ if test "X$objlist" = X || -+ test "$len" -lt "$max_cmd_len"; then -+ func_append objlist " $obj" -+ else -+ # The command $test_cmds is almost too long, add a -+ # command to the queue. -+ if test "$k" -eq 1 ; then -+ # The first file doesn't have a previous command to add. -+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\" -+ else -+ # All subsequent reloadable object files will link in -+ # the last one created. -+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" -+ fi -+ last_robj=$output_objdir/$output_la-${k}.$objext -+ func_arith $k + 1 -+ k=$func_arith_result -+ output=$output_objdir/$output_la-${k}.$objext -+ objlist=$obj -+ func_len " $last_robj" -+ func_arith $len0 + $func_len_result -+ len=$func_arith_result -+ fi -+ done -+ # Handle the remaining objects by creating one last -+ # reloadable object file. All subsequent reloadable object -+ # files will link in the last one created. -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" -+ if test -n "$last_robj"; then -+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" -+ fi -+ delfiles="$delfiles $output" - -- if test -z "$gentop"; then -- gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ else -+ output= -+ fi -+ -+ if ${skipped_export-false}; then -+ func_verbose "generating symbol list for \`$libname.la'" -+ export_symbols="$output_objdir/$libname.exp" -+ $opt_dry_run || $RM $export_symbols -+ libobjs=$output -+ # Append the command to create the export file. -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" -+ if test -n "$last_robj"; then -+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" -+ fi -+ fi -+ -+ test -n "$save_libobjs" && -+ func_verbose "creating a temporary reloadable object file: $output" -+ -+ # Loop through the commands generated above and execute them. -+ save_ifs="$IFS"; IFS='~' -+ for cmd in $concat_cmds; do -+ IFS="$save_ifs" -+ $opt_silent || { -+ func_quote_for_expand "$cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ $opt_dry_run || eval "$cmd" || { -+ lt_exit=$? -+ -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ ( cd "$output_objdir" && \ -+ $RM "${realname}T" && \ -+ $MV "${realname}U" "$realname" ) -+ fi -+ -+ exit $lt_exit -+ } -+ done -+ IFS="$save_ifs" - -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- $show "$mkdir $gentop" -- $run $mkdir "$gentop" -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$gentop"; then -- exit $exit_status -+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - -- save_oldobjs=$oldobjs -- oldobjs= -- counter=1 -- for obj in $save_oldobjs -- do -- objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -- case " $oldobjs " in -- " ") oldobjs=$obj ;; -- *[\ /]"$objbase "*) -- while :; do -- # Make sure we don't pick an alternate name that also -- # overlaps. -- newobj=lt$counter-$objbase -- counter=`expr $counter + 1` -- case " $oldobjs " in -- *[\ /]"$newobj "*) ;; -- *) if test ! -f "$gentop/$newobj"; then break; fi ;; -- esac -- done -- $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -- $run ln "$obj" "$gentop/$newobj" || -- $run cp "$obj" "$gentop/$newobj" -- oldobjs="$oldobjs $gentop/$newobj" -- ;; -- *) oldobjs="$oldobjs $obj" ;; -- esac -- done -- fi -+ if ${skipped_export-false}; then -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ tmp_export_symbols="$export_symbols" -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' -+ fi -+ -+ if test -n "$orig_export_symbols"; then -+ # The given exports_symbols file has to be filtered, so filter it. -+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of -+ # 's' commands which not all seds can handle. GNU sed should be fine -+ # though. Also, the filter scales superlinearly with the number of -+ # global variables. join(1) would be nice here, but unfortunately -+ # isn't a blessed tool. -+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -+ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ export_symbols=$output_objdir/$libname.def -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols -+ fi -+ fi - -- eval cmds=\"$old_archive_cmds\" -+ libobjs=$output -+ # Restore the value of output. -+ output=$save_output - -- if len=`expr "X$cmds" : ".*"` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- cmds=$old_archive_cmds -- else -- # the command line is too long to link in one step, link in parts -- $echo "using piecewise archive linking..." -- save_RANLIB=$RANLIB -- RANLIB=: -- objlist= -- concat_cmds= -- save_oldobjs=$oldobjs -+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -+ test "X$libobjs" = "X " && libobjs= -+ fi -+ # Expand the library linking commands again to reset the -+ # value of $libobjs for piecewise linking. - -- # Is there a better way of finding the last object in the list? -- for obj in $save_oldobjs -- do -- last_oldobj=$obj -- done -- for obj in $save_oldobjs -- do -- oldobjs="$objlist $obj" -- objlist="$objlist $obj" -- eval test_cmds=\"$old_archive_cmds\" -- if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len"; then -- : -+ # Do each of the archive commands. -+ if test "$module" = yes && test -n "$module_cmds" ; then -+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -+ cmds=$module_expsym_cmds - else -- # the above command should be used before it gets too long -- oldobjs=$objlist -- if test "$obj" = "$last_oldobj" ; then -- RANLIB=$save_RANLIB -- fi -- test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" -- objlist= -+ cmds=$module_cmds - fi -- done -- RANLIB=$save_RANLIB -- oldobjs=$objlist -- if test "X$oldobjs" = "X" ; then -- eval cmds=\"\$concat_cmds\" - else -- eval cmds=\"\$concat_cmds~\$old_archive_cmds\" -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -+ cmds=$archive_expsym_cmds -+ else -+ cmds=$archive_cmds -+ fi - fi - fi -- fi -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- eval cmd=\"$cmd\" -- 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 -+ if test -n "$delfiles"; then -+ # Append the command to remove temporary files to $cmds. -+ eval cmds=\"\$cmds~\$RM $delfiles\" -+ fi - -- # Now create the libtool archive. -- case $output in -- *.la) -- old_library= -- test "$build_old_libs" = yes && old_library="$libname.$libext" -- $show "creating $output" -+ # Add any objects from preloaded convenience libraries -+ if test -n "$dlprefiles"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- # 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" -+ func_extract_archives $gentop $dlprefiles -+ libobjs="$libobjs $func_extract_archives_result" -+ test "X$libobjs" = "X " && libobjs= - fi -- done -- # Quote the link command for shipping. -- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` -- if test "$hardcode_automatic" = yes ; then -- relink_command= -- fi - -+ save_ifs="$IFS"; IFS='~' -+ for cmd in $cmds; do -+ IFS="$save_ifs" -+ eval cmd=\"$cmd\" -+ $opt_silent || { -+ func_quote_for_expand "$cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ $opt_dry_run || eval "$cmd" || { -+ lt_exit=$? - -- # 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 -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ ( cd "$output_objdir" && \ -+ $RM "${realname}T" && \ -+ $MV "${realname}U" "$realname" ) - 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 $EXIT_FAILURE -- 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 $EXIT_FAILURE -- 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 $EXIT_FAILURE -- fi -- newdlprefiles="$newdlprefiles $libdir/$name" -- done -- dlprefiles="$newdlprefiles" -- else -- newdlfiles= -- for lib in $dlfiles; do -- case $lib in -- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -- *) abs=`pwd`"/$lib" ;; -- esac -- newdlfiles="$newdlfiles $abs" -- done -- dlfiles="$newdlfiles" -- newdlprefiles= -- for lib in $dlprefiles; do -- case $lib in -- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -- *) abs=`pwd`"/$lib" ;; -- esac -- newdlprefiles="$newdlprefiles $abs" -- 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 | *mingw*,*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' -+ exit $lt_exit -+ } -+ done -+ IFS="$save_ifs" - --# Names of this library. --library_names='$library_names' -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - --# The name of the static archive. --old_library='$old_library' -+ if test -n "$convenience"; then -+ if test -z "$whole_archive_flag_spec"; then -+ func_show_eval '${RM}r "$gentop"' -+ fi -+ fi - --# Libraries that this one depends upon. --dependency_libs='$dependency_libs' -+ exit $EXIT_SUCCESS -+ fi - --# Version information for $libname. --current=$current --age=$age --revision=$revision -+ # Create links to the real library. -+ for linkname in $linknames; do -+ if test "$realname" != "$linkname"; then -+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' -+ fi -+ done - --# Is this an already installed library? --installed=$installed -+ # 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 -+ ;; - --# Should we warn about portability when linking against -modules? --shouldnotlink=$module -+ obj) -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ func_warning "\`-dlopen' is ignored for objects" -+ fi - --# Files to dlopen/dlpreopen --dlopen='$dlfiles' --dlpreopen='$dlprefiles' -+ case " $deplibs" in -+ *\ -l* | *\ -L*) -+ func_warning "\`-l' and \`-L' are ignored for objects" ;; -+ esac - --# 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 -+ test -n "$rpath" && \ -+ func_warning "\`-rpath' is ignored for objects" - -- # 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 $EXIT_SUCCESS -- ;; -+ test -n "$xrpath" && \ -+ func_warning "\`-R' is ignored for objects" - -- # libtool install mode -- install) -- modename="$modename: install" -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info' is ignored for objects" - -- # 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" | grep shtool > /dev/null; then -- # Aesthetically quote it. -- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for objects" -+ -+ case $output in -+ *.lo) -+ test -n "$objs$old_deplibs" && \ -+ func_fatal_error "cannot build library object \`$output' from non-libtool objects" -+ -+ libobj=$output -+ func_lo2o "$libobj" -+ obj=$func_lo2o_result -+ ;; -+ *) -+ libobj= -+ obj="$output" - ;; - 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" -+ # Delete the old objects. -+ $opt_dry_run || $RM $obj $libobj - -- # 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 -+ # 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 and hope we can get by with -+ # turning comma into space.. -+ wl= - -- case $arg in -- -d) isdir=yes ;; -- -f) -- case " $install_prog " in -- *[\\\ /]cp\ *) ;; -- *) prev=$arg ;; -- esac -- ;; -- -g | -m | -o) prev=$arg ;; -- -s) -- stripme=" -s" -- continue -- ;; -- -*) -- ;; -- *) -- # If the previous option needed an argument, then skip it. -- if test -n "$prev"; then -- prev= -+ if test -n "$convenience"; then -+ if test -n "$whole_archive_flag_spec"; then -+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" -+ reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` - else -- dest=$arg -- continue -+ gentop="$output_objdir/${obj}x" -+ generated="$generated $gentop" -+ -+ func_extract_archives $gentop $convenience -+ reload_conv_objs="$reload_objs $func_extract_archives_result" - fi -- ;; -- esac -+ fi - -- # 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 -+ # 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 - -- if test -z "$install_prog"; then -- $echo "$modename: you must specify an install program" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ output="$obj" -+ func_execute_cmds "$reload_cmds" 'exit $?' - -- if test -n "$prev"; then -- $echo "$modename: the \`$prev' option requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ # Exit if we aren't doing a library object file. -+ if test -z "$libobj"; then -+ if test -n "$gentop"; then -+ func_show_eval '${RM}r "$gentop"' -+ 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 -+ exit $EXIT_SUCCESS - fi -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi - -- # Strip any trailing slash from the destination. -- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` -+ if test "$build_libtool_libs" != yes; then -+ if test -n "$gentop"; then -+ func_show_eval '${RM}r "$gentop"' -+ fi - -- # 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%^.*/%%'` -+ # Create an invalid libtool object if no PIC, so that we don't -+ # accidentally link it into a program. -+ # $show "echo timestamp > $libobj" -+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? -+ exit $EXIT_SUCCESS -+ fi - -- # 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 $EXIT_FAILURE -+ 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" -+ func_execute_cmds "$reload_cmds" 'exit $?' - 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 $EXIT_FAILURE -- ;; -- esac -- done -+ -+ if test -n "$gentop"; then -+ func_show_eval '${RM}r "$gentop"' -+ fi -+ -+ exit $EXIT_SUCCESS - ;; -- esac - -- # This variable tells wrapper scripts just to set variables rather -- # than running their programs. -- libtool_install_magic="$magic" -+ prog) -+ case $host in -+ *cygwin*) func_stripname '' '.exe' "$output" -+ output=$func_stripname_result.exe;; -+ esac -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info' is ignored for programs" - -- staticlibs= -- future_libdirs= -- current_libdirs= -- for file in $files; do -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for programs" - -- # Do each installation. -- case $file in -- *.$libext) -- # Do the static libraries later. -- staticlibs="$staticlibs $file" -+ test "$preload" = yes \ -+ && test "$dlopen_support" = unknown \ -+ && test "$dlopen_self" = unknown \ -+ && test "$dlopen_self_static" = unknown && \ -+ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." -+ -+ 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 / System.ltframework /'` -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - ;; -+ esac - -- *.la) -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $file | grep "^# 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 $EXIT_FAILURE -+ case $host in -+ *-*-darwin*) -+ # Don't allow lazy linking, it breaks C++ global constructors -+ # But is supposedly fixed on 10.4 or later (yay!). -+ if test "$tagname" = CXX ; then -+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in -+ 10.[0123]) -+ compile_command="$compile_command ${wl}-bind_at_load" -+ finalize_command="$finalize_command ${wl}-bind_at_load" -+ ;; -+ esac - fi -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo" -+ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ ;; -+ esac - -- 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. -- if test "X$destdir" = "X$libdir"; then -- case "$current_libdirs " in -- *" $libdir "*) ;; -- *) current_libdirs="$current_libdirs $libdir" ;; -+ # move library search paths that coincide with paths to not yet -+ # installed libraries to the beginning of the library search list -+ new_libs= -+ for path in $notinst_path; do -+ case " $new_libs " in -+ *" -L$path/$objdir "*) ;; -+ *) -+ case " $compile_deplibs " in -+ *" -L$path/$objdir "*) -+ new_libs="$new_libs -L$path/$objdir" ;; - esac -- else -- # Note the libdir as a future libdir. -- case "$future_libdirs " in -- *" $libdir "*) ;; -- *) future_libdirs="$future_libdirs $libdir" ;; -+ ;; -+ esac -+ done -+ for deplib in $compile_deplibs; do -+ case $deplib in -+ -L*) -+ case " $new_libs " in -+ *" $deplib "*) ;; -+ *) new_libs="$new_libs $deplib" ;; - esac -- fi -+ ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ done -+ compile_deplibs="$new_libs" - -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ -- test "X$dir" = "X$file/" && dir= -- dir="$dir$objdir" - -- if test -n "$relink_command"; then -- # Determine the prefix the user has applied to our future dir. -- inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` -+ compile_command="$compile_command $compile_deplibs" -+ finalize_command="$finalize_command $finalize_deplibs" - -- # Don't allow the user to place us outside of our expected -- # location b/c this prevents finding dependent libraries that -- # are installed to the same prefix. -- # At present, this check doesn't affect windows .dll's that -- # are installed into $libdir/../bin (currently, that works fine) -- # but it's something to keep an eye on. -- if test "$inst_prefix_dir" = "$destdir"; then -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -- exit $EXIT_FAILURE -- fi -+ 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 - -- if test -n "$inst_prefix_dir"; then -- # Stick the inst_prefix_dir data into the link command. -- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` -+ # 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 -- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` -+ 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* | *-cegcc*) -+ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` -+ case :$dllsearchpath: in -+ *":$libdir:"*) ;; -+ ::) dllsearchpath=$libdir;; -+ *) dllsearchpath="$dllsearchpath:$libdir";; -+ esac -+ case :$dllsearchpath: in -+ *":$testbindir:"*) ;; -+ ::) dllsearchpath=$testbindir;; -+ *) dllsearchpath="$dllsearchpath:$testbindir";; -+ 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" - -- $echo "$modename: warning: relinking \`$file'" 1>&2 -- $show "$relink_command" -- if $run eval "$relink_command"; then : -+ 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 -- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 -- exit $EXIT_FAILURE -+ 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" - -- # See the names of the shared library. -- set dummy $library_names -- if test -n "$2"; then -- realname="$2" -- shift -- shift -+ 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 - -- srcname="$realname" -- test -n "$relink_command" && srcname="$realname"T -+ func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - -- # 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 -+ # template prelinking step -+ if test -n "$prelink_cmds"; then -+ func_execute_cmds "$prelink_cmds" 'exit $?' -+ fi - -- if test "$#" -gt 0; then -- # Delete the old symlinks, and create new ones. -- # Try `ln -sf' first, because the `ln' binary might depend on -- # the symlink we replace! Solaris /bin/ln does not understand -f, -- # so we also need to try rm && ln -s. -- for linkname -- do -- if test "$linkname" != "$realname"; then -- $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" -- $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" -- fi -- done -- fi -+ wrappers_required=yes -+ case $host in -+ *cygwin* | *mingw* ) -+ if test "$build_libtool_libs" != yes; then -+ wrappers_required=no -+ fi -+ ;; -+ *cegcc) -+ # Disable wrappers for cegcc, we are cross compiling anyway. -+ wrappers_required=no -+ ;; -+ *) -+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then -+ wrappers_required=no -+ fi -+ ;; -+ esac -+ if test "$wrappers_required" = no; then -+ # Replace the output file specification. -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` -+ link_command="$compile_command$compile_rpath" - -- # Do each command in the postinstall commands. -- lib="$destdir/$realname" -- cmds=$postinstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || { -- lt_exit=$? -- -- # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' -- fi -+ # We have no uninstalled library dependencies, so finalize right now. -+ exit_status=0 -+ func_show_eval "$link_command" 'exit_status=$?' - -- exit $lt_exit -- } -- done -- IFS="$save_ifs" -+ # Delete the generated files. -+ if test -f "$output_objdir/${outputname}S.${objext}"; then -+ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - 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" -- ;; -+ exit $exit_status -+ fi - -- *.lo) -- # Install (i.e. copy) a libtool object. -+ 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 - -- # 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" -+ 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 -- -- # 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 $EXIT_FAILURE -- ;; -- esac -- -- # Install the libtool object if requested. -- if test -n "$destfile"; then -- $show "$install_prog $file $destfile" -- $run eval "$install_prog $file $destfile" || exit $? -+ 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 - -- # 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 -+ 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. -+ $opt_dry_run || $RM $output -+ # Link the executable and exit -+ func_show_eval "$link_command" 'exit $?' - exit $EXIT_SUCCESS -- ;; -+ fi - -- *) -- # Figure out destination file name, if it wasn't already specified. -- if test -n "$destname"; then -- destfile="$destdir/$destname" -+ 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" -+ -+ func_warning "this platform does not like uninstalled shared libraries" -+ func_warning "\`$output' will be relinked during installation" -+ 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 -- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- destfile="$destdir/$destfile" -+ link_command="$compile_var$compile_command$compile_rpath" -+ relink_command="$finalize_var$finalize_command$finalize_rpath" - fi -+ fi - -- # If the file is missing, and there is a .exe on the end, strip it -- # because it is most likely a libtool script we actually want to -- # install -- stripped_ext="" -- case $file in -- *.exe) -- if test ! -f "$file"; then -- file=`$echo $file|${SED} 's,.exe$,,'` -- stripped_ext=".exe" -- fi -- ;; -- esac -- -- # 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 | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then -- notinst_deplibs= -- relink_command= -- -- # Note that it is not necessary on cygwin/mingw to append a dot to -- # foo even if both foo and FILE.exe exist: automatic-append-.exe -- # behavior happens only for exec(3), not for open(2)! Also, sourcing -- # `FILE.' does not work on cygwin managed mounts. -- # -- # If there is no directory component, then add one. -- case $wrapper 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 $EXIT_FAILURE -- fi -+ # Replace the output file specification. -+ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - -- 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 -+ # Delete the old output files. -+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - -- relink_command= -- # Note that it is not necessary on cygwin/mingw to append a dot to -- # foo even if both foo and FILE.exe exist: automatic-append-.exe -- # behavior happens only for exec(3), not for open(2)! Also, sourcing -- # `FILE.' does not work on cygwin managed mounts. -- # -- # If there is no directory component, then add one. -- case $wrapper in -- */* | *\\*) . ${wrapper} ;; -- *) . ./${wrapper} ;; -- esac -+ func_show_eval "$link_command" 'exit $?' - -- outputname= -- if test "$fast_install" = no && test -n "$relink_command"; then -- if test "$finalize" = yes && test -z "$run"; then -- tmpdir=`func_mktempdir` -- file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` -- outputname="$tmpdir/$file" -- # Replace the output file specification. -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` -+ # Now create the wrapper script. -+ func_verbose "creating $output" - -- $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 -+ # 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}\" || $lt_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 -- # Install the binary that we compiled earlier. -- file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` -+ func_quote_for_eval "$var_value" -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi -- fi -+ done -+ relink_command="(cd `pwd`; $relink_command)" -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` -+ fi - -- # remove .exe since cygwin /usr/bin/install will append another -- # one anyway -- 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 -- ;; -+ # Quote $ECHO for shipping. -+ if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then -+ case $progpath in -+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; -+ *) qecho="$SHELL `pwd`/$progpath --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 not in dry run mode. -+ $opt_dry_run || { -+ # win32 will think the script is a binary if it has -+ # a .exe suffix, so we strip it off here. -+ case $output in -+ *.exe) func_stripname '' '.exe' "$output" -+ output=$func_stripname_result ;; -+ esac -+ # test for cygwin because mv fails w/o .exe extensions -+ case $host in -+ *cygwin*) -+ exeext=.exe -+ func_stripname '' '.exe' "$outputname" -+ outputname=$func_stripname_result ;; -+ *) exeext= ;; - esac -- $show "$install_prog$stripme $file $destfile" -- $run eval "$install_prog\$stripme \$file \$destfile" || exit $? -- test -n "$outputname" && ${rm}r "$tmpdir" -- ;; -- esac -- done -+ case $host in -+ *cygwin* | *mingw* ) -+ func_dirname_and_basename "$output" "" "." -+ output_name=$func_basename_result -+ output_path=$func_dirname_result -+ cwrappersource="$output_path/$objdir/lt-$output_name.c" -+ cwrapper="$output_path/$output_name.exe" -+ $RM $cwrappersource $cwrapper -+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 -+ -+ func_emit_cwrapperexe_src > $cwrappersource -+ -+ # The wrapper executable is built using the $host compiler, -+ # because it contains $host paths and files. If cross- -+ # compiling, it, like the target executable, must be -+ # executed on the $host or under an emulation environment. -+ $opt_dry_run || { -+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource -+ $STRIP $cwrapper -+ } - -- for file in $staticlibs; do -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -+ # Now, create the wrapper script for func_source use: -+ func_ltwrapper_scriptname $cwrapper -+ $RM $func_ltwrapper_scriptname_result -+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 -+ $opt_dry_run || { -+ # note: this script will not be executed, so do not chmod. -+ if test "x$build" = "x$host" ; then -+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result -+ else -+ func_emit_wrapper no > $func_ltwrapper_scriptname_result -+ fi -+ } -+ ;; -+ * ) -+ $RM $output -+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - -- # Set up the ranlib parameters. -- oldlib="$destdir/$name" -+ func_emit_wrapper no > $output -+ chmod +x $output -+ ;; -+ esac -+ } -+ exit $EXIT_SUCCESS -+ ;; -+ esac - -- $show "$install_prog $file $oldlib" -- $run eval "$install_prog \$file \$oldlib" || exit $? -+ # See if we need to build an old-fashioned archive. -+ for oldlib in $oldlibs; do - -- if test -n "$stripme" && test -n "$old_striplib"; then -- $show "$old_striplib $oldlib" -- $run eval "$old_striplib $oldlib" || exit $? -+ if test "$build_libtool_libs" = convenience; then -+ oldobjs="$libobjs_save $symfileobj" -+ addlibs="$convenience" -+ build_libtool_libs=no -+ else -+ if test "$build_libtool_libs" = module; then -+ oldobjs="$libobjs_save" -+ build_libtool_libs=no -+ else -+ oldobjs="$old_deplibs $non_pic_objects" -+ if test "$preload" = yes && test -f "$symfileobj"; then -+ oldobjs="$oldobjs $symfileobj" -+ fi -+ fi -+ addlibs="$old_convenience" - fi - -- # Do each command in the postinstall commands. -- cmds=$old_postinstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- done -+ if test -n "$addlibs"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- if test -n "$future_libdirs"; then -- $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 -- fi -+ func_extract_archives $gentop $addlibs -+ oldobjs="$oldobjs $func_extract_archives_result" -+ fi - -- if test -n "$current_libdirs"; then -- # Maybe just do a dry run. -- test -n "$run" && current_libdirs=" -n$current_libdirs" -- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -- else -- exit $EXIT_SUCCESS -- fi -- ;; -+ # Do each command in the archive commands. -+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then -+ cmds=$old_archive_from_new_cmds -+ else - -- # libtool finish mode -- finish) -- modename="$modename: finish" -- libdirs="$nonopt" -- admincmds= -+ # Add any objects from preloaded convenience libraries -+ if test -n "$dlprefiles"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -- for dir -- do -- libdirs="$libdirs $dir" -- done -+ func_extract_archives $gentop $dlprefiles -+ oldobjs="$oldobjs $func_extract_archives_result" -+ fi - -- for libdir in $libdirs; do -- if test -n "$finish_cmds"; then -- # Do each command in the finish commands. -- cmds=$finish_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || admincmds="$admincmds -- $cmd" -+ # POSIX demands no paths to be encoded in archives. We have -+ # to avoid creating archives with duplicate basenames if we -+ # might have to extract them afterwards, e.g., when creating a -+ # static archive out of a convenience library, or when linking -+ # the entirety of a libtool archive into another (currently -+ # not supported by libtool). -+ if (for obj in $oldobjs -+ do -+ func_basename "$obj" -+ $ECHO "$func_basename_result" -+ done | sort | sort -uc >/dev/null 2>&1); then -+ : -+ else -+ $ECHO "copying selected object files to avoid basename conflicts..." -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" -+ func_mkdir_p "$gentop" -+ save_oldobjs=$oldobjs -+ oldobjs= -+ counter=1 -+ for obj in $save_oldobjs -+ do -+ func_basename "$obj" -+ objbase="$func_basename_result" -+ case " $oldobjs " in -+ " ") oldobjs=$obj ;; -+ *[\ /]"$objbase "*) -+ while :; do -+ # Make sure we don't pick an alternate name that also -+ # overlaps. -+ newobj=lt$counter-$objbase -+ func_arith $counter + 1 -+ counter=$func_arith_result -+ case " $oldobjs " in -+ *[\ /]"$newobj "*) ;; -+ *) if test ! -f "$gentop/$newobj"; then break; fi ;; -+ esac -+ done -+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -+ oldobjs="$oldobjs $gentop/$newobj" -+ ;; -+ *) oldobjs="$oldobjs $obj" ;; -+ esac - 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 $EXIT_SUCCESS -+ eval cmds=\"$old_archive_cmds\" - -- $echo "X----------------------------------------------------------------------" | $Xsed -- $echo "Libraries have been installed in:" -- for libdir in $libdirs; do -- $echo " $libdir" -+ func_len " $cmds" -+ len=$func_len_result -+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ cmds=$old_archive_cmds -+ else -+ # the command line is too long to link in one step, link in parts -+ func_verbose "using piecewise archive linking..." -+ save_RANLIB=$RANLIB -+ RANLIB=: -+ objlist= -+ concat_cmds= -+ save_oldobjs=$oldobjs -+ oldobjs= -+ # Is there a better way of finding the last object in the list? -+ for obj in $save_oldobjs -+ do -+ last_oldobj=$obj -+ done -+ eval test_cmds=\"$old_archive_cmds\" -+ func_len " $test_cmds" -+ len0=$func_len_result -+ len=$len0 -+ for obj in $save_oldobjs -+ do -+ func_len " $obj" -+ func_arith $len + $func_len_result -+ len=$func_arith_result -+ func_append objlist " $obj" -+ if test "$len" -lt "$max_cmd_len"; then -+ : -+ else -+ # the above command should be used before it gets too long -+ oldobjs=$objlist -+ if test "$obj" = "$last_oldobj" ; then -+ RANLIB=$save_RANLIB -+ fi -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" -+ objlist= -+ len=$len0 -+ fi -+ done -+ RANLIB=$save_RANLIB -+ oldobjs=$objlist -+ if test "X$oldobjs" = "X" ; then -+ eval cmds=\"\$concat_cmds\" -+ else -+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" -+ fi -+ fi -+ fi -+ func_execute_cmds "$cmds" 'exit $?' - 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 "X----------------------------------------------------------------------" | $Xsed -- exit $EXIT_SUCCESS -- ;; -- -- # 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 $EXIT_FAILURE -- fi -+ test -n "$generated" && \ -+ func_show_eval "${RM}r$generated" - -- # 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 $EXIT_FAILURE -- fi -+ # Now create the libtool archive. -+ case $output in -+ *.la) -+ old_library= -+ test "$build_old_libs" = yes && old_library="$libname.$libext" -+ func_verbose "creating $output" - -- dir= -- case $file in -- *.la) -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; 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}\" || $lt_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 -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ func_quote_for_eval "$var_value" -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi -+ done -+ # Quote the link command for shipping. -+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` -+ if test "$hardcode_automatic" = yes ; then -+ relink_command= -+ fi - -- # Read the libtool library. -- dlname= -- library_names= -+ # Only create the output if not a dry run. -+ $opt_dry_run || { -+ 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) -+ func_basename "$deplib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$deplib' is not a valid libtool archive" -+ newdependency_libs="$newdependency_libs $libdir/$name" -+ ;; -+ *) newdependency_libs="$newdependency_libs $deplib" ;; -+ esac -+ done -+ dependency_libs="$newdependency_libs" -+ newdlfiles= -+ -+ for lib in $dlfiles; do -+ case $lib in -+ *.la) -+ func_basename "$lib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$lib' is not a valid libtool archive" -+ newdlfiles="$newdlfiles $libdir/$name" -+ ;; -+ *) newdlfiles="$newdlfiles $lib" ;; -+ esac -+ done -+ dlfiles="$newdlfiles" -+ newdlprefiles= -+ for lib in $dlprefiles; do -+ case $lib in -+ *.la) -+ # Only pass preopened files to the pseudo-archive (for -+ # eventual linking with the app. that links it) if we -+ # didn't already link the preopened objects directly into -+ # the library: -+ func_basename "$lib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$lib' is not a valid libtool archive" -+ newdlprefiles="$newdlprefiles $libdir/$name" -+ ;; -+ esac -+ done -+ dlprefiles="$newdlprefiles" -+ else -+ newdlfiles= -+ for lib in $dlfiles; do -+ case $lib in -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -+ *) abs=`pwd`"/$lib" ;; -+ esac -+ newdlfiles="$newdlfiles $abs" -+ done -+ dlfiles="$newdlfiles" -+ newdlprefiles= -+ for lib in $dlprefiles; do -+ case $lib in -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -+ *) abs=`pwd`"/$lib" ;; -+ esac -+ newdlprefiles="$newdlprefiles $abs" -+ 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 | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; -+ esac -+ $ECHO > $output "\ -+# $outputname - a libtool library file -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -+# -+# Please DO NOT delete this file! -+# It is necessary for linking the library. - -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac -+# The name that we can dlopen(3). -+dlname='$tdlname' - -- # 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 -+# Names of this library. -+library_names='$library_names' - -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$file" && dir=. -+# The name of the static archive. -+old_library='$old_library' - -- if test -f "$dir/$objdir/$dlname"; then -- dir="$dir/$objdir" -- else -- if test ! -f "$dir/$dlname"; then -- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 -- exit $EXIT_FAILURE -- fi -- fi -- ;; -+# Linker flags that can not go in dependency_libs. -+inherited_linker_flags='$new_inherited_linker_flags' - -- *.lo) -- # Just add the directory containing the .lo file. -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$file" && dir=. -- ;; -+# Libraries that this one depends upon. -+dependency_libs='$dependency_libs' - -- *) -- $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 -- continue -- ;; -- esac -+# Names of additional weak libraries provided by this library -+weak_library_names='$weak_libs' - -- # Get the absolute pathname. -- absdir=`cd "$dir" && pwd` -- test -n "$absdir" && dir="$absdir" -+# Version information for $libname. -+current=$current -+age=$age -+revision=$revision - -- # 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 -+# Is this an already installed library? -+installed=$installed - -- # This variable tells wrapper scripts just to set shlibpath_var -- # rather than running their programs. -- libtool_execute_magic="$magic" -+# Should we warn about portability when linking against -modules? -+shouldnotlink=$module - -- # 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 | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac -+# Files to dlopen/dlpreopen -+dlopen='$dlfiles' -+dlpreopen='$dlprefiles' - -- # 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 -+# 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 -+ } - -- if test -z "$run"; then -- if test -n "$shlibpath_var"; then -- # Export the shlibpath_var. -- eval "export $shlibpath_var" -- fi -+ # Do a symbolic link so that the libtool archive can be found in -+ # LD_LIBRARY_PATH before the program is installed. -+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' -+ ;; -+ esac -+ exit $EXIT_SUCCESS -+} - -- # Restore saved environment variables -- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -- do -- eval "if test \"\${save_$lt_var+set}\" = set; then -- $lt_var=\$save_$lt_var; export $lt_var -- fi" -- done -+{ test "$mode" = link || test "$mode" = relink; } && -+ func_mode_link ${1+"$@"} - -- # 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 $EXIT_SUCCESS -- fi -- ;; - -- # libtool clean and uninstall mode -- clean | uninstall) -- modename="$modename: $mode" -- rm="$nonopt" -+# func_mode_uninstall arg... -+func_mode_uninstall () -+{ -+ $opt_debug -+ RM="$nonopt" - files= - rmforce= - exit_status=0 -@@ -6547,30 +8202,28 @@ - for arg - do - case $arg in -- -f) rm="$rm $arg"; rmforce=yes ;; -- -*) rm="$rm $arg" ;; -+ -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 $EXIT_FAILURE -- fi -+ test -z "$RM" && \ -+ func_fatal_help "you must specify an RM program" - - rmdirs= - - origobjdir="$objdir" - for file in $files; do -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$dir" = "X$file"; then -- dir=. -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" -+ if test "X$dir" = X.; then - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -+ func_basename "$file" -+ name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates -@@ -6582,9 +8235,9 @@ - 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 -+ 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 -@@ -6598,8 +8251,8 @@ - case $name in - *.la) - # Possibly a libtool archive, so verify it. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- . $dir/$name -+ if func_lalib_p "$file"; then -+ func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do -@@ -6614,39 +8267,17 @@ - *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; - esac -- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" -+ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. -- cmds=$postuninstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" -- if test "$?" -ne 0 && test "$rmforce" != yes; then -- exit_status=1 -- fi -- done -- IFS="$save_ifs" -+ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. -- cmds=$old_postuninstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" -- if test "$?" -ne 0 && test "$rmforce" != yes; then -- exit_status=1 -- fi -- done -- IFS="$save_ifs" -+ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; -@@ -6656,20 +8287,20 @@ - - *.lo) - # Possibly a libtool object, so verify it. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -+ if func_lalib_p "$file"; then - - # Read the .lo file -- . $dir/$name -+ func_source $dir/$name - - # Add PIC object to the list of files to remove. -- if test -n "$pic_object" \ -- && test "$pic_object" != none; then -+ if test -n "$pic_object" && -+ test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. -- if test -n "$non_pic_object" \ -- && test "$non_pic_object" != none; then -+ if test -n "$non_pic_object" && -+ test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi -@@ -6680,17 +8311,26 @@ - noexename=$name - case $file in - *.exe) -- file=`$echo $file|${SED} 's,.exe$,,'` -- noexename=`$echo $name|${SED} 's,.exe$,,'` -+ func_stripname '' '.exe' "$file" -+ file=$func_stripname_result -+ func_stripname '' '.exe' "$name" -+ noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. -- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- relink_command= -- . $dir/$noexename -+ if func_ltwrapper_p "$file"; then -+ if func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ relink_command= -+ func_source $func_ltwrapper_scriptname_result -+ rmfiles="$rmfiles $func_ltwrapper_scriptname_result" -+ else -+ relink_command= -+ func_source $dir/$noexename -+ fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles -@@ -6705,239 +8345,38 @@ - fi - ;; - esac -- $show "$rm $rmfiles" -- $run $rm $rmfiles || exit_status=1 -+ func_show_eval "$RM $rmfiles" 'exit_status=1' - done - objdir="$origobjdir" - - # 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 -+ func_show_eval "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 $EXIT_FAILURE -- ;; -- esac -+{ test "$mode" = uninstall || test "$mode" = clean; } && -+ func_mode_uninstall ${1+"$@"} - -- if test -z "$exec_cmd"; then -- $echo "$modename: invalid operation mode \`$mode'" 1>&2 -- $echo "$generic_help" 1>&2 -- exit $EXIT_FAILURE -- fi --fi # test -z "$show_help" -+test -z "$mode" && { -+ help="$generic_help" -+ func_fatal_help "you must specify a MODE" -+} -+ -+test -z "$exec_cmd" && \ -+ func_fatal_help "invalid operation mode \`$mode'" - - if test -n "$exec_cmd"; then -- eval exec $exec_cmd -+ eval exec "$exec_cmd" - exit $EXIT_FAILURE - 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 -- --tag=TAG use configuration variables from tag TAG -- --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. -- --Report bugs to ." -- exit $EXIT_SUCCESS -- ;; -- --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. -+exit $exit_status - --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 -- -objectlist FILE Use a list of object files found in FILE to specify objects -- -precious-files-regex REGEX -- don't remove output files matching REGEX -- -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 uninstalled libtool libraries -- -static-libtool-libs -- 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 $EXIT_FAILURE -- ;; --esac -- --$echo --$echo "Try \`$modename --help' for more information about other modes." -- --exit $? - - # The TAGs below are defined such that we never get into a situation - # in which we disable both kinds of libraries. Given conflicting -@@ -6951,14 +8390,17 @@ - # configuration. But we'll never go from static-only to shared-only. - - # ### BEGIN LIBTOOL TAG CONFIG: disable-shared --disable_libs=shared -+build_libtool_libs=no -+build_old_libs=yes - # ### END LIBTOOL TAG CONFIG: disable-shared - - # ### BEGIN LIBTOOL TAG CONFIG: disable-static --disable_libs=static -+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` - # ### END LIBTOOL TAG CONFIG: disable-static - - # Local Variables: - # mode:shell-script - # sh-indentation:2 - # End: -+# vi:sw=2 -+ diff --git a/packages/multimedia/libva/patches/100_updated_autoreconf.diff b/packages/multimedia/libva/patches/libva-0.31.0+sds5.diff similarity index 59% rename from packages/multimedia/libva/patches/100_updated_autoreconf.diff rename to packages/multimedia/libva/patches/libva-0.31.0+sds5.diff index 184fe6e27c..6447e32d7d 100644 --- a/packages/multimedia/libva/patches/100_updated_autoreconf.diff +++ b/packages/multimedia/libva/patches/libva-0.31.0+sds5.diff @@ -1,6 +1,6 @@ -diff -Naur libva-0.31.0/aclocal.m4 libva-0.31.0.diff/aclocal.m4 +diff -Naur libva-0.31.0/aclocal.m4 libva-0.31.0.patch/aclocal.m4 --- libva-0.31.0/aclocal.m4 2009-06-25 17:34:55.000000000 +0200 -+++ libva-0.31.0.diff/aclocal.m4 2009-10-10 23:10:10.462688224 +0200 ++++ libva-0.31.0.patch/aclocal.m4 2009-10-12 02:43:37.678782625 +0200 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11 -*- Autoconf -*- @@ -12220,10 +12220,28 @@ diff -Naur libva-0.31.0/aclocal.m4 libva-0.31.0.diff/aclocal.m4 # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. -diff -Naur libva-0.31.0/config.h.in libva-0.31.0.diff/config.h.in +diff -Naur libva-0.31.0/config.h.in libva-0.31.0.patch/config.h.in --- libva-0.31.0/config.h.in 2009-07-06 12:44:32.000000000 +0200 -+++ libva-0.31.0.diff/config.h.in 2009-10-10 23:10:12.000000000 +0200 -@@ -30,6 +30,10 @@ ++++ libva-0.31.0.patch/config.h.in 2009-10-12 02:43:29.416782622 +0200 +@@ -1,8 +1,17 @@ + /* config.h.in. Generated from configure.ac by autoheader. */ + ++/* Defined to __attribute__((visibility("hidden"))) when available */ ++#undef ATTRIBUTE_HIDDEN ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_DLFCN_H + ++/* Define to 1 if you have the header file. */ ++#undef HAVE_GL_GLX_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_GL_GL_H ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_INTTYPES_H + +@@ -30,6 +39,10 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H @@ -12234,9 +12252,9 @@ diff -Naur libva-0.31.0/config.h.in libva-0.31.0.diff/config.h.in /* Name of package */ #undef PACKAGE -diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +diff -Naur libva-0.31.0/configure libva-0.31.0.patch/configure --- libva-0.31.0/configure 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/configure 2009-10-10 23:10:12.479662297 +0200 ++++ libva-0.31.0.patch/configure 2009-10-12 02:46:00.872657823 +0200 @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. @@ -12737,7 +12755,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure exec 7<&0 &1 # Name of the host. -@@ -769,144 +786,159 @@ +@@ -769,144 +786,165 @@ # include #endif" @@ -12784,6 +12802,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +pkgconfigdir +LIBVA_LIBS +LIBVA_CFLAGS ++USE_GLX_FALSE ++USE_GLX_TRUE ++GL_DEPS_LIBS ++GL_DEPS_CFLAGS +BUILD_I965_DRIVER_FALSE +BUILD_I965_DRIVER_TRUE +HAVE_GEN4ASM_FALSE @@ -12848,6 +12870,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +BUILD_DUMMY_DRIVER_TRUE +LIBVA_LT_LDFLAGS +LIBVA_LT_VERSION ++LIBVA_SDS_VERSION +LIBVA_VERSION +LIBVA_MICRO_VERSION +LIBVA_MINOR_VERSION @@ -13018,6 +13041,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +ac_subst_files='' +ac_user_opts=' +enable_option_checking ++enable_glx +enable_dummy_driver +enable_i965_driver +with_drivers_path @@ -13034,7 +13058,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure host_alias target_alias CC -@@ -915,12 +947,6 @@ +@@ -915,12 +953,6 @@ LIBS CPPFLAGS CPP @@ -13047,7 +13071,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure PKG_CONFIG X11_CFLAGS X11_LIBS -@@ -937,6 +963,8 @@ +@@ -937,6 +969,8 @@ # Initialize some variables set by options. ac_init_help= ac_init_version=false @@ -13056,7 +13080,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null -@@ -1035,13 +1063,21 @@ +@@ -1035,13 +1069,21 @@ datarootdir=$ac_optarg ;; -disable-* | --disable-*) @@ -13083,7 +13107,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -@@ -1054,13 +1090,21 @@ +@@ -1054,13 +1096,21 @@ dvidir=$ac_optarg ;; -enable-* | --enable-*) @@ -13110,7 +13134,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ -@@ -1251,22 +1295,38 @@ +@@ -1251,22 +1301,38 @@ ac_init_version=: ;; -with-* | --with-*) @@ -13159,7 +13183,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure --x) # Obsolete; use --with-x. -@@ -1286,7 +1346,7 @@ +@@ -1286,7 +1352,7 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; @@ -13168,7 +13192,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; -@@ -1295,16 +1355,16 @@ +@@ -1295,16 +1361,16 @@ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && @@ -13188,7 +13212,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; -@@ -1313,22 +1373,38 @@ +@@ -1313,22 +1379,38 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` @@ -13230,7 +13254,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; } done -@@ -1343,7 +1419,7 @@ +@@ -1343,7 +1425,7 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe @@ -13239,7 +13263,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes -@@ -1359,10 +1435,10 @@ +@@ -1359,10 +1441,10 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || @@ -13252,7 +13276,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; } -@@ -1370,12 +1446,12 @@ +@@ -1370,12 +1452,12 @@ if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. @@ -13271,7 +13295,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q -@@ -1402,12 +1478,12 @@ +@@ -1402,12 +1484,12 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." @@ -13286,7 +13310,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. -@@ -1456,9 +1532,9 @@ +@@ -1456,9 +1538,9 @@ Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -13298,7 +13322,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -@@ -1468,25 +1544,25 @@ +@@ -1468,25 +1550,25 @@ For better control, use the options below. Fine tuning of the installation directories: @@ -13343,15 +13367,18 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure _ACEOF cat <<\_ACEOF -@@ -1509,6 +1585,7 @@ +@@ -1509,8 +1591,10 @@ cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --enable-glx build with OpenGL for X11 support --enable-dummy-driver build dummy video driver -@@ -1525,12 +1602,11 @@ + --enable-i965-driver build i965 video driver + --enable-static[=PKGS] build static libraries [default=no] +@@ -1525,12 +1609,11 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) @@ -13366,7 +13393,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure Some influential environment variables: CC C compiler command -@@ -1541,11 +1617,6 @@ +@@ -1541,11 +1624,6 @@ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor @@ -13378,7 +13405,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure PKG_CONFIG path to pkg-config utility X11_CFLAGS C compiler flags for X11, overriding pkg-config X11_LIBS linker flags for X11, overriding pkg-config -@@ -1572,15 +1643,17 @@ +@@ -1572,15 +1650,17 @@ if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue @@ -13399,7 +13426,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; -@@ -1616,7 +1689,7 @@ +@@ -1616,7 +1696,7 @@ echo && $SHELL "$ac_srcdir/configure" --help=recursive else @@ -13408,7 +13435,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done -@@ -1626,10 +1699,10 @@ +@@ -1626,10 +1706,10 @@ if $ac_init_version; then cat <<\_ACEOF libva configure 0.31.0 @@ -13421,7 +13448,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF -@@ -1640,7 +1713,7 @@ +@@ -1640,7 +1720,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by libva $as_me 0.31.0, which was @@ -13430,7 +13457,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure $ $0 $@ -@@ -1676,7 +1749,7 @@ +@@ -1676,7 +1756,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -13439,7 +13466,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure done IFS=$as_save_IFS -@@ -1711,7 +1784,7 @@ +@@ -1711,7 +1791,7 @@ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) @@ -13448,7 +13475,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; -@@ -1763,11 +1836,12 @@ +@@ -1763,11 +1843,12 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( @@ -13463,7 +13490,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure *) $as_unset $ac_var ;; esac ;; esac -@@ -1797,9 +1871,9 @@ +@@ -1797,9 +1878,9 @@ do eval ac_val=\$$ac_var case $ac_val in @@ -13475,7 +13502,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure done | sort echo -@@ -1814,9 +1888,9 @@ +@@ -1814,9 +1895,9 @@ do eval ac_val=\$$ac_var case $ac_val in @@ -13487,7 +13514,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure done | sort echo fi -@@ -1832,8 +1906,8 @@ +@@ -1832,8 +1913,8 @@ echo fi test "$ac_signal" != 0 && @@ -13498,7 +13525,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && -@@ -1875,21 +1949,24 @@ +@@ -1875,21 +1956,24 @@ # Let the site file select an alternate cache file if it wants to. @@ -13532,7 +13559,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi -@@ -1899,16 +1976,16 @@ +@@ -1899,16 +1983,16 @@ # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then @@ -13553,7 +13580,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure >$cache_file fi -@@ -1922,29 +1999,38 @@ +@@ -1922,29 +2006,38 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) @@ -13604,7 +13631,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in -@@ -1954,10 +2040,12 @@ +@@ -1954,10 +2047,12 @@ fi done if $ac_cache_corrupted; then @@ -13621,16 +13648,17 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; } fi -@@ -1993,7 +2081,7 @@ +@@ -1993,7 +2088,8 @@ -am__api_version='1.10' ++ +am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do -@@ -2012,8 +2100,8 @@ +@@ -2012,8 +2108,8 @@ fi done if test -z "$ac_aux_dir"; then @@ -13641,7 +13669,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; } fi -@@ -2039,11 +2127,12 @@ +@@ -2039,11 +2135,12 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. @@ -13657,7 +13685,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -2072,17 +2161,29 @@ +@@ -2072,17 +2169,29 @@ # program-specific install script used by HP pwplus--don't use. : else @@ -13689,7 +13717,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi if test "${ac_cv_path_install+set}" = set; then -@@ -2095,8 +2196,8 @@ +@@ -2095,8 +2204,8 @@ INSTALL=$ac_install_sh fi fi @@ -13700,7 +13728,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. -@@ -2106,21 +2207,38 @@ +@@ -2106,21 +2215,38 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' @@ -13743,7 +13771,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ -@@ -2130,9 +2248,9 @@ +@@ -2130,9 +2256,9 @@ # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". @@ -13755,7 +13783,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure alias in your environment" >&2;} { (exit 1); exit 1; }; } fi -@@ -2143,45 +2261,158 @@ +@@ -2143,45 +2269,158 @@ # Ok. : else @@ -13914,13 +13942,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi +else + STRIP="$ac_cv_prog_STRIP" ++fi ++ fi ++INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } -+fi -+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -+ +{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then @@ -13930,7 +13958,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -@@ -2216,8 +2447,8 @@ +@@ -2216,8 +2455,8 @@ MKDIR_P="$ac_install_sh -d" fi fi @@ -13941,7 +13969,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure mkdir_p="$MKDIR_P" case $mkdir_p in -@@ -2229,10 +2460,10 @@ +@@ -2229,10 +2468,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -13955,7 +13983,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. -@@ -2245,7 +2476,7 @@ +@@ -2245,7 +2484,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" @@ -13964,7 +13992,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -2256,22 +2487,23 @@ +@@ -2256,22 +2495,23 @@ fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then @@ -13996,7 +14024,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else cat >conftest.make <<\_ACEOF SHELL = /bin/sh -@@ -2288,12 +2520,12 @@ +@@ -2288,12 +2528,12 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then @@ -14013,7 +14041,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure SET_MAKE="MAKE=${MAKE-make}" fi -@@ -2312,8 +2544,8 @@ +@@ -2312,8 +2552,8 @@ am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then @@ -14024,7 +14052,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; } fi fi -@@ -2358,119 +2590,13 @@ +@@ -2358,166 +2598,71 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} @@ -14032,6 +14060,24 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. ++ ++AMTAR=${AMTAR-"${am_missing_run}tar"} ++ ++am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ++ ++ ++ ++ ++ ++ ++ac_config_headers="$ac_config_headers config.h" ++ ++ ++LIBVA_MAJOR_VERSION=0 ++LIBVA_MINOR_VERSION=31 ++LIBVA_MICRO_VERSION=0 ++LIBVA_VERSION=0.31.0 ++ -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right @@ -14063,20 +14109,50 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -done -done -IFS=$as_save_IFS -+AMTAR=${AMTAR-"${am_missing_run}tar"} --fi --fi ++ ++ ++LIBVA_SDS_VERSION=3 ++ ++ ++LIBVA_LT_CURRENT=1 ++LIBVA_LT_REV=0 ++LIBVA_LT_AGE=0 ++LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" ++LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION" ++ ++ ++ ++# Check whether --enable-glx was given. ++if test "${enable_glx+set}" = set; then ++ enableval=$enable_glx; ++else ++ enable_glx=yes + fi ++ ++ ++# Check whether --enable-dummy-driver was given. ++if test "${enable_dummy_driver+set}" = set; then ++ enableval=$enable_dummy_driver; ++else ++ enable_dummy_driver=yes + fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } --else ++ ++ if test x$enable_dummy_driver = xyes; then ++ BUILD_DUMMY_DRIVER_TRUE= ++ BUILD_DUMMY_DRIVER_FALSE='#' + else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } --fi -- -- ++ BUILD_DUMMY_DRIVER_TRUE='#' ++ BUILD_DUMMY_DRIVER_FALSE= + fi + + -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP @@ -14145,11 +14221,71 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' -+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' +- +- +- +- +- +- +-ac_config_headers="$ac_config_headers config.h" +- +- +-LIBVA_MAJOR_VERSION=0 +-LIBVA_MINOR_VERSION=31 +-LIBVA_MICRO_VERSION=0 +-LIBVA_VERSION=0.31.0 +- +- +- +- +- +-LIBVA_LT_CURRENT=1 +-LIBVA_LT_REV=0 +-LIBVA_LT_AGE=0 +-LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" +-LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" +- +- +- +-# Check whether --enable-dummy-driver was given. +-if test "${enable_dummy_driver+set}" = set; then +- enableval=$enable_dummy_driver; +-else +- enable_dummy_driver=yes +-fi +- +- if test x$enable_dummy_driver = xyes; then +- BUILD_DUMMY_DRIVER_TRUE= +- BUILD_DUMMY_DRIVER_FALSE='#' +-else +- BUILD_DUMMY_DRIVER_TRUE='#' +- BUILD_DUMMY_DRIVER_FALSE= +-fi +- +- +-# Check whether --enable-i965-driver was given. +-if test "${enable_i965_driver+set}" = set; then +- enableval=$enable_i965_driver; +-else +- enable_i965_driver=no ++# Check whether --enable-i965-driver was given. ++if test "${enable_i965_driver+set}" = set; then ++ enableval=$enable_i965_driver; ++else ++ enable_i965_driver=no + fi +@@ -2526,7 +2671,7 @@ + if test "${with_drivers_path+set}" = set; then + withval=$with_drivers_path; + else +- with_drivers_path="$libdir/dri" ++ with_drivers_path="$libdir/va/drivers" + fi -@@ -2558,84 +2684,67 @@ + +@@ -2558,84 +2703,67 @@ @@ -14274,7 +14410,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; };; esac build=$ac_cv_build -@@ -2652,27 +2761,27 @@ +@@ -2652,27 +2780,27 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac @@ -14311,7 +14447,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure { (exit 1); exit 1; }; };; esac host=$ac_cv_host -@@ -2697,40 +2806,40 @@ +@@ -2697,40 +2825,40 @@ am_make=${MAKE-make} cat > confinc << 'END' am__doit: @@ -14372,7 +14508,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure rm -f confinc confmf # Check whether --enable-dependency-tracking was given. -@@ -2759,10 +2868,10 @@ +@@ -2759,10 +2887,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 @@ -14386,7 +14522,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. -@@ -2775,7 +2884,7 @@ +@@ -2775,7 +2903,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" @@ -14395,7 +14531,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -2786,11 +2895,11 @@ +@@ -2786,11 +2914,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -14411,7 +14547,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi -@@ -2799,10 +2908,10 @@ +@@ -2799,10 +2927,10 @@ ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 @@ -14425,7 +14561,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -@@ -2815,7 +2924,7 @@ +@@ -2815,7 +2943,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" @@ -14434,7 +14570,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -2826,11 +2935,11 @@ +@@ -2826,11 +2954,11 @@ fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -14450,7 +14586,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi if test "x$ac_ct_CC" = x; then -@@ -2838,12 +2947,8 @@ +@@ -2838,12 +2966,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) @@ -14465,7 +14601,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ac_tool_warned=yes ;; esac CC=$ac_ct_CC -@@ -2856,10 +2961,10 @@ +@@ -2856,10 +2980,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 @@ -14479,7 +14615,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. -@@ -2872,7 +2977,7 @@ +@@ -2872,7 +2996,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" @@ -14488,7 +14624,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -2883,11 +2988,11 @@ +@@ -2883,11 +3007,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -14504,7 +14640,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi -@@ -2896,10 +3001,10 @@ +@@ -2896,10 +3020,10 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 @@ -14518,7 +14654,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. -@@ -2917,7 +3022,7 @@ +@@ -2917,7 +3041,7 @@ continue fi ac_cv_prog_CC="cc" @@ -14527,7 +14663,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -2940,11 +3045,11 @@ +@@ -2940,11 +3064,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -14543,7 +14679,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi -@@ -2955,10 +3060,10 @@ +@@ -2955,10 +3079,10 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 @@ -14557,7 +14693,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. -@@ -2971,7 +3076,7 @@ +@@ -2971,7 +3095,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" @@ -14566,7 +14702,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -2982,11 +3087,11 @@ +@@ -2982,11 +3106,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -14582,7 +14718,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi -@@ -2999,10 +3104,10 @@ +@@ -2999,10 +3123,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -14596,7 +14732,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -@@ -3015,7 +3120,7 @@ +@@ -3015,7 +3139,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" @@ -14605,7 +14741,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -3026,11 +3131,11 @@ +@@ -3026,11 +3150,11 @@ fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -14621,7 +14757,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi -@@ -3042,12 +3147,8 @@ +@@ -3042,12 +3166,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) @@ -14636,7 +14772,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ac_tool_warned=yes ;; esac CC=$ac_ct_CC -@@ -3057,44 +3158,50 @@ +@@ -3057,44 +3177,50 @@ fi @@ -14698,7 +14834,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF -@@ -3113,27 +3220,22 @@ +@@ -3113,27 +3239,22 @@ } _ACEOF ac_clean_files_save=$ac_clean_files @@ -14735,7 +14871,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done -@@ -3144,10 +3246,11 @@ +@@ -3144,10 +3265,11 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -14749,7 +14885,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -@@ -3158,7 +3261,7 @@ +@@ -3158,7 +3280,7 @@ do test -f "$ac_file" || continue case $ac_file in @@ -14758,7 +14894,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; [ab].out ) # We found the default executable, but exeext='' is most -@@ -3185,25 +3288,27 @@ +@@ -3185,25 +3307,27 @@ ac_file='' fi @@ -14794,7 +14930,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then -@@ -3212,49 +3317,53 @@ +@@ -3212,49 +3336,53 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -14864,7 +15000,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -@@ -3263,31 +3372,33 @@ +@@ -3263,31 +3391,33 @@ for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in @@ -14907,7 +15043,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ -@@ -3310,40 +3421,43 @@ +@@ -3310,40 +3440,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -14963,7 +15099,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ -@@ -3369,20 +3483,21 @@ +@@ -3369,20 +3502,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -14988,7 +15124,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no -@@ -3392,15 +3507,19 @@ +@@ -3392,15 +3526,19 @@ ac_cv_c_compiler_gnu=$ac_compiler_gnu fi @@ -15014,7 +15150,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes -@@ -3427,20 +3546,21 @@ +@@ -3427,20 +3565,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -15039,7 +15175,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" -@@ -3465,20 +3585,21 @@ +@@ -3465,20 +3604,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -15064,7 +15200,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag -@@ -3504,20 +3625,21 @@ +@@ -3504,20 +3644,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -15089,7 +15225,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sed 's/^/| /' conftest.$ac_ext >&5 -@@ -3532,8 +3654,8 @@ +@@ -3532,8 +3673,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi @@ -15100,7 +15236,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then -@@ -3549,10 +3671,10 @@ +@@ -3549,10 +3690,10 @@ CFLAGS= fi fi @@ -15114,7 +15250,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else ac_cv_prog_cc_c89=no ac_save_CC=$CC -@@ -3623,20 +3745,21 @@ +@@ -3623,20 +3764,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -15139,7 +15275,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sed 's/^/| /' conftest.$ac_ext >&5 -@@ -3652,15 +3775,15 @@ +@@ -3652,15 +3794,15 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) @@ -15161,7 +15297,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure esac -@@ -3672,10 +3795,10 @@ +@@ -3672,10 +3814,10 @@ depcc="$CC" am_compiler_list= @@ -15175,7 +15311,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up -@@ -3700,6 +3823,11 @@ +@@ -3700,6 +3842,11 @@ if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi @@ -15187,7 +15323,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and -@@ -3717,7 +3845,17 @@ +@@ -3717,7 +3864,17 @@ done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf @@ -15205,7 +15341,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested -@@ -3727,19 +3865,23 @@ +@@ -3727,19 +3884,23 @@ break fi ;; @@ -15235,7 +15371,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message -@@ -3763,8 +3905,8 @@ +@@ -3763,8 +3924,8 @@ fi fi @@ -15246,7 +15382,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if -@@ -3778,101 +3920,121 @@ +@@ -3778,101 +3939,121 @@ fi @@ -15429,7 +15565,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` -@@ -3887,74 +4049,60 @@ +@@ -3887,74 +4068,60 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac @@ -15524,7 +15660,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` -@@ -3969,34 +4117,113 @@ +@@ -3969,34 +4136,113 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac @@ -15654,7 +15790,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -@@ -4010,8 +4237,8 @@ +@@ -4010,8 +4256,8 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. @@ -15665,7 +15801,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw -@@ -4024,9 +4251,9 @@ +@@ -4024,9 +4270,9 @@ [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld @@ -15678,7 +15814,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure done test -z "$LD" && LD="$ac_prog" ;; -@@ -4040,14 +4267,14 @@ +@@ -4040,14 +4286,14 @@ ;; esac elif test "$with_gnu_ld" = yes; then @@ -15698,7 +15834,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -@@ -4077,19 +4304,19 @@ +@@ -4077,19 +4323,19 @@ LD="$lt_cv_path_LD" if test -n "$LD"; then @@ -15727,7 +15863,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } --if test "${lt_cv_path_NM+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$NM"; then + + + @@ -15777,14 +15909,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + +{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -+if test "${lt_cv_path_NM+set}" = set; then + if test "${lt_cv_path_NM+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 -+else -+ if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" else -@@ -4177,1090 +4386,817 @@ + if test -n "$NM"; then + # Let the user override the test. +@@ -4177,1090 +4405,712 @@ done IFS="$lt_save_ifs" done @@ -16032,39 +16163,27 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext -+ (eval echo "\"\$as_me:4517: $ac_compile\"" >&5) ++ (eval echo "\"\$as_me:4536: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 -+ (eval echo "\"\$as_me:4520: $NM \\\"conftest.$ac_objext\\\"\"" >&5) ++ (eval echo "\"\$as_me:4539: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 -+ (eval echo "\"\$as_me:4523: output\"" >&5) ++ (eval echo "\"\$as_me:4542: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" fi - ;; -- --newos6*) -- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' -- lt_cv_file_magic_cmd=/usr/bin/file -- lt_cv_file_magic_test_file=/usr/lib/libnls.so -- ;; -- --nto-qnx*) -- lt_cv_deplibs_check_method=unknown -- ;; + rm -f conftest* +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } --openbsd*) -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' -- else -- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' -- fi +-newos6*) +- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' +- lt_cv_file_magic_cmd=/usr/bin/file +- lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; +{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } @@ -16077,8 +16196,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "no, using $LN_S" >&6; } +fi --osf3* | osf4* | osf5*) -- lt_cv_deplibs_check_method=pass_all +-nto-qnx*) +- lt_cv_deplibs_check_method=unknown - ;; +# find the maximum length of command line arguments +{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 @@ -16089,8 +16208,12 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + i=0 + teststring="ABCD" --rdos*) -- lt_cv_deplibs_check_method=pass_all +-openbsd*) +- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' +- else +- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' +- fi - ;; + case $build_os in + msdosdjgpp*) @@ -16101,7 +16224,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; --solaris*) +-osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; + gnu*) @@ -16111,11 +16234,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + lt_cv_sys_max_cmd_len=-1; + ;; --sysv4 | sysv4.3*) -- case $host_vendor in -- motorola) -- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' -- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` +-rdos*) +- lt_cv_deplibs_check_method=pass_all +- ;; + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. @@ -16125,19 +16246,22 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; - ;; -- ncr) -- lt_cv_deplibs_check_method=pass_all -+ ++ ;; + +-solaris*) +- lt_cv_deplibs_check_method=pass_all +- ;; + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; - ;; -- sequent) -- lt_cv_file_magic_cmd='/bin/file' -- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' -+ ++ ;; + +-sysv4 | sysv4.3*) +- case $host_vendor in +- motorola) +- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' +- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then @@ -16151,17 +16275,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; -- sni) -- lt_cv_file_magic_cmd='/bin/file' -- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" -- lt_cv_file_magic_test_file=/lib/libc.so +- ncr) +- lt_cv_deplibs_check_method=pass_all + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 ;; -- siemens) -- lt_cv_deplibs_check_method=pass_all +- sequent) +- lt_cv_file_magic_cmd='/bin/file' +- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure @@ -16176,11 +16299,15 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + esac + fi ;; -- pc) -- lt_cv_deplibs_check_method=pass_all +- sni) +- lt_cv_file_magic_cmd='/bin/file' +- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" +- lt_cv_file_magic_test_file=/lib/libc.so + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 -+ ;; + ;; +- siemens) +- lt_cv_deplibs_check_method=pass_all + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then @@ -16188,7 +16315,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + else + lt_cv_sys_max_cmd_len=32768 + fi -+ ;; + ;; +- pc) +- lt_cv_deplibs_check_method=pass_all + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then @@ -16364,7 +16493,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + lt_NL2SP='tr \r\n \100\100' ;; +esac -+ -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|sparc*-*linux*) @@ -16482,14 +16610,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -+{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -+$as_echo_n "checking for $LD option to reload object files... " >&6; } -+if test "${lt_cv_ld_reload_flag+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ld_reload_flag='-r' - fi +- +-fi -{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then @@ -16520,6 +16642,15 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - fi - rm -rf conftest* - ;; + + ++{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 ++$as_echo_n "checking for $LD option to reload object files... " >&6; } ++if test "${lt_cv_ld_reload_flag+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ld_reload_flag='-r' ++fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag @@ -16536,10 +16667,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; -+esac - - --esac + esac -need_locks="$enable_libtool_lock" @@ -16558,29 +16686,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -+set dummy ${ac_tool_prefix}objdump; ac_word=$2 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_OBJDUMP+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else +-else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -+ if test -n "$OBJDUMP"; then -+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH - do +-do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since @@ -16620,24 +16732,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - # Broken: fails on valid input. -continue - fi -- +-fi + -rm -f conftest.err conftest.$ac_ext -- + - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF @@ -16666,44 +16767,27 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - }; then - # Broken: success on invalid input. -continue -+fi -+OBJDUMP=$ac_cv_prog_OBJDUMP -+if test -n "$OBJDUMP"; then -+ { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 -+$as_echo "$OBJDUMP" >&6; } - else +-else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - # Passes both tests. -ac_preproc_ok=: -break -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } - fi +-fi -rm -f conftest.err conftest.$ac_ext --done --# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. --rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then -- break - fi -- -- done -- ac_cv_prog_CPP=$CPP -+if test -z "$ac_cv_prog_OBJDUMP"; then -+ ac_ct_OBJDUMP=$OBJDUMP -+ # Extract the first word of "objdump", so it can be a program name with args. -+set dummy objdump; ac_word=$2 ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. ++set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then ++if test "${ac_cv_prog_OBJDUMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else -+ if test -n "$ac_ct_OBJDUMP"; then -+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. ++ if test -n "$OBJDUMP"; then ++ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH @@ -16712,26 +16796,45 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_OBJDUMP="objdump" ++ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi -+done + done +-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +-rm -f conftest.err conftest.$ac_ext +-if $ac_preproc_ok; then +- break +done +IFS=$as_save_IFS - - fi -- CPP=$ac_cv_prog_CPP ++ +fi -+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -+if test -n "$ac_ct_OBJDUMP"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 -+$as_echo "$ac_ct_OBJDUMP" >&6; } - else -- ac_cv_prog_CPP=$CPP ++fi ++OBJDUMP=$ac_cv_prog_OBJDUMP ++if test -n "$OBJDUMP"; then ++ { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 ++$as_echo "$OBJDUMP" >&6; } ++else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + +- done +- ac_cv_prog_CPP=$CPP + + fi +- CPP=$ac_cv_prog_CPP ++if test -z "$ac_cv_prog_OBJDUMP"; then ++ ac_ct_OBJDUMP=$OBJDUMP ++ # Extract the first word of "objdump", so it can be a program name with args. ++set dummy objdump; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then ++ $as_echo_n "(cached) " >&6 + else +- ac_cv_prog_CPP=$CPP +-fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } -ac_preproc_ok=false @@ -16760,7 +16863,68 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -+ +-esac +-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 +- ac_status=$? +- grep -v '^ *+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null && { +- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || +- test ! -s conftest.err +- }; then +- : ++ if test -n "$ac_ct_OBJDUMP"; then ++ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. + else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_OBJDUMP="objdump" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS + +- # Broken: fails on valid input. +-continue ++fi ++fi ++ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP ++if test -n "$ac_ct_OBJDUMP"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 ++$as_echo "$ac_ct_OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } + fi + +-rm -f conftest.err conftest.$ac_ext +- +- # OK, works on sane cases. Now check whether nonexistent headers +- # can be detected and how. +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include +-_ACEOF +-if { (ac_try="$ac_cpp conftest.$ac_ext" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else @@ -16781,60 +16945,22 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then -- : +- # Broken: success on invalid input. +-continue + OBJDUMP=$ac_ct_OBJDUMP + fi else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- # Broken: fails on valid input. --continue +- # Passes both tests. +-ac_preproc_ok=: +-break + OBJDUMP="$ac_cv_prog_OBJDUMP" fi -rm -f conftest.err conftest.$ac_ext -+test -z "$OBJDUMP" && OBJDUMP=objdump - -- # OK, works on sane cases. Now check whether nonexistent headers -- # can be detected and how. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } >/dev/null && { -- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || -- test ! -s conftest.err -- }; then -- # Broken: success on invalid input. --continue --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- # Passes both tests. --ac_preproc_ok=: --break --fi - --rm -f conftest.err conftest.$ac_ext - +- -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext @@ -16847,6 +16973,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi ++test -z "$OBJDUMP" && OBJDUMP=objdump -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' @@ -16897,13 +17024,49 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes +-else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_cv_header_stdc=no +-fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +-if test $ac_cv_header_stdc = yes; then +- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include + +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "memchr" >/dev/null 2>&1; then +- : +{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + $as_echo_n "(cached) " >&6 else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 +- ac_cv_header_stdc=no +-fi +-rm -f conftest* +- +-fi +- +-if test $ac_cv_header_stdc = yes; then +- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' @@ -16918,76 +17081,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. -- ac_cv_header_stdc=no --fi -+case $host_os in -+aix[4-9]*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+beos*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --if test $ac_cv_header_stdc = yes; then -- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -+bsdi[45]*) -+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' -+ lt_cv_file_magic_cmd='/usr/bin/file -L' -+ lt_cv_file_magic_test_file=/shlib/libc.so -+ ;; - --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "memchr" >/dev/null 2>&1; then -- : --else -- ac_cv_header_stdc=no --fi --rm -f conftest* -+cygwin*) -+ # func_win32_libid is a shell function defined in ltmain.sh -+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -+ lt_cv_file_magic_cmd='func_win32_libid' -+ ;; - --fi -+mingw* | pw32*) -+ # Base MSYS/MinGW do not provide the 'file' command needed by -+ # func_win32_libid shell function, so use a weaker test based on 'objdump', -+ # unless we find 'file', for example because we are cross-compiling. -+ if ( file / ) >/dev/null 2>&1; then -+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -+ lt_cv_file_magic_cmd='func_win32_libid' -+ else -+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ lt_cv_file_magic_cmd='$OBJDUMP -f' -+ fi -+ ;; - --if test $ac_cv_header_stdc = yes; then -- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -+cegcc) -+ # use the weaker test based on 'objdump'. See mingw*. -+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' -+ lt_cv_file_magic_cmd='$OBJDUMP -f' -+ ;; - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then @@ -16996,25 +17089,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - ac_cv_header_stdc=no -fi -rm -f conftest* -+darwin* | rhapsody*) ++case $host_os in ++aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; -fi -+freebsd* | dragonfly*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then -+ case $host_cpu in -+ i*86 ) -+ # Not sure whether the presence of OpenBSD here was a mistake. -+ # Let's accept both of them until this is cleared up. -+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' -+ lt_cv_file_magic_cmd=/usr/bin/file -+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` -+ ;; -+ esac -+ else -+ lt_cv_deplibs_check_method=pass_all -+ fi ++beos*) ++ lt_cv_deplibs_check_method=pass_all + ;; -if test $ac_cv_header_stdc = yes; then @@ -17040,8 +17122,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -+gnu*) -+ lt_cv_deplibs_check_method=pass_all ++bsdi[45]*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so + ;; -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) @@ -17081,6 +17165,71 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++cygwin*) ++ # func_win32_libid is a shell function defined in ltmain.sh ++ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' ++ lt_cv_file_magic_cmd='func_win32_libid' ++ ;; + +-( exit $ac_status ) +-ac_cv_header_stdc=no +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi ++mingw* | pw32*) ++ # Base MSYS/MinGW do not provide the 'file' command needed by ++ # func_win32_libid shell function, so use a weaker test based on 'objdump', ++ # unless we find 'file', for example because we are cross-compiling. ++ if ( file / ) >/dev/null 2>&1; then ++ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' ++ lt_cv_file_magic_cmd='func_win32_libid' ++ else ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ fi ++ ;; + ++cegcc) ++ # use the weaker test based on 'objdump'. See mingw*. ++ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; + +-fi +-fi +-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +-echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +-if test $ac_cv_header_stdc = yes; then ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; + +-cat >>confdefs.h <<\_ACEOF +-#define STDC_HEADERS 1 +-_ACEOF ++freebsd* | dragonfly*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; + +-fi +- +-# On IRIX 5.3, sys/types and inttypes.h are conflicting. ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in @@ -17099,11 +17248,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + esac + ;; --( exit $ac_status ) --ac_cv_header_stdc=no --fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' @@ -17119,19 +17263,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + lt_cv_deplibs_check_method=pass_all + ;; --fi --fi --{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 --echo "${ECHO_T}$ac_cv_header_stdc" >&6; } --if test $ac_cv_header_stdc = yes; then +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; --cat >>confdefs.h <<\_ACEOF --#define STDC_HEADERS 1 --_ACEOF +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' @@ -17140,14 +17276,12 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi + ;; --fi +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; --# On IRIX 5.3, sys/types and inttypes.h are conflicting. +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; @@ -17160,22 +17294,73 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi + ;; +-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ +- inttypes.h stdint.h unistd.h +-do +-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +-{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (ac_try="$ac_compile" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +- (eval "$ac_compile") 2>conftest.er1 +- ac_status=$? +- grep -v '^ *+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { +- test -z "$ac_c_werror_flag" || +- test ! -s conftest.err +- } && test -s conftest.$ac_objext; then +- eval "$as_ac_Header=yes" +-else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; +- eval "$as_ac_Header=no" +-fi +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-ac_res=`eval echo '${'$as_ac_Header'}'` +- { echo "$as_me:$LINENO: result: $ac_res" >&5 +-echo "${ECHO_T}$ac_res" >&6; } +-if test `eval echo '${'$as_ac_Header'}'` = yes; then +- cat >>confdefs.h <<_ACEOF +-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-_ACEOF +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +-fi +sysv4 | sysv4.3*) + case $host_vendor in + motorola) @@ -17203,6 +17388,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + esac + ;; +-done +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; @@ -17215,103 +17401,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown --for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ -- inttypes.h stdint.h unistd.h --do --as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` --{ echo "$as_me:$LINENO: checking for $ac_header" >&5 --echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } --if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default - --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- eval "$as_ac_Header=yes" --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- eval "$as_ac_Header=no" --fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --ac_res=`eval echo '${'$as_ac_Header'}'` -- { echo "$as_me:$LINENO: result: $ac_res" >&5 --echo "${ECHO_T}$ac_res" >&6; } --if test `eval echo '${'$as_ac_Header'}'` = yes; then -- cat >>confdefs.h <<_ACEOF --#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF - --fi - --done - - -for ac_header in dlfcn.h -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -+set dummy ${ac_tool_prefix}ar; ac_word=$2 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_AR+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$AR"; then -+ ac_cv_prog_AR="$AR" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH - do +-do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_AR="${ac_tool_prefix}ar" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ - fi +-fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } @@ -17346,19 +17445,12 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -+fi -+AR=$ac_cv_prog_AR -+if test -n "$AR"; then -+ { $as_echo "$as_me:$LINENO: result: $AR" >&5 -+$as_echo "$AR" >&6; } - else +-else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_header_compiler=no -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } - fi +-fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 @@ -17392,52 +17484,17 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test ! -s conftest.err - }; then - ac_header_preproc=yes -+fi -+if test -z "$ac_cv_prog_AR"; then -+ ac_ct_AR=$AR -+ # Extract the first word of "ar", so it can be a program name with args. -+set dummy ar; ac_word=$2 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else +-else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ if test -n "$ac_ct_AR"; then -+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_AR="ar" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - ac_header_preproc=no -+fi -+fi -+ac_ct_AR=$ac_cv_prog_ac_ct_AR -+if test -n "$ac_ct_AR"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -+$as_echo "$ac_ct_AR" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } - fi +-fi -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } -- + -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) @@ -17467,25 +17524,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -+ if test "x$ac_ct_AR" = x; then -+ AR="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; - esac +-esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -+ AR=$ac_ct_AR -+ fi - else +-else - eval "$as_ac_Header=\$ac_header_preproc" -+ AR="$ac_cv_prog_AR" - fi +-fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } @@ -17495,8 +17541,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -+test -z "$AR" && AR=ar -+test -z "$AR_FLAGS" && AR_FLAGS=cru -fi @@ -17520,41 +17564,33 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -+ -+ -+ -+ -+ -+ -+ -+ +if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -+set dummy ${ac_tool_prefix}strip; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_STRIP+set}" = set; then ++if test "${ac_cv_prog_AR+set}" = set; then + $as_echo_n "(cached) " >&6 else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -+ if test -n "$STRIP"; then -+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++ if test -n "$AR"; then ++ ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -5269,8 +5205,8 @@ +@@ -5269,8 +5119,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -@@ -5279,32 +5215,28 @@ +@@ -5279,32 +5129,28 @@ fi fi @@ -17562,10 +17598,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -if test -n "$CXX"; then - { echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6; } -+STRIP=$ac_cv_prog_STRIP -+if test -n "$STRIP"; then -+ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -+$as_echo "$STRIP" >&6; } ++AR=$ac_cv_prog_AR ++if test -n "$AR"; then ++ { $as_echo "$as_me:$LINENO: result: $AR" >&5 ++$as_echo "$AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } @@ -17587,34 +17623,34 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -+if test -z "$ac_cv_prog_STRIP"; then -+ ac_ct_STRIP=$STRIP -+ # Extract the first word of "strip", so it can be a program name with args. -+set dummy strip; ac_word=$2 ++if test -z "$ac_cv_prog_AR"; then ++ ac_ct_AR=$AR ++ # Extract the first word of "ar", so it can be a program name with args. ++set dummy ar; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then ++if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -+ if test -n "$ac_ct_STRIP"; then -+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. ++ if test -n "$ac_ct_AR"; then ++ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -5313,8 +5245,8 @@ +@@ -5313,8 +5159,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_STRIP="strip" ++ ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -@@ -5323,1021 +5255,201 @@ +@@ -5323,645 +5169,152 @@ fi fi @@ -17622,10 +17658,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -if test -n "$ac_ct_CXX"; then - { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6; } -+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -+if test -n "$ac_ct_STRIP"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -+$as_echo "$ac_ct_STRIP" >&6; } ++ac_ct_AR=$ac_cv_prog_ac_ct_AR ++if test -n "$ac_ct_AR"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 ++$as_echo "$ac_ct_AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } @@ -17639,8 +17675,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - - if test "x$ac_ct_CXX" = x; then - CXX="g++" -+ if test "x$ac_ct_STRIP" = x; then -+ STRIP=":" ++ if test "x$ac_ct_AR" = x; then ++ AR="false" else case $cross_compiling:$ac_tool_warned in yes:) @@ -17655,10 +17691,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ac_tool_warned=yes ;; esac - CXX=$ac_ct_CXX -+ STRIP=$ac_ct_STRIP ++ AR=$ac_ct_AR fi +else -+ STRIP="$ac_cv_prog_STRIP" ++ AR="$ac_cv_prog_AR" fi - fi @@ -17696,7 +17732,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -+test -z "$STRIP" && STRIP=: ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru -{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } @@ -17742,10 +17779,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_compiler_gnu=no -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu @@ -17797,17 +17834,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cxx_g=yes -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -+set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_RANLIB+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else +-else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - CXXFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -17815,11 +17845,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -- + -int -main () -{ -- + - ; - return 0; -} @@ -17842,8 +17872,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -+ if test -n "$RANLIB"; then -+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_STRIP+set}" = set; then ++ $as_echo_n "(cached) " >&6 else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -17860,6 +17895,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -int -main () -{ ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do @@ -17867,7 +17905,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi @@ -17899,10 +17937,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - ac_cv_prog_cxx_g=yes +fi +fi -+RANLIB=$ac_cv_prog_RANLIB -+if test -n "$RANLIB"; then -+ { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 -+$as_echo "$RANLIB" >&6; } ++STRIP=$ac_cv_prog_STRIP ++if test -n "$STRIP"; then ++ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 ++$as_echo "$STRIP" >&6; } else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -17912,17 +17950,17 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi -+if test -z "$ac_cv_prog_RANLIB"; then -+ ac_ct_RANLIB=$RANLIB -+ # Extract the first word of "ranlib", so it can be a program name with args. -+set dummy ranlib; ac_word=$2 ++if test -z "$ac_cv_prog_STRIP"; then ++ ac_ct_STRIP=$STRIP ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then ++if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else -+ if test -n "$ac_ct_RANLIB"; then -+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. ++ if test -n "$ac_ct_STRIP"; then ++ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH @@ -17931,7 +17969,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_RANLIB="ranlib" ++ ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi @@ -17947,10 +17985,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -+if test -n "$ac_ct_RANLIB"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -+$as_echo "$ac_ct_RANLIB" >&6; } ++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ++if test -n "$ac_ct_STRIP"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 ++$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } @@ -17963,8 +18001,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" + -+ if test "x$ac_ct_RANLIB" = x; then -+ RANLIB=":" ++ if test "x$ac_ct_STRIP" = x; then ++ STRIP=":" else - CXXFLAGS="-g" + case $cross_compiling:$ac_tool_warned in @@ -17973,7 +18011,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac -+ RANLIB=$ac_ct_RANLIB ++ STRIP=$ac_ct_STRIP fi else - if test "$GXX" = yes; then @@ -17981,16 +18019,17 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - else - CXXFLAGS= - fi -+ RANLIB="$ac_cv_prog_RANLIB" ++ STRIP="$ac_cv_prog_STRIP" fi -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -- + -depcc="$CXX" am_compiler_list= -- ++test -z "$STRIP" && STRIP=: + -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then @@ -18014,7 +18053,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub -- + - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` @@ -18074,19 +18113,18 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - fi - fi - done -+test -z "$RANLIB" && RANLIB=: - +- - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - +- -fi -{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - +- - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then @@ -18096,14 +18134,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - - -+# Determine commands to create old-style static archives. -+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -+old_postinstall_cmds='chmod 644 $oldlib' -+old_postuninstall_cmds= - +- +- +- +- -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then @@ -18166,20 +18200,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - - # Broken: fails on valid input. -continue -+if test -n "$RANLIB"; then -+ case $host_os in -+ openbsd*) -+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" -+ ;; -+ *) -+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" -+ ;; -+ esac -+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" - fi - +-fi +- -rm -f conftest.err conftest.$ac_ext - +- - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF @@ -18211,24 +18235,24 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - # Passes both tests. -ac_preproc_ok=: -break -fi - +- -rm -f conftest.err conftest.$ac_ext - +- -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - +- - done - ac_cv_prog_CXXCPP=$CXXCPP - +- -fi - CXXCPP=$ac_cv_prog_CXXCPP -else @@ -18278,13 +18302,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - # Broken: fails on valid input. -continue -fi - +- -rm -f conftest.err conftest.$ac_ext - +- - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF @@ -18316,14 +18340,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - # Passes both tests. -ac_preproc_ok=: -break -fi - +- -rm -f conftest.err conftest.$ac_ext - +- -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext @@ -18336,7 +18360,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - +- -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -18350,7 +18374,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu --if test -n "$ac_tool_prefix"; then + if test -n "$ac_tool_prefix"; then - for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. @@ -18359,40 +18383,54 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 --else ++ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_RANLIB+set}" = set; then ++ $as_echo_n "(cached) " >&6 + else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH +@@ -5970,8 +5323,8 @@ + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -5980,32 +5333,28 @@ --fi --fi + fi + fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - { echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6; } --else ++RANLIB=$ac_cv_prog_RANLIB ++if test -n "$RANLIB"; then ++ { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 ++$as_echo "$RANLIB" >&6; } + else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } --fi ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } + fi - test -n "$F77" && break - done --fi + fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn @@ -18403,57 +18441,81 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 --else ++if test -z "$ac_cv_prog_RANLIB"; then ++ ac_ct_RANLIB=$RANLIB ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then ++ $as_echo_n "(cached) " >&6 + else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if test -n "$ac_ct_RANLIB"; then ++ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH +@@ -6014,8 +5363,8 @@ + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS ++ ac_cv_prog_ac_ct_RANLIB="ranlib" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6024,320 +5373,102 @@ --fi --fi + fi + fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -echo "${ECHO_T}$ac_ct_F77" >&6; } --else ++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB ++if test -n "$ac_ct_RANLIB"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 ++$as_echo "$ac_ct_RANLIB" >&6; } + else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } --fi - ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } + fi +- - test -n "$ac_ct_F77" && break -done - +- - if test "x$ac_ct_F77" = x; then - F77="" -- else -- case $cross_compiling:$ac_tool_warned in --yes:) ++ if test "x$ac_ct_RANLIB" = x; then ++ RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in + yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} --ac_tool_warned=yes ;; --esac ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac - F77=$ac_ct_F77 -- fi --fi ++ RANLIB=$ac_ct_RANLIB + fi ++else ++ RANLIB="$ac_cv_prog_RANLIB" + fi ++test -z "$RANLIB" && RANLIB=: -# Provide some information about the compiler. -echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 @@ -18489,7 +18551,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out -- + -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext @@ -18504,7 +18566,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -#ifndef __GNUC__ - choke me -#endif -- + - end -_ACEOF -rm -f conftest.$ac_objext @@ -18528,14 +18590,29 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_compiler_gnu=no -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu -- --fi + ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ++ ;; ++ *) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + fi -{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } -ac_ext=$ac_save_ext @@ -18550,7 +18627,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main -- + - end -_ACEOF -rm -f conftest.$ac_objext @@ -18574,12 +18651,12 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_cv_prog_f77_g=no -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- + -fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } @@ -18598,16 +18675,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - FFLAGS= - fi -fi -- + -G77=`test $ac_compiler_gnu = yes && echo yes` -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -- -- -- + + + -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! -# find the maximum length of command line arguments -{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 @@ -18617,7 +18694,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - i=0 - teststring="ABCD" -- + - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc @@ -18633,7 +18710,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; -- + - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. @@ -18729,16 +18806,32 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -echo "${ECHO_T}none" >&6; } -fi + + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} - ++ +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - ++ +# Allow CC to be a program name with arguments. +compiler=$CC - - ++ ++ # Check for command to grab the raw symbol name followed by C symbol from nm. -{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } @@ -18750,7 +18843,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else # These are sane defaults that work on at least a few old systems. -@@ -6349,33 +5461,18 @@ +@@ -6349,33 +5480,18 @@ # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' @@ -18786,7 +18879,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; irix* | nonstopux*) symcode='[BCDEGRST]' -@@ -6400,56 +5497,84 @@ +@@ -6400,56 +5516,84 @@ ;; esac @@ -18885,7 +18978,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then -@@ -6459,42 +5584,44 @@ +@@ -6459,42 +5603,44 @@ fi # Make sure that we snagged all the symbols we need. @@ -18950,7 +19043,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" -@@ -6504,7 +5631,7 @@ +@@ -6504,7 +5650,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? @@ -18959,7 +19052,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi -@@ -6539,88 +5666,271 @@ +@@ -6539,87 +5685,270 @@ lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then @@ -19005,50 +19098,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -- fi -- ;; --esac - --# 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' - --# Same as above, but do not quote variable references. --double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - --# Sed substitution to delay expansion of an escaped shell variable in a --# double_quote_subst'ed string. --delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - --# Sed substitution to avoid accidental globbing in evaled expressions --no_glob_subst='s/\*/\\\*/g' - --# Constants: --rm="rm -f" - --# Global variables: --default_ofile=libtool --can_build_shared=yes - --# All known linkers require a `.a' archive for static linking (except MSVC, --# which needs '.lib'). --libext=a --ltmain="$ac_aux_dir/ltmain.sh" --ofile="$default_ofile" --with_gnu_ld="$lt_cv_prog_gnu_ld" - --if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 --{ echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } --if test "${ac_cv_prog_AR+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$AR"; then -- ac_cv_prog_AR="$AR" # Let the user override the test. --else ++ ++ ++ ++ ++ ++ ++ ++ + + + @@ -19084,12 +19141,12 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + HPUX_IA64_MODE="64" + ;; + esac -+ fi + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. -+ echo '#line 5729 "configure"' > conftest.$ac_ext ++ echo '#line 5748 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? @@ -19122,8 +19179,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi + fi + rm -rf conftest* -+ ;; -+ + ;; +-esac + +-# 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' +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. @@ -19176,7 +19238,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi + rm -rf conftest* + ;; -+ + +-# Same as above, but do not quote variable references. +-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" @@ -19191,14 +19255,19 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ + +-# Sed substitution to delay expansion of an escaped shell variable in a +-# double_quote_subst'ed string. +-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ -+ + +-# Sed substitution to avoid accidental globbing in evaled expressions +-no_glob_subst='s/\*/\\\*/g' +int +main () +{ @@ -19232,10 +19301,15 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -+ + +-# Constants: +-rm="rm -f" + lt_cv_cc_needs_belf=no +fi -+ + +-# Global variables: +-default_ofile=libtool +-can_build_shared=yes +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -19244,7 +19318,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ + +-# All known linkers require a `.a' archive for static linking (except MSVC, +-# which needs '.lib'). +-libext=a +-ltmain="$ac_aux_dir/ltmain.sh" +-ofile="$default_ofile" +-with_gnu_ld="$lt_cv_prog_gnu_ld" +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } @@ -19277,7 +19357,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + rm -rf conftest* + ;; +esac -+ + +-if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 +-{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +-if test "${ac_cv_prog_AR+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +need_locks="$enable_libtool_lock" + + @@ -19290,14 +19377,15 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then + $as_echo_n "(cached) " >&6 -+else + else +- if test -n "$AR"; then +- ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -+else + else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH - do -@@ -6628,8 +5938,8 @@ +@@ -6628,8 +5957,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19308,7 +19396,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -6638,28 +5948,28 @@ +@@ -6638,28 +5967,28 @@ fi fi @@ -19353,7 +19441,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -6668,8 +5978,8 @@ +@@ -6668,8 +5997,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19364,7 +19452,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -6678,44 +5988,40 @@ +@@ -6678,44 +6007,40 @@ fi fi @@ -19430,7 +19518,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -6724,8 +6030,8 @@ +@@ -6724,8 +6049,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19441,7 +19529,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -6734,28 +6040,28 @@ +@@ -6734,28 +6059,28 @@ fi fi @@ -19486,7 +19574,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -6764,8 +6070,8 @@ +@@ -6764,8 +6089,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19497,7 +19585,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -6774,44 +6080,40 @@ +@@ -6774,44 +6099,40 @@ fi fi @@ -19563,7 +19651,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -6820,8 +6122,8 @@ +@@ -6820,8 +6141,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19574,7 +19662,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -6830,28 +6132,28 @@ +@@ -6830,28 +6151,28 @@ fi fi @@ -19619,7 +19707,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -6860,8 +6162,8 @@ +@@ -6860,8 +6181,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19630,7 +19718,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -6870,232 +6172,40 @@ +@@ -6870,232 +6191,40 @@ fi fi @@ -19883,7 +19971,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -7104,8 +6214,8 @@ +@@ -7104,8 +6233,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19894,7 +19982,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -7114,28 +6224,28 @@ +@@ -7114,28 +6243,28 @@ fi fi @@ -19939,7 +20027,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -7144,8 +6254,8 @@ +@@ -7144,8 +6273,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -19950,7 +20038,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -7154,44 +6264,40 @@ +@@ -7154,44 +6283,40 @@ fi fi @@ -20015,7 +20103,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -7200,8 +6306,8 @@ +@@ -7200,8 +6325,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -20026,7 +20114,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -7210,28 +6316,28 @@ +@@ -7210,28 +6335,28 @@ fi fi @@ -20071,7 +20159,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH -@@ -7240,8 +6346,8 @@ +@@ -7240,8 +6365,8 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then @@ -20082,7 +20170,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure break 2 fi done -@@ -7250,71 +6356,98 @@ +@@ -7250,62 +6375,89 @@ fi fi @@ -20129,40 +20217,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 -echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; } --if test "${lt_cv_apple_cc_single_mod+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_apple_cc_single_mod=no -- if test -z "${LT_MULTI_MODULE}"; then -- # By default we will add the -single_module flag. You can override -- # by either setting the environment variable LT_MULTI_MODULE -- # non-empty at configure time, or by adding -multi_module to the -- # link flags. -- echo "int foo(void){return 1;}" > conftest.c -- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -- -dynamiclib ${wl}-single_module conftest.c -- if test -f libconftest.dylib; then -- lt_cv_apple_cc_single_mod=yes -- rm -rf libconftest.dylib* -- fi -- rm conftest.c -- fi --fi --{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 --echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } -- { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 --echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } --if test "${lt_cv_ld_exported_symbols_list+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_ld_exported_symbols_list=no -- save_LDFLAGS=$LDFLAGS -- echo "_main" > conftest.sym -- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext + + + @@ -20190,11 +20244,24 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + + { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } -+if test "${lt_cv_apple_cc_single_mod+set}" = set; then + if test "${lt_cv_apple_cc_single_mod+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 -+else -+ lt_cv_apple_cc_single_mod=no -+ if test -z "${LT_MULTI_MODULE}"; then + else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then +- # By default we will add the -single_module flag. You can override +- # by either setting the environment variable LT_MULTI_MODULE +- # non-empty at configure time, or by adding -multi_module to the +- # link flags. +- echo "int foo(void){return 1;}" > conftest.c +- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +- -dynamiclib ${wl}-single_module conftest.c +- if test -f libconftest.dylib; then +- lt_cv_apple_cc_single_mod=yes +- rm -rf libconftest.dylib* +- fi +- rm conftest.c + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the @@ -20213,27 +20280,23 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi + rm -rf libconftest.dylib* + rm -f conftest.* -+ fi -+fi + fi + fi +-{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +-echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } +- { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +-echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then + if test "${lt_cv_ld_exported_symbols_list+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ld_exported_symbols_list=no -+ save_LDFLAGS=$LDFLAGS -+ echo "_main" > conftest.sym -+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ - -@@ -7332,49 +6465,53 @@ + else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS +@@ -7332,49 +6484,53 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -20304,7 +20367,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure esac ;; esac -@@ -7384,9479 +6521,1132 @@ +@@ -7384,9479 +6540,1132 @@ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else @@ -20582,9 +20645,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +ac_preproc_ok=: +break +fi - -+rm -f conftest.err conftest.$ac_ext + ++rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext @@ -23370,11 +23433,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` -+ (eval echo "\"\$as_me:7552: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:7571: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 -+ echo "$as_me:7556: \$? = $ac_status" >&5 ++ echo "$as_me:7575: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. @@ -30649,7 +30712,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; interix[3-9]*) -@@ -16867,64 +7657,47 @@ +@@ -16867,64 +7676,47 @@ msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. @@ -30729,7 +30792,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in -@@ -16932,141 +7705,180 @@ +@@ -16932,141 +7724,180 @@ # +Z the default ;; *) @@ -30969,17 +31032,17 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins -@@ -17076,57 +7888,53 @@ +@@ -17076,57 +7907,53 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17079: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:7891: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:7910: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17083: \$? = $ac_status" >&5 -+ echo "$as_me:7895: \$? = $ac_status" >&5 ++ echo "$as_me:7914: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -31050,7 +31113,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext -@@ -17136,36 +7944,96 @@ +@@ -17136,36 +7963,96 @@ if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 @@ -31070,17 +31133,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $RM -r conftest* LDFLAGS="$save_LDFLAGS" - fi +-fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6; } ++fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - --if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then ++ +if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : - else -- lt_prog_compiler_static_GCJ= ++ : ++else + lt_prog_compiler_static= +fi + @@ -31111,11 +31173,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` -+ (eval echo "\"\$as_me:7996: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8015: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 -+ echo "$as_me:8000: \$? = $ac_status" >&5 ++ echo "$as_me:8019: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized @@ -31136,19 +31198,24 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $RM -r conftest + $RM conftest* + - fi ++fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + -+ -+ + +-if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then +- : +-else +- lt_prog_compiler_static_GCJ= +-fi -{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 ++ + { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then @@ -31161,17 +31228,17 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure mkdir conftest cd conftest mkdir out -@@ -17180,91 +8048,101 @@ +@@ -17180,91 +8067,101 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17183: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8051: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8070: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17187: \$? = $ac_status" >&5 -+ echo "$as_me:8055: \$? = $ac_status" >&5 ++ echo "$as_me:8074: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -31307,7 +31374,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot -@@ -17272,19 +8150,9 @@ +@@ -17272,19 +8169,9 @@ # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= @@ -31328,7 +31395,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. -@@ -17301,7 +8169,7 @@ +@@ -17301,7 +8188,7 @@ ;; esac @@ -31337,7 +31404,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' -@@ -17310,16 +8178,16 @@ +@@ -17310,16 +8197,16 @@ # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH @@ -31361,7 +31428,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... -@@ -17332,8 +8200,8 @@ +@@ -17332,8 +8219,8 @@ aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then @@ -31372,7 +31439,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. -@@ -17341,49 +8209,50 @@ +@@ -17341,49 +8228,50 @@ *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. @@ -31449,7 +31516,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; -@@ -17391,80 +8260,109 @@ +@@ -17391,80 +8279,109 @@ fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else @@ -31592,7 +31659,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool -@@ -17473,19 +8371,19 @@ +@@ -17473,19 +8390,19 @@ *** your PATH or compiler configuration so that the native linker is *** used, and then restart. @@ -31618,7 +31685,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -@@ -17498,54 +8396,58 @@ +@@ -17498,54 +8415,58 @@ _LT_EOF ;; *) @@ -31698,7 +31765,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi ;; -@@ -17559,10 +8461,10 @@ +@@ -17559,10 +8480,10 @@ else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm @@ -31712,7 +31779,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi aix_use_runtimelinking=no -@@ -17571,10 +8473,10 @@ +@@ -17571,10 +8492,10 @@ # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do @@ -31727,7 +31794,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure done ;; esac -@@ -17589,30 +8491,32 @@ +@@ -17589,30 +8510,32 @@ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. @@ -31776,7 +31843,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi ;; esac -@@ -17623,8 +8527,8 @@ +@@ -17623,8 +8546,8 @@ else # not using gcc if test "$host_cpu" = ia64; then @@ -31787,7 +31854,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then -@@ -17635,15 +8539,17 @@ +@@ -17635,15 +8558,17 @@ fi fi @@ -31809,7 +31876,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext -@@ -17664,18 +8570,21 @@ +@@ -17664,18 +8589,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -31835,7 +31902,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure lt_aix_libpath_sed=' /Import File Strings/,/^$/ { -@@ -17690,25 +8599,27 @@ +@@ -17690,25 +8618,27 @@ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else @@ -31871,7 +31938,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF -@@ -17730,18 +8641,21 @@ +@@ -17730,18 +8660,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -31897,7 +31964,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure lt_aix_libpath_sed=' /Import File Strings/,/^$/ { -@@ -17756,120 +8670,106 @@ +@@ -17756,120 +8689,106 @@ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else @@ -32075,7 +32142,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor -@@ -17877,60 +8777,60 @@ +@@ -17877,60 +8796,60 @@ # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) @@ -32164,7 +32231,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi ;; -@@ -17938,45 +8838,45 @@ +@@ -17938,45 +8857,45 @@ if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) @@ -32224,7 +32291,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; esac fi -@@ -17984,194 +8884,254 @@ +@@ -17984,194 +8903,254 @@ irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then @@ -32571,7 +32638,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi ;; -@@ -18182,51 +9142,75 @@ +@@ -18182,51 +9161,75 @@ # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. @@ -32669,7 +32736,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; -@@ -18234,54 +9218,262 @@ +@@ -18234,54 +9237,262 @@ # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. @@ -32681,245 +32748,219 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } 2>conftest.err; then -- soname=conftest -- lib=conftest -- libobjs=conftest.$ac_objext -- deplibs= ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= - wl=$lt_prog_compiler_wl_GCJ - pic_flag=$lt_prog_compiler_pic_GCJ -- compiler_flags=-v -- linker_flags=-v -- verstring= -- output_objdir=. -- libname=conftest ++ wl=$lt_prog_compiler_wl ++ pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ - allow_undefined_flag_GCJ= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } -- then -- archive_cmds_need_lc_GCJ=no -- else -- archive_cmds_need_lc_GCJ=yes -- fi -- allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag -- else -- cat conftest.err 1>&5 -- fi -- $rm conftest* -- { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 --echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } -- ;; -- esac -- fi -- ;; --esac -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } 2>conftest.err; then -+ soname=conftest -+ lib=conftest -+ libobjs=conftest.$ac_objext -+ deplibs= -+ wl=$lt_prog_compiler_wl -+ pic_flag=$lt_prog_compiler_pic -+ compiler_flags=-v -+ linker_flags=-v -+ verstring= -+ output_objdir=. -+ libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 -+ ac_status=$? + ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+ then + (exit $ac_status); } + then +- archive_cmds_need_lc_GCJ=no + archive_cmds_need_lc=no -+ else + else +- archive_cmds_need_lc_GCJ=yes + archive_cmds_need_lc=yes -+ fi + fi +- allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag + allow_undefined_flag=$lt_save_allow_undefined_flag -+ else -+ cat conftest.err 1>&5 -+ fi + else + cat conftest.err 1>&5 + fi +- $rm conftest* +- { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 +-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } + $RM conftest* + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } -+ ;; -+ esac -+ fi -+ ;; -+esac -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ + ;; + esac + fi + ;; + esac -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + @@ -32977,7 +33018,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure library_names_spec= libname_spec='lib$name' soname_spec= -@@ -18295,7 +9487,6 @@ +@@ -18295,7 +9506,6 @@ version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" @@ -32985,7 +33026,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure need_lib_prefix=unknown hardcode_into_libs=no -@@ -18332,7 +9523,7 @@ +@@ -18332,7 +9542,7 @@ aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' @@ -32994,7 +33035,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure : else can_build_shared=no -@@ -18358,9 +9549,18 @@ +@@ -18358,9 +9568,18 @@ ;; amigaos*) @@ -33016,7 +33057,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; beos*) -@@ -18383,25 +9583,28 @@ +@@ -18383,25 +9602,28 @@ # libtool to hard-code these into programs ;; @@ -33050,7 +33091,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure shlibpath_overrides_runpath=yes case $host_os in -@@ -18410,20 +9613,20 @@ +@@ -18410,20 +9632,20 @@ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; @@ -33076,7 +33117,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi ;; pw32*) -@@ -18447,12 +9650,13 @@ +@@ -18447,12 +9669,13 @@ version_type=darwin need_lib_prefix=no need_version=no @@ -33091,7 +33132,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; -@@ -18545,18 +9749,18 @@ +@@ -18545,18 +9768,18 @@ fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; @@ -33122,7 +33163,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH -@@ -18633,15 +9837,76 @@ +@@ -18633,15 +9856,76 @@ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -33201,7 +33242,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure fi # We used to test for /lib/ld.so.1 and disable shared libraries on -@@ -18653,23 +9918,11 @@ +@@ -18653,23 +9937,11 @@ dynamic_linker='GNU/Linux ld.so' ;; @@ -33226,7 +33267,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' -@@ -18690,14 +9943,16 @@ +@@ -18690,14 +9962,16 @@ shlibpath_overrides_runpath=yes ;; @@ -33246,7 +33287,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; openbsd*) -@@ -18706,13 +9961,13 @@ +@@ -18706,13 +9980,13 @@ need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in @@ -33263,7 +33304,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no -@@ -18784,7 +10039,6 @@ +@@ -18784,7 +10058,6 @@ sni) shlibpath_overrides_runpath=no need_lib_prefix=no @@ -33271,7 +33312,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure runpath_var=LD_RUN_PATH ;; siemens) -@@ -18815,13 +10069,12 @@ +@@ -18815,13 +10088,12 @@ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -33286,16 +33327,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" -@@ -18831,70 +10084,160 @@ +@@ -18831,6 +10103,17 @@ sys_lib_dlsearch_path_spec='/usr/lib' ;; --uts4*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux @@ -33307,132 +33342,38 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + hardcode_into_libs=yes + ;; + -+uts4*) -+ version_type=linux -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ ;; -+ -+*) -+ dynamic_linker=no -+ ;; -+esac -+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -+$as_echo "$dynamic_linker" >&6; } -+test "$dynamic_linker" = no && can_build_shared=no -+ -+variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -+if test "$GCC" = yes; then -+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -+fi -+ -+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then -+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -+fi -+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then -+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -+fi -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - --*) -- dynamic_linker=no -- ;; --esac + uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' +@@ -18842,1032 +10125,1749 @@ + dynamic_linker=no + ;; + esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } --test "$dynamic_linker" = no && can_build_shared=no ++{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 ++$as_echo "$dynamic_linker" >&6; } + test "$dynamic_linker" = no && can_build_shared=no -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" --fi ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" + fi -sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" --if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then ++if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then ++ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" ++fi + if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" --fi ++ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" + fi -sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" @@ -33450,50 +33391,33 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" != no && -+ -+ { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -+$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -+hardcode_action= -+if test -n "$hardcode_libdir_flag_spec" || -+ test -n "$runpath_var" || -+ test "X$hardcode_automatic" = "Xyes" ; then -+ -+ # We can hardcode non-existent directories. -+ if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one +- # If the only mechanism to avoid hardcoding is shlibpath_var, we +- # have to relink, otherwise we might link with an installed library +- # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && - test "$hardcode_minus_L_GCJ" != no; then -+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && -+ test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. +- # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=relink -+ hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. +- else +- # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_GCJ=immediate -+ hardcode_action=immediate - fi - else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. +- fi +-else +- # We cannot hardcode anything, or else we can only hardcode existing +- # directories. - hardcode_action_GCJ=unsupported -+ hardcode_action=unsupported - fi +-fi -{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6; } -+{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 -+$as_echo "$hardcode_action" >&6; } -if test "$hardcode_action_GCJ" = relink; then -+if test "$hardcode_action" = relink || -+ test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no - elif test "$shlibpath_overrides_runpath" = yes || -@@ -18904,904 +10247,1608 @@ - fi +- # Fast installation is not supported +- enable_fast_install=no +-elif test "$shlibpath_overrides_runpath" = yes || +- test "$enable_shared" = no; then +- # Fast installation is not necessary +- enable_fast_install=needless +-fi -# The else clause should only fire when bootstrapping the @@ -33577,55 +33501,55 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - ;; - esac - done -- + - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac -- + -cfgfile="$ofile" -- + - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname -- + -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -- + -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL -- + -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared -- + -# Whether or not to build static libraries. -build_old_libs=$enable_static -- + -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_GCJ -- + -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ -- + -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install -- + -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os -- + -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os -- + -# An echo program that does not interpret backslashes. -echo=$lt_echo -- + -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS -- + -# A C compiler. -LTCC=$lt_LTCC @@ -33640,6 +33564,287 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -# An ERE matcher. -EGREP=$lt_EGREP + +-# The linker used to build libraries. +-LD=$lt_LD_GCJ + +-# Whether we need hard or soft links. +-LN_S=$lt_LN_S + +-# A BSD-compatible nm program. +-NM=$lt_NM + +-# A symbol stripping program +-STRIP=$lt_STRIP + +-# Used to examine libraries when file_magic_cmd begins "file" +-MAGIC_CMD=$MAGIC_CMD + +-# Used on cygwin: DLL creation program. +-DLLTOOL="$DLLTOOL" + +-# Used on cygwin: object dumper. +-OBJDUMP="$OBJDUMP" + +-# Used on cygwin: assembler. +-AS="$AS" + +-# The name of the directory that contains temporary libtool files. +-objdir=$objdir + +-# How to create reloadable object files. +-reload_flag=$lt_reload_flag +-reload_cmds=$lt_reload_cmds + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl_GCJ + +-# Object file suffix (normally "o"). +-objext="$ac_objext" + +-# Old archive suffix (normally "a"). +-libext="$libext" + +-# Shared library suffix (normally ".so"). +-shrext_cmds='$shrext_cmds' + +-# Executable file suffix (normally ""). +-exeext="$exeext" + +-# Additional compiler flags for building library objects. +-pic_flag=$lt_lt_prog_compiler_pic_GCJ +-pic_mode=$pic_mode + +-# What is the maximum length of a command? +-max_cmd_len=$lt_cv_sys_max_cmd_len + +-# Does compiler simultaneously support -c and -o options? +-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ + +-# Must we lock files when doing compilation? +-need_locks=$lt_need_locks + +-# Do we need the lib prefix for modules? +-need_lib_prefix=$need_lib_prefix + +-# Do we need a version for libraries? +-need_version=$need_version + +-# Whether dlopen is supported. +-dlopen_support=$enable_dlopen + +-# Whether dlopen of programs is supported. +-dlopen_self=$enable_dlopen_self + +-# Whether dlopen of statically linked programs is supported. +-dlopen_self_static=$enable_dlopen_self_static + +-# Compiler flag to prevent dynamic linking. +-link_static_flag=$lt_lt_prog_compiler_static_GCJ + +-# Compiler flag to turn off builtin functions. +-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ + +-# Compiler flag to allow reflexive dlopens. +-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ + +-# Compiler flag to generate shared objects directly from archives. +-whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ + +-# Compiler flag to generate thread-safe objects. +-thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ + +-# Library versioning type. +-version_type=$version_type + +-# Format of library name prefix. +-libname_spec=$lt_libname_spec + +-# List of archive names. First name is the real one, the rest are links. +-# The last name is the one that the linker finds with -lNAME. +-library_names_spec=$lt_library_names_spec + +-# The coded name of the library, if different from the real name. +-soname_spec=$lt_soname_spec + +-# Commands used to build and install an old-style archive. +-RANLIB=$lt_RANLIB +-old_archive_cmds=$lt_old_archive_cmds_GCJ +-old_postinstall_cmds=$lt_old_postinstall_cmds +-old_postuninstall_cmds=$lt_old_postuninstall_cmds + +-# Create an old-style archive from a shared archive. +-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ + +-# Create a temporary old-style archive to link instead of a shared archive. +-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ + +-# Commands used to build and install a shared archive. +-archive_cmds=$lt_archive_cmds_GCJ +-archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ +-postinstall_cmds=$lt_postinstall_cmds +-postuninstall_cmds=$lt_postuninstall_cmds + +-# Commands used to build a loadable module (assumed same as above if empty) +-module_cmds=$lt_module_cmds_GCJ +-module_expsym_cmds=$lt_module_expsym_cmds_GCJ + +-# Commands to strip libraries. +-old_striplib=$lt_old_striplib +-striplib=$lt_striplib + +-# Dependencies to place before the objects being linked to create a +-# shared library. +-predep_objects=$lt_predep_objects_GCJ +- +-# Dependencies to place after the objects being linked to create a +-# shared library. +-postdep_objects=$lt_postdep_objects_GCJ +- +-# Dependencies to place before the objects being linked to create a +-# shared library. +-predeps=$lt_predeps_GCJ +- +-# Dependencies to place after the objects being linked to create a +-# shared library. +-postdeps=$lt_postdeps_GCJ +- +-# The directories searched by this compiler when creating a shared +-# library +-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ +- +-# The library search path used internally by the compiler when linking +-# a shared library. +-compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ + +-# Method to check whether dependent libraries are shared objects. +-deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == file_magic. +-file_magic_cmd=$lt_file_magic_cmd + +-# Flag that allows shared libraries with undefined symbols to be built. +-allow_undefined_flag=$lt_allow_undefined_flag_GCJ + +-# Flag that forces no undefined symbols. +-no_undefined_flag=$lt_no_undefined_flag_GCJ + +-# Commands used to finish a libtool library installation in a directory. +-finish_cmds=$lt_finish_cmds + +-# Same as above, but a single script fragment to be evaled but not shown. +-finish_eval=$lt_finish_eval + +-# Take the output of nm and produce a listing of raw symbols and C names. +-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +-# Transform the output of nm in a proper C declaration +-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +-# Transform the output of nm in a C name address pair +-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +-# This is the shared library runtime path variable. +-runpath_var=$runpath_var + +-# This is the shared library path variable. +-shlibpath_var=$shlibpath_var + +-# Is shlibpath searched before the hard-coded library search path? +-shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +-# How to hardcode a shared library path into an executable. +-hardcode_action=$hardcode_action_GCJ + +-# Whether we should hardcode library paths into libraries. +-hardcode_into_libs=$hardcode_into_libs + +-# Flag to hardcode \$libdir into a binary during linking. +-# This must work even if \$libdir does not exist. +-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ + +-# If ld is used when linking, flag to hardcode \$libdir into +-# a binary during linking. This must work even if \$libdir does +-# not exist. +-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ +- +-# Whether we need a single -rpath flag with a separated argument. +-hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ +- +-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +-# resulting binary. +-hardcode_direct=$hardcode_direct_GCJ +- +-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +-# resulting binary. +-hardcode_minus_L=$hardcode_minus_L_GCJ +- +-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +-# the resulting binary. +-hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ +- +-# Set to yes if building a shared library automatically hardcodes DIR into the library +-# and all subsequent libraries and executables linked against it. +-hardcode_automatic=$hardcode_automatic_GCJ + +-# Variables whose values should be saved in libtool wrapper scripts and +-# restored at relink time. +-variables_saved_for_relink="$variables_saved_for_relink" + +-# Whether libtool must link a program against all its dependency libraries. +-link_all_deplibs=$link_all_deplibs_GCJ + +-# Compile-time system search path for libraries +-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +-# Run-time system search path for libraries +-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path ++ { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 ++$as_echo_n "checking how to hardcode library paths into programs... " >&6; } ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || ++ test -n "$runpath_var" || ++ test "X$hardcode_automatic" = "Xyes" ; then ++ ++ # We can hardcode non-existent directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 ++$as_echo "$hardcode_action" >&6; } ++ ++if test "$hardcode_action" = relink || ++ test "$inherit_rpath" = yes; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++ ++ ++ ++ ++ + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown @@ -33647,32 +33852,24 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= - --# The linker used to build libraries. --LD=$lt_LD_GCJ ++ + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; - --# Whether we need hard or soft links. --LN_S=$lt_LN_S ++ + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; - --# A BSD-compatible nm program. --NM=$lt_NM ++ + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; - --# A symbol stripping program --STRIP=$lt_STRIP ++ + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 @@ -33688,9 +33885,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - --# Used to examine libraries when file_magic_cmd begins "file" --MAGIC_CMD=$MAGIC_CMD ++ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ @@ -33731,14 +33926,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - --# Used on cygwin: DLL creation program. --DLLTOOL="$DLLTOOL" ++ + ac_cv_lib_dl_dlopen=no +fi - --# Used on cygwin: object dumper. --OBJDUMP="$OBJDUMP" ++ +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -33749,24 +33940,15 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else - --# Used on cygwin: assembler. --AS="$AS" ++ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes - --# The name of the directory that contains temporary libtool files. --objdir=$objdir ++ +fi - --# How to create reloadable object files. --reload_flag=$lt_reload_flag --reload_cmds=$lt_reload_cmds ++ + ;; - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_GCJ ++ + *) + { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 +$as_echo_n "checking for shl_load... " >&6; } @@ -33782,28 +33964,20 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load - --# Object file suffix (normally "o"). --objext="$ac_objext" ++ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ - --# Old archive suffix (normally "a"). --libext="$libext" ++ +#ifdef __STDC__ +# include +#else +# include +#endif - --# Shared library suffix (normally ".so"). --shrext_cmds='$shrext_cmds' ++ +#undef shl_load - --# Executable file suffix (normally ""). --exeext="$exeext" ++ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ @@ -33817,10 +33991,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif - --# Additional compiler flags for building library objects. --pic_flag=$lt_lt_prog_compiler_pic_GCJ --pic_mode=$pic_mode ++ +int +main () +{ @@ -33854,14 +34025,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - --# What is the maximum length of a command? --max_cmd_len=$lt_cv_sys_max_cmd_len ++ + ac_cv_func_shl_load=no +fi - --# Does compiler simultaneously support -c and -o options? --compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ ++ +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -33884,9 +34051,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - --# Must we lock files when doing compilation? --need_locks=$lt_need_locks ++ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ @@ -33927,14 +34092,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - --# Do we need the lib prefix for modules? --need_lib_prefix=$need_lib_prefix ++ + ac_cv_lib_dld_shl_load=no +fi - --# Do we need a version for libraries? --need_version=$need_version ++ +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -33959,28 +34120,20 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen - --# Whether dlopen is supported. --dlopen_support=$enable_dlopen ++ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ - --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self ++ +#ifdef __STDC__ +# include +#else +# include +#endif - --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static ++ +#undef dlopen - --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_lt_prog_compiler_static_GCJ ++ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ @@ -33994,9 +34147,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif - --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ ++ +int +main () +{ @@ -34030,14 +34181,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ ++ + ac_cv_func_dlopen=no +fi - --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ ++ +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -34060,9 +34207,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ ++ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ @@ -34103,14 +34248,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - --# Library versioning type. --version_type=$version_type ++ + ac_cv_lib_dl_dlopen=no +fi - --# Format of library name prefix. --libname_spec=$lt_libname_spec ++ +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -34134,10 +34275,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec ++ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ @@ -34178,17 +34316,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec ++ + ac_cv_lib_svld_dlopen=no +fi - --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_old_archive_cmds_GCJ --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -34212,9 +34343,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ ++ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ @@ -34255,17 +34384,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ ++ + ac_cv_lib_dld_dld_link=no +fi - --# Commands used to build and install a shared archive. --archive_cmds=$lt_archive_cmds_GCJ --archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds ++ +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext @@ -34276,97 +34398,72 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi ++ ++ ++fi ++ --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_module_cmds_GCJ --module_expsym_cmds=$lt_module_expsym_cmds_GCJ - --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib +-# Set to yes if exported symbols are required. +-always_export_symbols=$always_export_symbols_GCJ +fi --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_predep_objects_GCJ -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_postdep_objects_GCJ -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_predeps_GCJ -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_postdeps_GCJ -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ +-# The commands to list exported symbols. +-export_symbols_cmds=$lt_export_symbols_cmds_GCJ --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method +-# The commands to extract the exported symbol list from a shared archive. +-extract_expsyms_cmds=$lt_extract_expsyms_cmds +fi --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd +-# Symbols that should not be listed in the preloaded symbols. +-exclude_expsyms=$lt_exclude_expsyms_GCJ --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_allow_undefined_flag_GCJ +-# Symbols that must always be exported. +-include_expsyms=$lt_include_expsyms_GCJ +fi --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_no_undefined_flag_GCJ +-# ### END LIBTOOL TAG CONFIG: $tagname --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds +-__EOF__ +fi --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval - --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe -+fi - --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + ;; + esac --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address +-else +- # If there is no Makefile yet, we rely on a make rule to execute +- # `config.status --recheck' to rerun these tests and create the +- # libtool script then. +- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` +- if test -f "$ltmain_in"; then +- test -f Makefile && make "$ltmain" + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no -+ fi + fi +-fi --# This is the shared library runtime path variable. --runpath_var=$runpath_var + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" --# This is the shared library path variable. --shlibpath_var=$shlibpath_var +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath +-CC="$lt_save_CC" + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" --# How to hardcode a shared library path into an executable. --hardcode_action=$hardcode_action_GCJ +- else +- tagname="" +- fi +- ;; + { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then @@ -34378,43 +34475,18 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF -+#line 10854 "configure" ++#line 10873 "configure" +#include "confdefs.h" --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs +- RC) +#if HAVE_DLFCN_H +#include +#endif --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ +#include --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$hardcode_direct_GCJ -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$hardcode_minus_L_GCJ -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$hardcode_automatic_GCJ +-# Source file extension for RC test sources. +-ac_ext=rc +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else @@ -34425,9 +34497,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +# endif +#endif --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" +-# Object file extension for compiled RC test sources. +-objext=o +-objext_RC=$objext +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW @@ -34450,16 +34522,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +# endif +#endif --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$link_all_deplibs_GCJ +-# Code to be used in simple compile tests +-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +-# Code to be used in simple link tests +-lt_simple_link_test_code="$lt_simple_compile_test_code" + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; @@ -34469,8 +34541,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + else + puts (dlerror ()); --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec +-# ltmain only uses $CC for tagged configurations so make sure $CC is set. + return status; +} +_LT_EOF @@ -34493,17 +34564,17 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +fi +rm -fr conftest* --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path +-# If no C compiler was specified, use CC. +-LTCC=${LTCC-"$CC"} --# Set to yes if exported symbols are required. --always_export_symbols=$always_export_symbols_GCJ +-# If no C compiler flags were specified, use CFLAGS. +-LTCFLAGS=${LTCFLAGS-"$CFLAGS"} +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } --# The commands to list exported symbols. --export_symbols_cmds=$lt_export_symbols_cmds_GCJ +-# Allow CC to be a program name with arguments. +-compiler=$CC + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 @@ -34517,21 +34588,26 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF -+#line 10950 "configure" ++#line 10969 "configure" +#include "confdefs.h" --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds +#if HAVE_DLFCN_H +#include +#endif --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_exclude_expsyms_GCJ +-# save warnings/boilerplate of simple test code +-ac_outfile=conftest.$ac_objext +-echo "$lt_simple_compile_test_code" >conftest.$ac_ext +-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +-_lt_compiler_boilerplate=`cat conftest.err` +-$rm conftest* +#include --# Symbols that must always be exported. --include_expsyms=$lt_include_expsyms_GCJ +-ac_outfile=conftest.$ac_objext +-echo "$lt_simple_link_test_code" >conftest.$ac_ext +-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +-_lt_linker_boilerplate=`cat conftest.err` +-$rm -r conftest* +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else @@ -34542,7 +34618,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +# endif +#endif --# ### END LIBTOOL TAG CONFIG: $tagname +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW @@ -34565,125 +34640,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +# endif +#endif --__EOF__ -+void fnord() { int i=42;} -+int main () -+{ -+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -+ int status = $lt_dlunknown; - -+ if (self) -+ { -+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; -+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; -+ /* dlclose (self); */ -+ } -+ else -+ puts (dlerror ()); - --else -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -+ return status; -+} -+_LT_EOF -+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then -+ (./conftest; exit; ) >&5 2>/dev/null -+ lt_status=$? -+ case x$lt_status in -+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; -+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; -+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; -+ esac -+ else : -+ # compilation failed -+ lt_cv_dlopen_self_static=no - fi - fi -+rm -fr conftest* - - --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu -+fi -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -+$as_echo "$lt_cv_dlopen_self_static" >&6; } -+ fi - --CC="$lt_save_CC" -+ CPPFLAGS="$save_CPPFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+ LIBS="$save_LIBS" -+ ;; -+ esac - -- else -- tagname="" -- fi -- ;; -+ case $lt_cv_dlopen_self in -+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; -+ *) enable_dlopen_self=unknown ;; -+ esac - -- RC) -+ case $lt_cv_dlopen_self_static in -+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; -+ *) enable_dlopen_self_static=unknown ;; -+ esac -+fi - - --# Source file extension for RC test sources. --ac_ext=rc - --# Object file extension for compiled RC test sources. --objext=o --objext_RC=$objext - --# Code to be used in simple compile tests --lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - --# Code to be used in simple link tests --lt_simple_link_test_code="$lt_simple_compile_test_code" - --# ltmain only uses $CC for tagged configurations so make sure $CC is set. - --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} - --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - --# Allow CC to be a program name with arguments. --compiler=$CC - - --# save warnings/boilerplate of simple test code --ac_outfile=conftest.$ac_objext --echo "$lt_simple_compile_test_code" >conftest.$ac_ext --eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_compiler_boilerplate=`cat conftest.err` --$rm conftest* - --ac_outfile=conftest.$ac_objext --echo "$lt_simple_link_test_code" >conftest.$ac_ext --eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_linker_boilerplate=`cat conftest.err` --$rm -r conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} @@ -34698,8 +34654,21 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; -lt_cv_prog_compiler_c_o_RC=yes ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ else ++ puts (dlerror ()); -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh @@ -34780,43 +34749,59 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; -- esac ++ return status; ++} ++_LT_EOF ++ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) >&5 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac - done ++ else : ++ # compilation failed ++ lt_cv_dlopen_self_static=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 ++$as_echo "$lt_cv_dlopen_self_static" >&6; } ++ fi - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` -+striplib= -+old_striplib= -+{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -+$as_echo_n "checking whether stripping libraries is possible... " >&6; } -+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then -+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" -+ test -z "$striplib" && striplib="$STRIP --strip-unneeded" -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+else -+# FIXME - insert some real tests, host_os isn't really good enough -+ case $host_os in -+ darwin*) -+ if test -n "$STRIP" ; then -+ striplib="$STRIP -x" -+ old_striplib="$STRIP -S" -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+ fi -+ ;; -+ *) -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ;; esac -+fi -cfgfile="$ofile" ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++ ++ ++ - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname @@ -34853,51 +34838,48 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -# An echo program that does not interpret backslashes. -echo=$lt_echo -+ # Report which library types will actually be built -+ { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -+$as_echo_n "checking if libtool supports shared libraries... " >&6; } -+ { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 -+$as_echo "$can_build_shared" >&6; } -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS -+ { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -+$as_echo_n "checking whether to build shared libraries... " >&6; } -+ test "$can_build_shared" = "no" && enable_shared=no -# A C compiler. -LTCC=$lt_LTCC -+ # On AIX, shared libraries and static libraries use the same namespace, and -+ # are all built from PIC. ++striplib= ++old_striplib= ++{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 ++$as_echo_n "checking whether stripping libraries is possible... " >&6; } ++if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in -+ aix3*) -+ test "$enable_shared" = yes && enable_static=no -+ if test -n "$RANLIB"; then -+ archive_cmds="$archive_cmds~\$RANLIB \$lib" -+ postinstall_cmds='$RANLIB $lib' ++ darwin*) ++ if test -n "$STRIP" ; then ++ striplib="$STRIP -x" ++ old_striplib="$STRIP -S" ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } + fi + ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++ ;; ++ esac ++fi -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS -+ aix[4-9]*) -+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -+ test "$enable_shared" = yes && enable_static=no -+ fi -+ ;; -+ esac -+ { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 -+$as_echo "$enable_shared" >&6; } -# A language-specific compiler. -CC=$lt_compiler_RC -+ { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -+$as_echo_n "checking whether to build static libraries... " >&6; } -+ # Make sure either enable_shared or enable_static is yes. -+ test "$enable_shared" = yes || enable_static=yes -+ { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 -+$as_echo "$enable_static" >&6; } -# Is the compiler the GNU C compiler? -with_gcc=$GCC_RC @@ -34910,16 +34892,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -# Whether we need hard or soft links. -LN_S=$lt_LN_S -+fi -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -# A BSD-compatible nm program. -NM=$lt_NM -+CC="$lt_save_CC" -# A symbol stripping program -STRIP=$lt_STRIP @@ -34935,19 +34910,51 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -# Used on cygwin: assembler. -AS="$AS" ++ # Report which library types will actually be built ++ { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 ++$as_echo_n "checking if libtool supports shared libraries... " >&6; } ++ { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 ++$as_echo "$can_build_shared" >&6; } -# The name of the directory that contains temporary libtool files. -objdir=$objdir ++ { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 ++$as_echo_n "checking whether to build shared libraries... " >&6; } ++ test "$can_build_shared" = "no" && enable_shared=no -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds ++ # On AIX, shared libraries and static libraries use the same namespace, and ++ # are all built from PIC. ++ case $host_os in ++ aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_RC ++ aix[4-9]*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++ esac ++ { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 ++$as_echo "$enable_shared" >&6; } -# Object file suffix (normally "o"). -objext="$ac_objext" ++ { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 ++$as_echo_n "checking whether to build static libraries... " >&6; } ++ # Make sure either enable_shared or enable_static is yes. ++ test "$enable_shared" = yes || enable_static=yes ++ { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 ++$as_echo "$enable_static" >&6; } -# Old archive suffix (normally "a"). -libext="$libext" @@ -34961,10 +34968,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_RC -pic_mode=$pic_mode -+ ac_config_commands="$ac_config_commands libtool" ++fi ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len ++CC="$lt_save_CC" -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC @@ -34974,13 +34987,60 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix -+# Only expand once: -# Do we need a version for libraries? -need_version=$need_version -# Whether dlopen is supported. -dlopen_support=$enable_dlopen + +-# Whether dlopen of programs is supported. +-dlopen_self=$enable_dlopen_self + +-# Whether dlopen of statically linked programs is supported. +-dlopen_self_static=$enable_dlopen_self_static + +-# Compiler flag to prevent dynamic linking. +-link_static_flag=$lt_lt_prog_compiler_static_RC + +-# Compiler flag to turn off builtin functions. +-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +-# Compiler flag to allow reflexive dlopens. +-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +-# Compiler flag to generate shared objects directly from archives. +-whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +-# Compiler flag to generate thread-safe objects. +-thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC + +-# Library versioning type. +-version_type=$version_type ++ ac_config_commands="$ac_config_commands libtool" + +-# Format of library name prefix. +-libname_spec=$lt_libname_spec + +-# List of archive names. First name is the real one, the rest are links. +-# The last name is the one that the linker finds with -lNAME. +-library_names_spec=$lt_library_names_spec + +-# The coded name of the library, if different from the real name. +-soname_spec=$lt_soname_spec + +-# Commands used to build and install an old-style archive. +-RANLIB=$lt_RANLIB +-old_archive_cmds=$lt_old_archive_cmds_RC +-old_postinstall_cmds=$lt_old_postinstall_cmds +-old_postuninstall_cmds=$lt_old_postuninstall_cmds ++# Only expand once: + +-# Create an old-style archive from a shared archive. +-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +-# Create a temporary old-style archive to link instead of a shared archive. +-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -35012,8 +35072,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +done +IFS=$as_save_IFS --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self +-# Commands used to build and install a shared archive. +-archive_cmds=$lt_archive_cmds_RC +-archive_expsym_cmds=$lt_archive_expsym_cmds_RC +-postinstall_cmds=$lt_postinstall_cmds +-postuninstall_cmds=$lt_postuninstall_cmds +fi +fi +CC=$ac_cv_prog_CC @@ -35025,11 +35088,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "no" >&6; } +fi --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static +-# Commands used to build a loadable module (assumed same as above if empty) +-module_cmds=$lt_module_cmds_RC +-module_expsym_cmds=$lt_module_expsym_cmds_RC --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_lt_prog_compiler_static_RC +-# Commands to strip libraries. +-old_striplib=$lt_old_striplib +-striplib=$lt_striplib +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC @@ -35058,8 +35123,29 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +done +IFS=$as_save_IFS --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC +-# Dependencies to place before the objects being linked to create a +-# shared library. +-predep_objects=$lt_predep_objects_RC +- +-# Dependencies to place after the objects being linked to create a +-# shared library. +-postdep_objects=$lt_postdep_objects_RC +- +-# Dependencies to place before the objects being linked to create a +-# shared library. +-predeps=$lt_predeps_RC +- +-# Dependencies to place after the objects being linked to create a +-# shared library. +-postdeps=$lt_postdeps_RC +- +-# The directories searched by this compiler when creating a shared +-# library +-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC +- +-# The library search path used internally by the compiler when linking +-# a shared library. +-compiler_lib_search_path=$lt_compiler_lib_search_path_RC +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC @@ -35071,8 +35157,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "no" >&6; } +fi --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC +-# Method to check whether dependent libraries are shared objects. +-deplibs_check_method=$lt_deplibs_check_method + if test "x$ac_ct_CC" = x; then + CC="" + else @@ -35088,8 +35174,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + CC="$ac_cv_prog_CC" +fi --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC +-# Command to use when deplibs_check_method == file_magic. +-file_magic_cmd=$lt_file_magic_cmd +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. @@ -35116,7 +35202,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +done +done +IFS=$as_save_IFS -+ + +-# Flag that allows shared libraries with undefined symbols to be built. +-allow_undefined_flag=$lt_allow_undefined_flag_RC +fi +fi +CC=$ac_cv_prog_CC @@ -35128,11 +35216,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "no" >&6; } +fi --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC +-# Flag that forces no undefined symbols. +-no_undefined_flag=$lt_no_undefined_flag_RC --# Library versioning type. --version_type=$version_type +-# Commands used to finish a libtool library installation in a directory. +-finish_cmds=$lt_finish_cmds + fi +fi +if test -z "$CC"; then @@ -35165,9 +35253,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +done +done +IFS=$as_save_IFS - --# Format of library name prefix. --libname_spec=$lt_libname_spec ++ +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC @@ -35190,13 +35276,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi - --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec - --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec ++ ++ +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then @@ -35227,11 +35308,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +done +IFS=$as_save_IFS --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_old_archive_cmds_RC --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds +-# Same as above, but a single script fragment to be evaled but not shown. +-finish_eval=$lt_finish_eval +fi +fi +CC=$ac_cv_prog_CC @@ -35243,11 +35321,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "no" >&6; } +fi --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC +-# Take the output of nm and produce a listing of raw symbols and C names. +-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC +-# Transform the output of nm in a proper C declaration +-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + test -n "$CC" && break + done +fi @@ -35280,11 +35358,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +done +IFS=$as_save_IFS --# Commands used to build and install a shared archive. --archive_cmds=$lt_archive_cmds_RC --archive_expsym_cmds=$lt_archive_expsym_cmds_RC --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds +-# Transform the output of nm in a C name address pair +-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC @@ -35296,39 +35371,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "no" >&6; } +fi --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_module_cmds_RC --module_expsym_cmds=$lt_module_expsym_cmds_RC +-# This is the shared library runtime path variable. +-runpath_var=$runpath_var --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib +-# This is the shared library path variable. +-shlibpath_var=$shlibpath_var + test -n "$ac_ct_CC" && break +done --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_predep_objects_RC -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_postdep_objects_RC -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_predeps_RC -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_postdeps_RC -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_compiler_lib_search_path_RC +-# Is shlibpath searched before the hard-coded library search path? +-shlibpath_overrides_runpath=$shlibpath_overrides_runpath + if test "x$ac_ct_CC" = x; then + CC="" + else @@ -35342,15 +35394,16 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi +fi --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method +-# How to hardcode a shared library path into an executable. +-hardcode_action=$hardcode_action_RC +fi --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd +-# Whether we should hardcode library paths into libraries. +-hardcode_into_libs=$hardcode_into_libs --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_allow_undefined_flag_RC +-# Flag to hardcode \$libdir into a binary during linking. +-# This must work even if \$libdir does not exist. +-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH @@ -35359,8 +35412,29 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_no_undefined_flag_RC +-# If ld is used when linking, flag to hardcode \$libdir into +-# a binary during linking. This must work even if \$libdir does +-# not exist. +-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC +- +-# Whether we need a single -rpath flag with a separated argument. +-hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC +- +-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +-# resulting binary. +-hardcode_direct=$hardcode_direct_RC +- +-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +-# resulting binary. +-hardcode_minus_L=$hardcode_minus_L_RC +- +-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +-# the resulting binary. +-hardcode_shlibpath_var=$hardcode_shlibpath_var_RC +- +-# Set to yes if building a shared library automatically hardcodes DIR into the library +-# and all subsequent libraries and executables linked against it. +-hardcode_automatic=$hardcode_automatic_RC +# Provide some information about the compiler. +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile @@ -35399,8 +35473,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds +-# Variables whose values should be saved in libtool wrapper scripts and +-# restored at relink time. +-variables_saved_for_relink="$variables_saved_for_relink" +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then @@ -35413,8 +35488,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval +-# Whether libtool must link a program against all its dependency libraries. +-link_all_deplibs=$link_all_deplibs_RC +int +main () +{ @@ -35422,8 +35497,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + choke me +#endif --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe +-# Compile-time system search path for libraries +-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + ; + return 0; +} @@ -35451,18 +35526,18 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl +-# Run-time system search path for libraries +-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + ac_compiler_gnu=no +fi --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu --# This is the shared library runtime path variable. --runpath_var=$runpath_var +-# Set to yes if exported symbols are required. +-always_export_symbols=$always_export_symbols_RC +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } @@ -35489,14 +35564,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ --# This is the shared library path variable. --shlibpath_var=$shlibpath_var +-# The commands to list exported symbols. +-export_symbols_cmds=$lt_export_symbols_cmds_RC +int +main () +{ --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath +-# The commands to extract the exported symbol list from a shared archive. +-extract_expsyms_cmds=$lt_extract_expsyms_cmds + ; + return 0; +} @@ -35524,8 +35599,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 --# How to hardcode a shared library path into an executable. --hardcode_action=$hardcode_action_RC +-# Symbols that should not be listed in the preloaded symbols. +-exclude_expsyms=$lt_exclude_expsyms_RC + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ @@ -35534,15 +35609,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs +-# Symbols that must always be exported. +-include_expsyms=$lt_include_expsyms_RC +int +main () +{ --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC +-# ### END LIBTOOL TAG CONFIG: $tagname + ; + return 0; +} @@ -35570,29 +35643,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$hardcode_direct_RC -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$hardcode_minus_L_RC -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$hardcode_shlibpath_var_RC -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$hardcode_automatic_RC +-__EOF__ + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF @@ -35602,15 +35653,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" +int +main () +{ --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$link_all_deplibs_RC + ; + return 0; +} @@ -35634,29 +35680,53 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes -+else + else +- # If there is no Makefile yet, we rely on a make rule to execute +- # `config.status --recheck' to rerun these tests and create the +- # libtool script then. +- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` +- if test -f "$ltmain_in"; then +- test -f Makefile && make "$ltmain" +- fi +-fi +- +- +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +-CC="$lt_save_CC" --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec +- ;; +fi --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path +- *) +- { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 +-echo "$as_me: error: Unsupported tag name: $tagname" >&2;} +- { (exit 1); exit 1; }; } +- ;; +- esac +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi --# Set to yes if exported symbols are required. --always_export_symbols=$always_export_symbols_RC +- # Append the new tag name to the list of available tags. +- if test -n "$tagname" ; then +- available_tags="$available_tags $tagname" +- fi +- fi +- done +- IFS="$lt_save_ifs" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi --# The commands to list exported symbols. --export_symbols_cmds=$lt_export_symbols_cmds_RC +- # Now substitute the updated list of available tags. +- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then +- mv "${ofile}T" "$ofile" +- chmod +x "$ofile" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi @@ -35667,7 +35737,11 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" -+ else + else +- rm -f "${ofile}T" +- { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 +-echo "$as_me: error: unable to update list of available tagged configurations." >&2;} +- { (exit 1); exit 1; }; } + CFLAGS="-g" + fi +else @@ -35675,8 +35749,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + CFLAGS="-O2" + else + CFLAGS= -+ fi -+fi + fi + fi +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then @@ -35713,8 +35787,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + return s; +} --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated @@ -35724,15 +35796,32 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_exclude_expsyms_RC +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; --# Symbols that must always be exported. --include_expsyms=$lt_include_expsyms_RC +-# This can be used to rebuild libtool when needed +-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" +- +-# Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' +- +-# Prevent multiple expansion +- +- +- +- +- +- +- +- +- +- +- +- +- +- +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; @@ -35774,9 +35863,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 --# ### END LIBTOOL TAG CONFIG: $tagname --__EOF__ +fi +rm -f core conftest.err conftest.$ac_objext @@ -35785,15 +35872,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +rm -f conftest.$ac_ext +CC=$ac_save_CC --else -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -- fi - fi ++fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) @@ -35810,72 +35889,38 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ac_ext=c -@@ -19810,430 +11857,444 @@ +@@ -19875,365 +11875,445 @@ + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - --CC="$lt_save_CC" -- -- ;; -- -- *) -- { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 --echo "$as_me: error: Unsupported tag name: $tagname" >&2;} -- { (exit 1); exit 1; }; } -- ;; -- esac -- -- # Append the new tag name to the list of available tags. -- if test -n "$tagname" ; then -- available_tags="$available_tags $tagname" -- fi -- fi -- done -- IFS="$lt_save_ifs" -- -- # Now substitute the updated list of available tags. -- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then -- mv "${ofile}T" "$ofile" -- chmod +x "$ofile" -- else -- rm -f "${ofile}T" -- { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 --echo "$as_me: error: unable to update list of available tagged configurations." >&2;} -- { (exit 1); exit 1; }; } -- fi --fi -- -- -- --# This can be used to rebuild libtool when needed --LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" -- --# Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -- --# Prevent multiple expansion -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +-if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +-set dummy ${ac_tool_prefix}gcc; ac_word=$2 +-{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +-if test "${ac_cv_prog_CC+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. ++ +depcc="$CC" am_compiler_list= - ++ +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + $as_echo_n "(cached) " >&6 -+else + else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_CC="${ac_tool_prefix}gcc" +- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For @@ -35894,16 +35939,19 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub - ++ + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` -+ fi + fi +-done +-done +-IFS=$as_save_IFS + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac - ++ + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and @@ -35920,7 +35968,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - ++ + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel @@ -35974,39 +36022,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + fi + done --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu --if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. --set dummy ${ac_tool_prefix}gcc; ac_word=$2 --{ echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. + cd .. + rm -rf conftest.dir - else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_CC="${ac_tool_prefix}gcc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS -- ++else + am_cv_CC_dependencies_compiler_type=none fi + @@ -36097,27 +36115,10 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; --esac -- CC=$ac_ct_CC -- fi --else -- CC="$ac_cv_prog_CC" --fi +int +main () +{ - --if test -z "$CC"; then -- if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. --set dummy ${ac_tool_prefix}cc; ac_word=$2 --{ echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. ++ + ; + return 0; +} @@ -36127,7 +36128,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; -+esac + esac +- CC=$ac_ct_CC +- fi +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 @@ -36142,6 +36145,25 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes else +- CC="$ac_cv_prog_CC" ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_header_stdc=no + fi + +-if test -z "$CC"; then +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +-set dummy ${ac_tool_prefix}cc; ac_word=$2 +-{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +-if test "${ac_cv_prog_CC+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. +-else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do @@ -36156,8 +36178,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -done -done -IFS=$as_save_IFS -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -fi @@ -36165,16 +36186,30 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } --else ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "memchr" >/dev/null 2>&1; then ++ : + else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -+ ac_cv_header_stdc=no ++ ac_cv_header_stdc=no fi ++rm -f conftest* -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +- - fi --fi + fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 @@ -36205,15 +36240,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -done -done -IFS=$as_save_IFS -+if test $ac_cv_header_stdc = yes; then -+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. @@ -36227,54 +36253,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- { echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6; } -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "memchr" >/dev/null 2>&1; then -+ : - else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -+ ac_cv_header_stdc=no - fi -- -+rm -f conftest* - - fi --if test -z "$CC"; then -- if test -n "$ac_tool_prefix"; then -- for ac_prog in cl.exe -- do -- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. --set dummy $ac_tool_prefix$ac_prog; ac_word=$2 --{ echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC @@ -36300,21 +36278,19 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -echo "${ECHO_T}no" >&6; } + ac_cv_header_stdc=no fi +- +rm -f conftest* -- -- test -n "$CC" && break -- done fi -if test -z "$CC"; then -- ac_ct_CC=$CC +- if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe --do -- # Extract the first word of "$ac_prog", so it can be a program name with args. --set dummy $ac_prog; ac_word=$2 +- do +- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +-set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } --if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +-if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + +if test $ac_cv_header_stdc = yes; then @@ -36322,8 +36298,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + if test "$cross_compiling" = yes; then + : else -- if test -n "$ac_ct_CC"; then -- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF @@ -36386,7 +36362,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_ac_ct_CC="$ac_prog" +- ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi @@ -36400,7 +36376,53 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +( exit $ac_status ) +ac_cv_header_stdc=no fi ++rm -rf conftest.dSYM ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- { echo "$as_me:$LINENO: result: $CC" >&5 +-echo "${ECHO_T}$CC" >&6; } +-else +- { echo "$as_me:$LINENO: result: no" >&5 +-echo "${ECHO_T}no" >&6; } -fi +- + +- test -n "$CC" && break +- done +-fi +-if test -z "$CC"; then +- ac_ct_CC=$CC +- for ac_prog in cl.exe +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- if test -n "$ac_ct_CC"; then +- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_CC="$ac_prog" +- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +-done +-IFS=$as_save_IFS + + fi + fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 @@ -36408,19 +36430,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -+rm -rf conftest.dSYM -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext - fi - - -- test -n "$ac_ct_CC" && break --done -+fi -+fi +-fi +- +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then -+ + +- test -n "$ac_ct_CC" && break +-done +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF @@ -36613,7 +36630,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ; return 0; -@@ -20245,50 +12306,43 @@ +@@ -20245,50 +12325,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -36681,7 +36698,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure int main () { -@@ -20303,30 +12357,64 @@ +@@ -20303,30 +12376,64 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -36753,7 +36770,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure int main () { -@@ -20341,31 +12429,43 @@ +@@ -20341,31 +12448,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -36805,7 +36822,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure int main () { -@@ -20380,2917 +12480,3055 @@ +@@ -20380,589 +12499,905 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac @@ -37054,20 +37071,123 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi ++ +Alternatively, you may set the environment variables X11_CFLAGS +and X11_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi ++ +To get pkg-config, see . +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. ++ ++Alternatively, you may set the environment variables X11_CFLAGS ++and X11_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. ++ ++To get pkg-config, see . ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++else ++ X11_CFLAGS=$pkg_cv_X11_CFLAGS ++ X11_LIBS=$pkg_cv_X11_LIBS ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ : ++fi ++ ++pkg_failed=no ++{ $as_echo "$as_me:$LINENO: checking for XEXT" >&5 ++$as_echo_n "checking for XEXT... " >&6; } ++ ++if test -n "$XEXT_CFLAGS"; then ++ pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "xext") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ pkg_cv_XEXT_CFLAGS=`$PKG_CONFIG --cflags "xext" 2>/dev/null` ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++if test -n "$XEXT_LIBS"; then ++ pkg_cv_XEXT_LIBS="$XEXT_LIBS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "xext") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ pkg_cv_XEXT_LIBS=`$PKG_CONFIG --libs "xext" 2>/dev/null` ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++ ++ ++ ++if test $pkg_failed = yes; then ++ ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi ++ if test $_pkg_short_errors_supported = yes; then ++ XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xext" 2>&1` ++ else ++ XEXT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xext" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$XEXT_PKG_ERRORS" >&5 ++ ++ { { $as_echo "$as_me:$LINENO: error: Package requirements (xext) were not met: ++ ++$XEXT_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. ++ ++Alternatively, you may set the environment variables XEXT_CFLAGS ++and XEXT_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. ++" >&5 ++$as_echo "$as_me: error: Package requirements (xext) were not met: ++ ++$XEXT_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi ++Alternatively, you may set the environment variables XEXT_CFLAGS ++and XEXT_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. ++" >&2;} ++ { (exit 1); exit 1; }; } ++elif test $pkg_failed = untried; then ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi ++Alternatively, you may set the environment variables XEXT_CFLAGS ++and XEXT_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag @@ -37082,8 +37202,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - else - CFLAGS="-g" - fi -+Alternatively, you may set the environment variables X11_CFLAGS -+and X11_LIBS to avoid the need to call pkg-config. ++To get pkg-config, see . ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. ++ ++Alternatively, you may set the environment variables XEXT_CFLAGS ++and XEXT_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . @@ -37095,8 +37221,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - else - CFLAGS= - fi -+ X11_CFLAGS=$pkg_cv_X11_CFLAGS -+ X11_LIBS=$pkg_cv_X11_LIBS ++ XEXT_CFLAGS=$pkg_cv_XEXT_CFLAGS ++ XEXT_LIBS=$pkg_cv_XEXT_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + : @@ -37136,7 +37262,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - va_end (v); - return s; -} - +- -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated @@ -37145,14 +37271,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; -- + -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for XEXT" >&5 -+$as_echo_n "checking for XEXT... " >&6; } ++{ $as_echo "$as_me:$LINENO: checking for XFIXES" >&5 ++$as_echo_n "checking for XFIXES... " >&6; } -int test (int i, double x); -struct s1 {int (*f) (int a);}; @@ -37180,12 +37306,12 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 -+if test -n "$XEXT_CFLAGS"; then -+ pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" ++if test -n "$XFIXES_CFLAGS"; then ++ pkg_cv_XFIXES_CFLAGS="$XFIXES_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xext") 2>&5 ++ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 @@ -37198,46 +37324,39 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - ac_cv_prog_cc_c89=$ac_arg + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then -+ pkg_cv_XEXT_CFLAGS=`$PKG_CONFIG --cflags "xext" 2>/dev/null` ++ pkg_cv_XFIXES_CFLAGS=`$PKG_CONFIG --cflags "xfixes" 2>/dev/null` else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- + pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+if test -n "$XEXT_LIBS"; then -+ pkg_cv_XEXT_LIBS="$XEXT_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xext") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_XEXT_LIBS=`$PKG_CONFIG --libs "xext" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi - - --fi - + fi +- -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC -+if test $pkg_failed = yes; then - -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes +- ++ else ++ pkg_failed=untried ++fi ++if test -n "$XFIXES_LIBS"; then ++ pkg_cv_XFIXES_LIBS="$XFIXES_LIBS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ pkg_cv_XFIXES_LIBS=`$PKG_CONFIG --libs "xfixes" 2>/dev/null` +else -+ _pkg_short_errors_supported=no ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in @@ -37252,32 +37371,24 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; -esac -+ if test $_pkg_short_errors_supported = yes; then -+ XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xext" 2>&1` -+ else -+ XEXT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xext" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$XEXT_PKG_ERRORS" >&5 -+ { { $as_echo "$as_me:$LINENO: error: Package requirements (xext) were not met: -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -+$XEXT_PKG_ERRORS -depcc="$CC" am_compiler_list= -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. ++if test $pkg_failed = yes; then -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 --else ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes + else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For @@ -37296,11 +37407,15 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&5 -+$as_echo "$as_me: error: Package requirements (xext) were not met: ++ _pkg_short_errors_supported=no ++fi ++ if test $_pkg_short_errors_supported = yes; then ++ XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xfixes" 2>&1` ++ else ++ XFIXES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xfixes" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$XFIXES_PKG_ERRORS" >&5 - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then @@ -37322,7 +37437,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -+$XEXT_PKG_ERRORS ++ { { $as_echo "$as_me:$LINENO: error: Package requirements (xfixes) were not met: - case $depmode in - nosideeffect) @@ -37362,11 +37477,42 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - fi - fi - done ++$XFIXES_PKG_ERRORS ++ +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. ++Alternatively, you may set the environment variables XFIXES_CFLAGS ++and XFIXES_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. ++" >&5 ++$as_echo "$as_me: error: Package requirements (xfixes) were not met: + +- cd .. +- rm -rf conftest.dir +-else +- am_cv_CC_dependencies_compiler_type=none +-fi ++$XFIXES_PKG_ERRORS + +-fi +-{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. + +- if +- test "x$enable_dependency_tracking" != xno \ +- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then +- am__fastdepCC_TRUE= +- am__fastdepCC_FALSE='#' +-else +- am__fastdepCC_TRUE='#' +- am__fastdepCC_FALSE= +-fi ++Alternatively, you may set the environment variables XFIXES_CFLAGS ++and XFIXES_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } @@ -37376,93 +37522,28 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. - -- cd .. -- rm -rf conftest.dir -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. + ++Alternatively, you may set the environment variables XFIXES_CFLAGS ++and XFIXES_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. -+ -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. + ++Alternatively, you may set the environment variables XFIXES_CFLAGS ++and XFIXES_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } - else -- am_cv_CC_dependencies_compiler_type=none -+ XEXT_CFLAGS=$pkg_cv_XEXT_CFLAGS -+ XEXT_LIBS=$pkg_cv_XEXT_LIBS -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ : - fi - --fi --{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 --echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } --CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -+pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for XFIXES" >&5 -+$as_echo_n "checking for XFIXES... " >&6; } - -- if -- test "x$enable_dependency_tracking" != xno \ -- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then -- am__fastdepCC_TRUE= -- am__fastdepCC_FALSE='#' -+if test -n "$XFIXES_CFLAGS"; then -+ pkg_cv_XFIXES_CFLAGS="$XFIXES_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_XFIXES_CFLAGS=`$PKG_CONFIG --cflags "xfixes" 2>/dev/null` - else -- am__fastdepCC_TRUE='#' -- am__fastdepCC_FALSE= -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+if test -n "$XFIXES_LIBS"; then -+ pkg_cv_XFIXES_LIBS="$XFIXES_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_XFIXES_LIBS=`$PKG_CONFIG --libs "xfixes" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried - fi - - -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -+if test $pkg_failed = yes; then -+ -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes ++To get pkg-config, see . ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -37474,20 +37555,19 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -#include -#include -#include -+ _pkg_short_errors_supported=no ++ XFIXES_CFLAGS=$pkg_cv_XFIXES_CFLAGS ++ XFIXES_LIBS=$pkg_cv_XFIXES_LIBS ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ : +fi -+ if test $_pkg_short_errors_supported = yes; then -+ XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xfixes" 2>&1` -+ else -+ XFIXES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xfixes" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$XFIXES_PKG_ERRORS" >&5 -int -main () -{ -+ { { $as_echo "$as_me:$LINENO: error: Package requirements (xfixes) were not met: ++pkg_failed=no ++{ $as_echo "$as_me:$LINENO: checking for DRM" >&5 ++$as_echo_n "checking for DRM... " >&6; } - ; - return 0; @@ -37501,7 +37581,13 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 -- ac_status=$? ++if test -n "$DRM_CFLAGS"; then ++ pkg_cv_DRM_CFLAGS="$DRM_CFLAGS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "libdrm") 2>&5 + ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -37511,95 +37597,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+$XFIXES_PKG_ERRORS - -- ac_cv_header_stdc=no --fi -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&5 -+$as_echo "$as_me: error: Package requirements (xfixes) were not met: - --if test $ac_cv_header_stdc = yes; then -- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -+$XFIXES_PKG_ERRORS - --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "memchr" >/dev/null 2>&1; then -- : -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&2;} -+ { (exit 1); exit 1; }; } -+elif test $pkg_failed = untried; then -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it -+is in your PATH or set the PKG_CONFIG environment variable to the full -+path to pkg-config. -+ -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&5 -+$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -+is in your PATH or set the PKG_CONFIG environment variable to the full -+path to pkg-config. -+ -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } - else -- ac_cv_header_stdc=no -+ XFIXES_CFLAGS=$pkg_cv_XFIXES_CFLAGS -+ XFIXES_LIBS=$pkg_cv_XFIXES_LIBS -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ : - fi --rm -f conftest* - -+pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for DRM" >&5 -+$as_echo_n "checking for DRM... " >&6; } -+ -+if test -n "$DRM_CFLAGS"; then -+ pkg_cv_DRM_CFLAGS="$DRM_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "libdrm") 2>&5 -+ ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_DRM_CFLAGS=`$PKG_CONFIG --cflags "libdrm" 2>/dev/null` -+else + else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_header_stdc=no + pkg_failed=yes +fi + else @@ -37622,21 +37627,22 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + pkg_failed=untried fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + -if test $ac_cv_header_stdc = yes; then -- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ --#include +-#include -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "free" >/dev/null 2>&1; then +- $EGREP "memchr" >/dev/null 2>&1; then - : -+ +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -37658,30 +37664,20 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + { { $as_echo "$as_me:$LINENO: error: Package requirements (libdrm) were not met: -if test $ac_cv_header_stdc = yes; then -- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -- if test "$cross_compiling" = yes; then -- : --else +- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ --#include -#include --#if ((' ' & 0x0FF) == 0x020) --# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) --#else --# define ISLOWER(c) \ -- (('a' <= (c) && (c) <= 'i') \ -- || ('j' <= (c) && (c) <= 'r') \ -- || ('s' <= (c) && (c) <= 'z')) --# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) --#endif +$DRM_PKG_ERRORS -+ + +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "free" >/dev/null 2>&1; then +- : +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + @@ -37717,6 +37713,52 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. ++ ++Alternatively, you may set the environment variables DRM_CFLAGS ++and DRM_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. ++ ++To get pkg-config, see . ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } + else +- ac_cv_header_stdc=no ++ DRM_CFLAGS=$pkg_cv_DRM_CFLAGS ++ DRM_LIBS=$pkg_cv_DRM_LIBS ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ : + fi +-rm -f conftest* + +-fi + +-if test $ac_cv_header_stdc = yes; then +- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +- if test "$cross_compiling" = yes; then +- : +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include +-#include +-#if ((' ' & 0x0FF) == 0x020) +-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +-#else +-# define ISLOWER(c) \ +- (('a' <= (c) && (c) <= 'i') \ +- || ('j' <= (c) && (c) <= 'r') \ +- || ('s' <= (c) && (c) <= 'z')) +-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +-#endif ++pkg_failed=no ++{ $as_echo "$as_me:$LINENO: checking for GEN4ASM" >&5 ++$as_echo_n "checking for GEN4ASM... " >&6; } -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int @@ -37738,26 +37780,6 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 -+Alternatively, you may set the environment variables DRM_CFLAGS -+and DRM_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } -+else -+ DRM_CFLAGS=$pkg_cv_DRM_CFLAGS -+ DRM_LIBS=$pkg_cv_DRM_LIBS -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ : -+fi -+ -+ -+pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for GEN4ASM" >&5 -+$as_echo_n "checking for GEN4ASM... " >&6; } -+ +if test -n "$GEN4ASM_CFLAGS"; then + pkg_cv_GEN4ASM_CFLAGS="$GEN4ASM_CFLAGS" + elif test -n "$PKG_CONFIG"; then @@ -37795,37 +37817,25 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_GEN4ASM_LIBS=`$PKG_CONFIG --libs "intel-gen4asm >= 1.0" 2>/dev/null` ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++ ++ ++ ++if test $pkg_failed = yes; then ++ ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- --( exit $ac_status ) --ac_cv_header_stdc=no -+ pkg_failed=yes - fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+ else -+ pkg_failed=untried - fi - - --fi --fi --{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 --echo "${ECHO_T}$ac_cv_header_stdc" >&6; } --if test $ac_cv_header_stdc = yes; then - --cat >>confdefs.h <<\_ACEOF --#define STDC_HEADERS 1 --_ACEOF -+if test $pkg_failed = yes; then - -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes -+else + _pkg_short_errors_supported=no - fi ++fi + if test $_pkg_short_errors_supported = yes; then + GEN4ASM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "intel-gen4asm >= 1.0" 2>&1` + else @@ -37834,9 +37844,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + # Put the nasty error message in config.log where it belongs + echo "$GEN4ASM_PKG_ERRORS" >&5 --# Check whether --enable-largefile was given. --if test "${enable_largefile+set}" = set; then -- enableval=$enable_largefile; +-( exit $ac_status ) +-ac_cv_header_stdc=no + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + gen4asm=no @@ -37849,67 +37858,15 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +$as_echo "yes" >&6; } + gen4asm=yes fi -- --if test "$enable_largefile" != no; then -- -- { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 --echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } --if test "${ac_cv_sys_largefile_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + if test x$gen4asm = xyes; then + HAVE_GEN4ASM_TRUE= + HAVE_GEN4ASM_FALSE='#' - else -- ac_cv_sys_largefile_CC=no -- if test "$GCC" != yes; then -- ac_save_CC=$CC -- while :; do -- # IRIX 6.2 and later do not support large files by default, -- # so use the C compiler's -n32 option if that helps. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; --int --main () --{ ++else + HAVE_GEN4ASM_TRUE='#' + HAVE_GEN4ASM_FALSE= +fi - -- ; -- return 0; --} --_ACEOF -- rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- break ++ + +# Check for libdrm >= 2.4 (needed for i965_drv_video.so) +if test x$enable_i965_driver = xyes && ! $PKG_CONFIG --atleast-version=2.4 libdrm; then @@ -37920,71 +37877,96 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + if test x$enable_i965_driver = xyes; then + BUILD_I965_DRIVER_TRUE= + BUILD_I965_DRIVER_FALSE='#' - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 ++else + BUILD_I965_DRIVER_TRUE='#' + BUILD_I965_DRIVER_FALSE= -+fi + fi ++{ $as_echo "$as_me:$LINENO: checking whether __attribute__((visibility())) is supported" >&5 ++$as_echo_n "checking whether __attribute__((visibility())) is supported... " >&6; } ++if test "${libva_cv_visibility_attribute+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat > conftest.c </dev/null 2>&1; then ++ if grep '\.hidden.*foo' conftest.s >/dev/null; then ++ if grep '\.protected.*bar' conftest.s >/dev/null; then ++ libva_cv_visibility_attribute=yes ++ fi ++ fi ++ fi ++ rm -f conftest.cs ++ + fi ++{ $as_echo "$as_me:$LINENO: result: $libva_cv_visibility_attribute" >&5 ++$as_echo "$libva_cv_visibility_attribute" >&6; } ++ATTRIBUTE_HIDDEN="" ++if test $libva_cv_visibility_attribute = yes; then ++ ATTRIBUTE_HIDDEN="__attribute__((visibility(\"hidden\")))" + fi +-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +-echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +-if test $ac_cv_header_stdc = yes; then + +-cat >>confdefs.h <<\_ACEOF +-#define STDC_HEADERS 1 ++cat >>confdefs.h <<_ACEOF ++#define ATTRIBUTE_HIDDEN $ATTRIBUTE_HIDDEN + _ACEOF + -fi -+# We only need the headers, we don't link against the DRM libraries -+LIBVA_CFLAGS="$DRM_CFLAGS" - --rm -f core conftest.err conftest.$ac_objext -- CC="$CC -n32" -- rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_sys_largefile_CC=' -n32'; break --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - +-# Check whether --enable-largefile was given. +-if test "${enable_largefile+set}" = set; then +- enableval=$enable_largefile; -fi -+pkgconfigdir=${libdir}/pkgconfig ++# Check for OpenGL (X11) ++USE_GLX="no" ++GL_DEPS_CFLAGS="" ++GL_DEPS_LIBS="" --rm -f core conftest.err conftest.$ac_objext -- break -- done -- CC=$ac_save_CC -- rm -f conftest.$ac_ext -- fi --fi --{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 --echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } -- if test "$ac_cv_sys_largefile_CC" != no; then -- CC=$CC$ac_cv_sys_largefile_CC -- fi +-if test "$enable_largefile" != no; then ++if test x$enable_glx = xyes; then -- { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 --echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } --if test "${ac_cv_sys_file_offset_bits+set}" = set; then +- { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +-echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } +-if test "${ac_cv_sys_largefile_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- while :; do -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++for ac_header in GL/gl.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } + else +- ac_cv_sys_largefile_CC=no +- if test "$GCC" != yes; then +- ac_save_CC=$CC +- while :; do +- # IRIX 6.2 and later do not support large files by default, +- # so use the C compiler's -n32 option if that helps. +- cat >conftest.$ac_ext <<_ACEOF ++ # Is the header compilable? ++{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 ++$as_echo_n "checking $ac_header usability... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, @@ -37997,47 +37979,260 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -int -main () -{ -+LIBVA_DISPLAY=x11 -+libvacorelib=libva.la -+libvabackendlib=libva-$LIBVA_DISPLAY.la - +- - ; - return 0; -} --_ACEOF --rm -f conftest.$ac_objext ++$ac_includes_default ++#include <$ac_header> + _ACEOF +- rm -f conftest.$ac_objext ++rm -f conftest.$ac_objext + if { (ac_try="$ac_compile" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; + esac +-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then +- break ++ ac_header_compiler=yes + else +- echo "$as_me: failed program was:" >&5 ++ $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +- ++ ac_header_compiler=no + fi + +-rm -f core conftest.err conftest.$ac_objext +- CC="$CC -n32" +- rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++$as_echo "$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 ++$as_echo_n "checking $ac_header presence... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <$ac_header> ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; + esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || -- test ! -s conftest.err ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_sys_file_offset_bits=no; break --else +- ac_cv_sys_largefile_CC=' -n32'; break ++ }; then ++ ac_header_preproc=yes + else - echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 ++ $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 ++ ac_header_preproc=no ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++$as_echo "$ac_header_preproc" >&6; } ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ++$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ++ ( cat <<\_ASBOX ++## -------------------------------------- ## ++## Report this to waldo.bastian@intel.com ## ++## -------------------------------------- ## ++_ASBOX ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } --fi -+ac_config_files="$ac_config_files Makefile src/Makefile src/va_version.h src/x11/Makefile dummy_drv_video/Makefile i965_drv_video/Makefile i965_drv_video/shaders/Makefile i965_drv_video/shaders/mpeg2/Makefile i965_drv_video/shaders/mpeg2/vld/Makefile i965_drv_video/shaders/render/Makefile test/Makefile libva.pc libva-x11.pc" + fi ++as_val=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-rm -f core conftest.err conftest.$ac_objext +- break +- done +- CC=$ac_save_CC +- rm -f conftest.$ac_ext +- fi + fi +-{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +-echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } +- if test "$ac_cv_sys_largefile_CC" != no; then +- CC=$CC$ac_cv_sys_largefile_CC +- fi + +- { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +-echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } +-if test "${ac_cv_sys_file_offset_bits+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 ++done ++ ++ ++for ac_header in GL/glx.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } + else +- while :; do - cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++ # Is the header compilable? ++{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 ++$as_echo_n "checking $ac_header usability... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include +- /* Check that off_t can represent 2**63 - 1 correctly. +- We can't simply define LARGE_OFF_T to be 9223372036854775807, +- since some C++ compilers masquerading as C compilers +- incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 +- && LARGE_OFF_T % 2147483647 == 1) +- ? 1 : -1]; +-int +-main () +-{ +- +- ; +- return 0; +-} ++$ac_includes_default ++#include <$ac_header> + _ACEOF + rm -f conftest.$ac_objext + if { (ac_try="$ac_compile" +@@ -20970,2327 +13405,2582 @@ + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; + esac +-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then +- ac_cv_sys_file_offset_bits=no; break ++ ac_header_compiler=yes + else +- echo "$as_me: failed program was:" >&5 ++ $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +- ++ ac_header_compiler=no + fi + + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- cat >conftest.$ac_ext <<_ACEOF ++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++$as_echo "$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 ++$as_echo_n "checking $ac_header presence... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. @@ -38051,6 +38246,264 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure -int -main () -{ +- +- ; +- return 0; +-} ++#include <$ac_header> + _ACEOF +-rm -f conftest.$ac_objext +-if { (ac_try="$ac_compile" ++if { (ac_try="$ac_cpp conftest.$ac_ext" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; + esac +-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +- (eval "$ac_compile") 2>conftest.er1 ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { +- test -z "$ac_c_werror_flag" || ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err +- } && test -s conftest.$ac_objext; then +- ac_cv_sys_file_offset_bits=64; break ++ }; then ++ ac_header_preproc=yes + else +- echo "$as_me: failed program was:" >&5 ++ $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + ++ ac_header_preproc=no ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++$as_echo "$ac_header_preproc" >&6; } + ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ++$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ++ ( cat <<\_ASBOX ++## -------------------------------------- ## ++## Report this to waldo.bastian@intel.com ## ++## -------------------------------------- ## ++_ASBOX ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" + fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- ac_cv_sys_file_offset_bits=unknown +- break +-done + fi +-{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +-echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } +-case $ac_cv_sys_file_offset_bits in #( +- no | unknown) ;; +- *) +-cat >>confdefs.h <<_ACEOF +-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits ++as_val=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +-;; +-esac +-rm -f conftest* +- if test $ac_cv_sys_file_offset_bits = unknown; then +- { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +-echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } +-if test "${ac_cv_sys_large_files+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 ++ ++fi ++ ++done ++ ++ { $as_echo "$as_me:$LINENO: checking for glXCreateContext in -lGL" >&5 ++$as_echo_n "checking for glXCreateContext in -lGL... " >&6; } ++if test "${ac_cv_lib_GL_glXCreateContext+set}" = set; then ++ $as_echo_n "(cached) " >&6 + else +- while :; do +- cat >conftest.$ac_ext <<_ACEOF ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lGL $LIBS" ++cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include +- /* Check that off_t can represent 2**63 - 1 correctly. +- We can't simply define LARGE_OFF_T to be 9223372036854775807, +- since some C++ compilers masquerading as C compilers +- incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 +- && LARGE_OFF_T % 2147483647 == 1) +- ? 1 : -1]; ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char glXCreateContext (); + int + main () + { +- ++return glXCreateContext (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext +-if { (ac_try="$ac_compile" ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; + esac +-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +- (eval "$ac_compile") 2>conftest.er1 ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err +- } && test -s conftest.$ac_objext; then +- ac_cv_sys_large_files=no; break ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_lib_GL_glXCreateContext=yes + else +- echo "$as_me: failed program was:" >&5 ++ $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + ++ ac_cv_lib_GL_glXCreateContext=no ++fi + ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXCreateContext" >&5 ++$as_echo "$ac_cv_lib_GL_glXCreateContext" >&6; } ++if test "x$ac_cv_lib_GL_glXCreateContext" = x""yes; then + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#define _LARGE_FILES 1 +-#include +- /* Check that off_t can represent 2**63 - 1 correctly. +- We can't simply define LARGE_OFF_T to be 9223372036854775807, +- since some C++ compilers masquerading as C compilers +- incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 +- && LARGE_OFF_T % 2147483647 == 1) +- ? 1 : -1]; +-int +-main () +-{ ++ USE_GLX="yes" ++ GL_DEPS_LIBS="-lX11 -lGL" ++ ++fi ++ ++fi ++ ++ ++ if test "$USE_GLX" = "yes"; then ++ USE_GLX_TRUE= ++ USE_GLX_FALSE='#' ++else ++ USE_GLX_TRUE='#' ++ USE_GLX_FALSE= ++fi ++ ++ ++# We only need the headers, we don't link against the DRM libraries ++LIBVA_CFLAGS="$DRM_CFLAGS" ++ ++ ++ ++pkgconfigdir=${libdir}/pkgconfig ++ ++ ++LIBVA_DISPLAY=x11 ++libvacorelib=libva.la ++libvabackendlib=libva-$LIBVA_DISPLAY.la ++ ++ ++ ++ac_config_files="$ac_config_files Makefile src/Makefile src/va_version.h src/x11/Makefile src/glx/Makefile dummy_drv_video/Makefile i965_drv_video/Makefile i965_drv_video/shaders/Makefile i965_drv_video/shaders/mpeg2/Makefile i965_drv_video/shaders/mpeg2/vld/Makefile i965_drv_video/shaders/render/Makefile test/Makefile libva.pc libva-x11.pc libva-glx.pc" ++ +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure @@ -38086,11 +38539,8 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_sys_file_offset_bits=64; break --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - +- ac_cv_sys_large_files=1; break ++ +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. @@ -38112,7 +38562,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + esac ;; + esac + done - ++ + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) @@ -38147,12 +38597,9 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi - fi ++fi +rm -f confcache - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- ac_cv_sys_file_offset_bits=unknown -- break ++ +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' @@ -38169,102 +38616,22 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' - done --fi --{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 --echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } --case $ac_cv_sys_file_offset_bits in #( -- no | unknown) ;; -- *) --cat >>confdefs.h <<_ACEOF --#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits --_ACEOF --;; --esac --rm -f conftest* -- if test $ac_cv_sys_file_offset_bits = unknown; then -- { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 --echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } --if test "${ac_cv_sys_large_files+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- while :; do -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; --int --main () --{ ++done +LIBOBJS=$ac_libobjs - -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_sys_large_files=no; break --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 ++ +LTLIBOBJS=$ac_ltlibobjs - - ++ ++ + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' -+else + else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= - fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#define _LARGE_FILES 1 --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; --int --main () --{ ++fi ++ +if test -z "${BUILD_DUMMY_DRIVER_TRUE}" && test -z "${BUILD_DUMMY_DRIVER_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_DUMMY_DRIVER\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 @@ -38307,10 +38674,14 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi - -- ; -- return 0; --} ++if test -z "${USE_GLX_TRUE}" && test -z "${USE_GLX_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GLX\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"USE_GLX\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files @@ -38328,28 +38699,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} - _ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_sys_large_files=1; break --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 ++_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +## --------------------- ## @@ -39524,6 +39874,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/va_version.h") CONFIG_FILES="$CONFIG_FILES src/va_version.h" ;; + "src/x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/x11/Makefile" ;; ++ "src/glx/Makefile") CONFIG_FILES="$CONFIG_FILES src/glx/Makefile" ;; + "dummy_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES dummy_drv_video/Makefile" ;; + "i965_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/Makefile" ;; + "i965_drv_video/shaders/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/Makefile" ;; @@ -39533,6 +39884,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure + "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; + "libva.pc") CONFIG_FILES="$CONFIG_FILES libva.pc" ;; + "libva-x11.pc") CONFIG_FILES="$CONFIG_FILES libva-x11.pc" ;; ++ "libva-glx.pc") CONFIG_FILES="$CONFIG_FILES libva-glx.pc" ;; + + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} @@ -42404,7 +42756,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure ;; esac -@@ -23302,6 +15540,11 @@ +@@ -23302,6 +15992,11 @@ chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save @@ -42416,7 +42768,7 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. -@@ -23323,5 +15566,9 @@ +@@ -23323,5 +16018,9 @@ # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi @@ -42426,9 +42778,126 @@ diff -Naur libva-0.31.0/configure libva-0.31.0.diff/configure +fi -diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_video/Makefile.in +diff -Naur libva-0.31.0/configure.ac libva-0.31.0.patch/configure.ac +--- libva-0.31.0/configure.ac 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/configure.ac 2009-10-12 02:43:29.495782886 +0200 +@@ -28,6 +28,9 @@ + m4_define([libva_version], + [libva_major_version.libva_minor_version.libva_micro_version]) + ++# increase this number for each API change ++m4_define([libva_sds_version], [3]) ++ + # if the library source code has changed, increment revision + m4_define([libva_lt_revision], [0]) + # if any interface was added/removed/changed, then inc current, reset revision +@@ -39,6 +42,7 @@ + AC_PREREQ(2.57) + AC_INIT([libva], [libva_version], [waldo.bastian@intel.com], libva) + AC_CONFIG_SRCDIR([Makefile.am]) ++AC_CONFIG_MACRO_DIR([m4]) + AM_INIT_AUTOMAKE([dist-bzip2]) + + AM_CONFIG_HEADER([config.h]) +@@ -52,14 +56,22 @@ + AC_SUBST(LIBVA_MICRO_VERSION) + AC_SUBST(LIBVA_VERSION) + ++LIBVA_SDS_VERSION=libva_sds_version ++AC_SUBST(LIBVA_SDS_VERSION) ++ + LIBVA_LT_CURRENT=libva_lt_current + LIBVA_LT_REV=libva_lt_revision + LIBVA_LT_AGE=libva_lt_age + LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" +-LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" ++LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION" + AC_SUBST(LIBVA_LT_VERSION) + AC_SUBST(LIBVA_LT_LDFLAGS) + ++AC_ARG_ENABLE(glx, ++ [AC_HELP_STRING([--enable-glx], ++ [build with OpenGL for X11 support])], ++ [], [enable_glx=yes]) ++ + AC_ARG_ENABLE(dummy-driver, + [AC_HELP_STRING([--enable-dummy-driver], + [build dummy video driver])], +@@ -73,7 +85,7 @@ + + AC_ARG_WITH(drivers-path, + [AC_HELP_STRING([--with-drivers-path=[[path]]], [drivers path])],, +- [with_drivers_path="$libdir/dri"]) ++ [with_drivers_path="$libdir/va/drivers"]) + + LIBVA_DRIVERS_PATH="$with_drivers_path" + AC_SUBST(LIBVA_DRIVERS_PATH) +@@ -100,6 +112,47 @@ + fi + AM_CONDITIONAL(BUILD_I965_DRIVER, test x$enable_i965_driver = xyes) + ++dnl Check for __attribute__((visibility())) ++AC_CACHE_CHECK([whether __attribute__((visibility())) is supported], ++ libva_cv_visibility_attribute, ++ [cat > conftest.c </dev/null 2>&1; then ++ if grep '\.hidden.*foo' conftest.s >/dev/null; then ++ if grep '\.protected.*bar' conftest.s >/dev/null; then ++ libva_cv_visibility_attribute=yes ++ fi ++ fi ++ fi ++ rm -f conftest.[cs] ++]) ++ATTRIBUTE_HIDDEN="" ++if test $libva_cv_visibility_attribute = yes; then ++ ATTRIBUTE_HIDDEN="__attribute__((visibility(\"hidden\")))" ++fi ++AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN], ++ [Defined to __attribute__((visibility("hidden"))) when available]) ++ ++# Check for OpenGL (X11) ++USE_GLX="no" ++GL_DEPS_CFLAGS="" ++GL_DEPS_LIBS="" ++ ++if test x$enable_glx = xyes; then ++ AC_CHECK_HEADERS([GL/gl.h]) ++ AC_CHECK_HEADERS([GL/glx.h]) ++ AC_CHECK_LIB(GL, glXCreateContext, [ ++ USE_GLX="yes" ++ GL_DEPS_LIBS="-lX11 -lGL" ++ ]) ++fi ++AC_SUBST(GL_DEPS_CFLAGS) ++AC_SUBST(GL_DEPS_LIBS) ++AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes") ++ + # We only need the headers, we don't link against the DRM libraries + LIBVA_CFLAGS="$DRM_CFLAGS" + AC_SUBST(LIBVA_CFLAGS) +@@ -119,6 +172,7 @@ + src/Makefile + src/va_version.h + src/x11/Makefile ++ src/glx/Makefile + dummy_drv_video/Makefile + i965_drv_video/Makefile + i965_drv_video/shaders/Makefile +@@ -128,5 +182,6 @@ + test/Makefile + libva.pc + libva-x11.pc ++ libva-glx.pc + ]) + +diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.patch/dummy_drv_video/Makefile.in --- libva-0.31.0/dummy_drv_video/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/dummy_drv_video/Makefile.in 2009-10-10 23:10:14.744782602 +0200 ++++ libva-0.31.0.patch/dummy_drv_video/Makefile.in 2009-10-12 02:44:01.072657961 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -42492,7 +42961,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -109,24 +127,19 @@ +@@ -109,38 +127,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -42518,8 +42987,11 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -135,12 +148,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -42533,9 +43005,11 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -149,12 +162,17 @@ +@@ -148,13 +163,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -42551,7 +43025,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -180,8 +198,7 @@ +@@ -180,8 +201,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -42561,7 +43035,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -214,6 +231,7 @@ +@@ -214,6 +234,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -42569,7 +43043,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -227,6 +245,7 @@ +@@ -227,6 +248,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -42577,7 +43051,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dummy_drv_video_la_LTLIBRARIES = dummy_drv_video.la -@@ -245,14 +264,14 @@ +@@ -245,14 +267,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -42597,7 +43071,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -270,23 +289,28 @@ +@@ -270,23 +292,28 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -42635,7 +43109,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ done clean-dummy_drv_video_laLTLIBRARIES: -@@ -311,21 +335,21 @@ +@@ -311,21 +338,21 @@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -42660,7 +43134,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -341,14 +365,14 @@ +@@ -341,14 +368,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -42677,7 +43151,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ -@@ -356,29 +380,34 @@ +@@ -356,29 +383,34 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -42720,7 +43194,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -399,13 +428,17 @@ +@@ -399,13 +431,17 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -42742,7 +43216,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ || exit 1; \ fi; \ done -@@ -436,6 +469,7 @@ +@@ -436,6 +472,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -42750,7 +43224,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -457,6 +491,8 @@ +@@ -457,6 +494,8 @@ html: html-am @@ -42759,7 +43233,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ info: info-am info-am: -@@ -465,18 +501,28 @@ +@@ -465,18 +504,28 @@ install-dvi: install-dvi-am @@ -42788,7 +43262,7 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ installcheck-am: maintainer-clean: maintainer-clean-am -@@ -517,6 +563,7 @@ +@@ -517,6 +566,7 @@ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-dummy_drv_video_laLTLIBRARIES @@ -42796,9 +43270,55 @@ diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.diff/dummy_drv_ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_video/Makefile.in +diff -Naur libva-0.31.0/i965_drv_video/i965_drv_video.c libva-0.31.0.patch/i965_drv_video/i965_drv_video.c +--- libva-0.31.0/i965_drv_video/i965_drv_video.c 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/i965_drv_video/i965_drv_video.c 2009-10-12 02:43:29.498782351 +0200 +@@ -346,6 +346,9 @@ + VAImageFormat *format_list, /* out */ + int *num_formats) /* out */ + { ++ if (num_formats) ++ *num_formats = 0; ++ + return VA_STATUS_SUCCESS; + } + +@@ -486,8 +489,6 @@ + short dest_y, + unsigned short dest_width, + unsigned short dest_height, +- unsigned short width, +- unsigned short height, + /* + * whether to enable chroma-keying or global-alpha + * see VA_SUBPICTURE_XXX values +@@ -1031,8 +1032,10 @@ + VADisplayAttribute *attr_list, /* out */ + int *num_attributes) /* out */ + { +- /* TODO */ +- return VA_STATUS_ERROR_UNKNOWN; ++ if (num_attributes) ++ *num_attributes = 0; ++ ++ return VA_STATUS_SUCCESS; + } + + /* +@@ -1317,8 +1320,8 @@ + struct i965_driver_data *i965; + int result; + +- ctx->version_major = 0; +- ctx->version_minor = 29; ++ ctx->version_major = VA_MAJOR_VERSION; ++ ctx->version_minor = VA_MINOR_VERSION; + ctx->max_profiles = I965_MAX_PROFILES; + ctx->max_entrypoints = I965_MAX_ENTRYPOINTS; + ctx->max_attributes = I965_MAX_CONFIG_ATTRIBUTES; +diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.patch/i965_drv_video/Makefile.in --- libva-0.31.0/i965_drv_video/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/i965_drv_video/Makefile.in 2009-10-10 23:10:14.842783787 +0200 ++++ libva-0.31.0.patch/i965_drv_video/Makefile.in 2009-10-12 02:44:01.159658071 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -42901,7 +43421,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ -@@ -122,24 +168,19 @@ +@@ -122,38 +168,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -42927,8 +43447,11 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -148,12 +189,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -42942,9 +43465,11 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -162,12 +203,17 @@ +@@ -161,13 +204,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -42960,7 +43485,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -193,8 +239,7 @@ +@@ -193,8 +242,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -42970,7 +43495,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -227,6 +272,7 @@ +@@ -227,6 +275,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -42978,7 +43503,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -240,6 +286,7 @@ +@@ -240,6 +289,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -42986,7 +43511,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = shaders -@@ -278,14 +325,14 @@ +@@ -278,14 +328,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -43006,7 +43531,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -303,23 +350,28 @@ +@@ -303,23 +353,28 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -43044,7 +43569,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi done clean-i965_drv_video_laLTLIBRARIES: -@@ -350,21 +402,21 @@ +@@ -350,21 +405,21 @@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -43069,7 +43594,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -399,7 +451,7 @@ +@@ -399,7 +454,7 @@ else \ local_target="$$target"; \ fi; \ @@ -43078,7 +43603,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ -@@ -433,16 +485,16 @@ +@@ -433,16 +488,16 @@ else \ local_target="$$target"; \ fi; \ @@ -43098,7 +43623,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -450,14 +502,14 @@ +@@ -450,14 +505,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -43115,7 +43640,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ -@@ -469,7 +521,7 @@ +@@ -469,7 +524,7 @@ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ @@ -43124,7 +43649,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -478,29 +530,34 @@ +@@ -478,29 +533,34 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -43167,7 +43692,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -521,29 +578,44 @@ +@@ -521,29 +581,44 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -43222,7 +43747,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi distdir) \ || exit 1; \ fi; \ -@@ -576,6 +648,7 @@ +@@ -576,6 +651,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -43230,7 +43755,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -597,6 +670,8 @@ +@@ -597,6 +673,8 @@ html: html-recursive @@ -43239,7 +43764,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi info: info-recursive info-am: -@@ -605,18 +680,28 @@ +@@ -605,18 +683,28 @@ install-dvi: install-dvi-recursive @@ -43268,7 +43793,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi installcheck-am: maintainer-clean: maintainer-clean-recursive -@@ -639,8 +724,8 @@ +@@ -639,8 +727,8 @@ uninstall-am: uninstall-i965_drv_video_laLTLIBRARIES @@ -43279,7 +43804,7 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ -@@ -659,6 +744,7 @@ +@@ -659,6 +747,7 @@ tags tags-recursive uninstall uninstall-am \ uninstall-i965_drv_video_laLTLIBRARIES @@ -43287,9 +43812,9 @@ diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.diff/i965_drv_vi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/Makefile.in +diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/Makefile.in --- libva-0.31.0/i965_drv_video/shaders/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/Makefile.in 2009-10-10 23:10:14.910782642 +0200 ++++ libva-0.31.0.patch/i965_drv_video/shaders/Makefile.in 2009-10-12 02:44:01.220657144 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -43360,7 +43885,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ -@@ -67,24 +98,19 @@ +@@ -67,38 +98,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -43386,8 +43911,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -93,12 +119,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -43401,9 +43929,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -107,12 +133,17 @@ +@@ -106,13 +134,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -43419,7 +43949,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -138,8 +169,7 @@ +@@ -138,8 +172,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -43429,7 +43959,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -172,6 +202,7 @@ +@@ -172,6 +205,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -43437,7 +43967,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -185,6 +216,7 @@ +@@ -185,6 +219,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -43445,7 +43975,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = mpeg2 render -@@ -195,14 +227,14 @@ +@@ -195,14 +230,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -43465,7 +43995,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -220,6 +252,7 @@ +@@ -220,6 +255,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -43473,7 +44003,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 mostlyclean-libtool: -rm -f *.lo -@@ -251,7 +284,7 @@ +@@ -251,7 +287,7 @@ else \ local_target="$$target"; \ fi; \ @@ -43482,7 +44012,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ -@@ -285,16 +318,16 @@ +@@ -285,16 +321,16 @@ else \ local_target="$$target"; \ fi; \ @@ -43502,7 +44032,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -302,14 +335,14 @@ +@@ -302,14 +338,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -43519,7 +44049,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ -@@ -321,7 +354,7 @@ +@@ -321,7 +357,7 @@ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ @@ -43528,7 +44058,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -330,29 +363,34 @@ +@@ -330,29 +366,34 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -43571,7 +44101,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -373,29 +411,44 @@ +@@ -373,29 +414,44 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -43626,7 +44156,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 distdir) \ || exit 1; \ fi; \ -@@ -425,6 +478,7 @@ +@@ -425,6 +481,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -43634,7 +44164,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -443,6 +497,8 @@ +@@ -443,6 +500,8 @@ html: html-recursive @@ -43643,7 +44173,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 info: info-recursive info-am: -@@ -451,18 +507,28 @@ +@@ -451,18 +510,28 @@ install-dvi: install-dvi-recursive @@ -43672,7 +44202,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 installcheck-am: maintainer-clean: maintainer-clean-recursive -@@ -483,8 +549,8 @@ +@@ -483,8 +552,8 @@ uninstall-am: @@ -43683,7 +44213,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ -@@ -500,6 +566,7 @@ +@@ -500,6 +569,7 @@ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am @@ -43691,9 +44221,9 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.diff/i96 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/Makefile.in +diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/Makefile.in --- libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/Makefile.in 2009-10-10 23:10:14.978782546 +0200 ++++ libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/Makefile.in 2009-10-12 02:44:01.287658148 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -43764,7 +44294,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ -@@ -67,24 +98,19 @@ +@@ -67,38 +98,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -43790,8 +44320,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -93,12 +119,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -43805,9 +44338,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -107,12 +133,17 @@ +@@ -106,13 +134,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -43823,7 +44358,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -138,8 +169,7 @@ +@@ -138,8 +172,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -43833,7 +44368,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -172,6 +202,7 @@ +@@ -172,6 +205,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -43841,7 +44376,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -185,6 +216,7 @@ +@@ -185,6 +219,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -43849,7 +44384,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = vld -@@ -195,14 +227,14 @@ +@@ -195,14 +230,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -43869,7 +44404,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -220,6 +252,7 @@ +@@ -220,6 +255,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -43877,7 +44412,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di mostlyclean-libtool: -rm -f *.lo -@@ -251,7 +284,7 @@ +@@ -251,7 +287,7 @@ else \ local_target="$$target"; \ fi; \ @@ -43886,7 +44421,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ -@@ -285,16 +318,16 @@ +@@ -285,16 +321,16 @@ else \ local_target="$$target"; \ fi; \ @@ -43906,7 +44441,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -302,14 +335,14 @@ +@@ -302,14 +338,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -43923,7 +44458,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ -@@ -321,7 +354,7 @@ +@@ -321,7 +357,7 @@ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ @@ -43932,7 +44467,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -330,29 +363,34 @@ +@@ -330,29 +366,34 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -43975,7 +44510,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -373,29 +411,44 @@ +@@ -373,29 +414,44 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -44030,7 +44565,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di distdir) \ || exit 1; \ fi; \ -@@ -425,6 +478,7 @@ +@@ -425,6 +481,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -44038,7 +44573,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -443,6 +497,8 @@ +@@ -443,6 +500,8 @@ html: html-recursive @@ -44047,7 +44582,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di info: info-recursive info-am: -@@ -451,18 +507,28 @@ +@@ -451,18 +510,28 @@ install-dvi: install-dvi-recursive @@ -44076,7 +44611,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di installcheck-am: maintainer-clean: maintainer-clean-recursive -@@ -483,8 +549,8 @@ +@@ -483,8 +552,8 @@ uninstall-am: @@ -44087,7 +44622,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ -@@ -500,6 +566,7 @@ +@@ -500,6 +569,7 @@ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am @@ -44095,9 +44630,9 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.di # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/vld/Makefile.in +diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/vld/Makefile.in --- libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-10-10 23:10:15.049782891 +0200 ++++ libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-10-12 02:44:01.349657157 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -44129,7 +44664,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -55,24 +58,19 @@ +@@ -55,38 +58,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -44155,8 +44690,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -81,12 +79,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -44170,9 +44708,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -95,12 +93,17 @@ +@@ -94,13 +94,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -44188,7 +44728,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -126,8 +129,7 @@ +@@ -126,8 +132,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -44198,7 +44738,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -160,6 +162,7 @@ +@@ -160,6 +165,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -44206,7 +44746,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -173,6 +176,7 @@ +@@ -173,6 +179,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -44214,7 +44754,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INTEL_G4I = addidct.g4i \ -@@ -261,14 +265,14 @@ +@@ -261,14 +268,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -44234,7 +44774,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -286,6 +290,7 @@ +@@ -286,6 +293,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -44242,7 +44782,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. mostlyclean-libtool: -rm -f *.lo -@@ -315,13 +320,17 @@ +@@ -315,13 +323,17 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -44264,7 +44804,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. || exit 1; \ fi; \ done -@@ -351,6 +360,7 @@ +@@ -351,6 +363,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -44272,7 +44812,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -371,6 +381,8 @@ +@@ -371,6 +384,8 @@ html: html-am @@ -44281,7 +44821,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. info: info-am info-am: -@@ -379,18 +391,28 @@ +@@ -379,18 +394,28 @@ install-dvi: install-dvi-am @@ -44310,7 +44850,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. installcheck-am: maintainer-clean: maintainer-clean-am -@@ -411,7 +433,7 @@ +@@ -411,7 +436,7 @@ uninstall-am: @@ -44319,7 +44859,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-local distclean distclean-generic distclean-libtool \ -@@ -433,6 +455,7 @@ +@@ -433,6 +458,7 @@ @HAVE_GEN4ASM_TRUE@clean-local: @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B) @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B_GEN5) @@ -44327,9 +44867,9 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31. # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.diff/i965_drv_video/shaders/render/Makefile.in +diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/render/Makefile.in --- libva-0.31.0/i965_drv_video/shaders/render/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/i965_drv_video/shaders/render/Makefile.in 2009-10-10 23:10:15.120782608 +0200 ++++ libva-0.31.0.patch/i965_drv_video/shaders/render/Makefile.in 2009-10-12 02:44:01.408657052 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -44361,7 +44901,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -55,24 +58,19 @@ +@@ -55,38 +58,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -44387,8 +44927,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -81,12 +79,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -44402,9 +44945,11 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -95,12 +93,17 @@ +@@ -94,13 +94,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -44420,7 +44965,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -126,8 +129,7 @@ +@@ -126,8 +132,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -44430,7 +44975,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -160,6 +162,7 @@ +@@ -160,6 +165,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -44438,7 +44983,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -173,6 +176,7 @@ +@@ -173,6 +179,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -44446,7 +44991,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INTEL_G4I = \ -@@ -222,14 +226,14 @@ +@@ -222,14 +229,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -44466,7 +45011,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -247,6 +251,7 @@ +@@ -247,6 +254,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -44474,7 +45019,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d mostlyclean-libtool: -rm -f *.lo -@@ -276,13 +281,17 @@ +@@ -276,13 +284,17 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -44496,7 +45041,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d || exit 1; \ fi; \ done -@@ -312,6 +321,7 @@ +@@ -312,6 +324,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -44504,7 +45049,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -332,6 +342,8 @@ +@@ -332,6 +345,8 @@ html: html-am @@ -44513,7 +45058,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d info: info-am info-am: -@@ -340,18 +352,28 @@ +@@ -340,18 +355,28 @@ install-dvi: install-dvi-am @@ -44542,7 +45087,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d installcheck-am: maintainer-clean: maintainer-clean-am -@@ -372,7 +394,7 @@ +@@ -372,7 +397,7 @@ uninstall-am: @@ -44551,7 +45096,7 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-local distclean distclean-generic distclean-libtool \ -@@ -394,6 +416,7 @@ +@@ -394,6 +419,7 @@ @HAVE_GEN4ASM_TRUE@clean-local: @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B) @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B_GEN5) @@ -44559,9 +45104,22247 @@ diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.d # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in +diff -Naur libva-0.31.0/libva-glx.pc.in libva-0.31.0.patch/libva-glx.pc.in +--- libva-0.31.0/libva-glx.pc.in 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/libva-glx.pc.in 2009-10-12 02:43:29.508781939 +0200 +@@ -0,0 +1,12 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++display=glx ++ ++Name: libva-${display} ++Description: Userspace Video Acceleration (VA) ${display} interface ++Requires: libva ++Version: @PACKAGE_VERSION@ ++Libs: -L${libdir} -lva-${display} ++Cflags: -I${includedir} +diff -Naur libva-0.31.0/libva-x11.pc.in libva-0.31.0.patch/libva-x11.pc.in +--- libva-0.31.0/libva-x11.pc.in 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/libva-x11.pc.in 2009-10-12 02:43:29.508781939 +0200 +@@ -6,6 +6,7 @@ + + Name: libva-${display} + Description: Userspace Video Acceleration (VA) ${display} interface ++Requires: libva + Version: @PACKAGE_VERSION@ + Libs: -L${libdir} -lva-${display} + Cflags: -I${includedir} +diff -Naur libva-0.31.0/ltmain.sh libva-0.31.0.patch/ltmain.sh +--- libva-0.31.0/ltmain.sh 2009-06-25 17:34:55.000000000 +0200 ++++ libva-0.31.0.patch/ltmain.sh 2009-07-30 18:46:57.000000000 +0200 +@@ -1,52 +1,83 @@ +-# 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, 2003, 2004, 2005, 2006, +-# 2007, 2008 Free Software Foundation, Inc. +-# Originally by Gordon Matzigkeit , 1996 +-# +-# This program is free software; you can redistribute it and/or modify ++# Generated from ltmain.m4sh. ++ ++# ltmain.sh (GNU libtool) 2.2.6 ++# Written by Gordon Matzigkeit , 1996 ++ ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. ++# This is free software; see the source for copying conditions. There is NO ++# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++# GNU Libtool 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 ++# As a special exception to the GNU General Public License, ++# if you distribute this file as part of a program or library that ++# is built using GNU Libtool, you may include this file under the ++# same distribution terms that you use for the rest of that program. ++# ++# GNU Libtool 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. +- +-basename="s,^.*/,,g" +- +-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +-# is ksh but when the shell is invoked as "sh" and the current value of +-# the _XPG environment variable is not equal to 1 (one), the special +-# positional parameter $0, within a function call, is the name of the +-# function. +-progpath="$0" +- +-# The name of this program: +-progname=`echo "$progpath" | $SED $basename` +-modename="$progname" ++# along with GNU Libtool; see the file COPYING. If not, a copy ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, ++# or obtained by writing to the Free Software Foundation, Inc., ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +-# Global variables: +-EXIT_SUCCESS=0 +-EXIT_FAILURE=1 ++# Usage: $progname [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 ++# --mode=MODE use operation mode MODE ++# --preserve-dup-deps don't remove duplicate dependency libraries ++# --quiet, --silent don't print informational messages ++# --tag=TAG use configuration variables from tag TAG ++# -v, --verbose print informational messages (default) ++# --version print version information ++# -h, --help print short or long help message ++# ++# 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 `$progname --help --mode=MODE' for a more detailed description of MODE. ++# ++# When reporting a bug, please describe a test case to reproduce it and ++# include the following information: ++# ++# host-triplet: $host ++# shell: $SHELL ++# compiler: $LTCC ++# compiler flags: $LTCFLAGS ++# linker: $LD (gnu? $with_gnu_ld) ++# $progname: (GNU libtool) 2.2.6 ++# automake: $automake_version ++# autoconf: $autoconf_version ++# ++# Report bugs to . + + PROGRAM=ltmain.sh + PACKAGE=libtool +-VERSION="1.5.26 Debian 1.5.26-1ubuntu1" +-TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" ++VERSION=2.2.6 ++TIMESTAMP="" ++package_revision=1.3012 + +-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). ++# Be Bourne compatible + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: +@@ -60,104 +91,261 @@ + BIN_SH=xpg4; export BIN_SH # for Tru64 + DUALCASE=1; export DUALCASE # for MKS sh + +-# 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 "$progpath" --no-reexec ${1+"$@"} +-fi +- +-if test "X$1" = X--fallback-echo; then +- # used as fallback echo +- shift +- cat <&2 +- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 +- exit $EXIT_FAILURE +-fi ++dirname="s,/[^/]*$,," ++basename="s,^.*/,," + +-# Global variables. +-mode=$default_mode +-nonopt= +-prev= +-prevopt= +-run= +-show="$echo" +-show_help= +-execute_dlfiles= +-duplicate_deps=no +-preserve_args= +-lo2o="s/\\.lo\$/.${objext}/" +-o2lo="s/\\.${objext}\$/.lo/" +-extracted_archives= +-extracted_serial=0 ++# func_dirname_and_basename file append nondir_replacement ++# perform func_basename and func_dirname in a single function ++# call: ++# dirname: Compute the dirname of FILE. If nonempty, ++# add APPEND to the result, otherwise set result ++# to NONDIR_REPLACEMENT. ++# value returned in "$func_dirname_result" ++# basename: Compute filename of FILE. ++# value retuned in "$func_basename_result" ++# Implementation must be kept synchronized with func_dirname ++# and func_basename. For efficiency, we do not delegate to ++# those functions but instead duplicate the functionality here. ++func_dirname_and_basename () ++{ ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ++} ++ ++# Generated shell functions inserted here. ++ ++# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh ++# is ksh but when the shell is invoked as "sh" and the current value of ++# the _XPG environment variable is not equal to 1 (one), the special ++# positional parameter $0, within a function call, is the name of the ++# function. ++progpath="$0" ++ ++# The name of this program: ++# In the unlikely event $progname began with a '-', it would play havoc with ++# func_echo (imagine progname=-n), so we prepend ./ in that case: ++func_dirname_and_basename "$progpath" ++progname=$func_basename_result ++case $progname in ++ -*) progname=./$progname ;; ++esac ++ ++# Make sure we have an absolute path for reexecution: ++case $progpath in ++ [\\/]*|[A-Za-z]:\\*) ;; ++ *[\\/]*) ++ progdir=$func_dirname_result ++ progdir=`cd "$progdir" && pwd` ++ progpath="$progdir/$progname" ++ ;; ++ *) ++ save_IFS="$IFS" ++ IFS=: ++ for progdir in $PATH; do ++ IFS="$save_IFS" ++ test -x "$progdir/$progname" && break ++ done ++ IFS="$save_IFS" ++ test -n "$progdir" || progdir=`pwd` ++ progpath="$progdir/$progname" ++ ;; ++esac ++ ++# 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' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\(["`\\]\)/\\\1/g' ++ ++# Re-`\' parameter expansions in output of double_quote_subst that were ++# `\'-ed in input to the same. If an odd number of `\' preceded a '$' ++# in input to double_quote_subst, that '$' was protected from expansion. ++# Since each input `\' is now two `\'s, look for any number of runs of ++# four `\'s followed by two `\'s and then a '$'. `\' that '$'. ++bs='\\' ++bs2='\\\\' ++bs4='\\\\\\\\' ++dollar='\$' ++sed_double_backslash="\ ++ s/$bs4/&\\ ++/g ++ s/^$bs2$dollar/$bs&/ ++ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g ++ s/\n//g" ++ ++# Standard options: ++opt_dry_run=false ++opt_help=false ++opt_quiet=false ++opt_verbose=false ++opt_warning=: ++ ++# func_echo arg... ++# Echo program name prefixed message, along with the current mode ++# name if it has been set yet. ++func_echo () ++{ ++ $ECHO "$progname${mode+: }$mode: $*" ++} ++ ++# func_verbose arg... ++# Echo program name prefixed message in verbose mode only. ++func_verbose () ++{ ++ $opt_verbose && func_echo ${1+"$@"} ++ ++ # A bug in bash halts the script if the last line of a function ++ # fails when set -e is in force, so we need another command to ++ # work around that: ++ : ++} ++ ++# func_error arg... ++# Echo program name prefixed message to standard error. ++func_error () ++{ ++ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 ++} ++ ++# func_warning arg... ++# Echo program name prefixed warning message to standard error. ++func_warning () ++{ ++ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 ++ ++ # bash bug again: ++ : ++} ++ ++# func_fatal_error arg... ++# Echo program name prefixed message to standard error, and exit. ++func_fatal_error () ++{ ++ func_error ${1+"$@"} ++ exit $EXIT_FAILURE ++} ++ ++# func_fatal_help arg... ++# Echo program name prefixed message to standard error, followed by ++# a help hint, and exit. ++func_fatal_help () ++{ ++ func_error ${1+"$@"} ++ func_fatal_error "$help" ++} ++help="Try \`$progname --help' for more information." ## default ++ ++ ++# func_grep expression filename ++# Check whether EXPRESSION matches any line of FILENAME, without output. ++func_grep () ++{ ++ $GREP "$1" "$2" >/dev/null 2>&1 ++} ++ ++ ++# func_mkdir_p directory-path ++# Make sure the entire path to DIRECTORY-PATH is available. ++func_mkdir_p () ++{ ++ my_directory_path="$1" ++ my_dir_list= ++ ++ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then ++ ++ # Protect directory names starting with `-' ++ case $my_directory_path in ++ -*) my_directory_path="./$my_directory_path" ;; ++ esac ++ ++ # While some portion of DIR does not yet exist... ++ while test ! -d "$my_directory_path"; do ++ # ...make a list in topmost first order. Use a colon delimited ++ # list incase some portion of path contains whitespace. ++ my_dir_list="$my_directory_path:$my_dir_list" ++ ++ # If the last portion added has no slash in it, the list is done ++ case $my_directory_path in */*) ;; *) break ;; esac ++ ++ # ...otherwise throw away the child directory and loop ++ my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` ++ done ++ my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` ++ ++ save_mkdir_p_IFS="$IFS"; IFS=':' ++ for my_dir in $my_dir_list; do ++ IFS="$save_mkdir_p_IFS" ++ # mkdir can fail with a `File exist' error if two processes ++ # try to create one of the directories concurrently. Don't ++ # stop in that case! ++ $MKDIR "$my_dir" 2>/dev/null || : ++ done ++ IFS="$save_mkdir_p_IFS" ++ ++ # Bail out if we (or some other process) failed to create a directory. ++ test -d "$my_directory_path" || \ ++ func_fatal_error "Failed to create \`$1'" ++ fi ++} + +-##################################### +-# Shell function definitions: +-# This seems to be the best place for them + + # func_mktempdir [string] + # Make a temporary directory that won't clash with other running +@@ -167,7 +355,7 @@ + { + my_template="${TMPDIR-/tmp}/${1-$progname}" + +- if test "$run" = ":"; then ++ if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else +@@ -176,526 +364,787 @@ + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then +- # Failing that, at least try and use $RANDOM to avoid a race +- my_tmpdir="${my_template}-${RANDOM-0}$$" ++ # Failing that, at least try and use $RANDOM to avoid a race ++ my_tmpdir="${my_template}-${RANDOM-0}$$" + +- save_mktempdir_umask=`umask` +- umask 0077 +- $mkdir "$my_tmpdir" +- umask $save_mktempdir_umask ++ save_mktempdir_umask=`umask` ++ umask 0077 ++ $MKDIR "$my_tmpdir" ++ umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure +- test -d "$my_tmpdir" || { +- $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 +- exit $EXIT_FAILURE +- } ++ test -d "$my_tmpdir" || \ ++ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + +- $echo "X$my_tmpdir" | $Xsed ++ $ECHO "X$my_tmpdir" | $Xsed + } + + +-# func_win32_libid arg +-# return the library type of file 'arg' +-# +-# Need a lot of goo to handle *both* DLLs and import libs +-# Has to be a shell function in order to 'eat' the argument +-# that is supplied when $file_magic_command is called. +-func_win32_libid () ++# func_quote_for_eval arg ++# Aesthetically quote ARG to be evaled later. ++# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT ++# is double-quoted, suitable for a subsequent eval, whereas ++# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters ++# which are still active within double quotes backslashified. ++func_quote_for_eval () + { +- win32_libid_type="unknown" +- win32_fileres=`file -L $1 2>/dev/null` +- case $win32_fileres in +- *ar\ archive\ import\ library*) # definitely import +- win32_libid_type="x86 archive import" +- ;; +- *ar\ archive*) # could be an import, or static +- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ +- $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then +- win32_nmres=`eval $NM -f posix -A $1 | \ +- $SED -n -e '1,100{ +- / I /{ +- s,.*,import, +- p +- q +- } +- }'` +- case $win32_nmres in +- import*) win32_libid_type="x86 archive import";; +- *) win32_libid_type="x86 archive static";; +- esac +- fi +- ;; +- *DLL*) +- win32_libid_type="x86 DLL" +- ;; +- *executable*) # but shell scripts are "executable" too... +- case $win32_fileres in +- *MS\ Windows\ PE\ Intel*) +- win32_libid_type="x86 DLL" +- ;; ++ case $1 in ++ *[\\\`\"\$]*) ++ func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; ++ *) ++ func_quote_for_eval_unquoted_result="$1" ;; ++ esac ++ ++ case $func_quote_for_eval_unquoted_result in ++ # Double-quote args containing shell metacharacters to delay ++ # word splitting, command substitution and and variable ++ # expansion for a subsequent eval. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ++ ;; ++ *) ++ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +- ;; +- esac +- $echo $win32_libid_type + } + + +-# func_infer_tag arg +-# Infer tagged configuration to use if any are available and +-# if one wasn't chosen via the "--tag" command line option. +-# Only attempt this if the compiler in the base compile +-# command doesn't match the default compiler. +-# arg is usually of the form 'gcc ...' +-func_infer_tag () ++# func_quote_for_expand arg ++# Aesthetically quote ARG to be evaled later; same as above, ++# but do not quote variable references. ++func_quote_for_expand () + { +- if test -n "$available_tags" && test -z "$tagname"; then +- CC_quoted= +- for arg in $CC; do +- case $arg in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") +- arg="\"$arg\"" +- ;; +- esac +- CC_quoted="$CC_quoted $arg" +- done +- case $@ in +- # Blanks in the command may have been stripped by the calling shell, +- # but not from the CC environment variable when configure was run. +- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; +- # Blanks at the start of $base_compile will cause this to fail +- # if we don't check for them as well. ++ case $1 in ++ *[\\\`\"]*) ++ my_arg=`$ECHO "X$1" | $Xsed \ ++ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) +- for z in $available_tags; do +- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then +- # Evaluate the configuration. +- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" +- CC_quoted= +- for arg in $CC; do +- # Double-quote args containing other shell metacharacters. +- case $arg in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") +- arg="\"$arg\"" +- ;; +- esac +- CC_quoted="$CC_quoted $arg" +- done +- case "$@ " in +- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) +- # The compiler in the base compile command matches +- # the one in the tagged configuration. +- # Assume this is the tagged configuration we want. +- tagname=$z +- break +- ;; +- esac +- fi +- done +- # If $tagname still isn't set, then no tagged configuration +- # was found and let the user know that the "--tag" command +- # line option must be used. +- if test -z "$tagname"; then +- $echo "$modename: unable to infer tagged configuration" +- $echo "$modename: specify a tag with \`--tag'" 1>&2 +- exit $EXIT_FAILURE +-# else +-# $echo "$modename: using $tagname tagged configuration" +- fi +- ;; +- esac +- fi ++ my_arg="$1" ;; ++ esac ++ ++ case $my_arg in ++ # Double-quote args containing shell metacharacters to delay ++ # word splitting and command substitution for a subsequent eval. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ my_arg="\"$my_arg\"" ++ ;; ++ esac ++ ++ func_quote_for_expand_result="$my_arg" + } + + +-# func_extract_an_archive dir oldlib +-func_extract_an_archive () ++# func_show_eval cmd [fail_exp] ++# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is ++# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP ++# is given, then evaluate it. ++func_show_eval () + { +- f_ex_an_ar_dir="$1"; shift +- f_ex_an_ar_oldlib="$1" ++ my_cmd="$1" ++ my_fail_exp="${2-:}" + +- $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" +- $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? +- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then +- : +- else +- $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 +- exit $EXIT_FAILURE ++ ${opt_silent-false} || { ++ func_quote_for_expand "$my_cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ ++ if ${opt_dry_run-false}; then :; else ++ eval "$my_cmd" ++ my_status=$? ++ if test "$my_status" -eq 0; then :; else ++ eval "(exit $my_status); $my_fail_exp" ++ fi + fi + } + +-# func_extract_archives gentop oldlib ... +-func_extract_archives () ++ ++# func_show_eval_locale cmd [fail_exp] ++# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is ++# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP ++# is given, then evaluate it. Use the saved locale for evaluation. ++func_show_eval_locale () + { +- my_gentop="$1"; shift +- my_oldlibs=${1+"$@"} +- my_oldobjs="" +- my_xlib="" +- my_xabs="" +- my_xdir="" +- my_status="" ++ my_cmd="$1" ++ my_fail_exp="${2-:}" ++ ++ ${opt_silent-false} || { ++ func_quote_for_expand "$my_cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } + +- $show "${rm}r $my_gentop" +- $run ${rm}r "$my_gentop" +- $show "$mkdir $my_gentop" +- $run $mkdir "$my_gentop" +- my_status=$? +- if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then +- exit $my_status ++ if ${opt_dry_run-false}; then :; else ++ eval "$lt_user_locale ++ $my_cmd" ++ my_status=$? ++ eval "$lt_safe_locale" ++ if test "$my_status" -eq 0; then :; else ++ eval "(exit $my_status); $my_fail_exp" ++ fi + fi ++} + +- for my_xlib in $my_oldlibs; do +- # Extract the objects. +- case $my_xlib in +- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; +- *) my_xabs=`pwd`"/$my_xlib" ;; +- esac +- my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` +- my_xlib_u=$my_xlib +- while :; do +- case " $extracted_archives " in +- *" $my_xlib_u "*) +- extracted_serial=`expr $extracted_serial + 1` +- my_xlib_u=lt$extracted_serial-$my_xlib ;; +- *) break ;; +- esac +- done +- extracted_archives="$extracted_archives $my_xlib_u" +- my_xdir="$my_gentop/$my_xlib_u" + +- $show "${rm}r $my_xdir" +- $run ${rm}r "$my_xdir" +- $show "$mkdir $my_xdir" +- $run $mkdir "$my_xdir" +- exit_status=$? +- if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then +- exit $exit_status +- fi +- case $host in +- *-darwin*) +- $show "Extracting $my_xabs" +- # Do not bother doing anything if just a dry run +- if test -z "$run"; then +- darwin_orig_dir=`pwd` +- cd $my_xdir || exit $? +- darwin_archive=$my_xabs +- darwin_curdir=`pwd` +- darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` +- darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` +- if test -n "$darwin_arches"; then +- darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` +- darwin_arch= +- $show "$darwin_base_archive has multiple architectures $darwin_arches" +- for darwin_arch in $darwin_arches ; do +- mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" +- lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" +- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" +- func_extract_an_archive "`pwd`" "${darwin_base_archive}" +- cd "$darwin_curdir" +- $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" +- done # $darwin_arches +- ## Okay now we have a bunch of thin objects, gotta fatten them up :) +- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` +- darwin_file= +- darwin_files= +- for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` +- lipo -create -output "$darwin_file" $darwin_files +- done # $darwin_filelist +- ${rm}r unfat-$$ +- cd "$darwin_orig_dir" +- else +- cd "$darwin_orig_dir" +- func_extract_an_archive "$my_xdir" "$my_xabs" +- fi # $darwin_arches +- fi # $run +- ;; +- *) +- func_extract_an_archive "$my_xdir" "$my_xabs" +- ;; +- esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` +- done +- func_extract_archives_result="$my_oldobjs" ++ ++ ++ ++# func_version ++# Echo version message to standard output and exit. ++func_version () ++{ ++ $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { ++ s/^# // ++ s/^# *$// ++ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ ++ p ++ }' < "$progpath" ++ exit $? ++} ++ ++# func_usage ++# Echo short help message to standard output and exit. ++func_usage () ++{ ++ $SED -n '/^# Usage:/,/# -h/ { ++ s/^# // ++ s/^# *$// ++ s/\$progname/'$progname'/ ++ p ++ }' < "$progpath" ++ $ECHO ++ $ECHO "run \`$progname --help | more' for full usage" ++ exit $? ++} ++ ++# func_help ++# Echo long help message to standard output and exit. ++func_help () ++{ ++ $SED -n '/^# Usage:/,/# Report bugs to/ { ++ s/^# // ++ s/^# *$// ++ s*\$progname*'$progname'* ++ s*\$host*'"$host"'* ++ s*\$SHELL*'"$SHELL"'* ++ s*\$LTCC*'"$LTCC"'* ++ s*\$LTCFLAGS*'"$LTCFLAGS"'* ++ s*\$LD*'"$LD"'* ++ s/\$with_gnu_ld/'"$with_gnu_ld"'/ ++ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ ++ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ ++ p ++ }' < "$progpath" ++ exit $? ++} ++ ++# func_missing_arg argname ++# Echo program name prefixed message to standard error and set global ++# exit_cmd. ++func_missing_arg () ++{ ++ func_error "missing argument for $1" ++ exit_cmd=exit + } +-# End of Shell function definitions +-##################################### + +-# Darwin sucks +-eval std_shrext=\"$shrext_cmds\" ++exit_cmd=: + +-disable_libs=no + +-# Parse our command line options once, thoroughly. +-while test "$#" -gt 0 +-do +- arg="$1" ++ ++ ++ ++# 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 "$progpath" --no-reexec ${1+"$@"} ++fi + +- case $arg in +- -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; +- *) optarg= ;; +- esac ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <&2 +- exit $EXIT_FAILURE +- ;; +- esac ++magic="%%%MAGIC variable%%%" ++magic_exe="%%%MAGIC EXE variable%%%" + +- case $tagname in +- CC) +- # Don't test for the "default" C tag, as we know, it's there, but +- # not specially marked. +- ;; +- *) +- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then +- taglist="$taglist $tagname" +- # Evaluate the configuration. +- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" +- else +- $echo "$progname: ignoring unknown tag $tagname" 1>&2 +- fi +- ;; +- esac +- ;; +- *) +- eval "$prev=\$arg" +- ;; +- esac ++# Global variables. ++# $mode is unset ++nonopt= ++execute_dlfiles= ++preserve_args= ++lo2o="s/\\.lo\$/.${objext}/" ++o2lo="s/\\.${objext}\$/.lo/" ++extracted_archives= ++extracted_serial=0 + +- prev= +- prevopt= +- continue +- fi ++opt_dry_run=false ++opt_duplicate_deps=false ++opt_silent=false ++opt_debug=: + +- # Have we seen a non-optional argument yet? +- case $arg in +- --help) +- show_help=yes +- ;; ++# 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= + +- --version) +- echo "\ +-$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP +- +-Copyright (C) 2008 Free Software Foundation, Inc. +-This is free software; see the source for copying conditions. There is NO +-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +- exit $? +- ;; ++# func_fatal_configuration arg... ++# Echo program name prefixed message to standard error, followed by ++# a configuration failure hint, and exit. ++func_fatal_configuration () ++{ ++ func_error ${1+"$@"} ++ func_error "See the $PACKAGE documentation for more information." ++ func_fatal_error "Fatal configuration error." ++} ++ ++ ++# func_config ++# Display the configuration for all the tags in this script. ++func_config () ++{ ++ re_begincf='^# ### BEGIN LIBTOOL' ++ re_endcf='^# ### END LIBTOOL' ++ ++ # Default configuration. ++ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + +- --config) +- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do +- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" ++ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done +- exit $? +- ;; +- +- --debug) +- $echo "$progname: enabling shell trace mode" +- set -x +- preserve_args="$preserve_args $arg" +- ;; + +- --dry-run | -n) +- run=: +- ;; ++ exit $? ++} + +- --features) +- $echo "host: $host" ++# func_features ++# Display the features supported by this script. ++func_features () ++{ ++ $ECHO "host: $host" + if test "$build_libtool_libs" = yes; then +- $echo "enable shared libraries" ++ $ECHO "enable shared libraries" + else +- $echo "disable shared libraries" ++ $ECHO "disable shared libraries" + fi + if test "$build_old_libs" = yes; then +- $echo "enable static libraries" ++ $ECHO "enable static libraries" + else +- $echo "disable static libraries" ++ $ECHO "disable static libraries" + fi ++ + exit $? +- ;; ++} + +- --finish) mode="finish" ;; ++# func_enable_tag tagname ++# Verify that TAGNAME is valid, and either flag an error and exit, or ++# enable the TAGNAME tag. We also add TAGNAME to the global $taglist ++# variable here. ++func_enable_tag () ++{ ++ # Global variable: ++ tagname="$1" ++ ++ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" ++ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" ++ sed_extractcf="/$re_begincf/,/$re_endcf/p" ++ ++ # Validate tagname. ++ case $tagname in ++ *[!-_A-Za-z0-9,/]*) ++ func_fatal_error "invalid tag name: $tagname" ++ ;; ++ esac + +- --mode) prevopt="--mode" prev=mode ;; +- --mode=*) mode="$optarg" ;; ++ # Don't test for the "default" C tag, as we know it's ++ # there but not specially marked. ++ case $tagname in ++ CC) ;; ++ *) ++ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then ++ taglist="$taglist $tagname" + +- --preserve-dup-deps) duplicate_deps="yes" ;; ++ # Evaluate the configuration. Be careful to quote the path ++ # and the sed script, to avoid splitting on whitespace, but ++ # also don't use non-portable quotes within backquotes within ++ # quotes we have to do it in 2 steps: ++ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` ++ eval "$extractedcf" ++ else ++ func_error "ignoring unknown tag $tagname" ++ fi ++ ;; ++ esac ++} + +- --quiet | --silent) +- show=: +- preserve_args="$preserve_args $arg" +- ;; ++# Parse options once, thoroughly. This comes as soon as possible in ++# the script to make things like `libtool --version' happen quickly. ++{ + +- --tag) +- prevopt="--tag" +- prev=tag +- preserve_args="$preserve_args --tag" ++ # Shorthand for --mode=foo, only valid as the first argument ++ case $1 in ++ clean|clea|cle|cl) ++ shift; set dummy --mode clean ${1+"$@"}; shift + ;; +- --tag=*) +- set tag "$optarg" ${1+"$@"} +- shift +- prev=tag +- preserve_args="$preserve_args --tag" ++ compile|compil|compi|comp|com|co|c) ++ shift; set dummy --mode compile ${1+"$@"}; shift + ;; +- +- -dlopen) +- prevopt="-dlopen" +- prev=execute_dlfiles ++ execute|execut|execu|exec|exe|ex|e) ++ shift; set dummy --mode execute ${1+"$@"}; shift + ;; +- +- -*) +- $echo "$modename: unrecognized option \`$arg'" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE ++ finish|finis|fini|fin|fi|f) ++ shift; set dummy --mode finish ${1+"$@"}; shift + ;; +- +- *) +- nonopt="$arg" +- break ++ install|instal|insta|inst|ins|in|i) ++ shift; set dummy --mode install ${1+"$@"}; shift ++ ;; ++ link|lin|li|l) ++ shift; set dummy --mode link ${1+"$@"}; shift ++ ;; ++ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) ++ shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac +-done + +-if test -n "$prevopt"; then +- $echo "$modename: option \`$prevopt' requires an argument" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE +-fi ++ # Parse non-mode specific arguments: ++ while test "$#" -gt 0; do ++ opt="$1" ++ shift + +-case $disable_libs in +-no) +- ;; +-shared) +- build_libtool_libs=no +- build_old_libs=yes +- ;; +-static) +- build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +- ;; +-esac ++ case $opt in ++ --config) func_config ;; + +-# 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= ++ --debug) preserve_args="$preserve_args $opt" ++ func_echo "enabling shell trace mode" ++ opt_debug='set -x' ++ $opt_debug ++ ;; + +-if test -z "$show_help"; then ++ -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ execute_dlfiles="$execute_dlfiles $1" ++ shift ++ ;; + +- # Infer the operation mode. +- if test -z "$mode"; then +- $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 +- $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 +- case $nonopt in +- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) +- 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 ++ --dry-run | -n) opt_dry_run=: ;; ++ --features) func_features ;; ++ --finish) mode="finish" ;; ++ ++ --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ case $1 in ++ # Valid mode arguments: ++ clean) ;; ++ compile) ;; ++ execute) ;; ++ finish) ;; ++ install) ;; ++ link) ;; ++ relink) ;; ++ uninstall) ;; ++ ++ # Catch anything else as an error ++ *) func_error "invalid argument for $opt" ++ exit_cmd=exit ++ break ++ ;; ++ esac ++ ++ mode="$1" ++ shift ++ ;; ++ ++ --preserve-dup-deps) ++ opt_duplicate_deps=: ;; ++ ++ --quiet|--silent) preserve_args="$preserve_args $opt" ++ opt_silent=: ++ ;; ++ ++ --verbose| -v) preserve_args="$preserve_args $opt" ++ opt_silent=false ++ ;; ++ ++ --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ preserve_args="$preserve_args $opt $1" ++ func_enable_tag "$1" # tagname is set here ++ shift ++ ;; ++ ++ # Separate optargs to long options: ++ -dlopen=*|--mode=*|--tag=*) ++ func_opt_split "$opt" ++ set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} ++ shift ++ ;; ++ ++ -\?|-h) func_usage ;; ++ --help) opt_help=: ;; ++ --version) func_version ;; ++ ++ -*) func_fatal_help "unrecognized option \`$opt'" ;; ++ ++ *) nonopt="$opt" ++ break ++ ;; ++ esac ++ done ++ ++ ++ case $host in ++ *cygwin* | *mingw* | *pw32* | *cegcc*) ++ # don't eliminate duplications in $postdeps and $predeps ++ opt_duplicate_compiler_generated_deps=: + ;; + *) +- # If we have no mode, but dlfiles were specified, then do execute mode. +- test -n "$execute_dlfiles" && mode=execute ++ opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ++ ;; ++ esac + +- # 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 ++ # Having warned about all mis-specified options, bail out if ++ # anything was wrong. ++ $exit_cmd $EXIT_FAILURE ++} ++ ++# func_check_version_match ++# Ensure that we are using m4 macros, and libtool script from the same ++# release of libtool. ++func_check_version_match () ++{ ++ if test "$package_revision" != "$macro_revision"; then ++ if test "$VERSION" != "$macro_version"; then ++ if test -z "$macro_version"; then ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from an older release. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF + fi +- ;; +- esac ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, ++$progname: but the definition of this LT_INIT comes from revision $macro_revision. ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision ++$progname: of $PACKAGE $VERSION and run autoconf again. ++_LT_EOF ++ fi ++ ++ exit $EXIT_MISMATCH ++ fi ++} ++ ++ ++## ----------- ## ++## Main. ## ++## ----------- ## ++ ++$opt_help || { ++ # Sanity checks first: ++ func_check_version_match ++ ++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ++ func_fatal_configuration "not configured to build any kind of library" + fi + ++ test -z "$mode" && func_fatal_error "error: you must specify a MODE." ++ ++ ++ # Darwin sucks ++ eval std_shrext=\"$shrext_cmds\" ++ ++ + # 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 ++ func_error "unrecognized option \`-dlopen'" ++ $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" +- help="Try \`$modename --help --mode=$mode' for more information." ++ help="Try \`$progname --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= +- srcfile="$nonopt" # always keep a non-empty value in "srcfile" +- suppress_opt=yes +- suppress_output= +- arg_mode=normal +- libobj= +- later= + +- for arg +- do +- case $arg_mode in +- arg ) +- # do not "continue". Instead, add this to base_compile +- lastarg="$arg" +- arg_mode=normal +- ;; ++# func_lalib_p file ++# True iff FILE is a libtool `.la' library or `.lo' object file. ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_lalib_p () ++{ ++ test -f "$1" && ++ $SED -e 4q "$1" 2>/dev/null \ ++ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 ++} + +- target ) +- libobj="$arg" +- arg_mode=normal +- continue +- ;; ++# func_lalib_unsafe_p file ++# True iff FILE is a libtool `.la' library or `.lo' object file. ++# This function implements the same check as func_lalib_p without ++# resorting to external programs. To this end, it redirects stdin and ++# closes it afterwards, without saving the original file descriptor. ++# As a safety measure, use it only where a negative result would be ++# fatal anyway. Works if `file' does not exist. ++func_lalib_unsafe_p () ++{ ++ lalib_p=no ++ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then ++ for lalib_p_l in 1 2 3 4 ++ do ++ read lalib_p_line ++ case "$lalib_p_line" in ++ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; ++ esac ++ done ++ exec 0<&5 5<&- ++ fi ++ test "$lalib_p" = yes ++} + +- normal ) +- # Accept any command-line options. +- case $arg in +- -o) +- if test -n "$libobj" ; then +- $echo "$modename: you cannot specify \`-o' more than once" 1>&2 +- exit $EXIT_FAILURE +- fi +- arg_mode=target +- continue +- ;; ++# func_ltwrapper_script_p file ++# True iff FILE is a libtool wrapper script ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_script_p () ++{ ++ func_lalib_p "$1" ++} + +- -static | -prefer-pic | -prefer-non-pic) +- later="$later $arg" +- continue +- ;; ++# func_ltwrapper_executable_p file ++# True iff FILE is a libtool wrapper executable ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_executable_p () ++{ ++ func_ltwrapper_exec_suffix= ++ case $1 in ++ *.exe) ;; ++ *) func_ltwrapper_exec_suffix=.exe ;; ++ esac ++ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 ++} ++ ++# func_ltwrapper_scriptname file ++# Assumes file is an ltwrapper_executable ++# uses $file to determine the appropriate filename for a ++# temporary ltwrapper_script. ++func_ltwrapper_scriptname () ++{ ++ func_ltwrapper_scriptname_result="" ++ if func_ltwrapper_executable_p "$1"; then ++ func_dirname_and_basename "$1" "" "." ++ func_stripname '' '.exe' "$func_basename_result" ++ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" ++ fi ++} ++ ++# func_ltwrapper_p file ++# True iff FILE is a libtool wrapper script or wrapper executable ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_p () ++{ ++ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" ++} ++ ++ ++# func_execute_cmds commands fail_cmd ++# Execute tilde-delimited COMMANDS. ++# If FAIL_CMD is given, eval that upon failure. ++# FAIL_CMD may read-access the current command in variable CMD! ++func_execute_cmds () ++{ ++ $opt_debug ++ save_ifs=$IFS; IFS='~' ++ for cmd in $1; do ++ IFS=$save_ifs ++ eval cmd=\"$cmd\" ++ func_show_eval "$cmd" "${2-:}" ++ done ++ IFS=$save_ifs ++} ++ ++ ++# func_source file ++# Source FILE, adding directory component if necessary. ++# Note that it is not necessary on cygwin/mingw to append a dot to ++# FILE even if both FILE and FILE.exe exist: automatic-append-.exe ++# behavior happens only for exec(3), not for open(2)! Also, sourcing ++# `FILE.' does not work on cygwin managed mounts. ++func_source () ++{ ++ $opt_debug ++ case $1 in ++ */* | *\\*) . "$1" ;; ++ *) . "./$1" ;; ++ esac ++} ++ ++ ++# func_infer_tag arg ++# Infer tagged configuration to use if any are available and ++# if one wasn't chosen via the "--tag" command line option. ++# Only attempt this if the compiler in the base compile ++# command doesn't match the default compiler. ++# arg is usually of the form 'gcc ...' ++func_infer_tag () ++{ ++ $opt_debug ++ if test -n "$available_tags" && test -z "$tagname"; then ++ CC_quoted= ++ for arg in $CC; do ++ func_quote_for_eval "$arg" ++ CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ done ++ case $@ in ++ # Blanks in the command may have been stripped by the calling shell, ++ # but not from the CC environment variable when configure was run. ++ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; ++ # Blanks at the start of $base_compile will cause this to fail ++ # if we don't check for them as well. ++ *) ++ for z in $available_tags; do ++ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then ++ # Evaluate the configuration. ++ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" ++ CC_quoted= ++ for arg in $CC; do ++ # Double-quote args containing other shell metacharacters. ++ func_quote_for_eval "$arg" ++ CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ done ++ case "$@ " in ++ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ++ # The compiler in the base compile command matches ++ # the one in the tagged configuration. ++ # Assume this is the tagged configuration we want. ++ tagname=$z ++ break ++ ;; ++ esac ++ fi ++ done ++ # If $tagname still isn't set, then no tagged configuration ++ # was found and let the user know that the "--tag" command ++ # line option must be used. ++ if test -z "$tagname"; then ++ func_echo "unable to infer tagged configuration" ++ func_fatal_error "specify a tag with \`--tag'" ++# else ++# func_verbose "using $tagname tagged configuration" ++ fi ++ ;; ++ esac ++ fi ++} ++ ++ ++ ++# func_write_libtool_object output_name pic_name nonpic_name ++# Create a libtool object file (analogous to a ".la" file), ++# but don't create it if we're doing a dry run. ++func_write_libtool_object () ++{ ++ write_libobj=${1} ++ if test "$build_libtool_libs" = yes; then ++ write_lobj=\'${2}\' ++ else ++ write_lobj=none ++ fi ++ ++ if test "$build_old_libs" = yes; then ++ write_oldobj=\'${3}\' ++ else ++ write_oldobj=none ++ fi ++ ++ $opt_dry_run || { ++ cat >${write_libobj}T <\?\'\ \ ]*|*]*|"") +- arg="\"$arg\"" +- ;; +- esac +- lastarg="$lastarg $arg" ++ func_quote_for_eval "$arg" ++ lastarg="$lastarg $func_quote_for_eval_result" + done + IFS="$save_ifs" +- lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ++ func_stripname ' ' '' "$lastarg" ++ lastarg=$func_stripname_result + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + +- * ) ++ *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # +@@ -744,66 +1187,42 @@ + esac # case $arg_mode + + # Aesthetically quote the previous argument. +- lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` +- +- case $lastarg in +- # Double-quote args containing other shell metacharacters. +- # Many Bourne shells cannot handle close brackets correctly +- # in scan sets, and some SunOS ksh mistreat backslash-escaping +- # in scan sets (worked around with variable expansion), +- # and furthermore cannot handle '|' '&' '(' ')' in scan sets +- # at all, so we specify them separately. +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") +- lastarg="\"$lastarg\"" +- ;; +- esac +- +- base_compile="$base_compile $lastarg" ++ func_quote_for_eval "$lastarg" ++ base_compile="$base_compile $func_quote_for_eval_result" + done # for arg + + case $arg_mode in + arg) +- $echo "$modename: you must specify an argument for -Xcompile" +- exit $EXIT_FAILURE ++ func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) +- $echo "$modename: you must specify a target with \`-o'" 1>&2 +- exit $EXIT_FAILURE ++ func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. +- [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ++ test -z "$libobj" && { ++ func_basename "$srcfile" ++ libobj="$func_basename_result" ++ } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo +- xform='[cCFSifmso]' + case $libobj in +- *.ada) xform=ada ;; +- *.adb) xform=adb ;; +- *.ads) xform=ads ;; +- *.asm) xform=asm ;; +- *.c++) xform=c++ ;; +- *.cc) xform=cc ;; +- *.ii) xform=ii ;; +- *.class) xform=class ;; +- *.cpp) xform=cpp ;; +- *.cxx) xform=cxx ;; +- *.[fF][09]?) xform=[fF][09]. ;; +- *.for) xform=for ;; +- *.java) xform=java ;; +- *.obj) xform=obj ;; +- *.sx) xform=sx ;; ++ *.[cCFSifmso] | \ ++ *.ada | *.adb | *.ads | *.asm | \ ++ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ ++ *.[fF][09]? | *.for | *.java | *.obj | *.sx) ++ func_xform "$libobj" ++ libobj=$func_xform_result ++ ;; + esac + +- libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` +- + case $libobj in +- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; ++ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) +- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 +- exit $EXIT_FAILURE ++ func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + +@@ -811,7 +1230,15 @@ + + for arg in $later; do + case $arg in ++ -shared) ++ test "$build_libtool_libs" != yes && \ ++ func_fatal_configuration "can not build a shared library" ++ build_old_libs=no ++ continue ++ ;; ++ + -static) ++ build_libtool_libs=no + build_old_libs=yes + continue + ;; +@@ -828,28 +1255,17 @@ + esac + done + +- qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` +- case $qlibobj in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") +- qlibobj="\"$qlibobj\"" ;; +- esac +- test "X$libobj" != "X$qlibobj" \ +- && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ +- && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." +- objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` +- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$xdir" = "X$obj"; then +- xdir= +- else +- xdir=$xdir/ +- fi ++ func_quote_for_eval "$libobj" ++ test "X$libobj" != "X$func_quote_for_eval_result" \ ++ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ ++ && func_warning "libobj name \`$libobj' may not contain shell special characters." ++ func_dirname_and_basename "$obj" "/" "" ++ objname="$func_basename_result" ++ xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + +- if test -z "$base_compile"; then +- $echo "$modename: you must specify a compilation command" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE +- fi ++ test -z "$base_compile" && \ ++ func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then +@@ -858,12 +1274,9 @@ + removelist="$lobj $libobj ${libobj}T" + fi + +- $run $rm $removelist +- trap "$run $rm $removelist; exit $EXIT_FAILURE" 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*) ++ cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac +@@ -875,10 +1288,8 @@ + # 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} ++ 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 $EXIT_FAILURE" 1 2 15 + else + output_obj= + need_locks=no +@@ -888,13 +1299,13 @@ + # 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 "$progpath" "$lockfile" 2>/dev/null; do +- $show "Waiting for $lockfile to be removed" ++ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do ++ func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then +- $echo "\ ++ $ECHO "\ + *** ERROR, $lockfile exists and contains: + `cat $lockfile 2>/dev/null` + +@@ -905,34 +1316,22 @@ + avoid parallel builds (make -j) in this platform, or get a better + compiler." + +- $run $rm $removelist ++ $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi +- $echo "$srcfile" > "$lockfile" ++ removelist="$removelist $output_obj" ++ $ECHO "$srcfile" > "$lockfile" + fi + ++ $opt_dry_run || $RM $removelist ++ removelist="$removelist $lockfile" ++ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 ++ + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi +- qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` +- case $qsrcfile in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") +- qsrcfile="\"$qsrcfile\"" ;; +- esac +- +- $run $rm "$libobj" "${libobj}T" +- +- # Create a libtool object file (analogous to a ".la" file), +- # but don't create it if we're doing a dry run. +- test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then +- $echo "\ ++ $ECHO "\ + *** ERROR, $lockfile contains: + `cat $lockfile 2>/dev/null` + +@@ -985,45 +1371,27 @@ + avoid parallel builds (make -j) in this platform, or get a better + compiler." + +- $run $rm $removelist ++ $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then +- $show "$mv $output_obj $lobj" +- if $run $mv $output_obj $lobj; then : +- else +- error=$? +- $run $rm $removelist +- exit $error +- fi ++ func_show_eval '$MV "$output_obj" "$lobj"' \ ++ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + +- # Append the name of the PIC object to the libtool object file. +- test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then +- $echo "\ ++ $ECHO "\ + *** ERROR, $lockfile contains: + `cat $lockfile 2>/dev/null` + +@@ -1057,5485 +1420,6777 @@ + avoid parallel builds (make -j) in this platform, or get a better + compiler." + +- $run $rm $removelist ++ $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && 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 ++ func_show_eval '$MV "$output_obj" "$obj"' \ ++ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi +- +- # Append the name of the non-PIC object the libtool object file. +- # Only append if the libtool object file exists. +- test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 +- fi +- if test -n "$link_static_flag"; then +- dlopen_self=$dlopen_self_static +- fi +- prefer_static_libs=yes +- ;; +- -static) +- if test -z "$pic_flag" && test -n "$link_static_flag"; then +- dlopen_self=$dlopen_self_static +- fi +- prefer_static_libs=built +- ;; +- -static-libtool-libs) +- if test -z "$pic_flag" && test -n "$link_static_flag"; then +- dlopen_self=$dlopen_self_static +- fi +- prefer_static_libs=yes +- ;; +- esac +- build_libtool_libs=no +- build_old_libs=yes +- break +- ;; +- esac +- done ++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." ++ ;; + +- # See if our shared archives depend on static archives. +- test -n "$old_archive_from_new_cmds" && build_old_libs=yes ++ compile) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +- # 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" ++Compile a source file into a libtool library object. + +- # 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 ++This mode accepts the following additional options: + +- 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 $EXIT_FAILURE +- fi +- prev= +- continue +- ;; +- expsyms_regex) +- export_symbols_regex="$arg" +- prev= +- continue +- ;; +- inst_prefix) +- inst_prefix_dir="$arg" +- prev= +- continue +- ;; +- precious_regex) +- precious_files_regex="$arg" +- prev= +- continue +- ;; +- release) +- release="-$arg" +- prev= +- continue +- ;; +- objectlist) +- if test -f "$arg"; then +- save_arg=$arg +- moreargs= +- for fil in `cat $save_arg` +- do +-# moreargs="$moreargs $fil" +- arg=$fil +- # A libtool-controlled object. ++ -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -no-suppress do not suppress compiler output for multiple passes ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only ++ -shared do not build a \`.o' file suitable for static linking ++ -static only build a \`.o' file suitable for static linking + +- # Check to see that this really is a libtool object. +- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- pic_object= +- non_pic_object= ++COMPILE-COMMAND is a command to be used in creating a \`standard' object file ++from the given SOURCEFILE. + +- # Read the .lo file +- # If there is no directory component, then add one. +- case $arg in +- */* | *\\*) . $arg ;; +- *) . ./$arg ;; +- esac ++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'." ++ ;; + +- if test -z "$pic_object" || \ +- test -z "$non_pic_object" || +- test "$pic_object" = none && \ +- test "$non_pic_object" = none; then +- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 +- exit $EXIT_FAILURE +- fi ++ execute) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +- # Extract subdirectory from the argument. +- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$xdir" = "X$arg"; then +- xdir= +- else +- xdir="$xdir/" +- fi ++Automatically set library path, then run a program. + +- if test "$pic_object" != none; then +- # Prepend the subdirectory the object is found in. +- pic_object="$xdir$pic_object" ++This mode accepts the following additional options: + +- if test "$prev" = dlfiles; then +- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" +- prev= +- continue +- else +- # If libtool objects are unsupported, then we need to preload. +- prev=dlprefiles +- fi +- fi ++ -dlopen FILE add the directory containing FILE to the library path + +- # CHECK ME: I think I busted this. -Ossama +- if test "$prev" = dlprefiles; then +- # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" +- prev= +- fi ++This mode sets the library path environment variable according to \`-dlopen' ++flags. + +- # A PIC object. +- libobjs="$libobjs $pic_object" +- arg="$pic_object" +- fi ++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. + +- # Non-PIC object. +- if test "$non_pic_object" != none; then +- # Prepend the subdirectory the object is found in. +- non_pic_object="$xdir$non_pic_object" ++Then, COMMAND is executed, with ARGS as arguments." ++ ;; + +- # A standard non-PIC object +- non_pic_objects="$non_pic_objects $non_pic_object" +- if test -z "$pic_object" || test "$pic_object" = none ; then +- arg="$non_pic_object" +- fi +- else +- # If the PIC object exists, use it instead. +- # $xdir was prepended to $pic_object above. +- non_pic_object="$pic_object" +- non_pic_objects="$non_pic_objects $non_pic_object" +- fi +- else +- # Only an error if not doing a dry-run. +- if test -z "$run"; then +- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 +- exit $EXIT_FAILURE +- else +- # Dry-run case. ++ finish) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +- # Extract subdirectory from the argument. +- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$xdir" = "X$arg"; then +- xdir= +- else +- xdir="$xdir/" +- fi ++Complete the installation of libtool libraries. + +- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` +- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` +- libobjs="$libobjs $pic_object" +- non_pic_objects="$non_pic_objects $non_pic_object" +- fi +- fi +- done +- else +- $echo "$modename: link input file \`$save_arg' does not exist" +- exit $EXIT_FAILURE +- fi +- arg=$save_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 $EXIT_FAILURE +- ;; +- 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 +- ;; +- xcclinker) +- linker_flags="$linker_flags $qarg" +- compiler_flags="$compiler_flags $qarg" +- prev= +- compile_command="$compile_command $qarg" +- finalize_command="$finalize_command $qarg" +- continue +- ;; +- shrext) +- shrext_cmds="$arg" +- prev= +- continue +- ;; +- darwin_framework|darwin_framework_skip) +- test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- prev= +- continue +- ;; +- *) +- eval "$prev=\"\$arg\"" +- prev= +- continue +- ;; +- esac +- fi # test -n "$prev" ++Each LIBDIR is a directory that contains libtool libraries. + +- prevarg="$arg" ++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." ++ ;; + +- 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 +- ;; ++ install) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +- -allow-undefined) +- # FIXME: remove this flag sometime in the future. +- $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 +- continue +- ;; ++Install executables or libraries. + +- -avoid-version) +- avoid_version=yes +- continue +- ;; ++INSTALL-COMMAND is the installation command. The first component should be ++either the \`install' or \`cp' program. + +- -dlopen) +- prev=dlfiles +- continue +- ;; ++The following components of INSTALL-COMMAND are treated specially: + +- -dlpreopen) +- prev=dlprefiles +- continue +- ;; ++ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +- -export-dynamic) +- export_dynamic=yes +- continue +- ;; ++The rest of the components are interpreted as arguments to that command (only ++BSD-compatible install options are recognized)." ++ ;; + +- -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 $EXIT_FAILURE +- fi +- if test "X$arg" = "X-export-symbols"; then +- prev=expsyms +- else +- prev=expsyms_regex +- fi +- continue +- ;; ++ link) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +- -framework|-arch|-isysroot) +- case " $CC " in +- *" ${arg} ${1} "* | *" ${arg} ${1} "*) +- prev=darwin_framework_skip ;; +- *) compiler_flags="$compiler_flags $arg" +- prev=darwin_framework ;; +- esac +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- continue +- ;; ++Link object files or libraries together to form another library, or to ++create an executable program. + +- -inst-prefix-dir) +- prev=inst_prefix +- continue +- ;; ++LINK-COMMAND is a command using the C compiler that you would use to create ++a program from several object files. + +- # 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* | /*-*-irix*) +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- ;; +- esac +- continue +- ;; ++The following components of LINK-COMMAND are treated specially: + +- -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 +- absdir="$dir" +- notinst_path="$notinst_path $dir" +- 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*) +- testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` +- case :$dllsearchpath: in +- *":$dir:"*) ;; +- *) dllsearchpath="$dllsearchpath:$dir";; +- esac +- case :$dllsearchpath: in +- *":$testbindir:"*) ;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; +- esac +- ;; +- esac +- continue +- ;; ++ -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 ++ -objectlist FILE Use a list of object files found in FILE to specify objects ++ -precious-files-regex REGEX ++ don't remove output files matching REGEX ++ -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 ++ -shared only do dynamic linking of libtool libraries ++ -shrext SUFFIX override the standard shared library file extension ++ -static do not do any dynamic linking of uninstalled libtool libraries ++ -static-libtool-libs ++ do not do any dynamic linking of libtool libraries ++ -version-info CURRENT[:REVISION[:AGE]] ++ specify library version info [each variable defaults to 0] ++ -weak LIBNAME declare that the target provides the LIBNAME interface + +- -l*) +- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then +- case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) +- # These systems don't actually have a C or math library (as such) +- continue +- ;; +- *-*-os2*) +- # These systems don't actually have a C library (as such) +- test "X$arg" = "X-lc" && continue +- ;; +- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) +- # Do not include libc due to us having libc/libc_r. +- test "X$arg" = "X-lc" && continue +- ;; +- *-*-rhapsody* | *-*-darwin1.[012]) +- # Rhapsody C and math libraries are in the System framework +- deplibs="$deplibs -framework System" +- continue +- ;; +- *-*-sco3.2v5* | *-*-sco5v6*) +- # Causes problems with __ctype +- test "X$arg" = "X-lc" && continue +- ;; +- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) +- # Compiler inserts libc in the correct place for threads to work +- test "X$arg" = "X-lc" && continue +- ;; +- esac +- elif test "X$arg" = "X-lc_r"; then +- case $host in +- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) +- # Do not include libc_r directly, use -pthread flag. +- continue +- ;; +- esac +- fi +- deplibs="$deplibs $arg" +- continue +- ;; ++All other options (arguments beginning with \`-') are ignored. + +- # Tru64 UNIX uses -model [arg] to determine the layout of C++ +- # classes, name mangling, and exception handling. +- -model) +- compile_command="$compile_command $arg" +- compiler_flags="$compiler_flags $arg" +- finalize_command="$finalize_command $arg" +- prev=xcompiler +- continue +- ;; ++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. + +- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) +- compiler_flags="$compiler_flags $arg" +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- continue +- ;; ++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. + +- -multi_module) +- single_module="${wl}-multi_module" +- continue +- ;; ++If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created ++using \`ar' and \`ranlib', or on Windows using \`lib'. + +- -module) +- module=yes +- continue +- ;; ++If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file ++is created, otherwise an executable program is created." ++ ;; + +- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler +- # -r[0-9][0-9]* specifies the processor on the SGI compiler +- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler +- # +DA*, +DD* enable 64-bit mode on the HP compiler +- # -q* pass through compiler args for the IBM compiler +- # -m* pass through architecture-specific compiler args for GCC +- # -m*, -t[45]*, -txscale* pass through architecture-specific +- # compiler args for GCC +- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC +- # -F/path gives path to uninstalled frameworks, gcc on darwin +- # @file GCC response files +- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ +- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) ++ uninstall) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +- # 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 +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- compiler_flags="$compiler_flags $arg" +- continue ++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." + ;; + +- -shrext) +- prev=shrext +- continue +- ;; ++ *) ++ func_fatal_help "invalid operation mode \`$mode'" ++ ;; ++ esac + +- -no-fast-install) +- fast_install=no +- continue +- ;; ++ $ECHO ++ $ECHO "Try \`$progname --help' for more information about other modes." + +- -no-install) +- case $host in +- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) +- # The PATH hackery in wrapper scripts is required on Windows +- # and Darwin 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 +- ;; ++ exit $? ++} + +- -no-undefined) +- allow_undefined=no +- continue +- ;; ++ # Now that we've collected a possible --mode arg, show help if necessary ++ $opt_help && func_mode_help + +- -objectlist) +- prev=objectlist +- continue +- ;; + +- -o) prev=output ;; ++# func_mode_execute arg... ++func_mode_execute () ++{ ++ $opt_debug ++ # The first argument is the command name. ++ cmd="$nonopt" ++ test -z "$cmd" && \ ++ func_fatal_help "you must specify a COMMAND" + +- -precious-files-regex) +- prev=precious_regex +- continue +- ;; ++ # Handle -dlopen flags immediately. ++ for file in $execute_dlfiles; do ++ test -f "$file" \ ++ || func_fatal_help "\`$file' is not a file" + +- -release) +- prev=release +- continue +- ;; ++ dir= ++ case $file in ++ *.la) ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$file" \ ++ || func_fatal_help "\`$lib' is not a valid libtool archive" + +- -rpath) +- prev=rpath +- continue +- ;; ++ # Read the libtool library. ++ dlname= ++ library_names= ++ func_source "$file" + +- -R) +- prev=xrpath +- continue +- ;; ++ # Skip this library if it cannot be dlopened. ++ if test -z "$dlname"; then ++ # Warn if it was a shared library. ++ test -n "$library_names" && \ ++ func_warning "\`$file' was not linked with \`-export-dynamic'" ++ continue ++ fi + +- -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 $EXIT_FAILURE +- ;; +- esac +- case "$xrpath " in +- *" $dir "*) ;; +- *) xrpath="$xrpath $dir" ;; +- esac +- continue +- ;; ++ func_dirname "$file" "" "." ++ dir="$func_dirname_result" + +- -static | -static-libtool-libs) +- # 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 ++ if test -f "$dir/$objdir/$dlname"; then ++ dir="$dir/$objdir" ++ else ++ if test ! -f "$dir/$dlname"; then ++ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" ++ fi ++ fi + ;; + +- -thread-safe) +- thread_safe=yes +- continue ++ *.lo) ++ # Just add the directory containing the .lo file. ++ func_dirname "$file" "" "." ++ dir="$func_dirname_result" + ;; + +- -version-info) +- prev=vinfo +- continue +- ;; +- -version-number) +- prev=vinfo +- vinfo_number=yes ++ *) ++ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; ++ esac + +- -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/^ //"` +- ;; ++ # Get the absolute pathname. ++ absdir=`cd "$dir" && pwd` ++ test -n "$absdir" && dir="$absdir" + +- -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/^ //"` +- ;; ++ # 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 + +- -Xcompiler) +- prev=xcompiler +- continue +- ;; ++ # This variable tells wrapper scripts just to set shlibpath_var ++ # rather than running their programs. ++ libtool_execute_magic="$magic" + +- -Xlinker) +- prev=xlinker +- continue ++ # 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 func_ltwrapper_script_p "$file"; then ++ func_source "$file" ++ # Transform arg to wrapped name. ++ file="$progdir/$program" ++ elif func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ func_source "$func_ltwrapper_scriptname_result" ++ # Transform arg to wrapped name. ++ file="$progdir/$program" ++ fi + ;; ++ esac ++ # Quote arguments (to preserve shell metacharacters). ++ func_quote_for_eval "$file" ++ args="$args $func_quote_for_eval_result" ++ done + +- -XCClinker) +- prev=xcclinker +- continue +- ;; ++ if test "X$opt_dry_run" = Xfalse; then ++ if test -n "$shlibpath_var"; then ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" ++ fi + +- # 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 +- ;; ++ # Restore saved environment variables ++ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES ++ do ++ eval "if test \"\${save_$lt_var+set}\" = set; then ++ $lt_var=\$save_$lt_var; export $lt_var ++ else ++ $lt_unset $lt_var ++ fi" ++ done + +- *.$objext) +- # A standard object. +- objs="$objs $arg" +- ;; ++ # 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 $EXIT_SUCCESS ++ fi ++} + +- *.lo) +- # A libtool-controlled object. ++test "$mode" = execute && func_mode_execute ${1+"$@"} + +- # Check to see that this really is a libtool object. +- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- pic_object= +- non_pic_object= + +- # Read the .lo file +- # If there is no directory component, then add one. +- case $arg in +- */* | *\\*) . $arg ;; +- *) . ./$arg ;; +- esac ++# func_mode_finish arg... ++func_mode_finish () ++{ ++ $opt_debug ++ libdirs="$nonopt" ++ admincmds= + +- if test -z "$pic_object" || \ +- test -z "$non_pic_object" || +- test "$pic_object" = none && \ +- test "$non_pic_object" = none; then +- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 +- exit $EXIT_FAILURE +- fi ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ for dir ++ do ++ libdirs="$libdirs $dir" ++ done + +- # Extract subdirectory from the argument. +- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$xdir" = "X$arg"; then +- xdir= +- else +- xdir="$xdir/" +- fi ++ for libdir in $libdirs; do ++ if test -n "$finish_cmds"; then ++ # Do each command in the finish commands. ++ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds ++'"$cmd"'"' ++ fi ++ if test -n "$finish_eval"; then ++ # Do the single finish_eval. ++ eval cmds=\"$finish_eval\" ++ $opt_dry_run || eval "$cmds" || admincmds="$admincmds ++ $cmds" ++ fi ++ done ++ fi + +- if test "$pic_object" != none; then +- # Prepend the subdirectory the object is found in. +- pic_object="$xdir$pic_object" ++ # Exit here if they wanted silent mode. ++ $opt_silent && exit $EXIT_SUCCESS + +- if test "$prev" = dlfiles; then +- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" +- prev= +- continue +- else +- # If libtool objects are unsupported, then we need to preload. +- prev=dlprefiles +- fi +- fi ++ $ECHO "X----------------------------------------------------------------------" | $Xsed ++ $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\" + +- # CHECK ME: I think I busted this. -Ossama +- if test "$prev" = dlprefiles; then +- # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" +- prev= +- fi ++ $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 + +- # A PIC object. +- libobjs="$libobjs $pic_object" +- arg="$pic_object" +- fi ++ $ECHO "See any operating system documentation about shared libraries for" ++ case $host in ++ solaris2.[6789]|solaris2.1[0-9]) ++ $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" ++ $ECHO "pages." ++ ;; ++ *) ++ $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ++ ;; ++ esac ++ $ECHO "X----------------------------------------------------------------------" | $Xsed ++ exit $EXIT_SUCCESS ++} + +- # Non-PIC object. +- if test "$non_pic_object" != none; then +- # Prepend the subdirectory the object is found in. +- non_pic_object="$xdir$non_pic_object" ++test "$mode" = finish && func_mode_finish ${1+"$@"} + +- # A standard non-PIC object +- non_pic_objects="$non_pic_objects $non_pic_object" +- if test -z "$pic_object" || test "$pic_object" = none ; then +- arg="$non_pic_object" +- fi +- else +- # If the PIC object exists, use it instead. +- # $xdir was prepended to $pic_object above. +- non_pic_object="$pic_object" +- non_pic_objects="$non_pic_objects $non_pic_object" +- fi +- else +- # Only an error if not doing a dry-run. +- if test -z "$run"; then +- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 +- exit $EXIT_FAILURE +- else +- # Dry-run case. + +- # Extract subdirectory from the argument. +- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$xdir" = "X$arg"; then +- xdir= +- else +- xdir="$xdir/" +- fi ++# func_mode_install arg... ++func_mode_install () ++{ ++ $opt_debug ++ # 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" | $GREP shtool >/dev/null; then ++ # Aesthetically quote it. ++ func_quote_for_eval "$nonopt" ++ install_prog="$func_quote_for_eval_result " ++ arg=$1 ++ shift ++ else ++ install_prog= ++ arg=$nonopt ++ fi + +- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` +- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` +- libobjs="$libobjs $pic_object" +- non_pic_objects="$non_pic_objects $non_pic_object" +- fi +- fi +- ;; ++ # The real first argument should be the name of the installation program. ++ # Aesthetically quote it. ++ func_quote_for_eval "$arg" ++ install_prog="$install_prog$func_quote_for_eval_result" + +- *.$libext) +- # An archive. +- deplibs="$deplibs $arg" +- old_deplibs="$old_deplibs $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 +- ;; +- +- *.la) +- # A libtool-controlled library. ++ fi + +- 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" ++ case $arg in ++ -d) isdir=yes ;; ++ -f) ++ case " $install_prog " in ++ *[\\\ /]cp\ *) ;; ++ *) prev=$arg ;; ++ esac ++ ;; ++ -g | -m | -o) ++ prev=$arg ++ ;; ++ -s) ++ stripme=" -s" ++ continue ++ ;; ++ -*) ++ ;; ++ *) ++ # If the previous option needed an argument, then skip it. ++ if test -n "$prev"; then + prev= + else +- deplibs="$deplibs $arg" ++ dest=$arg ++ continue + fi +- continue + ;; ++ esac + +- # 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 ++ # Aesthetically quote the argument. ++ func_quote_for_eval "$arg" ++ install_prog="$install_prog $func_quote_for_eval_result" ++ done + +- # 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 ++ test -z "$install_prog" && \ ++ func_fatal_help "you must specify an install program" + +- if test -n "$prev"; then +- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE +- fi ++ test -n "$prev" && \ ++ func_fatal_help "the \`$prev' option requires an argument" + +- 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" ++ if test -z "$files"; then ++ if test -z "$dest"; then ++ func_fatal_help "no file or destination specified" ++ else ++ func_fatal_help "you must specify a destination" ++ fi + fi + +- oldlibs= +- # calculate the name of the file, without its directory +- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` +- libobjs_save="$libobjs" ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$dest" ++ dest=$func_stripname_result + +- 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\'\` ++ # Check to see that the destination is a directory. ++ test -d "$dest" && isdir=yes ++ if test "$isdir" = yes; then ++ destdir="$dest" ++ destname= + 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\" ++ func_dirname_and_basename "$dest" "" "." ++ destdir="$func_dirname_result" ++ destname="$func_basename_result" + +- 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 +- exit_status=$? +- if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then +- exit $exit_status +- fi ++ # Not a directory, so check to see that there is only one file specified. ++ set dummy $files; shift ++ test "$#" -gt 1 && \ ++ func_fatal_help "\`$dest' is not a directory" + fi +- +- # Determine the type of output +- case $output in +- "") +- $echo "$modename: you must specify an output file" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE +- ;; +- *.$libext) linkmode=oldlib ;; +- *.lo | *.$objext) linkmode=obj ;; +- *.la) linkmode=lib ;; +- *) linkmode=prog ;; # Anything else should be a program. +- esac +- +- case $host in +- *cygwin* | *mingw* | *pw32*) +- # don't eliminate duplications in $postdeps and $predeps +- duplicate_compiler_generated_deps=yes +- ;; ++ case $destdir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; + *) +- duplicate_compiler_generated_deps=$duplicate_deps ++ for file in $files; do ++ case $file in ++ *.lo) ;; ++ *) ++ func_fatal_help "\`$destdir' must be an absolute directory name" ++ ;; ++ esac ++ done + ;; + 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 ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" + +- if test "$linkmode" = lib; then +- libs="$predeps $libs $compiler_lib_search_path $postdeps" ++ staticlibs= ++ future_libdirs= ++ current_libdirs= ++ for file in $files; do + +- # Compute libraries that are listed more than once in $predeps +- # $postdeps and mark them as special (i.e., whose duplicates are +- # not to be eliminated). +- pre_post_deps= +- if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then +- for pre_post_dep in $predeps $postdeps; do +- case "$pre_post_deps " in +- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; ++ # 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. ++ func_lalib_unsafe_p "$file" \ ++ || func_fatal_help "\`$file' is not a valid libtool archive" ++ ++ library_names= ++ old_library= ++ relink_command= ++ func_source "$file" ++ ++ # Add the libdir to current_libdirs if it is the destination. ++ if test "X$destdir" = "X$libdir"; then ++ case "$current_libdirs " in ++ *" $libdir "*) ;; ++ *) current_libdirs="$current_libdirs $libdir" ;; + esac +- pre_post_deps="$pre_post_deps $pre_post_dep" +- done +- fi +- pre_post_deps= +- fi ++ else ++ # Note the libdir as a future libdir. ++ case "$future_libdirs " in ++ *" $libdir "*) ;; ++ *) future_libdirs="$future_libdirs $libdir" ;; ++ esac ++ fi + +- deplibs= +- newdependency_libs= +- newlib_search_path= +- need_relink=no # whether we're linking any uninstalled libtool libraries +- notinst_deplibs= # 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 $EXIT_FAILURE ++ func_dirname "$file" "/" "" ++ dir="$func_dirname_result" ++ dir="$dir$objdir" ++ ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ # At present, this check doesn't affect windows .dll's that ++ # are installed into $libdir/../bin (currently, that works fine) ++ # but it's something to keep an eye on. ++ test "$inst_prefix_dir" = "$destdir" && \ ++ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` ++ fi ++ ++ func_warning "relinking \`$file'" ++ func_show_eval "$relink_command" \ ++ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' ++ fi ++ ++ # See the names of the shared library. ++ set dummy $library_names; shift ++ if test -n "$1"; then ++ realname="$1" ++ shift ++ ++ srcname="$realname" ++ test -n "$relink_command" && srcname="$realname"T ++ ++ # Install the shared library and build the symlinks. ++ func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ ++ 'exit $?' ++ tstripme="$stripme" ++ case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ case $realname in ++ *.dll.a) ++ tstripme="" ++ ;; ++ esac + ;; + 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,$pass" = "lib,link" || +- test "$linkmode,$pass" = "prog,scan"; then +- libs="$deplibs" +- deplibs= +- fi +- if test "$linkmode" = prog; then +- case $pass in +- dlopen) libs="$dlfiles" ;; +- dlpreopen) libs="$dlprefiles" ;; +- link) +- libs="$deplibs %DEPLIBS%" +- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" +- ;; +- esac +- fi +- if test "$pass" = dlopen; then +- # Collect dlpreopened libraries +- save_deplibs="$deplibs" +- deplibs= +- fi +- for deplib in $libs; do +- lib= +- found=no +- case $deplib in +- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) +- if test "$linkmode,$pass" = "prog,link"; then +- compile_deplibs="$deplib $compile_deplibs" +- finalize_deplibs="$deplib $finalize_deplibs" +- else +- compiler_flags="$compiler_flags $deplib" +- fi +- continue +- ;; +- -l*) +- if test "$linkmode" != lib && test "$linkmode" != prog; then +- $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 +- continue +- fi +- name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` +- if test "$linkmode" = lib; then +- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" +- else +- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" ++ if test -n "$tstripme" && test -n "$striplib"; then ++ func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi +- for searchdir in $searchdirs; do +- for search_ext in .la $std_shrext .so .a; do +- # Search the libtool library +- lib="$searchdir/lib${name}${search_ext}" +- if test -f "$lib"; then +- if test "$search_ext" = ".la"; then +- found=yes +- else +- found=no +- fi +- break 2 +- fi ++ ++ if test "$#" -gt 0; then ++ # Delete the old symlinks, and create new ones. ++ # Try `ln -sf' first, because the `ln' binary might depend on ++ # the symlink we replace! Solaris /bin/ln does not understand -f, ++ # so we also need to try rm && ln -s. ++ for linkname ++ do ++ test "$linkname" != "$realname" \ ++ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done +- 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 +- else # deplib is a libtool library +- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, +- # We need to do some special things here, and not later. +- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then +- case " $predeps $postdeps " in +- *" $deplib "*) +- if (${SED} -e '2q' $lib | +- grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- library_names= +- old_library= +- case $lib in +- */* | *\\*) . $lib ;; +- *) . ./$lib ;; +- esac +- for l in $old_library $library_names; do +- ll="$l" +- done +- if test "X$ll" = "X$old_library" ; then # only static version available +- found=no +- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` +- test "X$ladir" = "X$lib" && ladir="." +- lib=$ladir/$old_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 +- fi +- ;; +- *) ;; +- esac +- fi +- 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" +- else +- compile_deplibs="$deplib $compile_deplibs" +- finalize_deplibs="$deplib $finalize_deplibs" +- fi +- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` +- ;; +- *) +- $echo "$modename: warning: \`-L' is ignored for archives/objects" 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) +- valid_a_lib=no +- case $deplibs_check_method in +- match_pattern*) +- set dummy $deplibs_check_method +- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` +- if eval $echo \"$deplib\" 2>/dev/null \ +- | $SED 10q \ +- | $EGREP "$match_pattern_regex" > /dev/null; then +- valid_a_lib=yes +- fi +- ;; +- pass_all) +- valid_a_lib=yes +- ;; +- esac +- if test "$valid_a_lib" != yes; 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" = conv; then +- deplibs="$deplib $deplibs" +- elif test "$linkmode" = prog; then +- 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 + 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' or unhandled argument \`$deplib'" 1>&2 +- exit $EXIT_FAILURE +- fi + +- # Check to see that this really is a libtool archive. +- if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : +- else +- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 +- exit $EXIT_FAILURE ++ # Do each command in the postinstall commands. ++ lib="$destdir/$realname" ++ func_execute_cmds "$postinstall_cmds" 'exit $?' + 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 variables installed, or shouldnotlink +- installed=yes +- shouldnotlink=no +- avoidtemprpath= ++ # Install the pseudo-library for information purposes. ++ func_basename "$file" ++ name="$func_basename_result" ++ instname="$dir/$name"i ++ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + ++ # Maybe install the static library, too. ++ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ ;; + +- # Read the .la file +- case $lib in +- */* | *\\*) . $lib ;; +- *) . ./$lib ;; +- esac ++ *.lo) ++ # Install (i.e. copy) a libtool object. + +- if test "$linkmode,$pass" = "lib,link" || +- test "$linkmode,$pass" = "prog,scan" || +- { test "$linkmode" != prog && test "$linkmode" != lib; }; then +- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" +- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ func_basename "$file" ++ destfile="$func_basename_result" ++ destfile="$destdir/$destfile" + 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 $EXIT_FAILURE +- 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 $EXIT_FAILURE +- fi +- continue +- fi # $pass = conv ++ # Deduce the name of the destination old-style object file. ++ case $destfile in ++ *.lo) ++ func_lo2o "$destfile" ++ staticdest=$func_lo2o_result ++ ;; ++ *.$objext) ++ staticdest="$destfile" ++ destfile= ++ ;; ++ *) ++ func_fatal_help "cannot copy a libtool object to \`$destfile'" ++ ;; ++ esac + ++ # Install the libtool object if requested. ++ test -n "$destfile" && \ ++ func_show_eval "$install_prog $file $destfile" 'exit $?' + +- # 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 $EXIT_FAILURE ++ # Install the old object if enabled. ++ if test "$build_old_libs" = yes; then ++ # Deduce the name of the old-style object file. ++ func_lo2o "$file" ++ staticobj=$func_lo2o_result ++ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi ++ exit $EXIT_SUCCESS ++ ;; + +- # 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 $EXIT_FAILURE +- 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. We also need to preload any +- # dependent libraries so libltdl's deplib preloader doesn't +- # bomb out in the load deplibs phase. +- dlprefiles="$dlprefiles $lib $dependency_libs" +- else +- newdlfiles="$newdlfiles $lib" +- fi +- continue +- fi # $pass = dlopen +- +- # We need an absolute path. +- case $ladir in +- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; ++ *) ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ func_basename "$file" ++ destfile="$func_basename_result" ++ destfile="$destdir/$destfile" ++ fi ++ ++ # If the file is missing, and there is a .exe on the end, strip it ++ # because it is most likely a libtool script we actually want to ++ # install ++ stripped_ext="" ++ case $file in ++ *.exe) ++ if test ! -f "$file"; then ++ func_stripname '' '.exe' "$file" ++ file=$func_stripname_result ++ stripped_ext=".exe" ++ fi ++ ;; ++ esac ++ ++ # Do a test to see if this is really a libtool program. ++ case $host in ++ *cygwin* | *mingw*) ++ if func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ wrapper=$func_ltwrapper_scriptname_result ++ else ++ func_stripname '' '.exe' "$file" ++ wrapper=$func_stripname_result ++ fi ++ ;; + *) +- 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" ++ wrapper=$file ++ ;; ++ esac ++ if func_ltwrapper_script_p "$wrapper"; then ++ notinst_deplibs= ++ relink_command= ++ ++ func_source "$wrapper" ++ ++ # Check the variables that should have been set. ++ test -z "$generated_by_libtool_version" && \ ++ func_fatal_error "invalid libtool wrapper script \`$wrapper'" ++ ++ finalize=yes ++ for lib in $notinst_deplibs; do ++ # Check to see that each library is installed. ++ libdir= ++ if test -f "$lib"; then ++ func_source "$lib" ++ fi ++ libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ if test -n "$libdir" && test ! -f "$libfile"; then ++ func_warning "\`$lib' has not been installed in \`$libdir'" ++ finalize=no ++ fi ++ done ++ ++ relink_command= ++ func_source "$wrapper" ++ ++ outputname= ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ $opt_dry_run || { ++ if test "$finalize" = yes; then ++ tmpdir=`func_mktempdir` ++ func_basename "$file$stripped_ext" ++ file="$func_basename_result" ++ outputname="$tmpdir/$file" ++ # Replace the output file specification. ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ ++ $opt_silent || { ++ func_quote_for_expand "$relink_command" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ if eval "$relink_command"; then : ++ else ++ func_error "error: relink \`$file' with the above command before installing it" ++ $opt_dry_run || ${RM}r "$tmpdir" ++ continue ++ fi ++ file="$outputname" ++ else ++ func_warning "cannot relink \`$file'" ++ fi ++ } ++ else ++ # Install the binary that we compiled earlier. ++ file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi ++ fi ++ ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyway ++ case $install_prog,$host in ++ */usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ func_stripname '' '.exe' "$destfile" ++ destfile=$func_stripname_result ++ ;; ++ esac + ;; + esac +- laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' ++ $opt_dry_run || if test -n "$outputname"; then ++ ${RM}r "$tmpdir" ++ fi ++ ;; ++ esac ++ done + +- # 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" ++ for file in $staticlibs; do ++ func_basename "$file" ++ name="$func_basename_result" ++ ++ # Set up the ranlib parameters. ++ oldlib="$destdir/$name" ++ ++ func_show_eval "$install_prog \$file \$oldlib" 'exit $?' ++ ++ if test -n "$stripme" && test -n "$old_striplib"; then ++ func_show_eval "$old_striplib $oldlib" 'exit $?' ++ fi ++ ++ # Do each command in the postinstall commands. ++ func_execute_cmds "$old_postinstall_cmds" 'exit $?' ++ done ++ ++ test -n "$future_libdirs" && \ ++ func_warning "remember to run \`$progname --finish$future_libdirs'" ++ ++ if test -n "$current_libdirs"; then ++ # Maybe just do a dry run. ++ $opt_dry_run && current_libdirs=" -n$current_libdirs" ++ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' ++ else ++ exit $EXIT_SUCCESS ++ fi ++} ++ ++test "$mode" = install && func_mode_install ${1+"$@"} ++ ++ ++# func_generate_dlsyms outputname originator pic_p ++# Extract symbols from dlprefiles and create ${outputname}S.o with ++# a dlpreopen symbol table. ++func_generate_dlsyms () ++{ ++ $opt_debug ++ my_outputname="$1" ++ my_originator="$2" ++ my_pic_p="${3-no}" ++ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` ++ my_dlsyms= ++ ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ if test -n "$NM" && test -n "$global_symbol_pipe"; then ++ my_dlsyms="${my_outputname}S.c" ++ else ++ func_error "not configured to extract global symbols from dlpreopened files" ++ fi ++ fi ++ ++ if test -n "$my_dlsyms"; then ++ case $my_dlsyms in ++ "") ;; ++ *.c) ++ # Discover the nlist of each of the dlfiles. ++ nlist="$output_objdir/${my_outputname}.nm" ++ ++ func_show_eval "$RM $nlist ${nlist}S ${nlist}T" ++ ++ # Parse the name list into a source file. ++ func_verbose "creating $output_objdir/$my_dlsyms" ++ ++ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ ++/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ ++/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ ++ ++#ifdef __cplusplus ++extern \"C\" { ++#endif ++ ++/* External symbol declarations for the compiler. */\ ++" ++ ++ if test "$dlself" = yes; then ++ func_verbose "generating symbol list for \`$output'" ++ ++ $opt_dry_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 progfile in $progfiles; do ++ func_verbose "extracting global C symbols from \`$progfile'" ++ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -n "$exclude_expsyms"; then ++ $opt_dry_run || { ++ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ } + fi +- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes +- else +- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then +- dir="$ladir" +- absdir="$abs_ladir" +- # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ ++ if test -n "$export_symbols_regex"; then ++ $opt_dry_run || { ++ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ } ++ fi ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ export_symbols="$output_objdir/$outputname.exp" ++ $opt_dry_run || { ++ $RM $export_symbols ++ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ++ ;; ++ esac ++ } + else +- dir="$ladir/$objdir" +- absdir="$abs_ladir/$objdir" +- # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ $opt_dry_run || { ++ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' ++ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ case $host in ++ *cygwin | *mingw* | *cegcc* ) ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ++ ;; ++ esac ++ } + fi +- fi # $installed = yes +- name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ fi + +- # 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 $EXIT_FAILURE ++ for dlprefile in $dlprefiles; do ++ func_verbose "extracting global C symbols from \`$dlprefile'" ++ func_basename "$dlprefile" ++ name="$func_basename_result" ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ done ++ ++ $opt_dry_run || { ++ # 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 +- # 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" ++ ++ # Try sorting and uniquifying the output. ++ if $GREP -v "^: " < "$nlist" | ++ if sort -k 3 /dev/null 2>&1; then ++ sort -k 3 ++ else ++ sort +2 ++ fi | ++ uniq > "$nlist"S; then ++ : + else +- newdlprefiles="$newdlprefiles $dir/$linklib" ++ $GREP -v "^: " < "$nlist" > "$nlist"S + 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" ++ if test -f "$nlist"S; then ++ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else +- deplibs="$lib $deplibs" # used for prog,scan pass ++ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi +- continue +- fi +- + +- if test "$linkmode" = prog && test "$pass" != link; then +- newlib_search_path="$newlib_search_path $ladir" +- deplibs="$lib $deplibs" ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ + +- linkalldeplibs=no +- if test "$link_all_deplibs" != no || test -z "$library_names" || +- test "$build_libtool_libs" = no; then +- linkalldeplibs=yes +- fi ++/* The mapping between symbol names and symbols. */ ++typedef struct { ++ const char *name; ++ void *address; ++} lt_dlsymlist; ++" ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++/* DATA imports from DLLs on WIN32 con't be const, because ++ runtime relocations are performed -- see ld's documentation ++ on pseudo-relocs. */" ++ lt_dlsym_const= ;; ++ *osf5*) ++ echo >> "$output_objdir/$my_dlsyms" "\ ++/* This system does not cope well with relocations in const data */" ++ lt_dlsym_const= ;; ++ *) ++ lt_dlsym_const=const ;; ++ esac + +- 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... ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++extern $lt_dlsym_const lt_dlsymlist ++lt_${my_prefix}_LTX_preloaded_symbols[]; ++$lt_dlsym_const lt_dlsymlist ++lt_${my_prefix}_LTX_preloaded_symbols[] = ++{\ ++ { \"$my_originator\", (void *) 0 }," + +- if test "$linkmode,$pass" = "prog,link"; then +- if test -n "$library_names" && +- { { test "$prefer_static_libs" = no || +- test "$prefer_static_libs,$installed" = "built,yes"; } || +- test -z "$old_library"; }; then +- # We need to hardcode the library path +- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then +- # Make sure the rpath contains only unique directories. +- case "$temp_rpath " in +- *" $dir "*) ;; +- *" $absdir "*) ;; +- *) temp_rpath="$temp_rpath $absdir" ;; +- esac +- fi ++ case $need_lib_prefix in ++ no) ++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ++ ;; ++ *) ++ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ++ ;; ++ esac ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++ {0, (void *) 0} ++}; + +- # 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 +- 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 +- fi ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt_${my_prefix}_LTX_preloaded_symbols; ++} ++#endif + +- link_static=no # Whether the deplib will be linked statically +- use_static_libs=$prefer_static_libs +- if test "$use_static_libs" = built && test "$installed" = yes ; then +- use_static_libs=no +- fi +- if test -n "$library_names" && +- { test "$use_static_libs" = no || test -z "$old_library"; }; then +- if test "$installed" = no; then +- notinst_deplibs="$notinst_deplibs $lib" +- need_relink=yes +- fi +- # This is a shared library ++#ifdef __cplusplus ++} ++#endif\ ++" ++ } # !$opt_dry_run + +- # Warn about portability, can't link against -module's on +- # some systems (darwin) +- if test "$shouldnotlink" = yes && test "$pass" = link ; then +- $echo +- if test "$linkmode" = prog; then +- $echo "*** Warning: Linking the executable $output against the loadable module" +- else +- $echo "*** Warning: Linking the shared library $output against the loadable module" ++ pic_flag_for_symtable= ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) ++ 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*) ++ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; ++ *-*-hpux*) ++ pic_flag_for_symtable=" $pic_flag" ;; ++ *) ++ if test "X$my_pic_p" != Xno; then ++ pic_flag_for_symtable=" $pic_flag" + fi +- $echo "*** $linklib is not portable!" +- fi +- if 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 ++ ;; ++ esac ++ ;; ++ esac ++ symtab_cflags= ++ for arg in $LTCFLAGS; do ++ case $arg in ++ -pie | -fpie | -fPIE) ;; ++ *) symtab_cflags="$symtab_cflags $arg" ;; ++ esac ++ done ++ ++ # Now compile the dynamic symbol file. ++ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' ++ ++ # Clean up the generated files. ++ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' ++ ++ # Transform the symbol file into the correct name. ++ symfileobj="$output_objdir/${my_outputname}S.$objext" ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ if test -f "$output_objdir/$my_outputname.def"; then ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ else ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + fi ++ ;; ++ *) ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ ;; ++ esac ++ ;; ++ *) ++ func_fatal_error "unknown suffix for \`$my_dlsyms'" ++ ;; ++ 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 -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* | mingw*) +- major=`expr $current - $age` +- versuffix="-$major" +- ;; +- esac +- eval soname=\"$soname_spec\" +- else +- soname="$realname" +- fi ++# func_win32_libid arg ++# return the library type of file 'arg' ++# ++# Need a lot of goo to handle *both* DLLs and import libs ++# Has to be a shell function in order to 'eat' the argument ++# that is supplied when $file_magic_command is called. ++func_win32_libid () ++{ ++ $opt_debug ++ win32_libid_type="unknown" ++ win32_fileres=`file -L $1 2>/dev/null` ++ case $win32_fileres in ++ *ar\ archive\ import\ library*) # definitely import ++ win32_libid_type="x86 archive import" ++ ;; ++ *ar\ archive*) # could be an import, or static ++ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | ++ $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then ++ win32_nmres=`eval $NM -f posix -A $1 | ++ $SED -n -e ' ++ 1,100{ ++ / I /{ ++ s,.*,import, ++ p ++ q ++ } ++ }'` ++ case $win32_nmres in ++ import*) win32_libid_type="x86 archive import";; ++ *) win32_libid_type="x86 archive static";; ++ esac ++ fi ++ ;; ++ *DLL*) ++ win32_libid_type="x86 DLL" ++ ;; ++ *executable*) # but shell scripts are "executable" too... ++ case $win32_fileres in ++ *MS\ Windows\ PE\ Intel*) ++ win32_libid_type="x86 DLL" ++ ;; ++ esac ++ ;; ++ esac ++ $ECHO "$win32_libid_type" ++} + +- # 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='~' +- cmds=$extract_expsyms_cmds +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $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='~' +- cmds=$old_archive_from_expsyms_cmds +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $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" ++# func_extract_an_archive dir oldlib ++func_extract_an_archive () ++{ ++ $opt_debug ++ f_ex_an_ar_dir="$1"; shift ++ f_ex_an_ar_oldlib="$1" ++ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' ++ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then ++ : ++ else ++ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" ++ fi ++} + +- 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" +- case $host in +- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; +- *-*-sysv4*uw2*) add_dir="-L$dir" ;; +- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ +- *-*-unixware7*) add_dir="-L$dir" ;; +- *-*-darwin* ) +- # if the lib is a module then we can not link against +- # it, someone is ignoring the new warnings I added +- if /usr/bin/file -L $add 2> /dev/null | +- $EGREP ": [^:]* bundle" >/dev/null ; then +- $echo "** Warning, lib $linklib is a module, not a shared library" +- if test -z "$old_library" ; then +- $echo +- $echo "** And there doesn't seem to be a static archive available" +- $echo "** The link will probably fail, sorry" +- else +- add="$dir/$old_library" +- fi +- fi +- esac +- 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" +- # Try looking first in the location we're being installed to. +- if test -n "$inst_prefix_dir"; then +- case $libdir in +- [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" +- ;; +- esac +- fi +- 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 $EXIT_FAILURE +- fi ++# func_extract_archives gentop oldlib ... ++func_extract_archives () ++{ ++ $opt_debug ++ my_gentop="$1"; shift ++ my_oldlibs=${1+"$@"} ++ my_oldobjs="" ++ my_xlib="" ++ my_xabs="" ++ my_xdir="" + +- 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 ++ for my_xlib in $my_oldlibs; do ++ # Extract the objects. ++ case $my_xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; ++ *) my_xabs=`pwd`"/$my_xlib" ;; ++ esac ++ func_basename "$my_xlib" ++ my_xlib="$func_basename_result" ++ my_xlib_u=$my_xlib ++ while :; do ++ case " $extracted_archives " in ++ *" $my_xlib_u "*) ++ func_arith $extracted_serial + 1 ++ extracted_serial=$func_arith_result ++ my_xlib_u=lt$extracted_serial-$my_xlib ;; ++ *) break ;; ++ esac ++ done ++ extracted_archives="$extracted_archives $my_xlib_u" ++ my_xdir="$my_gentop/$my_xlib_u" + +- 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" +- elif test "$hardcode_automatic" = yes; then +- if test -n "$inst_prefix_dir" && +- test -f "$inst_prefix_dir$libdir/$linklib" ; then +- add="$inst_prefix_dir$libdir/$linklib" +- else +- add="$libdir/$linklib" +- fi +- else +- # We cannot seem to hardcode it, guess we'll fake it. +- add_dir="-L$libdir" +- # Try looking first in the location we're being installed to. +- if test -n "$inst_prefix_dir"; then +- case $libdir in +- [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" +- ;; +- esac +- fi +- add="-l$name" +- fi ++ func_mkdir_p "$my_xdir" + +- 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 +- # 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" ++ case $host in ++ *-darwin*) ++ func_verbose "Extracting $my_xabs" ++ # Do not bother doing anything if just a dry run ++ $opt_dry_run || { ++ darwin_orig_dir=`pwd` ++ cd $my_xdir || exit $? ++ darwin_archive=$my_xabs ++ darwin_curdir=`pwd` ++ darwin_base_archive=`basename "$darwin_archive"` ++ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` ++ if test -n "$darwin_arches"; then ++ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` ++ darwin_arch= ++ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" ++ for darwin_arch in $darwin_arches ; do ++ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" ++ $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" ++ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" ++ func_extract_an_archive "`pwd`" "${darwin_base_archive}" ++ cd "$darwin_curdir" ++ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" ++ done # $darwin_arches ++ ## Okay now we've a bunch of thin objects, gotta fatten them up :) ++ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` ++ darwin_file= ++ darwin_files= ++ for darwin_file in $darwin_filelist; do ++ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ $LIPO -create -output "$darwin_file" $darwin_files ++ done # $darwin_filelist ++ $RM -rf unfat-$$ ++ cd "$darwin_orig_dir" + 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. ++ cd $darwin_orig_dir ++ func_extract_an_archive "$my_xdir" "$my_xabs" ++ fi # $darwin_arches ++ } # !$opt_dry_run ++ ;; ++ *) ++ func_extract_an_archive "$my_xdir" "$my_xabs" ++ ;; ++ esac ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ done + +- # 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 +- deplibs="$dir/$old_library $deplibs" +- link_static=yes +- fi +- fi # link shared/static library? ++ func_extract_archives_result="$my_oldobjs" ++} + +- 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="$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 $EXIT_FAILURE +- fi +- if test "$absdir" != "$libdir"; then +- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 +- fi +- path="$absdir" +- fi +- depdepl= +- case $host in +- *-*-darwin*) +- # we do not want to link against static libs, +- # but need to link against shared +- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` +- eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` +- if test -n "$deplibrary_names" ; then +- for tmp in $deplibrary_names ; do +- depdepl=$tmp +- done +- if test -f "$deplibdir/$depdepl" ; then +- depdepl="$deplibdir/$depdepl" +- elif test -f "$path/$depdepl" ; then +- depdepl="$path/$depdepl" +- else +- # Can't find it, oh well... +- depdepl= +- fi +- # do not add paths which are already there +- case " $newlib_search_path " in +- *" $path "*) ;; +- *) newlib_search_path="$newlib_search_path $path";; +- esac +- fi +- path="" +- ;; +- *) +- path="-L$path" +- ;; +- esac +- ;; +- -l*) +- case $host in +- *-*-darwin*) +- # Again, we only want to link against shared libraries +- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` +- for tmp in $newlib_search_path ; do +- if test -f "$tmp/lib$tmp_libs.dylib" ; then +- eval depdepl="$tmp/lib$tmp_libs.dylib" +- break +- fi +- done +- path="" +- ;; +- *) continue ;; +- esac +- ;; +- *) continue ;; +- esac +- case " $deplibs " in +- *" $path "*) ;; +- *) deplibs="$path $deplibs" ;; +- esac +- case " $deplibs " in +- *" $depdepl "*) ;; +- *) deplibs="$depdepl $deplibs" ;; +- esac +- done +- fi # link_all_deplibs != no +- fi # linkmode = lib +- done # for deplib in $libs +- dependency_libs="$newdependency_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 +- 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= ++# func_emit_wrapper_part1 [arg=no] ++# ++# Emit the first part of a libtool wrapper script on stdout. ++# For more information, see the description associated with ++# func_emit_wrapper(), below. ++func_emit_wrapper_part1 () ++{ ++ func_emit_wrapper_part1_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_part1_arg1=$1 + 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 +- # FIXME: Pedantically, this is the right thing to do, so +- # that some nasty dependency loop isn't accidentally +- # broken: +- #new_libs="$deplib $new_libs" +- # Pragmatically, this seems to cause very few problems in +- # practice: +- case $deplib in +- -L*) new_libs="$deplib $new_libs" ;; +- -R*) ;; +- *) +- # And here is the reason: when a library appears more +- # than once as an explicit dependence of a library, or +- # is implicitly linked in more than once by the +- # compiler, it is considered special, and multiple +- # occurrences thereof are not removed. Compare this +- # with having the same library being listed as a +- # dependency of multiple other libraries: in this case, +- # we know (pedantically, we assume) the library does not +- # need to be listed more than once, so we keep only the +- # last copy. This is not always right, but it is rare +- # enough that we require users that really mean to play +- # such unportable linking tricks to link the library +- # using -Wl,-lname, so that libtool does not consider it +- # for duplicate removal. +- 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 +- # Last step: remove runtime libs from dependency_libs +- # (they stay in deplibs) +- tmp_libs= +- for i in $dependency_libs ; do +- case " $predeps $postdeps $compiler_lib_search_path " in +- *" $i "*) +- i="" +- ;; +- esac +- if test -n "$i" ; then +- tmp_libs="$tmp_libs $i" +- fi +- done +- dependency_libs=$tmp_libs +- done # for pass +- if test "$linkmode" = prog; then +- dlfiles="$newdlfiles" +- dlprefiles="$newdlprefiles" ++ $ECHO "\ ++#! $SHELL ++ ++# $output - temporary wrapper script for $objdir/$outputname ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION ++# ++# 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' ++ ++# Be Bourne compatible ++if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '\${1+\"\$@\"}'='\"\$@\"' ++ setopt NO_GLOB_SUBST ++else ++ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac ++fi ++BIN_SH=xpg4; export BIN_SH # for Tru64 ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++relink_command=\"$relink_command\" ++ ++# This environment variable determines our operation mode. ++if test \"\$libtool_install_magic\" = \"$magic\"; then ++ # install mode needs the following variables: ++ generated_by_libtool_version='$macro_version' ++ 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 "\ + +- case $linkmode in +- oldlib) +- case " $deplibs" in +- *\ -l* | *\ -L*) +- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; ++ # 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 + +- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then +- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 +- fi ++ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` ++ done ++" ++} ++# end: func_emit_wrapper_part1 + +- if test -n "$rpath"; then +- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 +- fi ++# func_emit_wrapper_part2 [arg=no] ++# ++# Emit the second part of a libtool wrapper script on stdout. ++# For more information, see the description associated with ++# func_emit_wrapper(), below. ++func_emit_wrapper_part2 () ++{ ++ func_emit_wrapper_part2_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_part2_arg1=$1 ++ fi ++ ++ $ECHO "\ ++ ++ # Usually 'no', except on cygwin/mingw when embedded into ++ # the cwrapper. ++ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 ++ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then ++ # special case for '.' ++ if test \"\$thisdir\" = \".\"; then ++ thisdir=\`pwd\` ++ fi ++ # remove .libs from thisdir ++ case \"\$thisdir\" in ++ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; ++ $objdir ) thisdir=. ;; ++ esac ++ fi + +- if test -n "$xrpath"; then +- $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 +- fi ++ # Try to get the absolute directory name. ++ absdir=\`cd \"\$thisdir\" && pwd\` ++ test -n \"\$absdir\" && thisdir=\"\$absdir\" ++" + +- if test -n "$vinfo"; then +- $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 +- fi ++ if test "$fast_install" = yes; then ++ $ECHO "\ ++ program=lt-'$outputname'$exeext ++ progdir=\"\$thisdir/$objdir\" + +- if test -n "$release"; then +- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 +- fi ++ if test ! -f \"\$progdir/\$program\" || ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ ++ test \"X\$file\" != \"X\$progdir/\$program\"; }; then + +- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then +- $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 +- fi ++ file=\"\$\$-\$program\" + +- # Now set the variables for building old libraries. +- build_libtool_libs=no +- oldlibs="$output" +- objs="$objs$old_deplibs" +- ;; ++ if test ! -d \"\$progdir\"; then ++ $MKDIR \"\$progdir\" ++ else ++ $RM \"\$progdir/\$file\" ++ fi" + +- 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 shared_ext=\"$shrext_cmds\" +- 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 $EXIT_FAILURE +- 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 shared_ext=\"$shrext_cmds\" +- eval libname=\"$libname_spec\" +- else +- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` +- fi +- ;; +- esac ++ $ECHO "\ + +- 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 $EXIT_FAILURE ++ # 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 +- $echo "*** Warning: Linking the shared library $output against the non-libtool" +- $echo "*** objects $objs is not portable!" +- libobjs="$libobjs $objs" ++ $ECHO "\ ++ program='$outputname' ++ progdir=\"\$thisdir/$objdir\" ++" + fi +- fi + +- if test "$dlself" != no; then +- $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 +- fi ++ $ECHO "\ + +- 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" ++ if test -f \"\$progdir/\$program\"; then" + +- oldlibs= +- if test -z "$rpath"; then +- if test "$build_libtool_libs" = yes; then +- # Building a libtool convenience library. +- # Some compilers have problems with a `.al' extension so +- # convenience libraries should have the same extension an +- # archive normally would. +- oldlibs="$output_objdir/$libname.$libext $oldlibs" +- build_libtool_libs=convenience +- build_old_libs=yes +- fi ++ # Export our shlibpath_var if we have one. ++ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then ++ $ECHO "\ ++ # 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/::*\$//'\` + +- if test -n "$vinfo"; then +- $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 ++ export $shlibpath_var ++" + fi + +- if test -n "$release"; then +- $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 ++ # fixup the dll searchpath if we need to. ++ if test -n "$dllsearchpath"; then ++ $ECHO "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" + fi +- else + +- # Parse the version information argument. +- save_ifs="$IFS"; IFS=':' +- set dummy $vinfo 0 0 0 +- IFS="$save_ifs" ++ $ECHO "\ ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ # Run the actual program with our arguments. ++" ++ case $host in ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2* | *-cegcc*) ++ $ECHO "\ ++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $ECHO "\ ++ exec \"\$progdir/\$program\" \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $ECHO "\ ++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ++ 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\ ++" ++} ++# end: func_emit_wrapper_part2 ++ + +- if test -n "$8"; then +- $echo "$modename: too many parameters to \`-version-info'" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE ++# func_emit_wrapper [arg=no] ++# ++# Emit a libtool wrapper script on stdout. ++# Don't directly open a file because we may want to ++# incorporate the script contents within a cygwin/mingw ++# wrapper executable. Must ONLY be called from within ++# func_mode_link because it depends on a number of variables ++# set therein. ++# ++# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR ++# variable will take. If 'yes', then the emitted script ++# will assume that the directory in which it is stored is ++# the $objdir directory. This is a cygwin/mingw-specific ++# behavior. ++func_emit_wrapper () ++{ ++ func_emit_wrapper_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_arg1=$1 + fi + +- # convert absolute version numbers to libtool ages +- # this retains compatibility with .la files and attempts +- # to make the code below a bit more comprehensible ++ # split this up so that func_emit_cwrapperexe_src ++ # can call each part independently. ++ func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" ++ func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" ++} + +- case $vinfo_number in +- yes) +- number_major="$2" +- number_minor="$3" +- number_revision="$4" +- # +- # There are really only two kinds -- those that +- # use the current revision as the major version +- # and those that subtract age and use age as +- # a minor version. But, then there is irix +- # which has an extra 1 added just for fun +- # +- case $version_type in +- darwin|linux|osf|windows|none) +- current=`expr $number_major + $number_minor` +- age="$number_minor" +- revision="$number_revision" +- ;; +- freebsd-aout|freebsd-elf|sunos) +- current="$number_major" +- revision="$number_minor" +- age="0" +- ;; +- irix|nonstopux) +- current=`expr $number_major + $number_minor` +- age="$number_minor" +- revision="$number_minor" +- lt_irix_increment=no +- ;; +- *) +- $echo "$modename: unknown library version type \`$version_type'" 1>&2 +- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 +- exit $EXIT_FAILURE +- ;; +- esac +- ;; +- no) +- current="$2" +- revision="$3" +- age="$4" +- ;; +- esac + +- # 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; +- *) +- $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 +- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +- exit $EXIT_FAILURE +- ;; +- esac ++# func_to_host_path arg ++# ++# Convert paths to host format when used with build tools. ++# Intended for use with "native" mingw (where libtool itself ++# is running under the msys shell), or in the following cross- ++# build environments: ++# $build $host ++# mingw (msys) mingw [e.g. native] ++# cygwin mingw ++# *nix + wine mingw ++# where wine is equipped with the `winepath' executable. ++# In the native mingw case, the (msys) shell automatically ++# converts paths for any non-msys applications it launches, ++# but that facility isn't available from inside the cwrapper. ++# Similar accommodations are necessary for $host mingw and ++# $build cygwin. Calling this function does no harm for other ++# $host/$build combinations not listed above. ++# ++# ARG is the path (on $build) that should be converted to ++# the proper representation for $host. The result is stored ++# in $func_to_host_path_result. ++func_to_host_path () ++{ ++ func_to_host_path_result="$1" ++ if test -n "$1" ; then ++ case $host in ++ *mingw* ) ++ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ case $build in ++ *mingw* ) # actually, msys ++ # awkward: cmd appends spaces to result ++ lt_sed_strip_trailing_spaces="s/[ ]*\$//" ++ func_to_host_path_tmp1=`( cmd //c echo "$1" |\ ++ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ *cygwin* ) ++ func_to_host_path_tmp1=`cygpath -w "$1"` ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ * ) ++ # Unfortunately, winepath does not exit with a non-zero ++ # error code, so we are forced to check the contents of ++ # stdout. On the other hand, if the command is not ++ # found, the shell will set an exit code of 127 and print ++ # *an error message* to stdout. So we must check for both ++ # error code of zero AND non-empty stdout, which explains ++ # the odd construction: ++ func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` ++ if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ else ++ # Allow warning below. ++ func_to_host_path_result="" ++ fi ++ ;; ++ esac ++ if test -z "$func_to_host_path_result" ; then ++ func_error "Could not determine host path corresponding to" ++ func_error " '$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback: ++ func_to_host_path_result="$1" ++ fi ++ ;; ++ esac ++ fi ++} ++# end: func_to_host_path + +- case $revision in +- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; +- *) +- $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 +- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +- exit $EXIT_FAILURE +- ;; +- esac ++# func_to_host_pathlist arg ++# ++# Convert pathlists to host format when used with build tools. ++# See func_to_host_path(), above. This function supports the ++# following $build/$host combinations (but does no harm for ++# combinations not listed here): ++# $build $host ++# mingw (msys) mingw [e.g. native] ++# cygwin mingw ++# *nix + wine mingw ++# ++# Path separators are also converted from $build format to ++# $host format. If ARG begins or ends with a path separator ++# character, it is preserved (but converted to $host format) ++# on output. ++# ++# ARG is a pathlist (on $build) that should be converted to ++# the proper representation on $host. The result is stored ++# in $func_to_host_pathlist_result. ++func_to_host_pathlist () ++{ ++ func_to_host_pathlist_result="$1" ++ if test -n "$1" ; then ++ case $host in ++ *mingw* ) ++ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ # Remove leading and trailing path separator characters from ++ # ARG. msys behavior is inconsistent here, cygpath turns them ++ # into '.;' and ';.', and winepath ignores them completely. ++ func_to_host_pathlist_tmp2="$1" ++ # Once set for this call, this variable should not be ++ # reassigned. It is used in tha fallback case. ++ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e 's|^:*||' -e 's|:*$||'` ++ case $build in ++ *mingw* ) # Actually, msys. ++ # Awkward: cmd appends spaces to result. ++ lt_sed_strip_trailing_spaces="s/[ ]*\$//" ++ func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ ++ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ *cygwin* ) ++ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ * ) ++ # unfortunately, winepath doesn't convert pathlists ++ func_to_host_pathlist_result="" ++ func_to_host_pathlist_oldIFS=$IFS ++ IFS=: ++ for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do ++ IFS=$func_to_host_pathlist_oldIFS ++ if test -n "$func_to_host_pathlist_f" ; then ++ func_to_host_path "$func_to_host_pathlist_f" ++ if test -n "$func_to_host_path_result" ; then ++ if test -z "$func_to_host_pathlist_result" ; then ++ func_to_host_pathlist_result="$func_to_host_path_result" ++ else ++ func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" ++ fi ++ fi ++ fi ++ IFS=: ++ done ++ IFS=$func_to_host_pathlist_oldIFS ++ ;; ++ esac ++ if test -z "$func_to_host_pathlist_result" ; then ++ func_error "Could not determine the host path(s) corresponding to" ++ func_error " '$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback. This may break if $1 contains DOS-style drive ++ # specifications. The fix is not to complicate the expression ++ # below, but for the user to provide a working wine installation ++ # with winepath so that path translation in the cross-to-mingw ++ # case works properly. ++ lt_replace_pathsep_nix_to_dos="s|:|;|g" ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ ++ $SED -e "$lt_replace_pathsep_nix_to_dos"` ++ fi ++ # Now, add the leading and trailing path separators back ++ case "$1" in ++ :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ++ ;; ++ esac ++ case "$1" in ++ *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ++ ;; ++ esac ++ ;; ++ esac ++ fi ++} ++# end: func_to_host_pathlist + +- case $age in +- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; +- *) +- $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 +- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +- exit $EXIT_FAILURE +- ;; +- esac ++# func_emit_cwrapperexe_src ++# emit the source code for a wrapper executable on stdout ++# Must ONLY be called from within func_mode_link because ++# it depends on a number of variable set therein. ++func_emit_cwrapperexe_src () ++{ ++ cat <&2 +- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +- exit $EXIT_FAILURE +- fi ++/* $cwrappersource - temporary wrapper executable for $objdir/$outputname ++ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION + +- # Calculate the version variables. +- major= +- versuffix= +- verstring= +- case $version_type in +- none) ;; ++ The $output program cannot be directly executed until all the libtool ++ libraries that it depends on are installed. + +- 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` +- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" +- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" +- ;; ++ This wrapper executable should never be moved out of the build directory. ++ If it is, it will not operate correctly. + +- freebsd-aout) +- major=".$current" +- versuffix=".$current.$revision"; +- ;; ++ Currently, it simply execs the wrapper *script* "$SHELL $output", ++ but could eventually absorb all of the scripts functionality and ++ exec $objdir/$outputname directly. ++*/ ++EOF ++ cat <<"EOF" ++#include ++#include ++#ifdef _MSC_VER ++# include ++# include ++# include ++# define setmode _setmode ++#else ++# include ++# include ++# ifdef __CYGWIN__ ++# include ++# define HAVE_SETENV ++# ifdef __STRICT_ANSI__ ++char *realpath (const char *, char *); ++int putenv (char *); ++int setenv (const char *, const char *, int); ++# endif ++# endif ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + +- freebsd-elf) +- major=".$current" +- versuffix=".$current"; +- ;; ++#if defined(PATH_MAX) ++# define LT_PATHMAX PATH_MAX ++#elif defined(MAXPATHLEN) ++# define LT_PATHMAX MAXPATHLEN ++#else ++# define LT_PATHMAX 1024 ++#endif + +- irix | nonstopux) +- if test "X$lt_irix_increment" = "Xno"; then +- major=`expr $current - $age` +- else +- major=`expr $current - $age + 1` +- fi +- case $version_type in +- nonstopux) verstring_prefix=nonstopux ;; +- *) verstring_prefix=sgi ;; +- esac +- verstring="$verstring_prefix$major.$revision" ++#ifndef S_IXOTH ++# define S_IXOTH 0 ++#endif ++#ifndef S_IXGRP ++# define S_IXGRP 0 ++#endif + +- # Add in all the interfaces that we are compatible with. +- loop=$revision +- while test "$loop" -ne 0; do +- iface=`expr $revision - $loop` +- loop=`expr $loop - 1` +- verstring="$verstring_prefix$major.$iface:$verstring" +- done ++#ifdef _MSC_VER ++# define S_IXUSR _S_IEXEC ++# define stat _stat ++# ifndef _INTPTR_T_DEFINED ++# define intptr_t int ++# endif ++#endif + +- # Before this point, $major must not contain `.'. +- major=.$major +- versuffix="$major.$revision" +- ;; ++#ifndef DIR_SEPARATOR ++# define DIR_SEPARATOR '/' ++# define PATH_SEPARATOR ':' ++#endif + +- linux) +- major=.`expr $current - $age` +- versuffix="$major.$age.$revision" +- ;; ++#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ ++ defined (__OS2__) ++# define HAVE_DOS_BASED_FILE_SYSTEM ++# define FOPEN_WB "wb" ++# ifndef DIR_SEPARATOR_2 ++# define DIR_SEPARATOR_2 '\\' ++# endif ++# ifndef PATH_SEPARATOR_2 ++# define PATH_SEPARATOR_2 ';' ++# endif ++#endif + +- osf) +- major=.`expr $current - $age` +- versuffix=".$current.$age.$revision" +- verstring="$current.$age.$revision" ++#ifndef DIR_SEPARATOR_2 ++# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) ++#else /* DIR_SEPARATOR_2 */ ++# define IS_DIR_SEPARATOR(ch) \ ++ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) ++#endif /* DIR_SEPARATOR_2 */ + +- # Add in all the interfaces that we are compatible with. +- loop=$age +- while test "$loop" -ne 0; do +- iface=`expr $current - $loop` +- loop=`expr $loop - 1` +- verstring="$verstring:${iface}.0" +- done ++#ifndef PATH_SEPARATOR_2 ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) ++#else /* PATH_SEPARATOR_2 */ ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) ++#endif /* PATH_SEPARATOR_2 */ + +- # Make executables depend on our current version. +- verstring="$verstring:${current}.0" +- ;; ++#ifdef __CYGWIN__ ++# define FOPEN_WB "wb" ++#endif + +- sunos) +- major=".$current" +- versuffix=".$current.$revision" +- ;; ++#ifndef FOPEN_WB ++# define FOPEN_WB "w" ++#endif ++#ifndef _O_BINARY ++# define _O_BINARY 0 ++#endif + +- windows) +- # Use '-' rather than '.', since we only want one +- # extension on DOS 8.3 filesystems. +- major=`expr $current - $age` +- versuffix="-$major" +- ;; ++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ++#define XFREE(stale) do { \ ++ if (stale) { free ((void *) stale); stale = 0; } \ ++} while (0) + +- *) +- $echo "$modename: unknown library version type \`$version_type'" 1>&2 +- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 +- exit $EXIT_FAILURE +- ;; +- esac ++#undef LTWRAPPER_DEBUGPRINTF ++#if defined DEBUGWRAPPER ++# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args ++static void ++ltwrapper_debugprintf (const char *fmt, ...) ++{ ++ va_list args; ++ va_start (args, fmt); ++ (void) vfprintf (stderr, fmt, args); ++ va_end (args); ++} ++#else ++# define LTWRAPPER_DEBUGPRINTF(args) ++#endif + +- # Clear the version info if we defaulted, and they specified a release. +- if test -z "$vinfo" && test -n "$release"; then +- major= +- 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 ++const char *program_name = NULL; + +- # Remove version info from name if versioning should be avoided +- if test "$avoid_version" = yes && test "$need_version" = no; then +- major= +- versuffix= +- verstring="" +- fi ++void *xmalloc (size_t num); ++char *xstrdup (const char *string); ++const char *base_name (const char *name); ++char *find_executable (const char *wrapper); ++char *chase_symlinks (const char *pathspec); ++int make_executable (const char *path); ++int check_executable (const char *path); ++char *strendzap (char *str, const char *pat); ++void lt_fatal (const char *message, ...); ++void lt_setenv (const char *name, const char *value); ++char *lt_extend_str (const char *orig_value, const char *add, int to_end); ++void lt_opt_process_env_set (const char *arg); ++void lt_opt_process_env_prepend (const char *arg); ++void lt_opt_process_env_append (const char *arg); ++int lt_split_name_value (const char *arg, char** name, char** value); ++void lt_update_exe_path (const char *name, const char *value); ++void lt_update_lib_path (const char *name, const char *value); + +- # 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 ++static const char *script_text_part1 = ++EOF + +- if test "$mode" != relink; then +- # Remove our outputs, but don't remove object files since they +- # may have been created when compiling PIC objects. +- removelist= +- tempremovelist=`$echo "$output_objdir/*"` +- for p in $tempremovelist; do +- case $p in +- *.$objext) +- ;; +- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) +- if test "X$precious_files_regex" != "X"; then +- if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 +- then +- continue +- fi +- fi +- removelist="$removelist $p" +- ;; +- *) ;; +- esac +- done +- if test -n "$removelist"; then +- $show "${rm}r $removelist" +- $run ${rm}r $removelist +- fi +- fi ++ func_emit_wrapper_part1 yes | ++ $SED -e 's/\([\\"]\)/\\\1/g' \ ++ -e 's/^/ "/' -e 's/$/\\n"/' ++ echo ";" ++ cat <"))); ++ for (i = 0; i < newargc; i++) ++ { ++ LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); ++ } + +- # 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 behavior. +- 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 </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 +- fi +- 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 +- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then +- case " $predeps $postdeps " in +- *" $a_deplib "*) +- newdeplibs="$newdeplibs $a_deplib" +- a_deplib="" +- ;; +- esac +- fi +- if test -n "$a_deplib" ; 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 above 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 +- fi +- 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="" +- tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ +- -e 's/ -[LR][^ ]*//g'` +- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then +- for i in $predeps $postdeps ; do +- # can't use Xsed below, because $i might contain '/' +- tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` +- done +- fi +- if $echo "X $tmp_deplibs" | $Xsed -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 ++ case $host_os in ++ mingw*) ++ cat <<"EOF" ++ /* execv doesn't actually work on mingw as expected on unix */ ++ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); ++ if (rval == -1) ++ { ++ /* failed to start process */ ++ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); ++ return 127; ++ } ++ return rval; ++EOF ++ ;; ++ *) ++ cat <<"EOF" ++ execv (lt_argv_zero, newargz); ++ return rval; /* =127, but avoids unused variable warning */ ++EOF ++ ;; ++ 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." ++ cat <<"EOF" ++} + +- 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 ++void * ++xmalloc (size_t num) ++{ ++ void *p = (void *) malloc (num); ++ if (!p) ++ lt_fatal ("Memory exhausted"); + ++ return p; ++} + +- # move library search paths that coincide with paths to not yet +- # installed libraries to the beginning of the library search list +- new_libs= +- for path in $notinst_path; do +- case " $new_libs " in +- *" -L$path/$objdir "*) ;; +- *) +- case " $deplibs " in +- *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; +- esac +- ;; +- esac +- done +- for deplib in $deplibs; do +- case $deplib in +- -L*) +- case " $new_libs " in +- *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; +- esac +- ;; +- *) new_libs="$new_libs $deplib" ;; +- esac +- done +- deplibs="$new_libs" ++char * ++xstrdup (const char *string) ++{ ++ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), ++ string) : NULL; ++} + ++const char * ++base_name (const char *name) ++{ ++ const char *base; + +- # All the library-specific variables (install_libdir is set above). +- library_names= +- old_library= +- dlname= ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM) ++ /* Skip over the disk name in MSDOS pathnames. */ ++ if (isalpha ((unsigned char) name[0]) && name[1] == ':') ++ name += 2; ++#endif + +- # 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" +- if test -n "$hardcode_libdir_flag_spec_ld"; then +- case $archive_cmds in +- *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; +- *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; +- esac +- else +- eval dep_rpath=\"$hardcode_libdir_flag_spec\" +- fi +- 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 ++ for (base = name; *name; name++) ++ if (IS_DIR_SEPARATOR (*name)) ++ base = name + 1; ++ return base; ++} + +- 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 ++int ++check_executable (const char *path) ++{ ++ struct stat st; + +- # Get the real and link names of the library. +- eval shared_ext=\"$shrext_cmds\" +- eval library_names=\"$library_names_spec\" +- set dummy $library_names +- realname="$2" +- shift; shift ++ LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", ++ path ? (*path ? path : "EMPTY!") : "NULL!")); ++ if ((!path) || (!*path)) ++ return 0; + +- if test -n "$soname_spec"; then +- eval soname=\"$soname_spec\" +- else +- soname="$realname" +- fi +- if test -z "$dlname"; then +- dlname=$soname +- fi ++ if ((stat (path, &st) >= 0) ++ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) ++ return 1; ++ else ++ return 0; ++} + +- lib="$output_objdir/$realname" +- linknames= +- for link +- do +- linknames="$linknames $link" +- done ++int ++make_executable (const char *path) ++{ ++ int rval = 0; ++ struct stat st; + +- # Use standard objects if they are pic +- test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", ++ path ? (*path ? path : "EMPTY!") : "NULL!")); ++ if ((!path) || (!*path)) ++ return 0; + +- # 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 +- cmds=$export_symbols_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- if len=`expr "X$cmd" : ".*"` && +- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then +- $show "$cmd" +- $run eval "$cmd" || exit $? +- skipped_export=false +- else +- # The command line is too long to execute in one step. +- $show "using reloadable object file for export list..." +- skipped_export=: +- # Break out early, otherwise skipped_export may be +- # set to false by a later but shorter cmd. +- break +- fi +- 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 (stat (path, &st) >= 0) ++ { ++ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); ++ } ++ return rval; ++} + +- if test -n "$export_symbols" && test -n "$include_expsyms"; then +- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' +- fi ++/* Searches for the full path of the wrapper. Returns ++ newly allocated full path name if found, NULL otherwise ++ Does not chase symlinks, even on platforms that support them. ++*/ ++char * ++find_executable (const char *wrapper) ++{ ++ int has_slash = 0; ++ const char *p; ++ const char *p_next; ++ /* static buffer for getcwd */ ++ char tmp[LT_PATHMAX + 1]; ++ int tmp_len; ++ char *concat_name; + +- tmp_deplibs= +- for test_deplib in $deplibs; do +- case " $convenience " in +- *" $test_deplib "*) ;; +- *) +- tmp_deplibs="$tmp_deplibs $test_deplib" +- ;; +- esac +- done +- deplibs="$tmp_deplibs" ++ LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", ++ wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + +- if test -n "$convenience"; then +- if test -n "$whole_archive_flag_spec"; then +- save_libobjs=$libobjs +- eval libobjs=\"\$libobjs $whole_archive_flag_spec\" +- else +- gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ if ((wrapper == NULL) || (*wrapper == '\0')) ++ return NULL; + +- func_extract_archives $gentop $convenience +- libobjs="$libobjs $func_extract_archives_result" +- 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 ++ /* Absolute path? */ ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM) ++ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') ++ { ++ concat_name = xstrdup (wrapper); ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++ else ++ { ++#endif ++ if (IS_DIR_SEPARATOR (wrapper[0])) ++ { ++ concat_name = xstrdup (wrapper); ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM) ++ } ++#endif + +- # 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 ++ for (p = wrapper; *p; p++) ++ if (*p == '/') ++ { ++ has_slash = 1; ++ break; ++ } ++ if (!has_slash) ++ { ++ /* no slashes; search PATH */ ++ const char *path = getenv ("PATH"); ++ if (path != NULL) ++ { ++ for (p = path; *p; p = p_next) ++ { ++ const char *q; ++ size_t p_len; ++ for (q = p; *q; q++) ++ if (IS_PATH_SEPARATOR (*q)) ++ break; ++ p_len = q - p; ++ p_next = (*q == '\0' ? q : q + 1); ++ if (p_len == 0) ++ { ++ /* empty path: current directory */ ++ if (getcwd (tmp, LT_PATHMAX) == NULL) ++ lt_fatal ("getcwd failed"); ++ tmp_len = strlen (tmp); ++ concat_name = ++ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, tmp, tmp_len); ++ concat_name[tmp_len] = '/'; ++ strcpy (concat_name + tmp_len + 1, wrapper); ++ } ++ else ++ { ++ concat_name = ++ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, p, p_len); ++ concat_name[p_len] = '/'; ++ strcpy (concat_name + p_len + 1, wrapper); ++ } ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++ } ++ /* not found in PATH; assume curdir */ ++ } ++ /* Relative path | not found in path: prepend cwd */ ++ if (getcwd (tmp, LT_PATHMAX) == NULL) ++ lt_fatal ("getcwd failed"); ++ tmp_len = strlen (tmp); ++ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, tmp, tmp_len); ++ concat_name[tmp_len] = '/'; ++ strcpy (concat_name + tmp_len + 1, wrapper); + +- # Do each of the archive commands. +- if test "$module" = yes && test -n "$module_cmds" ; then +- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then +- eval test_cmds=\"$module_expsym_cmds\" +- cmds=$module_expsym_cmds +- else +- eval test_cmds=\"$module_cmds\" +- cmds=$module_cmds +- fi +- else +- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then +- eval test_cmds=\"$archive_expsym_cmds\" +- cmds=$archive_expsym_cmds +- else +- eval test_cmds=\"$archive_cmds\" +- cmds=$archive_cmds +- fi +- fi ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ return NULL; ++} + +- if test "X$skipped_export" != "X:" && +- len=`expr "X$test_cmds" : ".*" 2>/dev/null` && +- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then +- : +- else +- # The command line is too long to link in one step, link piecewise. +- $echo "creating reloadable object files..." ++char * ++chase_symlinks (const char *pathspec) ++{ ++#ifndef S_ISLNK ++ return xstrdup (pathspec); ++#else ++ char buf[LT_PATHMAX]; ++ struct stat s; ++ char *tmp_pathspec = xstrdup (pathspec); ++ char *p; ++ int has_symlinks = 0; ++ while (strlen (tmp_pathspec) && !has_symlinks) ++ { ++ LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", ++ tmp_pathspec)); ++ if (lstat (tmp_pathspec, &s) == 0) ++ { ++ if (S_ISLNK (s.st_mode) != 0) ++ { ++ has_symlinks = 1; ++ break; ++ } + +- # Save the value of $output and $libobjs because we want to +- # use them later. If we have whole_archive_flag_spec, we +- # want to use save_libobjs as it was before +- # whole_archive_flag_spec was expanded, because we can't +- # assume the linker understands whole_archive_flag_spec. +- # This may have to be revisited, in case too many +- # convenience libraries get linked in and end up exceeding +- # the spec. +- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then +- save_libobjs=$libobjs +- fi +- save_output=$output +- output_la=`$echo "X$output" | $Xsed -e "$basename"` ++ /* search backwards for last DIR_SEPARATOR */ ++ p = tmp_pathspec + strlen (tmp_pathspec) - 1; ++ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) ++ p--; ++ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) ++ { ++ /* no more DIR_SEPARATORS left */ ++ break; ++ } ++ *p = '\0'; ++ } ++ else ++ { ++ char *errstr = strerror (errno); ++ lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); ++ } ++ } ++ XFREE (tmp_pathspec); + +- # Clear the reloadable object creation command queue and +- # initialize k to one. +- test_cmds= +- concat_cmds= +- objlist= +- delfiles= +- last_robj= +- k=1 +- output=$output_objdir/$output_la-${k}.$objext +- # Loop over the list of objects to be linked. +- for obj in $save_libobjs +- do +- eval test_cmds=\"$reload_cmds $objlist $last_robj\" +- if test "X$objlist" = X || +- { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && +- test "$len" -le "$max_cmd_len"; }; then +- objlist="$objlist $obj" +- else +- # The command $test_cmds is almost too long, add a +- # command to the queue. +- if test "$k" -eq 1 ; then +- # The first file doesn't have a previous command to add. +- eval concat_cmds=\"$reload_cmds $objlist $last_robj\" +- else +- # All subsequent reloadable object files will link in +- # the last one created. +- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" +- fi +- last_robj=$output_objdir/$output_la-${k}.$objext +- k=`expr $k + 1` +- output=$output_objdir/$output_la-${k}.$objext +- objlist=$obj +- len=1 +- fi +- done +- # Handle the remaining objects by creating one last +- # reloadable object file. All subsequent reloadable object +- # files will link in the last one created. +- test -z "$concat_cmds" || concat_cmds=$concat_cmds~ +- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" ++ if (!has_symlinks) ++ { ++ return xstrdup (pathspec); ++ } + +- if ${skipped_export-false}; then +- $show "generating symbol list for \`$libname.la'" +- export_symbols="$output_objdir/$libname.exp" +- $run $rm $export_symbols +- libobjs=$output +- # Append the command to create the export file. +- eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" +- fi +- +- # Set up a command to remove the reloadable object files +- # after they are used. +- i=0 +- while test "$i" -lt "$k" +- do +- i=`expr $i + 1` +- delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" +- done ++ tmp_pathspec = realpath (pathspec, buf); ++ if (tmp_pathspec == 0) ++ { ++ lt_fatal ("Could not follow symlinks for %s", pathspec); ++ } ++ return xstrdup (tmp_pathspec); ++#endif ++} + +- $echo "creating a temporary reloadable object file: $output" ++char * ++strendzap (char *str, const char *pat) ++{ ++ size_t len, patlen; + +- # Loop through the commands generated above and execute them. +- save_ifs="$IFS"; IFS='~' +- for cmd in $concat_cmds; do +- IFS="$save_ifs" +- $show "$cmd" +- $run eval "$cmd" || exit $? +- done +- IFS="$save_ifs" ++ assert (str != NULL); ++ assert (pat != NULL); + +- libobjs=$output +- # Restore the value of output. +- output=$save_output ++ len = strlen (str); ++ patlen = strlen (pat); + +- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then +- eval libobjs=\"\$libobjs $whole_archive_flag_spec\" +- fi +- # Expand the library linking commands again to reset the +- # value of $libobjs for piecewise linking. ++ if (patlen <= len) ++ { ++ str += len - patlen; ++ if (strcmp (str, pat) == 0) ++ *str = '\0'; ++ } ++ return str; ++} + +- # Do each of the archive commands. +- if test "$module" = yes && test -n "$module_cmds" ; then +- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then +- cmds=$module_expsym_cmds +- else +- cmds=$module_cmds +- fi +- else +- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then +- cmds=$archive_expsym_cmds +- else +- cmds=$archive_cmds +- fi +- fi ++static void ++lt_error_core (int exit_status, const char *mode, ++ const char *message, va_list ap) ++{ ++ fprintf (stderr, "%s: %s: ", program_name, mode); ++ vfprintf (stderr, message, ap); ++ fprintf (stderr, ".\n"); + +- # Append the command to remove the reloadable object files +- # to the just-reset $cmds. +- eval cmds=\"\$cmds~\$rm $delfiles\" +- fi +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" || { +- lt_exit=$? ++ if (exit_status >= 0) ++ exit (exit_status); ++} + +- # Restore the uninstalled library and exit +- if test "$mode" = relink; then +- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' +- fi ++void ++lt_fatal (const char *message, ...) ++{ ++ va_list ap; ++ va_start (ap, message); ++ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); ++ va_end (ap); ++} + +- exit $lt_exit +- } +- done +- IFS="$save_ifs" ++void ++lt_setenv (const char *name, const char *value) ++{ ++ LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", ++ (name ? name : ""), ++ (value ? value : ""))); ++ { ++#ifdef HAVE_SETENV ++ /* always make a copy, for consistency with !HAVE_SETENV */ ++ char *str = xstrdup (value); ++ setenv (name, str, 1); ++#else ++ int len = strlen (name) + 1 + strlen (value) + 1; ++ char *str = XMALLOC (char, len); ++ sprintf (str, "%s=%s", name, value); ++ if (putenv (str) != EXIT_SUCCESS) ++ { ++ XFREE (str); ++ } ++#endif ++ } ++} + +- # 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 $? ++char * ++lt_extend_str (const char *orig_value, const char *add, int to_end) ++{ ++ char *new_value; ++ if (orig_value && *orig_value) ++ { ++ int orig_value_len = strlen (orig_value); ++ int add_len = strlen (add); ++ new_value = XMALLOC (char, add_len + orig_value_len + 1); ++ if (to_end) ++ { ++ strcpy (new_value, orig_value); ++ strcpy (new_value + orig_value_len, add); ++ } ++ else ++ { ++ strcpy (new_value, add); ++ strcpy (new_value + add_len, orig_value); ++ } ++ } ++ else ++ { ++ new_value = xstrdup (add); ++ } ++ return new_value; ++} + +- if test -n "$convenience"; then +- if test -z "$whole_archive_flag_spec"; then +- $show "${rm}r $gentop" +- $run ${rm}r "$gentop" +- fi +- fi ++int ++lt_split_name_value (const char *arg, char** name, char** value) ++{ ++ const char *p; ++ int len; ++ if (!arg || !*arg) ++ return 1; + +- exit $EXIT_SUCCESS +- fi ++ p = strchr (arg, (int)'='); + +- # 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 +- ;; ++ if (!p) ++ return 1; + +- obj) +- case " $deplibs" in +- *\ -l* | *\ -L*) +- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; +- esac ++ *value = xstrdup (++p); + +- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then +- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 +- fi ++ len = strlen (arg) - strlen (*value); ++ *name = XMALLOC (char, len); ++ strncpy (*name, arg, len-1); ++ (*name)[len - 1] = '\0'; + +- if test -n "$rpath"; then +- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 +- fi ++ return 0; ++} + +- if test -n "$xrpath"; then +- $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 +- fi ++void ++lt_opt_process_env_set (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; + +- if test -n "$vinfo"; then +- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 +- fi ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); ++ } + +- if test -n "$release"; then +- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 +- fi ++ lt_setenv (name, value); ++ XFREE (name); ++ XFREE (value); ++} + +- 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 $EXIT_FAILURE +- fi +- libobj="$output" +- obj=`$echo "X$output" | $Xsed -e "$lo2o"` +- ;; +- *) +- libobj= +- obj="$output" +- ;; +- esac ++void ++lt_opt_process_env_prepend (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ char *new_value = NULL; + +- # Delete the old objects. +- $run $rm $obj $libobj ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); ++ } + +- # 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 and hope we can get by with +- # turning comma into space.. +- wl= ++ new_value = lt_extend_str (getenv (name), value, 0); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ XFREE (name); ++ XFREE (value); ++} + +- if test -n "$convenience"; then +- if test -n "$whole_archive_flag_spec"; then +- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" +- reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` +- else +- gentop="$output_objdir/${obj}x" +- generated="$generated $gentop" ++void ++lt_opt_process_env_append (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ char *new_value = NULL; + +- func_extract_archives $gentop $convenience +- reload_conv_objs="$reload_objs $func_extract_archives_result" +- fi +- fi ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); ++ } + +- # 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 ++ new_value = lt_extend_str (getenv (name), value, 1); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ XFREE (name); ++ XFREE (value); ++} + +- output="$obj" +- cmds=$reload_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" || exit $? +- done +- IFS="$save_ifs" ++void ++lt_update_exe_path (const char *name, const char *value) ++{ ++ LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ++ (name ? name : ""), ++ (value ? value : ""))); + +- # 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 ++ if (name && *name && value && *value) ++ { ++ char *new_value = lt_extend_str (getenv (name), value, 0); ++ /* some systems can't cope with a ':'-terminated path #' */ ++ int len = strlen (new_value); ++ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) ++ { ++ new_value[len-1] = '\0'; ++ } ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ } ++} + +- exit $EXIT_SUCCESS +- fi ++void ++lt_update_lib_path (const char *name, const char *value) ++{ ++ LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ++ (name ? name : ""), ++ (value ? value : ""))); + +- if test "$build_libtool_libs" != yes; then +- if test -n "$gentop"; then +- $show "${rm}r $gentop" +- $run ${rm}r $gentop +- fi ++ if (name && *name && value && *value) ++ { ++ char *new_value = lt_extend_str (getenv (name), value, 0); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ } ++} + +- # 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 $EXIT_SUCCESS +- 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" +- cmds=$reload_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" || exit $? +- done +- IFS="$save_ifs" +- fi ++EOF ++} ++# end: func_emit_cwrapperexe_src + +- if test -n "$gentop"; then +- $show "${rm}r $gentop" +- $run ${rm}r $gentop +- fi ++# func_mode_link arg... ++func_mode_link () ++{ ++ $opt_debug ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ # 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 invocation. ++ # allow_undefined=no + +- exit $EXIT_SUCCESS ++ # 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 ++ base_compile="$nonopt $@" ++ compile_command=$nonopt ++ finalize_command=$nonopt + +- 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 ++ compile_rpath= ++ finalize_rpath= ++ compile_shlibpath= ++ finalize_shlibpath= ++ convenience= ++ old_convenience= ++ deplibs= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= ++ new_inherited_linker_flags= + +- 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 ++ avoid_version=no ++ dlfiles= ++ dlprefiles= ++ dlself=no ++ export_dynamic=no ++ export_symbols= ++ export_symbols_regex= ++ generated= ++ libobjs= ++ ltlibs= ++ module=no ++ no_install=no ++ objs= ++ non_pic_objects= ++ precious_files_regex= ++ prefer_static_libs=no ++ preload=no ++ prev= ++ prevarg= ++ release= ++ rpath= ++ xrpath= ++ perm_rpath= ++ temp_rpath= ++ thread_safe=no ++ vinfo= ++ vinfo_number=no ++ weak_libs= ++ single_module="${wl}-single_module" ++ func_infer_tag $base_compile + +- 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 /'` ++ # We need to know -static, to get the right output filenames. ++ for arg ++ do ++ case $arg in ++ -shared) ++ test "$build_libtool_libs" != yes && \ ++ func_fatal_configuration "can not build a shared library" ++ build_old_libs=no ++ break ++ ;; ++ -all-static | -static | -static-libtool-libs) ++ case $arg in ++ -all-static) ++ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then ++ func_warning "complete static linking is impossible in this configuration" ++ fi ++ if test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=yes ++ ;; ++ -static) ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=built ++ ;; ++ -static-libtool-libs) ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=yes ++ ;; ++ esac ++ build_libtool_libs=no ++ build_old_libs=yes ++ break + ;; + esac ++ done + +- case $host in +- *darwin*) +- # Don't allow lazy linking, it breaks C++ global constructors +- if test "$tagname" = CXX ; then +- compile_command="$compile_command ${wl}-bind_at_load" +- finalize_command="$finalize_command ${wl}-bind_at_load" +- fi +- ;; +- esac ++ # 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 ++ func_quote_for_eval "$arg" ++ qarg=$func_quote_for_eval_unquoted_result ++ func_append libtool_args " $func_quote_for_eval_result" + +- # move library search paths that coincide with paths to not yet +- # installed libraries to the beginning of the library search list +- new_libs= +- for path in $notinst_path; do +- case " $new_libs " in +- *" -L$path/$objdir "*) ;; +- *) +- case " $compile_deplibs " in +- *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; +- esac +- ;; +- esac +- done +- for deplib in $compile_deplibs; do +- case $deplib in +- -L*) +- case " $new_libs " in +- *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; +- esac ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ output) ++ func_append compile_command " @OUTPUT@" ++ func_append finalize_command " @OUTPUT@" + ;; +- *) new_libs="$new_libs $deplib" ;; + esac +- done +- compile_deplibs="$new_libs" +- + +- 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" ++ case $prev in ++ dlfiles|dlprefiles) ++ if test "$preload" = no; then ++ # Add the symbol object into the linking commands. ++ func_append compile_command " @SYMFILE@" ++ func_append 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 +- # 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 ++ dlself=needless ++ export_dynamic=yes + 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*) +- testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` +- case :$dllsearchpath: in +- *":$libdir:"*) ;; +- *) dllsearchpath="$dllsearchpath:$libdir";; +- esac +- case :$dllsearchpath: in +- *":$testbindir:"*) ;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; ++ prev= ++ continue ++ ;; ++ *) ++ if test "$prev" = dlfiles; then ++ dlfiles="$dlfiles $arg" ++ else ++ dlprefiles="$dlprefiles $arg" ++ fi ++ prev= ++ continue ++ ;; + 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" +- ;; ++ expsyms) ++ export_symbols="$arg" ++ test -f "$arg" \ ++ || func_fatal_error "symbol file \`$arg' does not exist" ++ prev= ++ continue ++ ;; ++ expsyms_regex) ++ export_symbols_regex="$arg" ++ prev= ++ continue ++ ;; ++ framework) ++ case $host in ++ *-*-darwin*) ++ case "$deplibs " in ++ *" $qarg.ltframework "*) ;; ++ *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ++ ;; + 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 ++ prev= ++ continue ++ ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; ++ objectlist) ++ if test -f "$arg"; then ++ save_arg=$arg ++ moreargs= ++ for fil in `cat "$save_arg"` ++ do ++# moreargs="$moreargs $fil" ++ arg=$fil ++ # A libtool-controlled object. + +- 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 ++ # Check to see that this really is a libtool object. ++ if func_lalib_unsafe_p "$arg"; then ++ pic_object= ++ non_pic_object= + +- if test -n "$dlsyms"; then +- case $dlsyms in +- "") ;; +- *.c) +- # Discover the nlist of each of the dlfiles. +- nlist="$output_objdir/${outputname}.nm" ++ # Read the .lo file ++ func_source "$arg" + +- $show "$rm $nlist ${nlist}S ${nlist}T" +- $run $rm "$nlist" "${nlist}S" "${nlist}T" ++ if test -z "$pic_object" || ++ test -z "$non_pic_object" || ++ test "$pic_object" = none && ++ test "$non_pic_object" = none; then ++ func_fatal_error "cannot find name of object for \`$arg'" ++ fi + +- # Parse the name list into a source file. +- $show "creating $output_objdir/$dlsyms" ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" + +- test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ ++ if test "$pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ pic_object="$xdir$pic_object" + +-#ifdef __cplusplus +-extern \"C\" { +-#endif ++ if test "$prev" = dlfiles; then ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $pic_object" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi + +-/* Prevent the only kind of declaration conflicts we can make. */ +-#define lt_preloaded_symbols some_other_symbol ++ # CHECK ME: I think I busted this. -Ossama ++ if test "$prev" = dlprefiles; then ++ # Preload the old-style object. ++ dlprefiles="$dlprefiles $pic_object" ++ prev= ++ fi + +-/* External symbol declarations for the compiler. */\ +-" ++ # A PIC object. ++ func_append libobjs " $pic_object" ++ arg="$pic_object" ++ fi + +- if test "$dlself" = yes; then +- $show "generating symbol list for \`$output'" ++ # Non-PIC object. ++ if test "$non_pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ non_pic_object="$xdir$non_pic_object" + +- test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" ++ # A standard non-PIC object ++ func_append non_pic_objects " $non_pic_object" ++ if test -z "$pic_object" || test "$pic_object" = none ; then ++ arg="$non_pic_object" ++ fi ++ else ++ # If the PIC object exists, use it instead. ++ # $xdir was prepended to $pic_object above. ++ non_pic_object="$pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ fi ++ else ++ # Only an error if not doing a dry-run. ++ if $opt_dry_run; then ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" + +- # 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'" ++ func_lo2o "$arg" ++ pic_object=$xdir$objdir/$func_lo2o_result ++ non_pic_object=$xdir$func_lo2o_result ++ func_append libobjs " $pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ else ++ func_fatal_error "\`$arg' is not a valid libtool object" ++ fi ++ fi + 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/$outputname.exp" +- $run $rm $export_symbols +- $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' +- case $host in +- *cygwin* | *mingw* ) +- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' +- $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' +- ;; +- esac +- else +- $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' +- $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' +- $run eval 'mv "$nlist"T "$nlist"' +- case $host in +- *cygwin* | *mingw* ) +- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' +- $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' +- ;; +- esac +- fi ++ else ++ func_fatal_error "link input file \`$arg' does not exist" + 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" | +- if sort -k 3 /dev/null 2>&1; then +- sort -k 3 +- else +- sort +2 +- fi | +- 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. */ +-" +- +- case $host in +- *cygwin* | *mingw* ) +- $echo >> "$output_objdir/$dlsyms" "\ +-/* DATA imports from DLLs on WIN32 can't be const, because +- runtime relocations are performed -- see ld's documentation +- on pseudo-relocs */ +-struct { +-" +- ;; +- * ) +- $echo >> "$output_objdir/$dlsyms" "\ +-const struct { +-" +- ;; +- esac +- +- +- $echo >> "$output_objdir/$dlsyms" "\ +- 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 -DFREEBSD_WORKAROUND";; +- esac;; +- *-*-hpux*) +- case "$compile_command " in +- *" -static "*) ;; +- *) pic_flag_for_symtable=" $pic_flag";; +- esac ++ arg=$save_arg ++ prev= ++ continue ++ ;; ++ precious_regex) ++ precious_files_regex="$arg" ++ prev= ++ continue ++ ;; ++ release) ++ release="-$arg" ++ prev= ++ continue ++ ;; ++ rpath | xrpath) ++ # We need an absolute path. ++ case $arg in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ func_fatal_error "only absolute run-paths are allowed" ++ ;; + esac +- +- # Now compile the dynamic symbol file. +- $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" +- $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -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. +- case $host in +- *cygwin* | *mingw* ) +- if test -f "$output_objdir/${outputname}.def" ; then +- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` +- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` +- else +- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` +- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` +- fi +- ;; +- * ) +- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` +- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` +- ;; +- 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 ++ ;; ++ shrext) ++ shrext_cmds="$arg" ++ prev= ++ continue ++ ;; ++ weak) ++ weak_libs="$weak_libs $arg" ++ prev= ++ continue ++ ;; ++ xcclinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ func_append compile_command " $qarg" ++ func_append finalize_command " $qarg" ++ continue ++ ;; ++ xcompiler) ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ func_append compile_command " $qarg" ++ func_append finalize_command " $qarg" ++ continue ++ ;; ++ xlinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" ++ prev= ++ func_append compile_command " $wl$qarg" ++ func_append finalize_command " $wl$qarg" ++ continue + ;; + *) +- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 +- exit $EXIT_FAILURE ++ eval "$prev=\"\$arg\"" ++ prev= ++ continue + ;; + 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" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` +- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` +- fi +- +- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then +- # Replace the output file specification. +- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` +- link_command="$compile_command$compile_rpath" ++ fi # test -n "$prev" + +- # We have no uninstalled library dependencies, so finalize right now. +- $show "$link_command" +- $run eval "$link_command" +- exit_status=$? ++ prevarg="$arg" + +- # Delete the generated files. +- if test -n "$dlsyms"; then +- $show "$rm $output_objdir/${outputname}S.${objext}" +- $run $rm "$output_objdir/${outputname}S.${objext}" ++ case $arg in ++ -all-static) ++ if test -n "$link_static_flag"; then ++ # See comment for -static flag below, for more details. ++ func_append compile_command " $link_static_flag" ++ func_append finalize_command " $link_static_flag" + fi ++ continue ++ ;; + +- exit $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 ++ -allow-undefined) ++ # FIXME: remove this flag sometime in the future. ++ func_fatal_error "\`-allow-undefined' must not be used because it is the default" ++ ;; + +- 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 ++ -avoid-version) ++ avoid_version=yes ++ continue ++ ;; + +- 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 ++ -dlopen) ++ prev=dlfiles ++ continue ++ ;; + +- 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 $EXIT_SUCCESS +- fi ++ -dlpreopen) ++ prev=dlprefiles ++ continue ++ ;; + +- 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" ++ -export-dynamic) ++ export_dynamic=yes ++ continue ++ ;; + +- $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" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` +- else +- # fast_install is set to needless +- relink_command= +- fi ++ -export-symbols | -export-symbols-regex) ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ func_fatal_error "more than one -exported-symbols argument is not allowed" ++ fi ++ if test "X$arg" = "X-export-symbols"; then ++ prev=expsyms + else +- link_command="$compile_var$compile_command$compile_rpath" +- relink_command="$finalize_var$finalize_command$finalize_rpath" ++ prev=expsyms_regex + fi +- fi +- +- # Replace the output file specification. +- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ continue ++ ;; + +- # Delete the old output files. +- $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname ++ -framework) ++ prev=framework ++ continue ++ ;; + +- $show "$link_command" +- $run eval "$link_command" || exit $? ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; + +- # Now create the wrapper script. +- $show "creating $output" ++ # 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* | /*-*-irix*) ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ ;; ++ esac ++ continue ++ ;; + +- # 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" ++ -L*) ++ func_stripname '-L' '' "$arg" ++ dir=$func_stripname_result ++ if test -z "$dir"; then ++ if test "$#" -gt 0; then ++ func_fatal_error "require no space between \`-L' and \`$1'" + else +- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` +- relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ func_fatal_error "need path for \`-L' option" + fi +- done +- relink_command="(cd `pwd`; $relink_command)" +- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` +- fi +- +- # Quote $echo for shipping. +- if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then +- case $progpath in +- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; +- *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; ++ fi ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ test -z "$absdir" && \ ++ func_fatal_error "cannot determine absolute directory name of \`$dir'" ++ dir="$absdir" ++ ;; + 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$,,'` ;; ++ case "$deplibs " in ++ *" -L$dir "*) ;; ++ *) ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" ++ ;; + esac +- # test for cygwin because mv fails w/o .exe extensions + case $host in +- *cygwin*) +- exeext=.exe +- outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; +- *) exeext= ;; ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ ::) dllsearchpath=$dir;; ++ *) dllsearchpath="$dllsearchpath:$dir";; ++ esac ++ case :$dllsearchpath: in ++ *":$testbindir:"*) ;; ++ ::) dllsearchpath=$testbindir;; ++ *) dllsearchpath="$dllsearchpath:$testbindir";; ++ esac ++ ;; + esac +- case $host in +- *cygwin* | *mingw* ) +- output_name=`basename $output` +- output_path=`dirname $output` +- cwrappersource="$output_path/$objdir/lt-$output_name.c" +- cwrapper="$output_path/$output_name.exe" +- $rm $cwrappersource $cwrapper +- trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 ++ continue ++ ;; + +- cat > $cwrappersource <> $cwrappersource<<"EOF" +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++ -multi_module) ++ single_module="${wl}-multi_module" ++ continue ++ ;; + +-#if defined(PATH_MAX) +-# define LT_PATHMAX PATH_MAX +-#elif defined(MAXPATHLEN) +-# define LT_PATHMAX MAXPATHLEN +-#else +-# define LT_PATHMAX 1024 +-#endif ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; + +-#ifndef DIR_SEPARATOR +-# define DIR_SEPARATOR '/' +-# define PATH_SEPARATOR ':' +-#endif ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # and Darwin in order for the loader to find any dlls it needs. ++ func_warning "\`-no-install' is ignored for $host" ++ func_warning "assuming \`-no-fast-install' instead" ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; + +-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ +- defined (__OS2__) +-# define HAVE_DOS_BASED_FILE_SYSTEM +-# ifndef DIR_SEPARATOR_2 +-# define DIR_SEPARATOR_2 '\\' +-# endif +-# ifndef PATH_SEPARATOR_2 +-# define PATH_SEPARATOR_2 ';' +-# endif +-#endif ++ -no-undefined) ++ allow_undefined=no ++ continue ++ ;; + +-#ifndef DIR_SEPARATOR_2 +-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +-#else /* DIR_SEPARATOR_2 */ +-# define IS_DIR_SEPARATOR(ch) \ +- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +-#endif /* DIR_SEPARATOR_2 */ ++ -objectlist) ++ prev=objectlist ++ continue ++ ;; + +-#ifndef PATH_SEPARATOR_2 +-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +-#else /* PATH_SEPARATOR_2 */ +-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +-#endif /* PATH_SEPARATOR_2 */ ++ -o) prev=output ;; + +-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +-#define XFREE(stale) do { \ +- if (stale) { free ((void *) stale); stale = 0; } \ +-} while (0) ++ -precious-files-regex) ++ prev=precious_regex ++ continue ++ ;; + +-/* -DDEBUG is fairly common in CFLAGS. */ +-#undef DEBUG +-#if defined DEBUGWRAPPER +-# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +-#else +-# define DEBUG(format, ...) +-#endif ++ -release) ++ prev=release ++ continue ++ ;; + +-const char *program_name = NULL; ++ -rpath) ++ prev=rpath ++ continue ++ ;; + +-void * xmalloc (size_t num); +-char * xstrdup (const char *string); +-const char * base_name (const char *name); +-char * find_executable(const char *wrapper); +-int check_executable(const char *path); +-char * strendzap(char *str, const char *pat); +-void lt_fatal (const char *message, ...); ++ -R) ++ prev=xrpath ++ continue ++ ;; + +-int +-main (int argc, char *argv[]) +-{ +- char **newargz; +- int i; ++ -R*) ++ func_stripname '-R' '' "$arg" ++ dir=$func_stripname_result ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ func_fatal_error "only absolute run-paths are allowed" ++ ;; ++ esac ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ continue ++ ;; + +- program_name = (char *) xstrdup (base_name (argv[0])); +- DEBUG("(main) argv[0] : %s\n",argv[0]); +- DEBUG("(main) program_name : %s\n",program_name); +- newargz = XMALLOC(char *, argc+2); +-EOF ++ -shared) ++ # The effects of -shared are defined in a previous loop. ++ continue ++ ;; + +- cat >> $cwrappersource <> $cwrappersource <<"EOF" +- newargz[1] = find_executable(argv[0]); +- if (newargz[1] == NULL) +- lt_fatal("Couldn't find %s", argv[0]); +- DEBUG("(main) found exe at : %s\n",newargz[1]); +- /* we know the script has the same name, without the .exe */ +- /* so make sure newargz[1] doesn't end in .exe */ +- strendzap(newargz[1],".exe"); +- for (i = 1; i < argc; i++) +- newargz[i+1] = xstrdup(argv[i]); +- newargz[argc+1] = NULL; ++ -static | -static-libtool-libs) ++ # 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 ++ ;; + +- for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" +- return 127; +-} ++ -weak) ++ prev=weak ++ continue ++ ;; + +-void * +-xmalloc (size_t num) +-{ +- void * p = (void *) malloc (num); +- if (!p) +- lt_fatal ("Memory exhausted"); ++ -Wc,*) ++ func_stripname '-Wc,' '' "$arg" ++ args=$func_stripname_result ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ func_quote_for_eval "$flag" ++ arg="$arg $wl$func_quote_for_eval_result" ++ compiler_flags="$compiler_flags $func_quote_for_eval_result" ++ done ++ IFS="$save_ifs" ++ func_stripname ' ' '' "$arg" ++ arg=$func_stripname_result ++ ;; + +- return p; +-} ++ -Wl,*) ++ func_stripname '-Wl,' '' "$arg" ++ args=$func_stripname_result ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ func_quote_for_eval "$flag" ++ arg="$arg $wl$func_quote_for_eval_result" ++ compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" ++ linker_flags="$linker_flags $func_quote_for_eval_result" ++ done ++ IFS="$save_ifs" ++ func_stripname ' ' '' "$arg" ++ arg=$func_stripname_result ++ ;; + +-char * +-xstrdup (const char *string) +-{ +- return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL +-; +-} ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; + +-const char * +-base_name (const char *name) +-{ +- const char *base; ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; + +-#if defined (HAVE_DOS_BASED_FILE_SYSTEM) +- /* Skip over the disk name in MSDOS pathnames. */ +- if (isalpha ((unsigned char)name[0]) && name[1] == ':') +- name += 2; +-#endif ++ -XCClinker) ++ prev=xcclinker ++ continue ++ ;; + +- for (base = name; *name; name++) +- if (IS_DIR_SEPARATOR (*name)) +- base = name + 1; +- return base; +-} ++ # -msg_* for osf cc ++ -msg_*) ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ ;; + +-int +-check_executable(const char * path) +-{ +- struct stat st; ++ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler ++ # -r[0-9][0-9]* specifies the processor on the SGI compiler ++ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler ++ # +DA*, +DD* enable 64-bit mode on the HP compiler ++ # -q* pass through compiler args for the IBM compiler ++ # -m*, -t[45]*, -txscale* pass through architecture-specific ++ # compiler args for GCC ++ # -F/path gives path to uninstalled frameworks, gcc on darwin ++ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC ++ # @file GCC response files ++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ compiler_flags="$compiler_flags $arg" ++ continue ++ ;; + +- DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); +- if ((!path) || (!*path)) +- return 0; ++ # Some other compiler flag. ++ -* | +*) ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ ;; + +- if ((stat (path, &st) >= 0) && +- ( +- /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +-#if defined (S_IXOTH) +- ((st.st_mode & S_IXOTH) == S_IXOTH) || +-#endif +-#if defined (S_IXGRP) +- ((st.st_mode & S_IXGRP) == S_IXGRP) || +-#endif +- ((st.st_mode & S_IXUSR) == S_IXUSR)) +- ) +- return 1; +- else +- return 0; +-} ++ *.$objext) ++ # A standard object. ++ objs="$objs $arg" ++ ;; + +-/* Searches for the full path of the wrapper. Returns +- newly allocated full path name if found, NULL otherwise */ +-char * +-find_executable (const char* wrapper) +-{ +- int has_slash = 0; +- const char* p; +- const char* p_next; +- /* static buffer for getcwd */ +- char tmp[LT_PATHMAX + 1]; +- int tmp_len; +- char* concat_name; ++ *.lo) ++ # A libtool-controlled object. + +- DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); ++ # Check to see that this really is a libtool object. ++ if func_lalib_unsafe_p "$arg"; then ++ pic_object= ++ non_pic_object= + +- if ((wrapper == NULL) || (*wrapper == '\0')) +- return NULL; ++ # Read the .lo file ++ func_source "$arg" + +- /* Absolute path? */ +-#if defined (HAVE_DOS_BASED_FILE_SYSTEM) +- if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') +- { +- concat_name = xstrdup (wrapper); +- if (check_executable(concat_name)) +- return concat_name; +- XFREE(concat_name); +- } +- else +- { +-#endif +- if (IS_DIR_SEPARATOR (wrapper[0])) +- { +- concat_name = xstrdup (wrapper); +- if (check_executable(concat_name)) +- return concat_name; +- XFREE(concat_name); +- } +-#if defined (HAVE_DOS_BASED_FILE_SYSTEM) +- } +-#endif ++ if test -z "$pic_object" || ++ test -z "$non_pic_object" || ++ test "$pic_object" = none && ++ test "$non_pic_object" = none; then ++ func_fatal_error "cannot find name of object for \`$arg'" ++ fi + +- for (p = wrapper; *p; p++) +- if (*p == '/') +- { +- has_slash = 1; +- break; +- } +- if (!has_slash) +- { +- /* no slashes; search PATH */ +- const char* path = getenv ("PATH"); +- if (path != NULL) +- { +- for (p = path; *p; p = p_next) +- { +- const char* q; +- size_t p_len; +- for (q = p; *q; q++) +- if (IS_PATH_SEPARATOR(*q)) +- break; +- p_len = q - p; +- p_next = (*q == '\0' ? q : q + 1); +- if (p_len == 0) +- { +- /* empty path: current directory */ +- if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); +- tmp_len = strlen(tmp); +- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); +- memcpy (concat_name, tmp, tmp_len); +- concat_name[tmp_len] = '/'; +- strcpy (concat_name + tmp_len + 1, wrapper); +- } +- else +- { +- concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); +- memcpy (concat_name, p, p_len); +- concat_name[p_len] = '/'; +- strcpy (concat_name + p_len + 1, wrapper); +- } +- if (check_executable(concat_name)) +- return concat_name; +- XFREE(concat_name); +- } +- } +- /* not found in PATH; assume curdir */ +- } +- /* Relative path | not found in path: prepend cwd */ +- if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); +- tmp_len = strlen(tmp); +- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); +- memcpy (concat_name, tmp, tmp_len); +- concat_name[tmp_len] = '/'; +- strcpy (concat_name + tmp_len + 1, wrapper); ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" + +- if (check_executable(concat_name)) +- return concat_name; +- XFREE(concat_name); +- return NULL; +-} ++ if test "$pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ pic_object="$xdir$pic_object" + +-char * +-strendzap(char *str, const char *pat) +-{ +- size_t len, patlen; ++ if test "$prev" = dlfiles; then ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $pic_object" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi + +- assert(str != NULL); +- assert(pat != NULL); ++ # CHECK ME: I think I busted this. -Ossama ++ if test "$prev" = dlprefiles; then ++ # Preload the old-style object. ++ dlprefiles="$dlprefiles $pic_object" ++ prev= ++ fi + +- len = strlen(str); +- patlen = strlen(pat); ++ # A PIC object. ++ func_append libobjs " $pic_object" ++ arg="$pic_object" ++ fi + +- if (patlen <= len) +- { +- str += len - patlen; +- if (strcmp(str, pat) == 0) +- *str = '\0'; +- } +- return str; +-} ++ # Non-PIC object. ++ if test "$non_pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ non_pic_object="$xdir$non_pic_object" + +-static void +-lt_error_core (int exit_status, const char * mode, +- const char * message, va_list ap) +-{ +- fprintf (stderr, "%s: %s: ", program_name, mode); +- vfprintf (stderr, message, ap); +- fprintf (stderr, ".\n"); ++ # A standard non-PIC object ++ func_append non_pic_objects " $non_pic_object" ++ if test -z "$pic_object" || test "$pic_object" = none ; then ++ arg="$non_pic_object" ++ fi ++ else ++ # If the PIC object exists, use it instead. ++ # $xdir was prepended to $pic_object above. ++ non_pic_object="$pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ fi ++ else ++ # Only an error if not doing a dry-run. ++ if $opt_dry_run; then ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" + +- if (exit_status >= 0) +- exit (exit_status); +-} ++ func_lo2o "$arg" ++ pic_object=$xdir$objdir/$func_lo2o_result ++ non_pic_object=$xdir$func_lo2o_result ++ func_append libobjs " $pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ else ++ func_fatal_error "\`$arg' is not a valid libtool object" ++ fi ++ fi ++ ;; + +-void +-lt_fatal (const char *message, ...) +-{ +- va_list ap; +- va_start (ap, message); +- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); +- va_end (ap); +-} +-EOF +- # we should really use a build-platform specific compiler +- # here, but OTOH, the wrappers (shell script and this C one) +- # are only useful if you want to execute the "real" binary. +- # Since the "real" binary is built for $host, then this +- # wrapper might as well be built for $host, too. +- $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource +- ;; +- esac +- $rm $output +- trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 ++ *.$libext) ++ # An archive. ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" ++ continue ++ ;; + +- $echo > $output "\ +-#! $SHELL ++ *.la) ++ # A libtool-controlled library. + +-# $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. ++ 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 ++ ;; + +-# 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' ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ ;; ++ esac # arg + +-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then +- emulate sh +- NULLCMD=: +- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which +- # is contrary to our usage. Disable this feature. +- alias -g '\${1+\"\$@\"}'='\"\$@\"' +- setopt NO_GLOB_SUBST +-else +- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +-fi +-BIN_SH=xpg4; export BIN_SH # for Tru64 +-DUALCASE=1; export DUALCASE # for MKS sh ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ fi ++ done # argument parsing loop + +-# The HP-UX ksh and POSIX shell print the target directory to stdout +-# if CDPATH is set. +-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ test -n "$prev" && \ ++ func_fatal_help "the \`$prevarg' option requires an argument" + +-relink_command=\"$relink_command\" ++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ fi + +-# 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! +- : ++ oldlibs= ++ # calculate the name of the file, without its directory ++ func_basename "$output" ++ outputname="$func_basename_result" ++ 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 +- # Restart under the correct shell, and then maybe \$echo will work. +- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} ++ shlib_search_path= + fi +- fi\ +-" +- $echo >> $output "\ ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + +- # Find the directory that this script lives in. +- thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` +- test \"x\$thisdir\" = \"x\$file\" && thisdir=. ++ func_dirname "$output" "/" "" ++ output_objdir="$func_dirname_result$objdir" ++ # Create the object directory. ++ func_mkdir_p "$output_objdir" + +- # 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%/[^/]*\$%%'\` ++ # Determine the type of output ++ case $output in ++ "") ++ func_fatal_help "you must specify an output file" ++ ;; ++ *.$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 $opt_duplicate_deps ; then ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ libs="$libs $deplib" ++ done ++ ++ if test "$linkmode" = lib; then ++ libs="$predeps $libs $compiler_lib_search_path $postdeps" ++ ++ # Compute libraries that are listed more than once in $predeps ++ # $postdeps and mark them as special (i.e., whose duplicates are ++ # not to be eliminated). ++ pre_post_deps= ++ if $opt_duplicate_compiler_generated_deps; then ++ for pre_post_dep in $predeps $postdeps; do ++ case "$pre_post_deps " in ++ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; ++ esac ++ pre_post_deps="$pre_post_deps $pre_post_dep" ++ done ++ fi ++ pre_post_deps= ++ fi ++ ++ 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 dlpreopen link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; ++ *) ++ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ++ ;; ++ 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 ++ # The preopen pass in lib mode reverses $deplibs; put it back here ++ # so that -L comes before libs that need it for instance... ++ if test "$linkmode,$pass" = "lib,link"; then ++ ## FIXME: Find the place where the list is rebuilt in the wrong ++ ## order, and fix it there properly ++ tmp_deplibs= ++ for deplib in $deplibs; do ++ tmp_deplibs="$deplib $tmp_deplibs" ++ done ++ deplibs="$tmp_deplibs" ++ fi ++ ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan"; then ++ libs="$deplibs" ++ deplibs= ++ fi ++ if test "$linkmode" = prog; then ++ case $pass in ++ dlopen) libs="$dlfiles" ;; ++ dlpreopen) libs="$dlprefiles" ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ if test "$linkmode,$pass" = "lib,dlpreopen"; then ++ # Collect and forward deplibs of preopened libtool libs ++ for lib in $dlprefiles; do ++ # Ignore non-libtool-libs ++ dependency_libs= ++ case $lib in ++ *.la) func_source "$lib" ;; ++ esac ++ ++ # Collect preopened libtool deplibs, except any this library ++ # has declared as weak libs ++ for deplib in $dependency_libs; do ++ deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` ++ case " $weak_libs " in ++ *" $deplib_base "*) ;; ++ *) deplibs="$deplibs $deplib" ;; ++ esac ++ done ++ done ++ libs="$dlprefiles" ++ fi ++ if test "$pass" = dlopen; then ++ # Collect dlpreopened libraries ++ save_deplibs="$deplibs" ++ deplibs= ++ fi ++ ++ for deplib in $libs; do ++ lib= ++ found=no ++ case $deplib in ++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ compiler_flags="$compiler_flags $deplib" ++ if test "$linkmode" = lib ; then ++ case "$new_inherited_linker_flags " in ++ *" $deplib "*) ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ esac ++ fi ++ fi ++ continue ++ ;; ++ -l*) ++ if test "$linkmode" != lib && test "$linkmode" != prog; then ++ func_warning "\`-l' is ignored for archives/objects" ++ continue ++ fi ++ func_stripname '-l' '' "$deplib" ++ name=$func_stripname_result ++ if test "$linkmode" = lib; then ++ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" ++ else ++ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" ++ fi ++ for searchdir in $searchdirs; do ++ for search_ext in .la $std_shrext .so .a; do ++ # Search the libtool library ++ lib="$searchdir/lib${name}${search_ext}" ++ if test -f "$lib"; then ++ if test "$search_ext" = ".la"; then ++ found=yes ++ else ++ found=no ++ fi ++ break 2 ++ fi ++ done ++ 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 ++ else # deplib is a libtool library ++ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, ++ # We need to do some special things here, and not later. ++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ++ case " $predeps $postdeps " in ++ *" $deplib "*) ++ if func_lalib_p "$lib"; then ++ library_names= ++ old_library= ++ func_source "$lib" ++ for l in $old_library $library_names; do ++ ll="$l" ++ done ++ if test "X$ll" = "X$old_library" ; then # only static version available ++ found=no ++ func_dirname "$lib" "" "." ++ ladir="$func_dirname_result" ++ lib=$ladir/$old_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 ++ fi ++ ;; ++ *) ;; ++ esac ++ fi ++ fi ++ ;; # -l ++ *.ltframework) ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ if test "$linkmode" = lib ; then ++ case "$new_inherited_linker_flags " in ++ *" $deplib "*) ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ esac ++ fi ++ fi ++ continue ++ ;; ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test "$pass" = conv && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ func_stripname '-L' '' "$deplib" ++ newlib_search_path="$newlib_search_path $func_stripname_result" ++ ;; ++ prog) ++ if test "$pass" = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test "$pass" = scan; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ func_stripname '-L' '' "$deplib" ++ newlib_search_path="$newlib_search_path $func_stripname_result" ++ ;; ++ *) ++ func_warning "\`-L' is ignored for archives/objects" ++ ;; ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test "$pass" = link; then ++ func_stripname '-R' '' "$deplib" ++ dir=$func_stripname_result ++ # 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) ++ # Linking convenience modules into shared libraries is allowed, ++ # but linking other static libraries is non-portable. ++ case " $dlpreconveniencelibs " in ++ *" $deplib "*) ;; ++ *) ++ valid_a_lib=no ++ case $deplibs_check_method in ++ match_pattern*) ++ set dummy $deplibs_check_method; shift ++ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ++ if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ ++ | $EGREP "$match_pattern_regex" > /dev/null; then ++ valid_a_lib=yes ++ fi ++ ;; ++ pass_all) ++ valid_a_lib=yes ++ ;; ++ esac ++ if test "$valid_a_lib" != yes; 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 use here." ++ else ++ $ECHO ++ $ECHO "*** Warning: Linking the shared library $output against the" ++ $ECHO "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ fi ++ ;; ++ esac ++ 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" = conv; then ++ deplibs="$deplib $deplibs" ++ elif test "$linkmode" = prog; then ++ 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 ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=yes ++ continue ++ ;; ++ esac # case $deplib ++ ++ if test "$found" = yes || test -f "$lib"; then : ++ else ++ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" ++ fi ++ ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$lib" \ ++ || func_fatal_error "\`$lib' is not a valid libtool archive" ++ ++ func_dirname "$lib" "" "." ++ ladir="$func_dirname_result" ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ inherited_linker_flags= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variables installed, or shouldnotlink ++ installed=yes ++ shouldnotlink=no ++ avoidtemprpath= ++ ++ ++ # Read the .la file ++ func_source "$lib" ++ ++ # Convert "-framework foo" to "foo.ltframework" ++ if test -n "$inherited_linker_flags"; then ++ tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do ++ case " $new_inherited_linker_flags " in ++ *" $tmp_inherited_linker_flag "*) ;; ++ *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; ++ esac ++ done ++ fi ++ dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan" || ++ { test "$linkmode" != prog && test "$linkmode" != lib; }; then ++ 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 ++ func_fatal_error "cannot find name of link library for \`$lib'" ++ 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" ++ elif test "$linkmode" != prog && test "$linkmode" != lib; then ++ func_fatal_error "\`$lib' is not a convenience library" ++ fi ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if $opt_duplicate_deps ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ 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 ++ func_fatal_error "cannot find name of link library for \`$lib'" ++ fi ++ ++ # This library was specified with -dlopen. ++ if test "$pass" = dlopen; then ++ if test -z "$libdir"; then ++ func_fatal_error "cannot -dlopen a convenience library: \`$lib'" ++ 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. We also need to preload any ++ # dependent libraries so libltdl's deplib preloader doesn't ++ # bomb out in the load deplibs phase. ++ dlprefiles="$dlprefiles $lib $dependency_libs" ++ 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 ++ func_warning "cannot determine absolute directory name of \`$ladir'" ++ func_warning "passing it literally to the linker, although it might fail" ++ abs_ladir="$ladir" ++ fi ++ ;; ++ esac ++ func_basename "$lib" ++ laname="$func_basename_result" ++ ++ # 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 ++ func_warning "library \`$lib' was moved." ++ dir="$ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ else ++ dir="$libdir" ++ absdir="$libdir" ++ fi ++ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes ++ else ++ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ dir="$ladir" ++ absdir="$abs_ladir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ else ++ dir="$ladir/$objdir" ++ absdir="$abs_ladir/$objdir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ fi ++ fi # $installed = yes ++ func_stripname 'lib' '.la' "$laname" ++ name=$func_stripname_result ++ ++ # This library was specified with -dlpreopen. ++ if test "$pass" = dlpreopen; then ++ if test -z "$libdir" && test "$linkmode" = prog; then ++ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" ++ 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" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ dlpreconveniencelibs="$dlpreconveniencelibs $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" # used for prog,scan pass ++ 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*) func_stripname '-L' '' "$deplib" ++ newlib_search_path="$newlib_search_path $func_stripname_result" ++ ;; ++ 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 $opt_duplicate_deps ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ if test "$linkmode,$pass" = "prog,link"; then ++ if test -n "$library_names" && ++ { { test "$prefer_static_libs" = no || ++ test "$prefer_static_libs,$installed" = "built,yes"; } || ++ test -z "$old_library"; }; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then ++ # Make sure the rpath contains only unique directories. ++ case "$temp_rpath:" in ++ *"$absdir:"*) ;; ++ *) temp_rpath="$temp_rpath$absdir:" ;; ++ esac ++ fi ++ ++ # 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 ++ 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 ++ fi ++ ++ link_static=no # Whether the deplib will be linked statically ++ use_static_libs=$prefer_static_libs ++ if test "$use_static_libs" = built && test "$installed" = yes; then ++ use_static_libs=no ++ fi ++ if test -n "$library_names" && ++ { test "$use_static_libs" = no || test -z "$old_library"; }; then ++ case $host in ++ *cygwin* | *mingw* | *cegcc*) ++ # No point in relinking DLLs because paths are not encoded ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=no ++ ;; ++ *) ++ if test "$installed" = no; then ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=yes ++ fi ++ ;; ++ esac ++ # This is a shared library ++ ++ # Warn about portability, can't link against -module's on some ++ # systems (darwin). Don't bleat about dlopened modules though! ++ dlopenmodule="" ++ for dlpremoduletest in $dlprefiles; do ++ if test "X$dlpremoduletest" = "X$lib"; then ++ dlopenmodule="$dlpremoduletest" ++ break ++ fi ++ done ++ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then ++ $ECHO ++ if test "$linkmode" = prog; then ++ $ECHO "*** Warning: Linking the executable $output against the loadable module" ++ else ++ $ECHO "*** Warning: Linking the shared library $output against the loadable module" ++ fi ++ $ECHO "*** $linklib is not portable!" ++ fi ++ if 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 ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ shift ++ realname="$1" ++ 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* | mingw* | *cegcc*) ++ func_arith $current - $age ++ major=$func_arith_result ++ versuffix="-$major" ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot="$soname" ++ func_basename "$soroot" ++ soname="$func_basename_result" ++ func_stripname 'lib' '.dll' "$soname" ++ newlib=libimp-$func_stripname_result.a ++ ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ func_verbose "extracting exported symbol list from \`$soname'" ++ func_execute_cmds "$extract_expsyms_cmds" 'exit $?' ++ fi ++ ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ func_verbose "generating import library for \`$soname'" ++ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' ++ 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" ++ case $host in ++ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; ++ *-*-sysv4*uw2*) add_dir="-L$dir" ;; ++ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ ++ *-*-unixware7*) add_dir="-L$dir" ;; ++ *-*-darwin* ) ++ # if the lib is a (non-dlopened) module then we can not ++ # link against it, someone is ignoring the earlier warnings ++ if /usr/bin/file -L $add 2> /dev/null | ++ $GREP ": [^:]* bundle" >/dev/null ; then ++ if test "X$dlopenmodule" != "X$lib"; then ++ $ECHO "*** Warning: lib $linklib is a module, not a shared library" ++ if test -z "$old_library" ; then ++ $ECHO ++ $ECHO "*** And there doesn't seem to be a static archive available" ++ $ECHO "*** The link will probably fail, sorry" ++ else ++ add="$dir/$old_library" ++ fi ++ elif test -n "$old_library"; then ++ add="$dir/$old_library" ++ fi ++ fi ++ esac ++ 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 && ++ test "$hardcode_direct_absolute" = no; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$dir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case $libdir in ++ [\\/]*) ++ add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ 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 ++ func_fatal_configuration "unsupported hardcode properties" ++ 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 && ++ test "$hardcode_direct_absolute" = no; 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" ++ elif test "$hardcode_automatic" = yes; then ++ if test -n "$inst_prefix_dir" && ++ test -f "$inst_prefix_dir$libdir/$linklib" ; then ++ add="$inst_prefix_dir$libdir/$linklib" ++ else ++ add="$libdir/$linklib" ++ fi ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case $libdir in ++ [\\/]*) ++ add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ 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 ++ # 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 ++ 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*) func_stripname '-R' '' "$libdir" ++ temp_xrpath=$func_stripname_result ++ 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 $opt_duplicate_deps ; 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) ++ func_dirname "$deplib" "" "." ++ dir="$func_dirname_result" ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ func_warning "cannot determine absolute directory name of \`$dir'" ++ absdir="$dir" ++ fi ++ ;; ++ esac ++ if $GREP "^installed=no" $deplib > /dev/null; then ++ case $host in ++ *-*-darwin*) ++ depdepl= ++ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` ++ if test -n "$deplibrary_names" ; then ++ for tmp in $deplibrary_names ; do ++ depdepl=$tmp ++ done ++ if test -f "$absdir/$objdir/$depdepl" ; then ++ depdepl="$absdir/$objdir/$depdepl" ++ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` ++ if test -z "$darwin_install_name"; then ++ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` ++ fi ++ compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" ++ linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" ++ path= ++ fi ++ fi ++ ;; ++ *) ++ path="-L$absdir/$objdir" ++ ;; ++ esac ++ else ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$deplib' is not a valid libtool archive" ++ test "$absdir" != "$libdir" && \ ++ func_warning "\`$deplib' seems to be moved" ++ ++ path="-L$absdir" ++ fi ++ ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$path $deplibs" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test "$pass" = link; then ++ if test "$linkmode" = "prog"; then ++ compile_deplibs="$new_inherited_linker_flags $compile_deplibs" ++ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" ++ else ++ compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ fi ++ fi ++ dependency_libs="$newdependency_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 ++ 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 ++ # FIXME: Pedantically, this is the right thing to do, so ++ # that some nasty dependency loop isn't accidentally ++ # broken: ++ #new_libs="$deplib $new_libs" ++ # Pragmatically, this seems to cause very few problems in ++ # practice: ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ -R*) ;; ++ *) ++ # And here is the reason: when a library appears more ++ # than once as an explicit dependence of a library, or ++ # is implicitly linked in more than once by the ++ # compiler, it is considered special, and multiple ++ # occurrences thereof are not removed. Compare this ++ # with having the same library being listed as a ++ # dependency of multiple other libraries: in this case, ++ # we know (pedantically, we assume) the library does not ++ # need to be listed more than once, so we keep only the ++ # last copy. This is not always right, but it is rare ++ # enough that we require users that really mean to play ++ # such unportable linking tricks to link the library ++ # using -Wl,-lname, so that libtool does not consider it ++ # for duplicate removal. ++ 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 ++ # Last step: remove runtime libs from dependency_libs ++ # (they stay in deplibs) ++ tmp_libs= ++ for i in $dependency_libs ; do ++ case " $predeps $postdeps $compiler_lib_search_path " in ++ *" $i "*) ++ i="" ++ ;; ++ esac ++ if test -n "$i" ; then ++ tmp_libs="$tmp_libs $i" ++ fi ++ done ++ dependency_libs=$tmp_libs ++ done # for pass ++ if test "$linkmode" = prog; then ++ dlfiles="$newdlfiles" ++ fi ++ if test "$linkmode" = prog || test "$linkmode" = lib; then ++ dlprefiles="$newdlprefiles" ++ fi ++ ++ case $linkmode in ++ oldlib) ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ func_warning "\`-dlopen' is ignored for archives" ++ fi ++ ++ case " $deplibs" in ++ *\ -l* | *\ -L*) ++ func_warning "\`-l' and \`-L' are ignored for archives" ;; ++ esac ++ ++ test -n "$rpath" && \ ++ func_warning "\`-rpath' is ignored for archives" ++ ++ test -n "$xrpath" && \ ++ func_warning "\`-R' is ignored for archives" ++ ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info/-version-number' is ignored for archives" ++ ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for archives" ++ ++ test -n "$export_symbols$export_symbols_regex" && \ ++ func_warning "\`-export-symbols' is ignored for archives" ++ ++ # 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*) ++ func_stripname 'lib' '.la' "$outputname" ++ name=$func_stripname_result ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" ++ ;; ++ *) ++ test "$module" = no && \ ++ func_fatal_help "libtool library \`$output' must begin with \`lib'" ++ ++ if test "$need_lib_prefix" != no; then ++ # Add the "lib" prefix for modules if required ++ func_stripname '' '.la' "$outputname" ++ name=$func_stripname_result ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" ++ else ++ func_stripname '' '.la' "$outputname" ++ libname=$func_stripname_result ++ fi ++ ;; ++ esac ++ ++ if test -n "$objs"; then ++ if test "$deplibs_check_method" != pass_all; then ++ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" ++ else ++ $ECHO ++ $ECHO "*** Warning: Linking the shared library $output against the non-libtool" ++ $ECHO "*** objects $objs is not portable!" ++ libobjs="$libobjs $objs" ++ fi ++ fi ++ ++ test "$dlself" != no && \ ++ func_warning "\`-dlopen self' is ignored for libtool libraries" ++ ++ set dummy $rpath ++ shift ++ test "$#" -gt 1 && \ ++ func_warning "ignoring multiple \`-rpath's for a libtool library" ++ ++ install_libdir="$1" ++ ++ oldlibs= ++ if test -z "$rpath"; then ++ if test "$build_libtool_libs" = yes; then ++ # Building a libtool convenience library. ++ # Some compilers have problems with a `.al' extension so ++ # convenience libraries should have the same extension an ++ # archive normally would. ++ oldlibs="$output_objdir/$libname.$libext $oldlibs" ++ build_libtool_libs=convenience ++ build_old_libs=yes ++ fi ++ ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" ++ ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for convenience libraries" ++ else ++ ++ # Parse the version information argument. ++ save_ifs="$IFS"; IFS=':' ++ set dummy $vinfo 0 0 0 ++ shift ++ IFS="$save_ifs" ++ ++ test -n "$7" && \ ++ func_fatal_help "too many parameters to \`-version-info'" ++ ++ # convert absolute version numbers to libtool ages ++ # this retains compatibility with .la files and attempts ++ # to make the code below a bit more comprehensible ++ ++ case $vinfo_number in ++ yes) ++ number_major="$1" ++ number_minor="$2" ++ number_revision="$3" ++ # ++ # There are really only two kinds -- those that ++ # use the current revision as the major version ++ # and those that subtract age and use age as ++ # a minor version. But, then there is irix ++ # which has an extra 1 added just for fun ++ # ++ case $version_type in ++ darwin|linux|osf|windows|none) ++ func_arith $number_major + $number_minor ++ current=$func_arith_result ++ age="$number_minor" ++ revision="$number_revision" ++ ;; ++ freebsd-aout|freebsd-elf|sunos) ++ current="$number_major" ++ revision="$number_minor" ++ age="0" ++ ;; ++ irix|nonstopux) ++ func_arith $number_major + $number_minor ++ current=$func_arith_result ++ age="$number_minor" ++ revision="$number_minor" ++ lt_irix_increment=no ++ ;; ++ esac ++ ;; ++ no) ++ current="$1" ++ revision="$2" ++ age="$3" ++ ;; ++ esac ++ ++ # 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "CURRENT \`$current' must be a nonnegative integer" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ case $revision in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "REVISION \`$revision' must be a nonnegative integer" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ case $age in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "AGE \`$age' must be a nonnegative integer" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ if test "$age" -gt "$current"; then ++ func_error "AGE \`$age' is greater than the current interface number \`$current'" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ 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 ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix="$major.$age.$revision" ++ # Darwin ld doesn't like 0 for these options... ++ func_arith $current + 1 ++ minor_current=$func_arith_result ++ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ++ 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) ++ if test "X$lt_irix_increment" = "Xno"; then ++ func_arith $current - $age ++ else ++ func_arith $current - $age + 1 ++ fi ++ major=$func_arith_result ++ ++ case $version_type in ++ nonstopux) verstring_prefix=nonstopux ;; ++ *) verstring_prefix=sgi ;; ++ esac ++ verstring="$verstring_prefix$major.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$revision ++ while test "$loop" -ne 0; do ++ func_arith $revision - $loop ++ iface=$func_arith_result ++ func_arith $loop - 1 ++ loop=$func_arith_result ++ verstring="$verstring_prefix$major.$iface:$verstring" ++ done ++ ++ # Before this point, $major must not contain `.'. ++ major=.$major ++ versuffix="$major.$revision" ++ ;; ++ ++ linux) ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix="$major.$age.$revision" ++ ;; ++ ++ osf) ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix=".$current.$age.$revision" ++ verstring="$current.$age.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$age ++ while test "$loop" -ne 0; do ++ func_arith $current - $loop ++ iface=$func_arith_result ++ func_arith $loop - 1 ++ loop=$func_arith_result ++ verstring="$verstring:${iface}.0" ++ done ++ ++ # Make executables depend on our current version. ++ verstring="$verstring:${current}.0" ++ ;; ++ ++ qnx) ++ major=".$current" ++ versuffix=".$current" ++ ;; ++ ++ sunos) ++ major=".$current" ++ versuffix=".$current.$revision" ++ ;; ++ ++ windows) ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 filesystems. ++ func_arith $current - $age ++ major=$func_arith_result ++ versuffix="-$major" ++ ;; ++ ++ *) ++ func_fatal_configuration "unknown library version type \`$version_type'" ++ ;; ++ esac ++ ++ # Clear the version info if we defaulted, and they specified a release. ++ if test -z "$vinfo" && test -n "$release"; then ++ major= ++ 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 ++ func_warning "undefined symbols not allowed in $host shared libraries" ++ build_libtool_libs=no ++ build_old_libs=yes ++ fi ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag="$no_undefined_flag" ++ fi ++ ++ fi ++ ++ func_generate_dlsyms "$libname" "$libname" "yes" ++ libobjs="$libobjs $symfileobj" ++ test "X$libobjs" = "X " && libobjs= ++ ++ if test "$mode" != relink; then ++ # Remove our outputs, but don't remove object files since they ++ # may have been created when compiling PIC objects. ++ removelist= ++ tempremovelist=`$ECHO "$output_objdir/*"` ++ for p in $tempremovelist; do ++ case $p in ++ *.$objext | *.gcno) ++ ;; ++ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) ++ if test "X$precious_files_regex" != "X"; then ++ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 ++ then ++ continue ++ fi ++ fi ++ removelist="$removelist $p" ++ ;; ++ *) ;; ++ esac ++ done ++ test -n "$removelist" && \ ++ func_show_eval "${RM}r \$removelist" ++ 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 "X$lib_search_path " | $Xsed -e "s% $path % %g"` ++ # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` ++ # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -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* | *-cegcc*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ deplibs="$deplibs System.ltframework" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) ++ # Do not include libc due to us having libc/libc_r. ++ ;; ++ *-*-sco3.2v5* | *-*-sco5v6*) ++ # Causes problems with __ctype ++ ;; ++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) ++ # Compiler inserts libc in the correct place for threads to work ++ ;; ++ *) ++ # 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 behavior. ++ 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. ++ $opt_dry_run || $RM conftest.c ++ cat > conftest.c </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 -e 10q | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ fi ++ 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 ++ ;; ++ *) ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ ;; ++ esac ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method; shift ++ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ++ for a_deplib in $deplibs; do ++ case $a_deplib in ++ -l*) ++ func_stripname -l '' "$a_deplib" ++ name=$func_stripname_result ++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ++ case " $predeps $postdeps " in ++ *" $a_deplib "*) ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ ;; ++ esac ++ fi ++ if test -n "$a_deplib" ; 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 above in file_magic test ++ if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ ++ $EGREP "$match_pattern_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ fi ++ 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 ++ ;; ++ *) ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ ;; ++ esac ++ done # Gone through all deplibs. ++ ;; ++ none | unknown | *) ++ newdeplibs="" ++ tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ ++ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` ++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ++ for i in $predeps $postdeps ; do ++ # can't use Xsed below, because $i might contain '/' ++ tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` ++ done ++ fi ++ if $ECHO "X $tmp_deplibs" | $Xsed -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 + +- # 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\" ;; ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library with the System framework ++ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ ;; ++ 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 ++ # Time to change all our "foo.ltframework" stuff back to "-framework foo" ++ case $host in ++ *-*-darwin*) ++ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ ;; + esac +- fi + +- file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` +- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` +- done ++ # move library search paths that coincide with paths to not yet ++ # installed libraries to the beginning of the library search list ++ new_libs= ++ for path in $notinst_path; do ++ case " $new_libs " in ++ *" -L$path/$objdir "*) ;; ++ *) ++ case " $deplibs " in ++ *" -L$path/$objdir "*) ++ new_libs="$new_libs -L$path/$objdir" ;; ++ esac ++ ;; ++ esac ++ done ++ for deplib in $deplibs; do ++ case $deplib in ++ -L*) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$new_libs $deplib" ;; ++ esac ++ ;; ++ *) new_libs="$new_libs $deplib" ;; ++ esac ++ done ++ deplibs="$new_libs" + +- # Try to get the absolute directory name. +- absdir=\`cd \"\$thisdir\" && pwd\` +- test -n \"\$absdir\" && thisdir=\"\$absdir\" +-" ++ # 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" ++ if test -n "$hardcode_libdir_flag_spec_ld"; then ++ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ++ else ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" ++ fi ++ 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 + +- if test "$fast_install" = yes; then +- $echo >> $output "\ +- program=lt-'$outputname'$exeext +- progdir=\"\$thisdir/$objdir\" ++ 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 + +- if test ! -f \"\$progdir/\$program\" || \\ +- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ +- test \"X\$file\" != \"X\$progdir/\$program\"; }; then ++ # Get the real and link names of the library. ++ eval shared_ext=\"$shrext_cmds\" ++ eval library_names=\"$library_names_spec\" ++ set dummy $library_names ++ shift ++ realname="$1" ++ shift + +- file=\"\$\$-\$program\" ++ if test -n "$soname_spec"; then ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ if test -z "$dlname"; then ++ dlname=$soname ++ fi + +- if test ! -d \"\$progdir\"; then +- $mkdir \"\$progdir\" +- else +- $rm \"\$progdir/\$file\" +- fi" ++ lib="$output_objdir/$realname" ++ linknames= ++ for link ++ do ++ linknames="$linknames $link" ++ done + +- $echo >> $output "\ ++ # Use standard objects if they are pic ++ test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ test "X$libobjs" = "X " && libobjs= + +- # 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 $EXIT_FAILURE +- fi +- fi ++ delfiles= ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" ++ export_symbols="$output_objdir/$libname.uexp" ++ delfiles="$delfiles $export_symbols" ++ fi ++ ++ orig_export_symbols= ++ case $host_os in ++ cygwin* | mingw* | cegcc*) ++ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then ++ # exporting using user supplied symfile ++ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then ++ # and it's NOT already a .def file. Must figure out ++ # which of the given symbols are data symbols and tag ++ # them as such. So, trigger use of export_symbols_cmds. ++ # export_symbols gets reassigned inside the "prepare ++ # the list of exported symbols" if statement, so the ++ # include_expsyms logic still works. ++ orig_export_symbols="$export_symbols" ++ export_symbols= ++ always_export_symbols=yes ++ fi ++ fi ++ ;; ++ esac + +- $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\" +-" ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then ++ func_verbose "generating symbol list for \`$libname.la'" ++ export_symbols="$output_objdir/$libname.exp" ++ $opt_dry_run || $RM $export_symbols ++ cmds=$export_symbols_cmds ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ eval cmd=\"$cmd\" ++ func_len " $cmd" ++ len=$func_len_result ++ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ func_show_eval "$cmd" 'exit $?' ++ skipped_export=false ++ else ++ # The command line is too long to execute in one step. ++ func_verbose "using reloadable object file for export list..." ++ skipped_export=: ++ # Break out early, otherwise skipped_export may be ++ # set to false by a later but shorter cmd. ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then ++ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' ++ fi ++ fi + fi + +- $echo >> $output "\ +- +- if test -f \"\$progdir/\$program\"; then" ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ tmp_export_symbols="$export_symbols" ++ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ++ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' ++ fi ++ ++ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then ++ # The given exports_symbols file has to be filtered, so filter it. ++ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" ++ # FIXME: $output_objdir/$libname.filter potentially contains lots of ++ # 's' commands which not all seds can handle. GNU sed should be fine ++ # though. Also, the filter scales superlinearly with the number of ++ # global variables. join(1) would be nice here, but unfortunately ++ # isn't a blessed tool. ++ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ++ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ export_symbols=$output_objdir/$libname.def ++ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols ++ fi + +- # 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\" ++ tmp_deplibs= ++ for test_deplib in $deplibs; do ++ case " $convenience " in ++ *" $test_deplib "*) ;; ++ *) ++ tmp_deplibs="$tmp_deplibs $test_deplib" ++ ;; ++ esac ++ done ++ deplibs="$tmp_deplibs" + +- # 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/::*\$//'\` ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec" && ++ test "$compiler_needs_object" = yes && ++ test -z "$libobjs"; then ++ # extract the archives, so we have objects to list. ++ # TODO: could optimize this to just extract one archive. ++ whole_archive_flag_spec= ++ fi ++ if test -n "$whole_archive_flag_spec"; then ++ save_libobjs=$libobjs ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ test "X$libobjs" = "X " && libobjs= ++ else ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" + +- export $shlibpath_var +-" ++ func_extract_archives $gentop $convenience ++ libobjs="$libobjs $func_extract_archives_result" ++ test "X$libobjs" = "X " && libobjs= ++ fi + 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 +-" ++ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then ++ eval flag=\"$thread_safe_flag_spec\" ++ linker_flags="$linker_flags $flag" + fi + +- $echo >> $output "\ +- if test \"\$libtool_execute_magic\" != \"$magic\"; then +- # Run the actual program with our arguments. +-" +- case $host in +- # Backslashes separate directories on plain windows +- *-*-mingw | *-*-os2*) +- $echo >> $output "\ +- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +-" +- ;; +- +- *) +- $echo >> $output "\ +- exec \"\$progdir/\$program\" \${1+\"\$@\"} +-" +- ;; +- esac +- $echo >> $output "\ +- \$echo \"\$0: cannot exec \$program \$*\" +- exit $EXIT_FAILURE +- 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 $EXIT_FAILURE +- fi +-fi\ +-" +- chmod +x $output +- fi +- exit $EXIT_SUCCESS +- ;; +- esac +- +- # See if we need to build an old-fashioned archive. +- for oldlib in $oldlibs; do ++ # Make a backup of the uninstalled library when relinking ++ if test "$mode" = relink; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? ++ fi + +- 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 ++ # Do each of the archive commands. ++ if test "$module" = yes && test -n "$module_cmds" ; then ++ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then ++ eval test_cmds=\"$module_expsym_cmds\" ++ cmds=$module_expsym_cmds ++ else ++ eval test_cmds=\"$module_cmds\" ++ cmds=$module_cmds ++ fi + else +- oldobjs="$old_deplibs $non_pic_objects" ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ eval test_cmds=\"$archive_expsym_cmds\" ++ cmds=$archive_expsym_cmds ++ else ++ eval test_cmds=\"$archive_cmds\" ++ cmds=$archive_cmds ++ fi + fi +- addlibs="$old_convenience" +- fi + +- if test -n "$addlibs"; then +- gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ if test "X$skipped_export" != "X:" && ++ func_len " $test_cmds" && ++ len=$func_len_result && ++ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ : ++ else ++ # The command line is too long to link in one step, link piecewise ++ # or, if using GNU ld and skipped_export is not :, use a linker ++ # script. + +- func_extract_archives $gentop $addlibs +- oldobjs="$oldobjs $func_extract_archives_result" +- fi ++ # Save the value of $output and $libobjs because we want to ++ # use them later. If we have whole_archive_flag_spec, we ++ # want to use save_libobjs as it was before ++ # whole_archive_flag_spec was expanded, because we can't ++ # assume the linker understands whole_archive_flag_spec. ++ # This may have to be revisited, in case too many ++ # convenience libraries get linked in and end up exceeding ++ # the spec. ++ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then ++ save_libobjs=$libobjs ++ fi ++ save_output=$output ++ output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + +- # Do each command in the archive commands. +- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then +- cmds=$old_archive_from_new_cmds +- else +- # POSIX demands no paths to be encoded in archives. We have +- # to avoid creating archives with duplicate basenames if we +- # might have to extract them afterwards, e.g., when creating a +- # static archive out of a convenience library, or when linking +- # the entirety of a libtool archive into another (currently +- # not supported by libtool). +- if (for obj in $oldobjs ++ # Clear the reloadable object creation command queue and ++ # initialize k to one. ++ test_cmds= ++ concat_cmds= ++ objlist= ++ last_robj= ++ k=1 ++ ++ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then ++ output=${output_objdir}/${output_la}.lnkscript ++ func_verbose "creating GNU ld script: $output" ++ $ECHO 'INPUT (' > $output ++ for obj in $save_libobjs + do +- $echo "X$obj" | $Xsed -e 's%^.*/%%' +- done | sort | sort -uc >/dev/null 2>&1); then +- : +- else +- $echo "copying selected object files to avoid basename conflicts..." ++ $ECHO "$obj" >> $output ++ done ++ $ECHO ')' >> $output ++ delfiles="$delfiles $output" ++ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then ++ output=${output_objdir}/${output_la}.lnk ++ func_verbose "creating linker input file list: $output" ++ : > $output ++ set x $save_libobjs ++ shift ++ firstobj= ++ if test "$compiler_needs_object" = yes; then ++ firstobj="$1 " ++ shift ++ fi ++ for obj ++ do ++ $ECHO "$obj" >> $output ++ done ++ delfiles="$delfiles $output" ++ output=$firstobj\"$file_list_spec$output\" ++ else ++ if test -n "$save_libobjs"; then ++ func_verbose "creating reloadable object files..." ++ output=$output_objdir/$output_la-${k}.$objext ++ eval test_cmds=\"$reload_cmds\" ++ func_len " $test_cmds" ++ len0=$func_len_result ++ len=$len0 ++ ++ # Loop over the list of objects to be linked. ++ for obj in $save_libobjs ++ do ++ func_len " $obj" ++ func_arith $len + $func_len_result ++ len=$func_arith_result ++ if test "X$objlist" = X || ++ test "$len" -lt "$max_cmd_len"; then ++ func_append objlist " $obj" ++ else ++ # The command $test_cmds is almost too long, add a ++ # command to the queue. ++ if test "$k" -eq 1 ; then ++ # The first file doesn't have a previous command to add. ++ eval concat_cmds=\"$reload_cmds $objlist $last_robj\" ++ else ++ # All subsequent reloadable object files will link in ++ # the last one created. ++ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" ++ fi ++ last_robj=$output_objdir/$output_la-${k}.$objext ++ func_arith $k + 1 ++ k=$func_arith_result ++ output=$output_objdir/$output_la-${k}.$objext ++ objlist=$obj ++ func_len " $last_robj" ++ func_arith $len0 + $func_len_result ++ len=$func_arith_result ++ fi ++ done ++ # Handle the remaining objects by creating one last ++ # reloadable object file. All subsequent reloadable object ++ # files will link in the last one created. ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" ++ if test -n "$last_robj"; then ++ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" ++ fi ++ delfiles="$delfiles $output" + +- if test -z "$gentop"; then +- gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ else ++ output= ++ fi ++ ++ if ${skipped_export-false}; then ++ func_verbose "generating symbol list for \`$libname.la'" ++ export_symbols="$output_objdir/$libname.exp" ++ $opt_dry_run || $RM $export_symbols ++ libobjs=$output ++ # Append the command to create the export file. ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" ++ if test -n "$last_robj"; then ++ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" ++ fi ++ fi ++ ++ test -n "$save_libobjs" && ++ func_verbose "creating a temporary reloadable object file: $output" ++ ++ # Loop through the commands generated above and execute them. ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $concat_cmds; do ++ IFS="$save_ifs" ++ $opt_silent || { ++ func_quote_for_expand "$cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ $opt_dry_run || eval "$cmd" || { ++ lt_exit=$? ++ ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ ( cd "$output_objdir" && \ ++ $RM "${realname}T" && \ ++ $MV "${realname}U" "$realname" ) ++ fi ++ ++ exit $lt_exit ++ } ++ done ++ IFS="$save_ifs" + +- $show "${rm}r $gentop" +- $run ${rm}r "$gentop" +- $show "$mkdir $gentop" +- $run $mkdir "$gentop" +- exit_status=$? +- if test "$exit_status" -ne 0 && test ! -d "$gentop"; then +- exit $exit_status ++ if test -n "$export_symbols_regex" && ${skipped_export-false}; then ++ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + +- save_oldobjs=$oldobjs +- oldobjs= +- counter=1 +- for obj in $save_oldobjs +- do +- objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` +- case " $oldobjs " in +- " ") oldobjs=$obj ;; +- *[\ /]"$objbase "*) +- while :; do +- # Make sure we don't pick an alternate name that also +- # overlaps. +- newobj=lt$counter-$objbase +- counter=`expr $counter + 1` +- case " $oldobjs " in +- *[\ /]"$newobj "*) ;; +- *) if test ! -f "$gentop/$newobj"; then break; fi ;; +- esac +- done +- $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" +- $run ln "$obj" "$gentop/$newobj" || +- $run cp "$obj" "$gentop/$newobj" +- oldobjs="$oldobjs $gentop/$newobj" +- ;; +- *) oldobjs="$oldobjs $obj" ;; +- esac +- done +- fi ++ if ${skipped_export-false}; then ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ tmp_export_symbols="$export_symbols" ++ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ++ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' ++ fi ++ ++ if test -n "$orig_export_symbols"; then ++ # The given exports_symbols file has to be filtered, so filter it. ++ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" ++ # FIXME: $output_objdir/$libname.filter potentially contains lots of ++ # 's' commands which not all seds can handle. GNU sed should be fine ++ # though. Also, the filter scales superlinearly with the number of ++ # global variables. join(1) would be nice here, but unfortunately ++ # isn't a blessed tool. ++ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ++ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ export_symbols=$output_objdir/$libname.def ++ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols ++ fi ++ fi + +- eval cmds=\"$old_archive_cmds\" ++ libobjs=$output ++ # Restore the value of output. ++ output=$save_output + +- if len=`expr "X$cmds" : ".*"` && +- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then +- cmds=$old_archive_cmds +- else +- # the command line is too long to link in one step, link in parts +- $echo "using piecewise archive linking..." +- save_RANLIB=$RANLIB +- RANLIB=: +- objlist= +- concat_cmds= +- save_oldobjs=$oldobjs ++ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ test "X$libobjs" = "X " && libobjs= ++ fi ++ # Expand the library linking commands again to reset the ++ # value of $libobjs for piecewise linking. + +- # Is there a better way of finding the last object in the list? +- for obj in $save_oldobjs +- do +- last_oldobj=$obj +- done +- for obj in $save_oldobjs +- do +- oldobjs="$objlist $obj" +- objlist="$objlist $obj" +- eval test_cmds=\"$old_archive_cmds\" +- if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && +- test "$len" -le "$max_cmd_len"; then +- : ++ # Do each of the archive commands. ++ if test "$module" = yes && test -n "$module_cmds" ; then ++ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then ++ cmds=$module_expsym_cmds + else +- # the above command should be used before it gets too long +- oldobjs=$objlist +- if test "$obj" = "$last_oldobj" ; then +- RANLIB=$save_RANLIB +- fi +- test -z "$concat_cmds" || concat_cmds=$concat_cmds~ +- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" +- objlist= ++ cmds=$module_cmds + fi +- done +- RANLIB=$save_RANLIB +- oldobjs=$objlist +- if test "X$oldobjs" = "X" ; then +- eval cmds=\"\$concat_cmds\" + else +- eval cmds=\"\$concat_cmds~\$old_archive_cmds\" ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ cmds=$archive_expsym_cmds ++ else ++ cmds=$archive_cmds ++ fi + fi + fi +- fi +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- eval cmd=\"$cmd\" +- 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 ++ if test -n "$delfiles"; then ++ # Append the command to remove temporary files to $cmds. ++ eval cmds=\"\$cmds~\$RM $delfiles\" ++ fi + +- # Now create the libtool archive. +- case $output in +- *.la) +- old_library= +- test "$build_old_libs" = yes && old_library="$libname.$libext" +- $show "creating $output" ++ # Add any objects from preloaded convenience libraries ++ if test -n "$dlprefiles"; then ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" + +- # 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" ++ func_extract_archives $gentop $dlprefiles ++ libobjs="$libobjs $func_extract_archives_result" ++ test "X$libobjs" = "X " && libobjs= + fi +- done +- # Quote the link command for shipping. +- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" +- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` +- if test "$hardcode_automatic" = yes ; then +- relink_command= +- fi + ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ eval cmd=\"$cmd\" ++ $opt_silent || { ++ func_quote_for_expand "$cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ $opt_dry_run || eval "$cmd" || { ++ lt_exit=$? + +- # 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 ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ ( cd "$output_objdir" && \ ++ $RM "${realname}T" && \ ++ $MV "${realname}U" "$realname" ) + 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 $EXIT_FAILURE +- 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 $EXIT_FAILURE +- 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 $EXIT_FAILURE +- fi +- newdlprefiles="$newdlprefiles $libdir/$name" +- done +- dlprefiles="$newdlprefiles" +- else +- newdlfiles= +- for lib in $dlfiles; do +- case $lib in +- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; +- *) abs=`pwd`"/$lib" ;; +- esac +- newdlfiles="$newdlfiles $abs" +- done +- dlfiles="$newdlfiles" +- newdlprefiles= +- for lib in $dlprefiles; do +- case $lib in +- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; +- *) abs=`pwd`"/$lib" ;; +- esac +- newdlprefiles="$newdlprefiles $abs" +- 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 | *mingw*,*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' ++ exit $lt_exit ++ } ++ done ++ IFS="$save_ifs" + +-# Names of this library. +-library_names='$library_names' ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + +-# The name of the static archive. +-old_library='$old_library' ++ if test -n "$convenience"; then ++ if test -z "$whole_archive_flag_spec"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ fi + +-# Libraries that this one depends upon. +-dependency_libs='$dependency_libs' ++ exit $EXIT_SUCCESS ++ fi + +-# Version information for $libname. +-current=$current +-age=$age +-revision=$revision ++ # Create links to the real library. ++ for linkname in $linknames; do ++ if test "$realname" != "$linkname"; then ++ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' ++ fi ++ done + +-# Is this an already installed library? +-installed=$installed ++ # 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 ++ ;; + +-# Should we warn about portability when linking against -modules? +-shouldnotlink=$module ++ obj) ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ func_warning "\`-dlopen' is ignored for objects" ++ fi + +-# Files to dlopen/dlpreopen +-dlopen='$dlfiles' +-dlpreopen='$dlprefiles' ++ case " $deplibs" in ++ *\ -l* | *\ -L*) ++ func_warning "\`-l' and \`-L' are ignored for objects" ;; ++ esac + +-# 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 ++ test -n "$rpath" && \ ++ func_warning "\`-rpath' is ignored for objects" + +- # 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 $EXIT_SUCCESS +- ;; ++ test -n "$xrpath" && \ ++ func_warning "\`-R' is ignored for objects" + +- # libtool install mode +- install) +- modename="$modename: install" ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info' is ignored for objects" + +- # 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" | grep shtool > /dev/null; then +- # Aesthetically quote it. +- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` +- case $arg in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") +- arg="\"$arg\"" ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for objects" ++ ++ case $output in ++ *.lo) ++ test -n "$objs$old_deplibs" && \ ++ func_fatal_error "cannot build library object \`$output' from non-libtool objects" ++ ++ libobj=$output ++ func_lo2o "$libobj" ++ obj=$func_lo2o_result ++ ;; ++ *) ++ libobj= ++ obj="$output" + ;; + 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" ++ # Delete the old objects. ++ $opt_dry_run || $RM $obj $libobj + +- # 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 ++ # 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 and hope we can get by with ++ # turning comma into space.. ++ wl= + +- case $arg in +- -d) isdir=yes ;; +- -f) +- case " $install_prog " in +- *[\\\ /]cp\ *) ;; +- *) prev=$arg ;; +- esac +- ;; +- -g | -m | -o) prev=$arg ;; +- -s) +- stripme=" -s" +- continue +- ;; +- -*) +- ;; +- *) +- # If the previous option needed an argument, then skip it. +- if test -n "$prev"; then +- prev= ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" ++ reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else +- dest=$arg +- continue ++ gentop="$output_objdir/${obj}x" ++ generated="$generated $gentop" ++ ++ func_extract_archives $gentop $convenience ++ reload_conv_objs="$reload_objs $func_extract_archives_result" + fi +- ;; +- esac ++ fi + +- # 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 ++ # 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 + +- if test -z "$install_prog"; then +- $echo "$modename: you must specify an install program" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE +- fi ++ output="$obj" ++ func_execute_cmds "$reload_cmds" 'exit $?' + +- if test -n "$prev"; then +- $echo "$modename: the \`$prev' option requires an argument" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE +- fi ++ # Exit if we aren't doing a library object file. ++ if test -z "$libobj"; then ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ 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 ++ exit $EXIT_SUCCESS + fi +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE +- fi + +- # Strip any trailing slash from the destination. +- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` ++ if test "$build_libtool_libs" != yes; then ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi + +- # 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%^.*/%%'` ++ # Create an invalid libtool object if no PIC, so that we don't ++ # accidentally link it into a program. ++ # $show "echo timestamp > $libobj" ++ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? ++ exit $EXIT_SUCCESS ++ fi + +- # 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 $EXIT_FAILURE ++ 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" ++ func_execute_cmds "$reload_cmds" 'exit $?' + 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 $EXIT_FAILURE +- ;; +- esac +- done ++ ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ ++ exit $EXIT_SUCCESS + ;; +- esac + +- # This variable tells wrapper scripts just to set variables rather +- # than running their programs. +- libtool_install_magic="$magic" ++ prog) ++ case $host in ++ *cygwin*) func_stripname '' '.exe' "$output" ++ output=$func_stripname_result.exe;; ++ esac ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info' is ignored for programs" + +- staticlibs= +- future_libdirs= +- current_libdirs= +- for file in $files; do ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for programs" + +- # Do each installation. +- case $file in +- *.$libext) +- # Do the static libraries later. +- staticlibs="$staticlibs $file" ++ test "$preload" = yes \ ++ && test "$dlopen_support" = unknown \ ++ && test "$dlopen_self" = unknown \ ++ && test "$dlopen_self_static" = unknown && \ ++ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." ++ ++ 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 / System.ltframework /'` ++ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; ++ esac + +- *.la) +- # Check to see that this really is a libtool archive. +- if (${SED} -e '2q' $file | grep "^# 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 $EXIT_FAILURE ++ case $host in ++ *-*-darwin*) ++ # Don't allow lazy linking, it breaks C++ global constructors ++ # But is supposedly fixed on 10.4 or later (yay!). ++ if test "$tagname" = CXX ; then ++ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in ++ 10.[0123]) ++ compile_command="$compile_command ${wl}-bind_at_load" ++ finalize_command="$finalize_command ${wl}-bind_at_load" ++ ;; ++ esac + fi ++ # Time to change all our "foo.ltframework" stuff back to "-framework foo" ++ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ ;; ++ esac + +- 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. +- if test "X$destdir" = "X$libdir"; then +- case "$current_libdirs " in +- *" $libdir "*) ;; +- *) current_libdirs="$current_libdirs $libdir" ;; ++ # move library search paths that coincide with paths to not yet ++ # installed libraries to the beginning of the library search list ++ new_libs= ++ for path in $notinst_path; do ++ case " $new_libs " in ++ *" -L$path/$objdir "*) ;; ++ *) ++ case " $compile_deplibs " in ++ *" -L$path/$objdir "*) ++ new_libs="$new_libs -L$path/$objdir" ;; + esac +- else +- # Note the libdir as a future libdir. +- case "$future_libdirs " in +- *" $libdir "*) ;; +- *) future_libdirs="$future_libdirs $libdir" ;; ++ ;; ++ esac ++ done ++ for deplib in $compile_deplibs; do ++ case $deplib in ++ -L*) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$new_libs $deplib" ;; + esac +- fi ++ ;; ++ *) new_libs="$new_libs $deplib" ;; ++ esac ++ done ++ compile_deplibs="$new_libs" + +- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ +- test "X$dir" = "X$file/" && dir= +- dir="$dir$objdir" + +- if test -n "$relink_command"; then +- # Determine the prefix the user has applied to our future dir. +- inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" + +- # Don't allow the user to place us outside of our expected +- # location b/c this prevents finding dependent libraries that +- # are installed to the same prefix. +- # At present, this check doesn't affect windows .dll's that +- # are installed into $libdir/../bin (currently, that works fine) +- # but it's something to keep an eye on. +- if test "$inst_prefix_dir" = "$destdir"; then +- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 +- exit $EXIT_FAILURE +- fi ++ 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 + +- if test -n "$inst_prefix_dir"; then +- # Stick the inst_prefix_dir data into the link command. +- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` ++ # 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 +- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` ++ 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* | *-cegcc*) ++ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ ::) dllsearchpath=$libdir;; ++ *) dllsearchpath="$dllsearchpath:$libdir";; ++ esac ++ case :$dllsearchpath: in ++ *":$testbindir:"*) ;; ++ ::) dllsearchpath=$testbindir;; ++ *) dllsearchpath="$dllsearchpath:$testbindir";; ++ 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" + +- $echo "$modename: warning: relinking \`$file'" 1>&2 +- $show "$relink_command" +- if $run eval "$relink_command"; then : ++ 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 +- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 +- exit $EXIT_FAILURE ++ 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" + +- # See the names of the shared library. +- set dummy $library_names +- if test -n "$2"; then +- realname="$2" +- shift +- shift ++ 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 + +- srcname="$realname" +- test -n "$relink_command" && srcname="$realname"T ++ func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + +- # 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 ++ # template prelinking step ++ if test -n "$prelink_cmds"; then ++ func_execute_cmds "$prelink_cmds" 'exit $?' ++ fi + +- if test "$#" -gt 0; then +- # Delete the old symlinks, and create new ones. +- # Try `ln -sf' first, because the `ln' binary might depend on +- # the symlink we replace! Solaris /bin/ln does not understand -f, +- # so we also need to try rm && ln -s. +- for linkname +- do +- if test "$linkname" != "$realname"; then +- $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" +- $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" +- fi +- done +- fi ++ wrappers_required=yes ++ case $host in ++ *cygwin* | *mingw* ) ++ if test "$build_libtool_libs" != yes; then ++ wrappers_required=no ++ fi ++ ;; ++ *cegcc) ++ # Disable wrappers for cegcc, we are cross compiling anyway. ++ wrappers_required=no ++ ;; ++ *) ++ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then ++ wrappers_required=no ++ fi ++ ;; ++ esac ++ if test "$wrappers_required" = no; then ++ # Replace the output file specification. ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ link_command="$compile_command$compile_rpath" + +- # Do each command in the postinstall commands. +- lib="$destdir/$realname" +- cmds=$postinstall_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" || { +- lt_exit=$? +- +- # Restore the uninstalled library and exit +- if test "$mode" = relink; then +- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' +- fi ++ # We have no uninstalled library dependencies, so finalize right now. ++ exit_status=0 ++ func_show_eval "$link_command" 'exit_status=$?' + +- exit $lt_exit +- } +- done +- IFS="$save_ifs" ++ # Delete the generated files. ++ if test -f "$output_objdir/${outputname}S.${objext}"; then ++ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + 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" +- ;; ++ exit $exit_status ++ fi + +- *.lo) +- # Install (i.e. copy) a libtool object. ++ 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 + +- # 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" ++ 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 +- +- # 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 $EXIT_FAILURE +- ;; +- esac +- +- # Install the libtool object if requested. +- if test -n "$destfile"; then +- $show "$install_prog $file $destfile" +- $run eval "$install_prog $file $destfile" || exit $? ++ 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 + +- # 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 ++ 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. ++ $opt_dry_run || $RM $output ++ # Link the executable and exit ++ func_show_eval "$link_command" 'exit $?' + exit $EXIT_SUCCESS +- ;; ++ fi + +- *) +- # Figure out destination file name, if it wasn't already specified. +- if test -n "$destname"; then +- destfile="$destdir/$destname" ++ 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" ++ ++ func_warning "this platform does not like uninstalled shared libraries" ++ func_warning "\`$output' will be relinked during installation" ++ 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 +- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` +- destfile="$destdir/$destfile" ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" + fi ++ fi + +- # If the file is missing, and there is a .exe on the end, strip it +- # because it is most likely a libtool script we actually want to +- # install +- stripped_ext="" +- case $file in +- *.exe) +- if test ! -f "$file"; then +- file=`$echo $file|${SED} 's,.exe$,,'` +- stripped_ext=".exe" +- fi +- ;; +- esac +- +- # 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 | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then +- notinst_deplibs= +- relink_command= +- +- # Note that it is not necessary on cygwin/mingw to append a dot to +- # foo even if both foo and FILE.exe exist: automatic-append-.exe +- # behavior happens only for exec(3), not for open(2)! Also, sourcing +- # `FILE.' does not work on cygwin managed mounts. +- # +- # If there is no directory component, then add one. +- case $wrapper 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 $EXIT_FAILURE +- fi ++ # Replace the output file specification. ++ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + +- 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 ++ # Delete the old output files. ++ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + +- relink_command= +- # Note that it is not necessary on cygwin/mingw to append a dot to +- # foo even if both foo and FILE.exe exist: automatic-append-.exe +- # behavior happens only for exec(3), not for open(2)! Also, sourcing +- # `FILE.' does not work on cygwin managed mounts. +- # +- # If there is no directory component, then add one. +- case $wrapper in +- */* | *\\*) . ${wrapper} ;; +- *) . ./${wrapper} ;; +- esac ++ func_show_eval "$link_command" 'exit $?' + +- outputname= +- if test "$fast_install" = no && test -n "$relink_command"; then +- if test "$finalize" = yes && test -z "$run"; then +- tmpdir=`func_mktempdir` +- file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` +- outputname="$tmpdir/$file" +- # Replace the output file specification. +- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` ++ # Now create the wrapper script. ++ func_verbose "creating $output" + +- $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 ++ # 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}\" || $lt_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 +- # Install the binary that we compiled earlier. +- file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ func_quote_for_eval "$var_value" ++ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi +- fi ++ done ++ relink_command="(cd `pwd`; $relink_command)" ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ fi + +- # remove .exe since cygwin /usr/bin/install will append another +- # one anyway +- 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 +- ;; ++ # Quote $ECHO for shipping. ++ if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then ++ case $progpath in ++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; ++ *) qecho="$SHELL `pwd`/$progpath --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 not in dry run mode. ++ $opt_dry_run || { ++ # win32 will think the script is a binary if it has ++ # a .exe suffix, so we strip it off here. ++ case $output in ++ *.exe) func_stripname '' '.exe' "$output" ++ output=$func_stripname_result ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) ++ exeext=.exe ++ func_stripname '' '.exe' "$outputname" ++ outputname=$func_stripname_result ;; ++ *) exeext= ;; + esac +- $show "$install_prog$stripme $file $destfile" +- $run eval "$install_prog\$stripme \$file \$destfile" || exit $? +- test -n "$outputname" && ${rm}r "$tmpdir" +- ;; +- esac +- done ++ case $host in ++ *cygwin* | *mingw* ) ++ func_dirname_and_basename "$output" "" "." ++ output_name=$func_basename_result ++ output_path=$func_dirname_result ++ cwrappersource="$output_path/$objdir/lt-$output_name.c" ++ cwrapper="$output_path/$output_name.exe" ++ $RM $cwrappersource $cwrapper ++ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 ++ ++ func_emit_cwrapperexe_src > $cwrappersource ++ ++ # The wrapper executable is built using the $host compiler, ++ # because it contains $host paths and files. If cross- ++ # compiling, it, like the target executable, must be ++ # executed on the $host or under an emulation environment. ++ $opt_dry_run || { ++ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource ++ $STRIP $cwrapper ++ } + +- for file in $staticlibs; do +- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ # Now, create the wrapper script for func_source use: ++ func_ltwrapper_scriptname $cwrapper ++ $RM $func_ltwrapper_scriptname_result ++ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 ++ $opt_dry_run || { ++ # note: this script will not be executed, so do not chmod. ++ if test "x$build" = "x$host" ; then ++ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result ++ else ++ func_emit_wrapper no > $func_ltwrapper_scriptname_result ++ fi ++ } ++ ;; ++ * ) ++ $RM $output ++ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + +- # Set up the ranlib parameters. +- oldlib="$destdir/$name" ++ func_emit_wrapper no > $output ++ chmod +x $output ++ ;; ++ esac ++ } ++ exit $EXIT_SUCCESS ++ ;; ++ esac + +- $show "$install_prog $file $oldlib" +- $run eval "$install_prog \$file \$oldlib" || exit $? ++ # See if we need to build an old-fashioned archive. ++ for oldlib in $oldlibs; do + +- if test -n "$stripme" && test -n "$old_striplib"; then +- $show "$old_striplib $oldlib" +- $run eval "$old_striplib $oldlib" || exit $? ++ if test "$build_libtool_libs" = convenience; then ++ oldobjs="$libobjs_save $symfileobj" ++ addlibs="$convenience" ++ build_libtool_libs=no ++ else ++ if test "$build_libtool_libs" = module; then ++ oldobjs="$libobjs_save" ++ build_libtool_libs=no ++ else ++ oldobjs="$old_deplibs $non_pic_objects" ++ if test "$preload" = yes && test -f "$symfileobj"; then ++ oldobjs="$oldobjs $symfileobj" ++ fi ++ fi ++ addlibs="$old_convenience" + fi + +- # Do each command in the postinstall commands. +- cmds=$old_postinstall_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" || exit $? +- done +- IFS="$save_ifs" +- done ++ if test -n "$addlibs"; then ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" + +- if test -n "$future_libdirs"; then +- $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 +- fi ++ func_extract_archives $gentop $addlibs ++ oldobjs="$oldobjs $func_extract_archives_result" ++ fi + +- if test -n "$current_libdirs"; then +- # Maybe just do a dry run. +- test -n "$run" && current_libdirs=" -n$current_libdirs" +- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' +- else +- exit $EXIT_SUCCESS +- fi +- ;; ++ # Do each command in the archive commands. ++ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then ++ cmds=$old_archive_from_new_cmds ++ else + +- # libtool finish mode +- finish) +- modename="$modename: finish" +- libdirs="$nonopt" +- admincmds= ++ # Add any objects from preloaded convenience libraries ++ if test -n "$dlprefiles"; then ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" + +- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then +- for dir +- do +- libdirs="$libdirs $dir" +- done ++ func_extract_archives $gentop $dlprefiles ++ oldobjs="$oldobjs $func_extract_archives_result" ++ fi + +- for libdir in $libdirs; do +- if test -n "$finish_cmds"; then +- # Do each command in the finish commands. +- cmds=$finish_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" || admincmds="$admincmds +- $cmd" ++ # POSIX demands no paths to be encoded in archives. We have ++ # to avoid creating archives with duplicate basenames if we ++ # might have to extract them afterwards, e.g., when creating a ++ # static archive out of a convenience library, or when linking ++ # the entirety of a libtool archive into another (currently ++ # not supported by libtool). ++ if (for obj in $oldobjs ++ do ++ func_basename "$obj" ++ $ECHO "$func_basename_result" ++ done | sort | sort -uc >/dev/null 2>&1); then ++ : ++ else ++ $ECHO "copying selected object files to avoid basename conflicts..." ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" ++ func_mkdir_p "$gentop" ++ save_oldobjs=$oldobjs ++ oldobjs= ++ counter=1 ++ for obj in $save_oldobjs ++ do ++ func_basename "$obj" ++ objbase="$func_basename_result" ++ case " $oldobjs " in ++ " ") oldobjs=$obj ;; ++ *[\ /]"$objbase "*) ++ while :; do ++ # Make sure we don't pick an alternate name that also ++ # overlaps. ++ newobj=lt$counter-$objbase ++ func_arith $counter + 1 ++ counter=$func_arith_result ++ case " $oldobjs " in ++ *[\ /]"$newobj "*) ;; ++ *) if test ! -f "$gentop/$newobj"; then break; fi ;; ++ esac ++ done ++ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" ++ oldobjs="$oldobjs $gentop/$newobj" ++ ;; ++ *) oldobjs="$oldobjs $obj" ;; ++ esac + 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 $EXIT_SUCCESS ++ eval cmds=\"$old_archive_cmds\" + +- $echo "X----------------------------------------------------------------------" | $Xsed +- $echo "Libraries have been installed in:" +- for libdir in $libdirs; do +- $echo " $libdir" ++ func_len " $cmds" ++ len=$func_len_result ++ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ cmds=$old_archive_cmds ++ else ++ # the command line is too long to link in one step, link in parts ++ func_verbose "using piecewise archive linking..." ++ save_RANLIB=$RANLIB ++ RANLIB=: ++ objlist= ++ concat_cmds= ++ save_oldobjs=$oldobjs ++ oldobjs= ++ # Is there a better way of finding the last object in the list? ++ for obj in $save_oldobjs ++ do ++ last_oldobj=$obj ++ done ++ eval test_cmds=\"$old_archive_cmds\" ++ func_len " $test_cmds" ++ len0=$func_len_result ++ len=$len0 ++ for obj in $save_oldobjs ++ do ++ func_len " $obj" ++ func_arith $len + $func_len_result ++ len=$func_arith_result ++ func_append objlist " $obj" ++ if test "$len" -lt "$max_cmd_len"; then ++ : ++ else ++ # the above command should be used before it gets too long ++ oldobjs=$objlist ++ if test "$obj" = "$last_oldobj" ; then ++ RANLIB=$save_RANLIB ++ fi ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" ++ objlist= ++ len=$len0 ++ fi ++ done ++ RANLIB=$save_RANLIB ++ oldobjs=$objlist ++ if test "X$oldobjs" = "X" ; then ++ eval cmds=\"\$concat_cmds\" ++ else ++ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" ++ fi ++ fi ++ fi ++ func_execute_cmds "$cmds" 'exit $?' + 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 "X----------------------------------------------------------------------" | $Xsed +- exit $EXIT_SUCCESS +- ;; +- +- # 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 $EXIT_FAILURE +- fi ++ test -n "$generated" && \ ++ func_show_eval "${RM}r$generated" + +- # 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 $EXIT_FAILURE +- fi ++ # Now create the libtool archive. ++ case $output in ++ *.la) ++ old_library= ++ test "$build_old_libs" = yes && old_library="$libname.$libext" ++ func_verbose "creating $output" + +- dir= +- case $file in +- *.la) +- # Check to see that this really is a libtool archive. +- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; 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}\" || $lt_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 +- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 +- $echo "$help" 1>&2 +- exit $EXIT_FAILURE ++ func_quote_for_eval "$var_value" ++ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi ++ done ++ # Quote the link command for shipping. ++ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ if test "$hardcode_automatic" = yes ; then ++ relink_command= ++ fi + +- # Read the libtool library. +- dlname= +- library_names= ++ # Only create the output if not a dry run. ++ $opt_dry_run || { ++ 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) ++ func_basename "$deplib" ++ name="$func_basename_result" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$deplib' is not a valid libtool archive" ++ newdependency_libs="$newdependency_libs $libdir/$name" ++ ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; ++ esac ++ done ++ dependency_libs="$newdependency_libs" ++ newdlfiles= ++ ++ for lib in $dlfiles; do ++ case $lib in ++ *.la) ++ func_basename "$lib" ++ name="$func_basename_result" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$lib' is not a valid libtool archive" ++ newdlfiles="$newdlfiles $libdir/$name" ++ ;; ++ *) newdlfiles="$newdlfiles $lib" ;; ++ esac ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ case $lib in ++ *.la) ++ # Only pass preopened files to the pseudo-archive (for ++ # eventual linking with the app. that links it) if we ++ # didn't already link the preopened objects directly into ++ # the library: ++ func_basename "$lib" ++ name="$func_basename_result" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$lib' is not a valid libtool archive" ++ newdlprefiles="$newdlprefiles $libdir/$name" ++ ;; ++ esac ++ done ++ dlprefiles="$newdlprefiles" ++ else ++ newdlfiles= ++ for lib in $dlfiles; do ++ case $lib in ++ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; ++ *) abs=`pwd`"/$lib" ;; ++ esac ++ newdlfiles="$newdlfiles $abs" ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ case $lib in ++ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; ++ *) abs=`pwd`"/$lib" ;; ++ esac ++ newdlprefiles="$newdlprefiles $abs" ++ 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 | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ esac ++ $ECHO > $output "\ ++# $outputname - a libtool library file ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. + +- # If there is no directory component, then add one. +- case $file in +- */* | *\\*) . $file ;; +- *) . ./$file ;; +- esac ++# The name that we can dlopen(3). ++dlname='$tdlname' + +- # 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 ++# Names of this library. ++library_names='$library_names' + +- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` +- test "X$dir" = "X$file" && dir=. ++# The name of the static archive. ++old_library='$old_library' + +- if test -f "$dir/$objdir/$dlname"; then +- dir="$dir/$objdir" +- else +- if test ! -f "$dir/$dlname"; then +- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 +- exit $EXIT_FAILURE +- fi +- fi +- ;; ++# Linker flags that can not go in dependency_libs. ++inherited_linker_flags='$new_inherited_linker_flags' + +- *.lo) +- # Just add the directory containing the .lo file. +- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` +- test "X$dir" = "X$file" && dir=. +- ;; ++# Libraries that this one depends upon. ++dependency_libs='$dependency_libs' + +- *) +- $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 +- continue +- ;; +- esac ++# Names of additional weak libraries provided by this library ++weak_library_names='$weak_libs' + +- # Get the absolute pathname. +- absdir=`cd "$dir" && pwd` +- test -n "$absdir" && dir="$absdir" ++# Version information for $libname. ++current=$current ++age=$age ++revision=$revision + +- # 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 ++# Is this an already installed library? ++installed=$installed + +- # This variable tells wrapper scripts just to set shlibpath_var +- # rather than running their programs. +- libtool_execute_magic="$magic" ++# Should we warn about portability when linking against -modules? ++shouldnotlink=$module + +- # 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 | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- # If there is no directory component, then add one. +- case $file in +- */* | *\\*) . $file ;; +- *) . ./$file ;; +- esac ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' + +- # 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 ++# 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 ++ } + +- if test -z "$run"; then +- if test -n "$shlibpath_var"; then +- # Export the shlibpath_var. +- eval "export $shlibpath_var" +- fi ++ # Do a symbolic link so that the libtool archive can be found in ++ # LD_LIBRARY_PATH before the program is installed. ++ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ++ ;; ++ esac ++ exit $EXIT_SUCCESS ++} + +- # Restore saved environment variables +- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +- do +- eval "if test \"\${save_$lt_var+set}\" = set; then +- $lt_var=\$save_$lt_var; export $lt_var +- fi" +- done ++{ test "$mode" = link || test "$mode" = relink; } && ++ func_mode_link ${1+"$@"} + +- # 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 $EXIT_SUCCESS +- fi +- ;; + +- # libtool clean and uninstall mode +- clean | uninstall) +- modename="$modename: $mode" +- rm="$nonopt" ++# func_mode_uninstall arg... ++func_mode_uninstall () ++{ ++ $opt_debug ++ RM="$nonopt" + files= + rmforce= + exit_status=0 +@@ -6547,30 +8202,28 @@ + for arg + do + case $arg in +- -f) rm="$rm $arg"; rmforce=yes ;; +- -*) rm="$rm $arg" ;; ++ -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 $EXIT_FAILURE +- fi ++ test -z "$RM" && \ ++ func_fatal_help "you must specify an RM program" + + rmdirs= + + origobjdir="$objdir" + for file in $files; do +- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$dir" = "X$file"; then +- dir=. ++ func_dirname "$file" "" "." ++ dir="$func_dirname_result" ++ if test "X$dir" = X.; then + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi +- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ func_basename "$file" ++ name="$func_basename_result" + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates +@@ -6582,9 +8235,9 @@ + 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 ++ 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 +@@ -6598,8 +8251,8 @@ + case $name in + *.la) + # Possibly a libtool archive, so verify it. +- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- . $dir/$name ++ if func_lalib_p "$file"; then ++ func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do +@@ -6614,39 +8267,17 @@ + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac +- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. +- cmds=$postuninstall_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" +- if test "$?" -ne 0 && test "$rmforce" != yes; then +- exit_status=1 +- fi +- done +- IFS="$save_ifs" ++ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. +- cmds=$old_postuninstall_cmds +- save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do +- IFS="$save_ifs" +- eval cmd=\"$cmd\" +- $show "$cmd" +- $run eval "$cmd" +- if test "$?" -ne 0 && test "$rmforce" != yes; then +- exit_status=1 +- fi +- done +- IFS="$save_ifs" ++ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; +@@ -6656,20 +8287,20 @@ + + *.lo) + # Possibly a libtool object, so verify it. +- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ if func_lalib_p "$file"; then + + # Read the .lo file +- . $dir/$name ++ func_source $dir/$name + + # Add PIC object to the list of files to remove. +- if test -n "$pic_object" \ +- && test "$pic_object" != none; then ++ if test -n "$pic_object" && ++ test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. +- if test -n "$non_pic_object" \ +- && test "$non_pic_object" != none; then ++ if test -n "$non_pic_object" && ++ test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi +@@ -6680,17 +8311,26 @@ + noexename=$name + case $file in + *.exe) +- file=`$echo $file|${SED} 's,.exe$,,'` +- noexename=`$echo $name|${SED} 's,.exe$,,'` ++ func_stripname '' '.exe' "$file" ++ file=$func_stripname_result ++ func_stripname '' '.exe' "$name" ++ noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. +- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- relink_command= +- . $dir/$noexename ++ if func_ltwrapper_p "$file"; then ++ if func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ relink_command= ++ func_source $func_ltwrapper_scriptname_result ++ rmfiles="$rmfiles $func_ltwrapper_scriptname_result" ++ else ++ relink_command= ++ func_source $dir/$noexename ++ fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles +@@ -6705,239 +8345,38 @@ + fi + ;; + esac +- $show "$rm $rmfiles" +- $run $rm $rmfiles || exit_status=1 ++ func_show_eval "$RM $rmfiles" 'exit_status=1' + done + objdir="$origobjdir" + + # 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 ++ func_show_eval "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 $EXIT_FAILURE +- ;; +- esac ++{ test "$mode" = uninstall || test "$mode" = clean; } && ++ func_mode_uninstall ${1+"$@"} + +- if test -z "$exec_cmd"; then +- $echo "$modename: invalid operation mode \`$mode'" 1>&2 +- $echo "$generic_help" 1>&2 +- exit $EXIT_FAILURE +- fi +-fi # test -z "$show_help" ++test -z "$mode" && { ++ help="$generic_help" ++ func_fatal_help "you must specify a MODE" ++} ++ ++test -z "$exec_cmd" && \ ++ func_fatal_help "invalid operation mode \`$mode'" + + if test -n "$exec_cmd"; then +- eval exec $exec_cmd ++ eval exec "$exec_cmd" + exit $EXIT_FAILURE + 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 +- --tag=TAG use configuration variables from tag TAG +- --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. +- +-Report bugs to ." +- exit $EXIT_SUCCESS +- ;; +- +-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. ++exit $exit_status + +-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 +- -objectlist FILE Use a list of object files found in FILE to specify objects +- -precious-files-regex REGEX +- don't remove output files matching REGEX +- -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 uninstalled libtool libraries +- -static-libtool-libs +- 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 $EXIT_FAILURE +- ;; +-esac +- +-$echo +-$echo "Try \`$modename --help' for more information about other modes." +- +-exit $? + + # The TAGs below are defined such that we never get into a situation + # in which we disable both kinds of libraries. Given conflicting +@@ -6951,14 +8390,17 @@ + # configuration. But we'll never go from static-only to shared-only. + + # ### BEGIN LIBTOOL TAG CONFIG: disable-shared +-disable_libs=shared ++build_libtool_libs=no ++build_old_libs=yes + # ### END LIBTOOL TAG CONFIG: disable-shared + + # ### BEGIN LIBTOOL TAG CONFIG: disable-static +-disable_libs=static ++build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + # ### END LIBTOOL TAG CONFIG: disable-static + + # Local Variables: + # mode:shell-script + # sh-indentation:2 + # End: ++# vi:sw=2 ++ +diff -Naur libva-0.31.0/m4/libtool.m4 libva-0.31.0.patch/m4/libtool.m4 +--- libva-0.31.0/m4/libtool.m4 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/m4/libtool.m4 2009-07-30 18:46:57.000000000 +0200 +@@ -0,0 +1,7360 @@ ++# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- ++# ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ++# 2006, 2007, 2008 Free Software Foundation, Inc. ++# Written by Gordon Matzigkeit, 1996 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++m4_define([_LT_COPYING], [dnl ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ++# 2006, 2007, 2008 Free Software Foundation, Inc. ++# Written by Gordon Matzigkeit, 1996 ++# ++# This file is part of GNU Libtool. ++# ++# GNU Libtool 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. ++# ++# As a special exception to the GNU General Public License, ++# if you distribute this file as part of a program or library that ++# is built using GNU Libtool, you may include this file under the ++# same distribution terms that you use for the rest of that program. ++# ++# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, or ++# obtained by writing to the Free Software Foundation, Inc., ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++]) ++ ++# serial 56 LT_INIT ++ ++ ++# LT_PREREQ(VERSION) ++# ------------------ ++# Complain and exit if this libtool version is less that VERSION. ++m4_defun([LT_PREREQ], ++[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, ++ [m4_default([$3], ++ [m4_fatal([Libtool version $1 or higher is required], ++ 63)])], ++ [$2])]) ++ ++ ++# _LT_CHECK_BUILDDIR ++# ------------------ ++# Complain if the absolute build directory name contains unusual characters ++m4_defun([_LT_CHECK_BUILDDIR], ++[case `pwd` in ++ *\ * | *\ *) ++ AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; ++esac ++]) ++ ++ ++# LT_INIT([OPTIONS]) ++# ------------------ ++AC_DEFUN([LT_INIT], ++[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT ++AC_BEFORE([$0], [LT_LANG])dnl ++AC_BEFORE([$0], [LT_OUTPUT])dnl ++AC_BEFORE([$0], [LTDL_INIT])dnl ++m4_require([_LT_CHECK_BUILDDIR])dnl ++ ++dnl Autoconf doesn't catch unexpanded LT_ macros by default: ++m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl ++m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl ++dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 ++dnl unless we require an AC_DEFUNed macro: ++AC_REQUIRE([LTOPTIONS_VERSION])dnl ++AC_REQUIRE([LTSUGAR_VERSION])dnl ++AC_REQUIRE([LTVERSION_VERSION])dnl ++AC_REQUIRE([LTOBSOLETE_VERSION])dnl ++m4_require([_LT_PROG_LTMAIN])dnl ++ ++dnl Parse OPTIONS ++_LT_SET_OPTIONS([$0], [$1]) ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS="$ltmain" ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++AC_SUBST(LIBTOOL)dnl ++ ++_LT_SETUP ++ ++# Only expand once: ++m4_define([LT_INIT]) ++])# LT_INIT ++ ++# Old names: ++AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) ++AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_PROG_LIBTOOL], []) ++dnl AC_DEFUN([AM_PROG_LIBTOOL], []) ++ ++ ++# _LT_CC_BASENAME(CC) ++# ------------------- ++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. ++m4_defun([_LT_CC_BASENAME], ++[for cc_temp in $1""; do ++ case $cc_temp in ++ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; ++ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++done ++cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ++]) ++ ++ ++# _LT_FILEUTILS_DEFAULTS ++# ---------------------- ++# It is okay to use these file commands and assume they have been set ++# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. ++m4_defun([_LT_FILEUTILS_DEFAULTS], ++[: ${CP="cp -f"} ++: ${MV="mv -f"} ++: ${RM="rm -f"} ++])# _LT_FILEUTILS_DEFAULTS ++ ++ ++# _LT_SETUP ++# --------- ++m4_defun([_LT_SETUP], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++_LT_DECL([], [host_alias], [0], [The host system])dnl ++_LT_DECL([], [host], [0])dnl ++_LT_DECL([], [host_os], [0])dnl ++dnl ++_LT_DECL([], [build_alias], [0], [The build system])dnl ++_LT_DECL([], [build], [0])dnl ++_LT_DECL([], [build_os], [0])dnl ++dnl ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([LT_PATH_LD])dnl ++AC_REQUIRE([LT_PATH_NM])dnl ++dnl ++AC_REQUIRE([AC_PROG_LN_S])dnl ++test -z "$LN_S" && LN_S="ln -s" ++_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl ++dnl ++AC_REQUIRE([LT_CMD_MAX_LEN])dnl ++_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl ++_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl ++dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_CHECK_SHELL_FEATURES])dnl ++m4_require([_LT_CMD_RELOAD])dnl ++m4_require([_LT_CHECK_MAGIC_METHOD])dnl ++m4_require([_LT_CMD_OLD_ARCHIVE])dnl ++m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl ++ ++_LT_CONFIG_LIBTOOL_INIT([ ++# See if we are running on zsh, and set the options which allow our ++# commands through without removal of \ escapes INIT. ++if test -n "\${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++fi ++]) ++if test -n "${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++fi ++ ++_LT_CHECK_OBJDIR ++ ++m4_require([_LT_TAG_COMPILER])dnl ++_LT_PROG_ECHO_BACKSLASH ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([["`\\]]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Sed substitution to delay expansion of an escaped single quote. ++delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' ++ ++# Sed substitution to avoid accidental globbing in evaled expressions ++no_glob_subst='s/\*/\\\*/g' ++ ++# Global variables: ++ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except MSVC, ++# which needs '.lib'). ++libext=a ++ ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$CC" && CC=cc ++test -z "$LTCC" && LTCC=$CC ++test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS ++test -z "$LD" && LD=ld ++test -z "$ac_objext" && ac_objext=o ++ ++_LT_CC_BASENAME([$compiler]) ++ ++# Only perform the check for file, if the check method requires it ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ _LT_PATH_MAGIC ++ fi ++ ;; ++esac ++ ++# Use C for the default configuration in the libtool script ++LT_SUPPORTED_TAG([CC]) ++_LT_LANG_C_CONFIG ++_LT_LANG_DEFAULT_CONFIG ++_LT_CONFIG_COMMANDS ++])# _LT_SETUP ++ ++ ++# _LT_PROG_LTMAIN ++# --------------- ++# Note that this code is called both from `configure', and `config.status' ++# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, ++# `config.status' has no value for ac_aux_dir unless we are using Automake, ++# so we pass a copy along to make sure it has a sensible value anyway. ++m4_defun([_LT_PROG_LTMAIN], ++[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl ++_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ++ltmain="$ac_aux_dir/ltmain.sh" ++])# _LT_PROG_LTMAIN ++ ++ ++## ------------------------------------- ## ++## Accumulate code for creating libtool. ## ++## ------------------------------------- ## ++ ++# So that we can recreate a full libtool script including additional ++# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS ++# in macros and then make a single call at the end using the `libtool' ++# label. ++ ++ ++# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) ++# ---------------------------------------- ++# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. ++m4_define([_LT_CONFIG_LIBTOOL_INIT], ++[m4_ifval([$1], ++ [m4_append([_LT_OUTPUT_LIBTOOL_INIT], ++ [$1 ++])])]) ++ ++# Initialize. ++m4_define([_LT_OUTPUT_LIBTOOL_INIT]) ++ ++ ++# _LT_CONFIG_LIBTOOL([COMMANDS]) ++# ------------------------------ ++# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. ++m4_define([_LT_CONFIG_LIBTOOL], ++[m4_ifval([$1], ++ [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], ++ [$1 ++])])]) ++ ++# Initialize. ++m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) ++ ++ ++# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) ++# ----------------------------------------------------- ++m4_defun([_LT_CONFIG_SAVE_COMMANDS], ++[_LT_CONFIG_LIBTOOL([$1]) ++_LT_CONFIG_LIBTOOL_INIT([$2]) ++]) ++ ++ ++# _LT_FORMAT_COMMENT([COMMENT]) ++# ----------------------------- ++# Add leading comment marks to the start of each line, and a trailing ++# full-stop to the whole comment if one is not present already. ++m4_define([_LT_FORMAT_COMMENT], ++[m4_ifval([$1], [ ++m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], ++ [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) ++)]) ++ ++ ++ ++## ------------------------ ## ++## FIXME: Eliminate VARNAME ## ++## ------------------------ ## ++ ++ ++# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) ++# ------------------------------------------------------------------- ++# CONFIGNAME is the name given to the value in the libtool script. ++# VARNAME is the (base) name used in the configure script. ++# VALUE may be 0, 1 or 2 for a computed quote escaped value based on ++# VARNAME. Any other value will be used directly. ++m4_define([_LT_DECL], ++[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], ++ [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], ++ [m4_ifval([$1], [$1], [$2])]) ++ lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) ++ m4_ifval([$4], ++ [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) ++ lt_dict_add_subkey([lt_decl_dict], [$2], ++ [tagged?], [m4_ifval([$5], [yes], [no])])]) ++]) ++ ++ ++# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) ++# -------------------------------------------------------- ++m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) ++ ++ ++# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) ++# ------------------------------------------------ ++m4_define([lt_decl_tag_varnames], ++[_lt_decl_filter([tagged?], [yes], $@)]) ++ ++ ++# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) ++# --------------------------------------------------------- ++m4_define([_lt_decl_filter], ++[m4_case([$#], ++ [0], [m4_fatal([$0: too few arguments: $#])], ++ [1], [m4_fatal([$0: too few arguments: $#: $1])], ++ [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], ++ [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], ++ [lt_dict_filter([lt_decl_dict], $@)])[]dnl ++]) ++ ++ ++# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) ++# -------------------------------------------------- ++m4_define([lt_decl_quote_varnames], ++[_lt_decl_filter([value], [1], $@)]) ++ ++ ++# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) ++# --------------------------------------------------- ++m4_define([lt_decl_dquote_varnames], ++[_lt_decl_filter([value], [2], $@)]) ++ ++ ++# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) ++# --------------------------------------------------- ++m4_define([lt_decl_varnames_tagged], ++[m4_assert([$# <= 2])dnl ++_$0(m4_quote(m4_default([$1], [[, ]])), ++ m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), ++ m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) ++m4_define([_lt_decl_varnames_tagged], ++[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) ++ ++ ++# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) ++# ------------------------------------------------ ++m4_define([lt_decl_all_varnames], ++[_$0(m4_quote(m4_default([$1], [[, ]])), ++ m4_if([$2], [], ++ m4_quote(lt_decl_varnames), ++ m4_quote(m4_shift($@))))[]dnl ++]) ++m4_define([_lt_decl_all_varnames], ++[lt_join($@, lt_decl_varnames_tagged([$1], ++ lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ++]) ++ ++ ++# _LT_CONFIG_STATUS_DECLARE([VARNAME]) ++# ------------------------------------ ++# Quote a variable value, and forward it to `config.status' so that its ++# declaration there will have the same value as in `configure'. VARNAME ++# must have a single quote delimited value for this to work. ++m4_define([_LT_CONFIG_STATUS_DECLARE], ++[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) ++ ++ ++# _LT_CONFIG_STATUS_DECLARATIONS ++# ------------------------------ ++# We delimit libtool config variables with single quotes, so when ++# we write them to config.status, we have to be sure to quote all ++# embedded single quotes properly. In configure, this macro expands ++# each variable declared with _LT_DECL (and _LT_TAGDECL) into: ++# ++# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' ++m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], ++[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), ++ [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) ++ ++ ++# _LT_LIBTOOL_TAGS ++# ---------------- ++# Output comment and list of tags supported by the script ++m4_defun([_LT_LIBTOOL_TAGS], ++[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl ++available_tags="_LT_TAGS"dnl ++]) ++ ++ ++# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) ++# ----------------------------------- ++# Extract the dictionary values for VARNAME (optionally with TAG) and ++# expand to a commented shell variable setting: ++# ++# # Some comment about what VAR is for. ++# visible_name=$lt_internal_name ++m4_define([_LT_LIBTOOL_DECLARE], ++[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], ++ [description])))[]dnl ++m4_pushdef([_libtool_name], ++ m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl ++m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), ++ [0], [_libtool_name=[$]$1], ++ [1], [_libtool_name=$lt_[]$1], ++ [2], [_libtool_name=$lt_[]$1], ++ [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl ++m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ++]) ++ ++ ++# _LT_LIBTOOL_CONFIG_VARS ++# ----------------------- ++# Produce commented declarations of non-tagged libtool config variables ++# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' ++# script. Tagged libtool config variables (even for the LIBTOOL CONFIG ++# section) are produced by _LT_LIBTOOL_TAG_VARS. ++m4_defun([_LT_LIBTOOL_CONFIG_VARS], ++[m4_foreach([_lt_var], ++ m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), ++ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) ++ ++ ++# _LT_LIBTOOL_TAG_VARS(TAG) ++# ------------------------- ++m4_define([_LT_LIBTOOL_TAG_VARS], ++[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), ++ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) ++ ++ ++# _LT_TAGVAR(VARNAME, [TAGNAME]) ++# ------------------------------ ++m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) ++ ++ ++# _LT_CONFIG_COMMANDS ++# ------------------- ++# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of ++# variables for single and double quote escaping we saved from calls ++# to _LT_DECL, we can put quote escaped variables declarations ++# into `config.status', and then the shell code to quote escape them in ++# for loops in `config.status'. Finally, any additional code accumulated ++# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. ++m4_defun([_LT_CONFIG_COMMANDS], ++[AC_PROVIDE_IFELSE([LT_OUTPUT], ++ dnl If the libtool generation code has been placed in $CONFIG_LT, ++ dnl instead of duplicating it all over again into config.status, ++ dnl then we will have config.status run $CONFIG_LT later, so it ++ dnl needs to know what name is stored there: ++ [AC_CONFIG_COMMANDS([libtool], ++ [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], ++ dnl If the libtool generation code is destined for config.status, ++ dnl expand the accumulated commands and init code now: ++ [AC_CONFIG_COMMANDS([libtool], ++ [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ++])#_LT_CONFIG_COMMANDS ++ ++ ++# Initialize. ++m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], ++[ ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++sed_quote_subst='$sed_quote_subst' ++double_quote_subst='$double_quote_subst' ++delay_variable_subst='$delay_variable_subst' ++_LT_CONFIG_STATUS_DECLARATIONS ++LTCC='$LTCC' ++LTCFLAGS='$LTCFLAGS' ++compiler='$compiler_DEFAULT' ++ ++# Quote evaled strings. ++for var in lt_decl_all_varnames([[ \ ++]], lt_decl_quote_varnames); do ++ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in ++ *[[\\\\\\\`\\"\\\$]]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++# Double-quote double-evaled strings. ++for var in lt_decl_all_varnames([[ \ ++]], lt_decl_dquote_varnames); do ++ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in ++ *[[\\\\\\\`\\"\\\$]]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++# Fix-up fallback echo if it was mangled by the above quoting rules. ++case \$lt_ECHO in ++*'\\\[$]0 --fallback-echo"')dnl " ++ lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ++ ;; ++esac ++ ++_LT_OUTPUT_LIBTOOL_INIT ++]) ++ ++ ++# LT_OUTPUT ++# --------- ++# This macro allows early generation of the libtool script (before ++# AC_OUTPUT is called), incase it is used in configure for compilation ++# tests. ++AC_DEFUN([LT_OUTPUT], ++[: ${CONFIG_LT=./config.lt} ++AC_MSG_NOTICE([creating $CONFIG_LT]) ++cat >"$CONFIG_LT" <<_LTEOF ++#! $SHELL ++# Generated by $as_me. ++# Run this file to recreate a libtool stub with the current configuration. ++ ++lt_cl_silent=false ++SHELL=\${CONFIG_SHELL-$SHELL} ++_LTEOF ++ ++cat >>"$CONFIG_LT" <<\_LTEOF ++AS_SHELL_SANITIZE ++_AS_PREPARE ++ ++exec AS_MESSAGE_FD>&1 ++exec AS_MESSAGE_LOG_FD>>config.log ++{ ++ echo ++ AS_BOX([Running $as_me.]) ++} >&AS_MESSAGE_LOG_FD ++ ++lt_cl_help="\ ++\`$as_me' creates a local libtool stub from the current configuration, ++for use in further configure time tests before the real libtool is ++generated. ++ ++Usage: $[0] [[OPTIONS]] ++ ++ -h, --help print this help, then exit ++ -V, --version print version number, then exit ++ -q, --quiet do not print progress messages ++ -d, --debug don't remove temporary files ++ ++Report bugs to ." ++ ++lt_cl_version="\ ++m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl ++m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) ++configured by $[0], generated by m4_PACKAGE_STRING. ++ ++Copyright (C) 2008 Free Software Foundation, Inc. ++This config.lt script is free software; the Free Software Foundation ++gives unlimited permision to copy, distribute and modify it." ++ ++while test $[#] != 0 ++do ++ case $[1] in ++ --version | --v* | -V ) ++ echo "$lt_cl_version"; exit 0 ;; ++ --help | --h* | -h ) ++ echo "$lt_cl_help"; exit 0 ;; ++ --debug | --d* | -d ) ++ debug=: ;; ++ --quiet | --q* | --silent | --s* | -q ) ++ lt_cl_silent=: ;; ++ ++ -*) AC_MSG_ERROR([unrecognized option: $[1] ++Try \`$[0] --help' for more information.]) ;; ++ ++ *) AC_MSG_ERROR([unrecognized argument: $[1] ++Try \`$[0] --help' for more information.]) ;; ++ esac ++ shift ++done ++ ++if $lt_cl_silent; then ++ exec AS_MESSAGE_FD>/dev/null ++fi ++_LTEOF ++ ++cat >>"$CONFIG_LT" <<_LTEOF ++_LT_OUTPUT_LIBTOOL_COMMANDS_INIT ++_LTEOF ++ ++cat >>"$CONFIG_LT" <<\_LTEOF ++AC_MSG_NOTICE([creating $ofile]) ++_LT_OUTPUT_LIBTOOL_COMMANDS ++AS_EXIT(0) ++_LTEOF ++chmod +x "$CONFIG_LT" ++ ++# configure is writing to config.log, but config.lt does its own redirection, ++# appending to config.log, which fails on DOS, as config.log is still kept ++# open by configure. Here we exec the FD to /dev/null, effectively closing ++# config.log, so it can be properly (re)opened and appended to by config.lt. ++if test "$no_create" != yes; then ++ lt_cl_success=: ++ test "$silent" = yes && ++ lt_config_lt_args="$lt_config_lt_args --quiet" ++ exec AS_MESSAGE_LOG_FD>/dev/null ++ $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false ++ exec AS_MESSAGE_LOG_FD>>config.log ++ $lt_cl_success || AS_EXIT(1) ++fi ++])# LT_OUTPUT ++ ++ ++# _LT_CONFIG(TAG) ++# --------------- ++# If TAG is the built-in tag, create an initial libtool script with a ++# default configuration from the untagged config vars. Otherwise add code ++# to config.status for appending the configuration named by TAG from the ++# matching tagged config vars. ++m4_defun([_LT_CONFIG], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++_LT_CONFIG_SAVE_COMMANDS([ ++ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl ++ m4_if(_LT_TAG, [C], [ ++ # See if we are running on zsh, and set the options which allow our ++ # commands through without removal of \ escapes. ++ if test -n "${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++ fi ++ ++ cfgfile="${ofile}T" ++ trap "$RM \"$cfgfile\"; exit 1" 1 2 15 ++ $RM "$cfgfile" ++ ++ cat <<_LT_EOF >> "$cfgfile" ++#! $SHELL ++ ++# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++_LT_COPYING ++_LT_LIBTOOL_TAGS ++ ++# ### BEGIN LIBTOOL CONFIG ++_LT_LIBTOOL_CONFIG_VARS ++_LT_LIBTOOL_TAG_VARS ++# ### END LIBTOOL CONFIG ++ ++_LT_EOF ++ ++ case $host_os in ++ aix3*) ++ cat <<\_LT_EOF >> "$cfgfile" ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++_LT_EOF ++ ;; ++ esac ++ ++ _LT_PROG_LTMAIN ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ _LT_PROG_XSI_SHELLFNS ++ ++ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ mv -f "$cfgfile" "$ofile" || ++ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") ++ chmod +x "$ofile" ++], ++[cat <<_LT_EOF >> "$ofile" ++ ++dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded ++dnl in a comment (ie after a #). ++# ### BEGIN LIBTOOL TAG CONFIG: $1 ++_LT_LIBTOOL_TAG_VARS(_LT_TAG) ++# ### END LIBTOOL TAG CONFIG: $1 ++_LT_EOF ++])dnl /m4_if ++], ++[m4_if([$1], [], [ ++ PACKAGE='$PACKAGE' ++ VERSION='$VERSION' ++ TIMESTAMP='$TIMESTAMP' ++ RM='$RM' ++ ofile='$ofile'], []) ++])dnl /_LT_CONFIG_SAVE_COMMANDS ++])# _LT_CONFIG ++ ++ ++# LT_SUPPORTED_TAG(TAG) ++# --------------------- ++# Trace this macro to discover what tags are supported by the libtool ++# --tag option, using: ++# autoconf --trace 'LT_SUPPORTED_TAG:$1' ++AC_DEFUN([LT_SUPPORTED_TAG], []) ++ ++ ++# C support is built-in for now ++m4_define([_LT_LANG_C_enabled], []) ++m4_define([_LT_TAGS], []) ++ ++ ++# LT_LANG(LANG) ++# ------------- ++# Enable libtool support for the given language if not already enabled. ++AC_DEFUN([LT_LANG], ++[AC_BEFORE([$0], [LT_OUTPUT])dnl ++m4_case([$1], ++ [C], [_LT_LANG(C)], ++ [C++], [_LT_LANG(CXX)], ++ [Java], [_LT_LANG(GCJ)], ++ [Fortran 77], [_LT_LANG(F77)], ++ [Fortran], [_LT_LANG(FC)], ++ [Windows Resource], [_LT_LANG(RC)], ++ [m4_ifdef([_LT_LANG_]$1[_CONFIG], ++ [_LT_LANG($1)], ++ [m4_fatal([$0: unsupported language: "$1"])])])dnl ++])# LT_LANG ++ ++ ++# _LT_LANG(LANGNAME) ++# ------------------ ++m4_defun([_LT_LANG], ++[m4_ifdef([_LT_LANG_]$1[_enabled], [], ++ [LT_SUPPORTED_TAG([$1])dnl ++ m4_append([_LT_TAGS], [$1 ])dnl ++ m4_define([_LT_LANG_]$1[_enabled], [])dnl ++ _LT_LANG_$1_CONFIG($1)])dnl ++])# _LT_LANG ++ ++ ++# _LT_LANG_DEFAULT_CONFIG ++# ----------------------- ++m4_defun([_LT_LANG_DEFAULT_CONFIG], ++[AC_PROVIDE_IFELSE([AC_PROG_CXX], ++ [LT_LANG(CXX)], ++ [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) ++ ++AC_PROVIDE_IFELSE([AC_PROG_F77], ++ [LT_LANG(F77)], ++ [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) ++ ++AC_PROVIDE_IFELSE([AC_PROG_FC], ++ [LT_LANG(FC)], ++ [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) ++ ++dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal ++dnl pulling things in needlessly. ++AC_PROVIDE_IFELSE([AC_PROG_GCJ], ++ [LT_LANG(GCJ)], ++ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], ++ [LT_LANG(GCJ)], ++ [AC_PROVIDE_IFELSE([LT_PROG_GCJ], ++ [LT_LANG(GCJ)], ++ [m4_ifdef([AC_PROG_GCJ], ++ [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) ++ m4_ifdef([A][M_PROG_GCJ], ++ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) ++ m4_ifdef([LT_PROG_GCJ], ++ [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) ++ ++AC_PROVIDE_IFELSE([LT_PROG_RC], ++ [LT_LANG(RC)], ++ [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ++])# _LT_LANG_DEFAULT_CONFIG ++ ++# Obsolete macros: ++AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) ++AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) ++AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) ++AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_CXX], []) ++dnl AC_DEFUN([AC_LIBTOOL_F77], []) ++dnl AC_DEFUN([AC_LIBTOOL_FC], []) ++dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) ++ ++ ++# _LT_TAG_COMPILER ++# ---------------- ++m4_defun([_LT_TAG_COMPILER], ++[AC_REQUIRE([AC_PROG_CC])dnl ++ ++_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl ++_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl ++_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl ++_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++])# _LT_TAG_COMPILER ++ ++ ++# _LT_COMPILER_BOILERPLATE ++# ------------------------ ++# Check for compiler boilerplate output or warnings with ++# the simple compiler test code. ++m4_defun([_LT_COMPILER_BOILERPLATE], ++[m4_require([_LT_DECL_SED])dnl ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_compile_test_code" >conftest.$ac_ext ++eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_compiler_boilerplate=`cat conftest.err` ++$RM conftest* ++])# _LT_COMPILER_BOILERPLATE ++ ++ ++# _LT_LINKER_BOILERPLATE ++# ---------------------- ++# Check for linker boilerplate output or warnings with ++# the simple link test code. ++m4_defun([_LT_LINKER_BOILERPLATE], ++[m4_require([_LT_DECL_SED])dnl ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_link_test_code" >conftest.$ac_ext ++eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_linker_boilerplate=`cat conftest.err` ++$RM -r conftest* ++])# _LT_LINKER_BOILERPLATE ++ ++# _LT_REQUIRED_DARWIN_CHECKS ++# ------------------------- ++m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ ++ case $host_os in ++ rhapsody* | darwin*) ++ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) ++ AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) ++ AC_CHECK_TOOL([LIPO], [lipo], [:]) ++ AC_CHECK_TOOL([OTOOL], [otool], [:]) ++ AC_CHECK_TOOL([OTOOL64], [otool64], [:]) ++ _LT_DECL([], [DSYMUTIL], [1], ++ [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) ++ _LT_DECL([], [NMEDIT], [1], ++ [Tool to change global to local symbols on Mac OS X]) ++ _LT_DECL([], [LIPO], [1], ++ [Tool to manipulate fat objects and archives on Mac OS X]) ++ _LT_DECL([], [OTOOL], [1], ++ [ldd/readelf like tool for Mach-O binaries on Mac OS X]) ++ _LT_DECL([], [OTOOL64], [1], ++ [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) ++ ++ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], ++ [lt_cv_apple_cc_single_mod=no ++ if test -z "${LT_MULTI_MODULE}"; then ++ # By default we will add the -single_module flag. You can override ++ # by either setting the environment variable LT_MULTI_MODULE ++ # non-empty at configure time, or by adding -multi_module to the ++ # link flags. ++ rm -rf libconftest.dylib* ++ echo "int foo(void){return 1;}" > conftest.c ++ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD ++ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err ++ _lt_result=$? ++ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then ++ lt_cv_apple_cc_single_mod=yes ++ else ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ fi ++ rm -rf libconftest.dylib* ++ rm -f conftest.* ++ fi]) ++ AC_CACHE_CHECK([for -exported_symbols_list linker flag], ++ [lt_cv_ld_exported_symbols_list], ++ [lt_cv_ld_exported_symbols_list=no ++ save_LDFLAGS=$LDFLAGS ++ echo "_main" > conftest.sym ++ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], ++ [lt_cv_ld_exported_symbols_list=yes], ++ [lt_cv_ld_exported_symbols_list=no]) ++ LDFLAGS="$save_LDFLAGS" ++ ]) ++ case $host_os in ++ rhapsody* | darwin1.[[012]]) ++ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; ++ darwin1.*) ++ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; ++ darwin*) # darwin 5.x on ++ # if running on 10.5 or later, the deployment target defaults ++ # to the OS version, if on x86, and 10.4, the deployment ++ # target defaults to 10.4. Don't you love it? ++ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in ++ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) ++ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; ++ 10.[[012]]*) ++ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; ++ 10.*) ++ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; ++ esac ++ ;; ++ esac ++ if test "$lt_cv_apple_cc_single_mod" = "yes"; then ++ _lt_dar_single_mod='$single_module' ++ fi ++ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then ++ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' ++ else ++ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ fi ++ if test "$DSYMUTIL" != ":"; then ++ _lt_dsymutil='~$DSYMUTIL $lib || :' ++ else ++ _lt_dsymutil= ++ fi ++ ;; ++ esac ++]) ++ ++ ++# _LT_DARWIN_LINKER_FEATURES ++# -------------------------- ++# Checks for linker and compiler features on darwin ++m4_defun([_LT_DARWIN_LINKER_FEATURES], ++[ ++ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_automatic, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" ++ case $cc_basename in ++ ifort*) _lt_dar_can_shared=yes ;; ++ *) _lt_dar_can_shared=$GCC ;; ++ esac ++ if test "$_lt_dar_can_shared" = "yes"; then ++ output_verbose_link_cmd=echo ++ _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" ++ _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" ++ _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" ++ m4_if([$1], [CXX], ++[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then ++ _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" ++ fi ++],[]) ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++]) ++ ++# _LT_SYS_MODULE_PATH_AIX ++# ----------------------- ++# Links a minimal program and checks the executable ++# for the system default hardcoded library path. In most cases, ++# this is /usr/lib:/lib, but when the MPI compilers are used ++# the location of the communication and MPI libs are included too. ++# If we don't find anything, use the default library path according ++# to the aix ld manual. ++m4_defun([_LT_SYS_MODULE_PATH_AIX], ++[m4_require([_LT_DECL_SED])dnl ++AC_LINK_IFELSE(AC_LANG_PROGRAM,[ ++lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\(.*\)$/\1/ ++ p ++ } ++ }' ++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++# Check for a 64-bit object if we didn't find anything. ++if test -z "$aix_libpath"; then ++ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++fi],[]) ++if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++])# _LT_SYS_MODULE_PATH_AIX ++ ++ ++# _LT_SHELL_INIT(ARG) ++# ------------------- ++m4_define([_LT_SHELL_INIT], ++[ifdef([AC_DIVERSION_NOTICE], ++ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ++ [AC_DIVERT_PUSH(NOTICE)]) ++$1 ++AC_DIVERT_POP ++])# _LT_SHELL_INIT ++ ++ ++# _LT_PROG_ECHO_BACKSLASH ++# ----------------------- ++# Add some code to the start of the generated configure script which ++# will find an echo command which doesn't interpret backslashes. ++m4_defun([_LT_PROG_ECHO_BACKSLASH], ++[_LT_SHELL_INIT([ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$lt_ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ++ ;; ++esac ++ ++ECHO=${lt_ECHO-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. ++ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} ++fi ++ ++if test "X[$]1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<_LT_EOF ++[$]* ++_LT_EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++if test -z "$lt_ECHO"; then ++ if test "X${echo_test_string+set}" != Xset; then ++ # find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if { echo_test_string=`eval $cmd`; } 2>/dev/null && ++ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null ++ then ++ break ++ fi ++ done ++ fi ++ ++ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++ else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ IFS="$lt_save_ifs" ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ ECHO="$dir/echo" ++ break ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ++ if test "X$ECHO" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ ECHO='print -r' ++ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} ++ else ++ # Try using printf. ++ ECHO='printf %s\n' ++ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ ECHO="$CONFIG_SHELL [$]0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ ECHO="$CONFIG_SHELL [$]0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do ++ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "[$]0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ ECHO=echo ++ fi ++ fi ++ fi ++ fi ++ fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++lt_ECHO=$ECHO ++if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ++ lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" ++fi ++ ++AC_SUBST(lt_ECHO) ++]) ++_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) ++_LT_DECL([], [ECHO], [1], ++ [An echo program that does not interpret backslashes]) ++])# _LT_PROG_ECHO_BACKSLASH ++ ++ ++# _LT_ENABLE_LOCK ++# --------------- ++m4_defun([_LT_ENABLE_LOCK], ++[AC_ARG_ENABLE([libtool-lock], ++ [AS_HELP_STRING([--disable-libtool-lock], ++ [avoid locking (might break parallel builds)])]) ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++ia64-*-hpux*) ++ # Find out which ABI we are using. ++ echo 'int i;' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *ELF-32*) ++ HPUX_IA64_MODE="32" ++ ;; ++ *ELF-64*) ++ HPUX_IA64_MODE="64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '[#]line __oline__ "configure"' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ if test "$lt_cv_prog_gnu_ld" = yes; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -melf32bsmip" ++ ;; ++ *N32*) ++ LD="${LD-ld} -melf32bmipn32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -melf64bmip" ++ ;; ++ esac ++ else ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ fi ++ rm -rf conftest* ++ ;; ++ ++x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ ++s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ++ # Find out which ABI we are using. ++ echo 'int i;' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.o` in ++ *32-bit*) ++ case $host in ++ x86_64-*kfreebsd*-gnu) ++ LD="${LD-ld} -m elf_i386_fbsd" ++ ;; ++ x86_64-*linux*) ++ LD="${LD-ld} -m elf_i386" ++ ;; ++ ppc64-*linux*|powerpc64-*linux*) ++ LD="${LD-ld} -m elf32ppclinux" ++ ;; ++ s390x-*linux*) ++ LD="${LD-ld} -m elf_s390" ++ ;; ++ sparc64-*linux*) ++ LD="${LD-ld} -m elf32_sparc" ++ ;; ++ esac ++ ;; ++ *64-bit*) ++ case $host in ++ x86_64-*kfreebsd*-gnu) ++ LD="${LD-ld} -m elf_x86_64_fbsd" ++ ;; ++ x86_64-*linux*) ++ LD="${LD-ld} -m elf_x86_64" ++ ;; ++ ppc*-*linux*|powerpc*-*linux*) ++ LD="${LD-ld} -m elf64ppc" ++ ;; ++ s390*-*linux*|s390*-*tpf*) ++ LD="${LD-ld} -m elf64_s390" ++ ;; ++ sparc*-*linux*) ++ LD="${LD-ld} -m elf64_sparc" ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ++ [AC_LANG_PUSH(C) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ++ AC_LANG_POP]) ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++sparc*-*solaris*) ++ # Find out which ABI we are using. ++ echo 'int i;' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.o` in ++ *64-bit*) ++ case $lt_cv_prog_gnu_ld in ++ yes*) LD="${LD-ld} -m elf64_sparc" ;; ++ *) ++ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then ++ LD="${LD-ld} -64" ++ fi ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++esac ++ ++need_locks="$enable_libtool_lock" ++])# _LT_ENABLE_LOCK ++ ++ ++# _LT_CMD_OLD_ARCHIVE ++# ------------------- ++m4_defun([_LT_CMD_OLD_ARCHIVE], ++[AC_CHECK_TOOL(AR, ar, false) ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++_LT_DECL([], [AR], [1], [The archiver]) ++_LT_DECL([], [AR_FLAGS], [1]) ++ ++AC_CHECK_TOOL(STRIP, strip, :) ++test -z "$STRIP" && STRIP=: ++_LT_DECL([], [STRIP], [1], [A symbol stripping program]) ++ ++AC_CHECK_TOOL(RANLIB, ranlib, :) ++test -z "$RANLIB" && RANLIB=: ++_LT_DECL([], [RANLIB], [1], ++ [Commands used to install an old-style archive]) ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ++ ;; ++ *) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++_LT_DECL([], [old_postinstall_cmds], [2]) ++_LT_DECL([], [old_postuninstall_cmds], [2]) ++_LT_TAGDECL([], [old_archive_cmds], [2], ++ [Commands used to build an old-style archive]) ++])# _LT_CMD_OLD_ARCHIVE ++ ++ ++# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, ++# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) ++# ---------------------------------------------------------------- ++# Check whether the given compiler option works ++AC_DEFUN([_LT_COMPILER_OPTION], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_SED])dnl ++AC_CACHE_CHECK([$1], [$2], ++ [$2=no ++ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ lt_compiler_flag="$3" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ # The option is referenced via a variable to avoid confusing sed. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$lt_compile" 2>conftest.err) ++ ac_status=$? ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ++ if (exit $ac_status) && test -s "$ac_outfile"; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings other than the usual output. ++ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ++ $2=yes ++ fi ++ fi ++ $RM conftest* ++]) ++ ++if test x"[$]$2" = xyes; then ++ m4_if([$5], , :, [$5]) ++else ++ m4_if([$6], , :, [$6]) ++fi ++])# _LT_COMPILER_OPTION ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) ++ ++ ++# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, ++# [ACTION-SUCCESS], [ACTION-FAILURE]) ++# ---------------------------------------------------- ++# Check whether the given linker option works ++AC_DEFUN([_LT_LINKER_OPTION], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_SED])dnl ++AC_CACHE_CHECK([$1], [$2], ++ [$2=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $3" ++ echo "$lt_simple_link_test_code" > conftest.$ac_ext ++ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then ++ # The linker can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ # Append any errors to the config.log. ++ cat conftest.err 1>&AS_MESSAGE_LOG_FD ++ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if diff conftest.exp conftest.er2 >/dev/null; then ++ $2=yes ++ fi ++ else ++ $2=yes ++ fi ++ fi ++ $RM -r conftest* ++ LDFLAGS="$save_LDFLAGS" ++]) ++ ++if test x"[$]$2" = xyes; then ++ m4_if([$4], , :, [$4]) ++else ++ m4_if([$5], , :, [$5]) ++fi ++])# _LT_LINKER_OPTION ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) ++ ++ ++# LT_CMD_MAX_LEN ++#--------------- ++AC_DEFUN([LT_CMD_MAX_LEN], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++# find the maximum length of command line arguments ++AC_MSG_CHECKING([the maximum length of command line arguments]) ++AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl ++ i=0 ++ teststring="ABCD" ++ ++ case $build_os in ++ msdosdjgpp*) ++ # On DJGPP, this test can blow up pretty badly due to problems in libc ++ # (any single argument exceeding 2000 bytes causes a buffer overrun ++ # during glob expansion). Even if it were fixed, the result of this ++ # check would be larger than it should be. ++ lt_cv_sys_max_cmd_len=12288; # 12K is about right ++ ;; ++ ++ gnu*) ++ # Under GNU Hurd, this test is not required because there is ++ # no limit to the length of command line arguments. ++ # Libtool will interpret -1 as no limit whatsoever ++ lt_cv_sys_max_cmd_len=-1; ++ ;; ++ ++ cygwin* | mingw* | cegcc*) ++ # On Win9x/ME, this test blows up -- it succeeds, but takes ++ # about 5 minutes as the teststring grows exponentially. ++ # Worse, since 9x/ME are not pre-emptively multitasking, ++ # you end up with a "frozen" computer, even though with patience ++ # the test eventually succeeds (with a max line length of 256k). ++ # Instead, let's just punt: use the minimum linelength reported by ++ # all of the supported platforms: 8192 (on NT/2K/XP). ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ amigaos*) ++ # On AmigaOS with pdksh, this test takes hours, literally. ++ # So we just punt and use a minimum line length of 8192. ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) ++ # This has been around since 386BSD, at least. Likely further. ++ if test -x /sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` ++ elif test -x /usr/sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` ++ else ++ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs ++ fi ++ # And add a safety zone ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ ;; ++ ++ interix*) ++ # We know the value 262144 and hardcode it with a safety zone (like BSD) ++ lt_cv_sys_max_cmd_len=196608 ++ ;; ++ ++ osf*) ++ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure ++ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not ++ # nice to cause kernel panics so lets avoid the loop below. ++ # First set a reasonable default. ++ lt_cv_sys_max_cmd_len=16384 ++ # ++ if test -x /sbin/sysconfig; then ++ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in ++ *1*) lt_cv_sys_max_cmd_len=-1 ;; ++ esac ++ fi ++ ;; ++ sco3.2v5*) ++ lt_cv_sys_max_cmd_len=102400 ++ ;; ++ sysv5* | sco5v6* | sysv4.2uw2*) ++ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` ++ if test -n "$kargmax"; then ++ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` ++ else ++ lt_cv_sys_max_cmd_len=32768 ++ fi ++ ;; ++ *) ++ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` ++ if test -n "$lt_cv_sys_max_cmd_len"; then ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ else ++ # Make teststring a little bigger before we do anything with it. ++ # a 1K string should be a reasonable start. ++ for i in 1 2 3 4 5 6 7 8 ; do ++ teststring=$teststring$teststring ++ done ++ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} ++ # If test is not a shell built-in, we'll probably end up computing a ++ # maximum length that is only half of the actual maximum length, but ++ # we can't tell. ++ while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ ++ = "XX$teststring$teststring"; } >/dev/null 2>&1 && ++ test $i != 17 # 1/2 MB should be enough ++ do ++ i=`expr $i + 1` ++ teststring=$teststring$teststring ++ done ++ # Only check the string length outside the loop. ++ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` ++ teststring= ++ # Add a significant safety factor because C++ compilers can tack on ++ # massive amounts of additional arguments before passing them to the ++ # linker. It appears as though 1/2 is a usable value. ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ++ fi ++ ;; ++ esac ++]) ++if test -n $lt_cv_sys_max_cmd_len ; then ++ AC_MSG_RESULT($lt_cv_sys_max_cmd_len) ++else ++ AC_MSG_RESULT(none) ++fi ++max_cmd_len=$lt_cv_sys_max_cmd_len ++_LT_DECL([], [max_cmd_len], [0], ++ [What is the maximum length of a command?]) ++])# LT_CMD_MAX_LEN ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) ++ ++ ++# _LT_HEADER_DLFCN ++# ---------------- ++m4_defun([_LT_HEADER_DLFCN], ++[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ++])# _LT_HEADER_DLFCN ++ ++ ++# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, ++# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ++# ---------------------------------------------------------------- ++m4_defun([_LT_TRY_DLOPEN_SELF], ++[m4_require([_LT_HEADER_DLFCN])dnl ++if test "$cross_compiling" = yes; then : ++ [$4] ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<_LT_EOF ++[#line __oline__ "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ else ++ puts (dlerror ()); ++ ++ return status; ++}] ++_LT_EOF ++ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) $1 ;; ++ x$lt_dlneed_uscore) $2 ;; ++ x$lt_dlunknown|x*) $3 ;; ++ esac ++ else : ++ # compilation failed ++ $3 ++ fi ++fi ++rm -fr conftest* ++])# _LT_TRY_DLOPEN_SELF ++ ++ ++# LT_SYS_DLOPEN_SELF ++# ------------------ ++AC_DEFUN([LT_SYS_DLOPEN_SELF], ++[m4_require([_LT_HEADER_DLFCN])dnl ++if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ mingw* | pw32* | cegcc*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ cygwin*) ++ lt_cv_dlopen="dlopen" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ darwin*) ++ # if libdl is installed we need to link against it ++ AC_CHECK_LIB([dl], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ ++ lt_cv_dlopen="dyld" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ]) ++ ;; ++ ++ *) ++ AC_CHECK_FUNC([shl_load], ++ [lt_cv_dlopen="shl_load"], ++ [AC_CHECK_LIB([dld], [shl_load], ++ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], ++ [AC_CHECK_FUNC([dlopen], ++ [lt_cv_dlopen="dlopen"], ++ [AC_CHECK_LIB([dl], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], ++ [AC_CHECK_LIB([svld], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], ++ [AC_CHECK_LIB([dld], [dld_link], ++ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ AC_CACHE_CHECK([whether a program can dlopen itself], ++ lt_cv_dlopen_self, [dnl ++ _LT_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, ++ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ++ ]) ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" ++ AC_CACHE_CHECK([whether a statically linked program can dlopen itself], ++ lt_cv_dlopen_self_static, [dnl ++ _LT_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, ++ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ++ ]) ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++_LT_DECL([dlopen_support], [enable_dlopen], [0], ++ [Whether dlopen is supported]) ++_LT_DECL([dlopen_self], [enable_dlopen_self], [0], ++ [Whether dlopen of programs is supported]) ++_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], ++ [Whether dlopen of statically linked programs is supported]) ++])# LT_SYS_DLOPEN_SELF ++ ++# Old name: ++AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) ++ ++ ++# _LT_COMPILER_C_O([TAGNAME]) ++# --------------------------- ++# Check to see if options -c and -o are simultaneously supported by compiler. ++# This macro does not hard code the compiler like AC_PROG_CC_C_O. ++m4_defun([_LT_COMPILER_C_O], ++[m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_TAG_COMPILER])dnl ++AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], ++ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], ++ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&AS_MESSAGE_LOG_FD ++ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes ++ fi ++ fi ++ chmod u+w . 2>&AS_MESSAGE_LOG_FD ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++]) ++_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], ++ [Does compiler simultaneously support -c and -o options?]) ++])# _LT_COMPILER_C_O ++ ++ ++# _LT_COMPILER_FILE_LOCKS([TAGNAME]) ++# ---------------------------------- ++# Check to see if we can do hard links to lock some files if needed ++m4_defun([_LT_COMPILER_FILE_LOCKS], ++[m4_require([_LT_ENABLE_LOCK])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++_LT_COMPILER_C_O([$1]) ++ ++hard_links="nottested" ++if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ AC_MSG_CHECKING([if we can lock with hard links]) ++ hard_links=yes ++ $RM conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ AC_MSG_RESULT([$hard_links]) ++ if test "$hard_links" = no; then ++ AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ++])# _LT_COMPILER_FILE_LOCKS ++ ++ ++# _LT_CHECK_OBJDIR ++# ---------------- ++m4_defun([_LT_CHECK_OBJDIR], ++[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], ++[rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ lt_cv_objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ lt_cv_objdir=_libs ++fi ++rmdir .libs 2>/dev/null]) ++objdir=$lt_cv_objdir ++_LT_DECL([], [objdir], [0], ++ [The name of the directory that contains temporary libtool files])dnl ++m4_pattern_allow([LT_OBJDIR])dnl ++AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", ++ [Define to the sub-directory in which libtool stores uninstalled libraries.]) ++])# _LT_CHECK_OBJDIR ++ ++ ++# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) ++# -------------------------------------- ++# Check hardcoding attributes. ++m4_defun([_LT_LINKER_HARDCODE_LIBPATH], ++[AC_MSG_CHECKING([how to hardcode library paths into programs]) ++_LT_TAGVAR(hardcode_action, $1)= ++if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || ++ test -n "$_LT_TAGVAR(runpath_var, $1)" || ++ test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then ++ ++ # We can hardcode non-existent directories. ++ if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && ++ test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then ++ # Linking always hardcodes the temporary library directory. ++ _LT_TAGVAR(hardcode_action, $1)=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ _LT_TAGVAR(hardcode_action, $1)=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ _LT_TAGVAR(hardcode_action, $1)=unsupported ++fi ++AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) ++ ++if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || ++ test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++_LT_TAGDECL([], [hardcode_action], [0], ++ [How to hardcode a shared library path into an executable]) ++])# _LT_LINKER_HARDCODE_LIBPATH ++ ++ ++# _LT_CMD_STRIPLIB ++# ---------------- ++m4_defun([_LT_CMD_STRIPLIB], ++[m4_require([_LT_DECL_EGREP]) ++striplib= ++old_striplib= ++AC_MSG_CHECKING([whether stripping libraries is possible]) ++if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ AC_MSG_RESULT([yes]) ++else ++# FIXME - insert some real tests, host_os isn't really good enough ++ case $host_os in ++ darwin*) ++ if test -n "$STRIP" ; then ++ striplib="$STRIP -x" ++ old_striplib="$STRIP -S" ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ ;; ++ *) ++ AC_MSG_RESULT([no]) ++ ;; ++ esac ++fi ++_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) ++_LT_DECL([], [striplib], [1]) ++])# _LT_CMD_STRIPLIB ++ ++ ++# _LT_SYS_DYNAMIC_LINKER([TAG]) ++# ----------------------------- ++# PORTME Fill in your ld.so characteristics ++m4_defun([_LT_SYS_DYNAMIC_LINKER], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_OBJDUMP])dnl ++m4_require([_LT_DECL_SED])dnl ++AC_MSG_CHECKING([dynamic linker characteristics]) ++m4_if([$1], ++ [], [ ++if test "$GCC" = yes; then ++ case $host_os in ++ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; ++ *) lt_awk_arg="/^libraries:/" ;; ++ esac ++ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` ++ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then ++ # if the path contains ";" then we assume it to be the separator ++ # otherwise default to the standard path separator (i.e. ":") - it is ++ # assumed that no part of a normal pathname contains ";" but that should ++ # okay in the real world where ";" in dirpaths is itself problematic. ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # Ok, now we have the path, separated by spaces, we can step through it ++ # and add multilib dir if necessary. ++ lt_tmp_lt_search_path_spec= ++ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` ++ for lt_sys_path in $lt_search_path_spec; do ++ if test -d "$lt_sys_path/$lt_multi_os_dir"; then ++ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" ++ else ++ test -d "$lt_sys_path" && \ ++ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" ++ fi ++ done ++ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' ++BEGIN {RS=" "; FS="/|\n";} { ++ lt_foo=""; ++ lt_count=0; ++ for (lt_i = NF; lt_i > 0; lt_i--) { ++ if ($lt_i != "" && $lt_i != ".") { ++ if ($lt_i == "..") { ++ lt_count++; ++ } else { ++ if (lt_count == 0) { ++ lt_foo="/" $lt_i lt_foo; ++ } else { ++ lt_count--; ++ } ++ } ++ } ++ } ++ if (lt_foo != "") { lt_freq[[lt_foo]]++; } ++ if (lt_freq[[lt_foo]] == 1) { print lt_foo; } ++}'` ++ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` ++else ++ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++fi]) ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++shrext_cmds=".so" ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++need_lib_prefix=unknown ++hardcode_into_libs=no ++ ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++need_version=unknown ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX 3 has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}${shared_ext}$major' ++ ;; ++ ++aix[[4-9]]*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[[01]] | aix4.[[01]].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct ++ # soname into executable. Probably we can add versioning support to ++ # collect2, so additional links can be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib.so ++ # instead of lib.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ ;; ++ ++amigaos*) ++ case $host_cpu in ++ powerpc) ++ # Since July 2007 AmigaOS4 officially supports .so libraries. ++ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ ;; ++ m68k) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ++ ;; ++ esac ++ ;; ++ ++beos*) ++ library_names_spec='${libname}${shared_ext}' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi[[45]]*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32* | cegcc*) ++ version_type=windows ++ shrext_cmds=".dll" ++ need_version=no ++ need_lib_prefix=no ++ ++ case $GCC,$host_os in ++ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ library_names_spec='$libname.dll.a' ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ ++ case $host_os in ++ cygwin*) ++ # Cygwin DLLs use 'cyg' prefix rather than 'lib' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ++ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ++ ;; ++ mingw* | cegcc*) ++ # MinGW DLLs use traditional 'lib' prefix ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` ++ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then ++ # It is most probably a Windows format PATH printed by ++ # mingw gcc, but we are running on Cygwin. Gcc prints its search ++ # path with ; separators, and with drive letters. We can handle the ++ # drive letters (cygwin fileutils understands them), so leave them, ++ # especially as we might pass files found there to a mingw objdump, ++ # which wouldn't understand a cygwinified path. Ahh. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ ;; ++ pw32*) ++ # pw32 DLLs use 'pw' prefix rather than 'lib' ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ++ ;; ++ esac ++ ;; ++ ++ *) ++ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' ++ soname_spec='${libname}${release}${major}$shared_ext' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' ++m4_if([$1], [],[ ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) ++ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd* | dragonfly*) ++ # DragonFly does not have aout. When/if they implement a new ++ # versioning mechanism, adjust this. ++ if test -x /usr/bin/objformat; then ++ objformat=`/usr/bin/objformat` ++ else ++ case $host_os in ++ freebsd[[123]]*) objformat=aout ;; ++ *) objformat=elf ;; ++ esac ++ fi ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ freebsd3.[[01]]* | freebsdelf3.[[01]]*) ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ ++ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ *) # from 4.6 on, and DragonFly ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ case $host_cpu in ++ ia64*) ++ shrext_cmds='.so' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.so" ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ if test "X$HPUX_IA64_MODE" = X32; then ++ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" ++ else ++ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" ++ fi ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ hppa*64*) ++ shrext_cmds='.sl' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ *) ++ shrext_cmds='.sl' ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ ;; ++ esac ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++interix[[3-9]]*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) ++ if test "$lt_cv_prog_gnu_ld" = yes; then ++ version_type=linux ++ else ++ version_type=irix ++ fi ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}${shared_ext}$major' ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") ++ libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") ++ libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") ++ libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ hardcode_into_libs=yes ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux*oldld* | linux*aout* | linux*coff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux* | k*bsd*-gnu) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # Some binutils ld are patched to set DT_RUNPATH ++ save_LDFLAGS=$LDFLAGS ++ save_libdir=$libdir ++ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ ++ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], ++ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], ++ [shlibpath_overrides_runpath=yes])]) ++ LDFLAGS=$save_LDFLAGS ++ libdir=$save_libdir ++ ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # Add ABI-specific directories to the system library path. ++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" ++ ++ # Append ld.so.conf contents to the search path ++ if test -f /etc/ld.so.conf; then ++ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` ++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" ++ fi ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++*nto* | *qnx*) ++ version_type=qnx ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='ldqnx.so' ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ sys_lib_dlsearch_path_spec="/usr/lib" ++ need_lib_prefix=no ++ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. ++ case $host_os in ++ openbsd3.3 | openbsd3.3.*) need_version=yes ;; ++ *) need_version=no ;; ++ esac ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case $host_os in ++ openbsd2.[[89]] | openbsd2.[[89]].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ shrext_cmds=".dll" ++ need_lib_prefix=no ++ library_names_spec='$libname${shared_ext} $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}${shared_ext}$major' ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ ;; ++ ++rdos*) ++ dynamic_linker=no ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.3*) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' ++ soname_spec='$libname${shared_ext}.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ version_type=freebsd-elf ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ if test "$with_gnu_ld" = yes; then ++ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' ++ else ++ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' ++ case $host_os in ++ sco3.2v5*) ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ++ ;; ++ esac ++ fi ++ sys_lib_dlsearch_path_spec='/usr/lib' ++ ;; ++ ++tpf*) ++ # TPF is a cross-target only. Preferred cross-host = GNU/Linux. ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++AC_MSG_RESULT([$dynamic_linker]) ++test "$dynamic_linker" = no && can_build_shared=no ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then ++ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" ++fi ++if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then ++ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" ++fi ++ ++_LT_DECL([], [variables_saved_for_relink], [1], ++ [Variables whose values should be saved in libtool wrapper scripts and ++ restored at link time]) ++_LT_DECL([], [need_lib_prefix], [0], ++ [Do we need the "lib" prefix for modules?]) ++_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) ++_LT_DECL([], [version_type], [0], [Library versioning type]) ++_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) ++_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) ++_LT_DECL([], [shlibpath_overrides_runpath], [0], ++ [Is shlibpath searched before the hard-coded library search path?]) ++_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) ++_LT_DECL([], [library_names_spec], [1], ++ [[List of archive names. First name is the real one, the rest are links. ++ The last name is the one that the linker finds with -lNAME]]) ++_LT_DECL([], [soname_spec], [1], ++ [[The coded name of the library, if different from the real name]]) ++_LT_DECL([], [postinstall_cmds], [2], ++ [Command to use after installation of a shared archive]) ++_LT_DECL([], [postuninstall_cmds], [2], ++ [Command to use after uninstallation of a shared archive]) ++_LT_DECL([], [finish_cmds], [2], ++ [Commands used to finish a libtool library installation in a directory]) ++_LT_DECL([], [finish_eval], [1], ++ [[As "finish_cmds", except a single script fragment to be evaled but ++ not shown]]) ++_LT_DECL([], [hardcode_into_libs], [0], ++ [Whether we should hardcode library paths into libraries]) ++_LT_DECL([], [sys_lib_search_path_spec], [2], ++ [Compile-time system search path for libraries]) ++_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], ++ [Run-time system search path for libraries]) ++])# _LT_SYS_DYNAMIC_LINKER ++ ++ ++# _LT_PATH_TOOL_PREFIX(TOOL) ++# -------------------------- ++# find a file program which can recognize shared library ++AC_DEFUN([_LT_PATH_TOOL_PREFIX], ++[m4_require([_LT_DECL_EGREP])dnl ++AC_MSG_CHECKING([for $1]) ++AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ++[case $MAGIC_CMD in ++[[\\/*] | ?:[\\/]*]) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++*) ++ lt_save_MAGIC_CMD="$MAGIC_CMD" ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++dnl $ac_dummy forces splitting on constant user-supplied paths. ++dnl POSIX.2 word splitting is done only on the output of word expansions, ++dnl not every word. This closes a longstanding sh security hole. ++ ac_dummy="m4_if([$2], , $PATH, [$2])" ++ for ac_dir in $ac_dummy; do ++ IFS="$lt_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$1; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/$1" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++_LT_EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$lt_save_ifs" ++ MAGIC_CMD="$lt_save_MAGIC_CMD" ++ ;; ++esac]) ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ AC_MSG_RESULT($MAGIC_CMD) ++else ++ AC_MSG_RESULT(no) ++fi ++_LT_DECL([], [MAGIC_CMD], [0], ++ [Used to examine libraries when file_magic_cmd begins with "file"])dnl ++])# _LT_PATH_TOOL_PREFIX ++ ++# Old name: ++AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) ++ ++ ++# _LT_PATH_MAGIC ++# -------------- ++# find a file program which can recognize a shared library ++m4_defun([_LT_PATH_MAGIC], ++[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) ++ else ++ MAGIC_CMD=: ++ fi ++fi ++])# _LT_PATH_MAGIC ++ ++ ++# LT_PATH_LD ++# ---------- ++# find the pathname to the GNU or non-GNU linker ++AC_DEFUN([LT_PATH_LD], ++[AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_DECL_EGREP])dnl ++ ++AC_ARG_WITH([gnu-ld], ++ [AS_HELP_STRING([--with-gnu-ld], ++ [assume the C compiler uses GNU ld @<:@default=no@:>@])], ++ [test "$withval" = no || with_gnu_ld=yes], ++ [with_gnu_ld=no])dnl ++ ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ AC_MSG_CHECKING([for ld used by $CC]) ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [[\\/]]* | ?:[[\\/]]*) ++ re_direlt='/[[^/]][[^/]]*/\.\./' ++ # Canonicalize the pathname of ld ++ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` ++ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ AC_MSG_CHECKING([for GNU ld]) ++else ++ AC_MSG_CHECKING([for non-GNU ld]) ++fi ++AC_CACHE_VAL(lt_cv_path_LD, ++[if test -z "$LD"; then ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$lt_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some variants of GNU ld only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then ++ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' ++ lt_cv_file_magic_cmd='func_win32_libid' ++ else ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ fi ++ ;; ++ ++cegcc) ++ # use the weaker test based on 'objdump'. See mingw*. ++ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++freebsd* | dragonfly*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20* | hpux11*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ case $host_cpu in ++ ia64*) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' ++ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ++ ;; ++ hppa*64*) ++ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] ++ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ++ ;; ++ *) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ esac ++ ;; ++ ++interix[[3-9]]*) ++ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux* | k*bsd*-gnu) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++*nto* | *qnx*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++openbsd*) ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++rdos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.3*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ pc) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++ ++tpf*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++esac ++]) ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++_LT_DECL([], [deplibs_check_method], [1], ++ [Method to check whether dependent libraries are shared objects]) ++_LT_DECL([], [file_magic_cmd], [1], ++ [Command to use when deplibs_check_method == "file_magic"]) ++])# _LT_CHECK_MAGIC_METHOD ++ ++ ++# LT_PATH_NM ++# ---------- ++# find the pathname to a BSD- or MS-compatible name lister ++AC_DEFUN([LT_PATH_NM], ++[AC_REQUIRE([AC_PROG_CC])dnl ++AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, ++[if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM="$NM" ++else ++ lt_nm_to_check="${ac_tool_prefix}nm" ++ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then ++ lt_nm_to_check="$lt_nm_to_check nm" ++ fi ++ for lt_tmp_nm in $lt_nm_to_check; do ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do ++ IFS="$lt_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm="$ac_dir/$lt_tmp_nm" ++ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in ++ */dev/null* | *'Invalid file or object type'*) ++ lt_cv_path_NM="$tmp_nm -B" ++ break ++ ;; ++ *) ++ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in ++ */dev/null*) ++ lt_cv_path_NM="$tmp_nm -p" ++ break ++ ;; ++ *) ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ done ++ IFS="$lt_save_ifs" ++ done ++ : ${lt_cv_path_NM=no} ++fi]) ++if test "$lt_cv_path_NM" != "no"; then ++ NM="$lt_cv_path_NM" ++else ++ # Didn't find any BSD compatible name lister, look for dumpbin. ++ AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) ++ AC_SUBST([DUMPBIN]) ++ if test "$DUMPBIN" != ":"; then ++ NM="$DUMPBIN" ++ fi ++fi ++test -z "$NM" && NM=nm ++AC_SUBST([NM]) ++_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl ++ ++AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], ++ [lt_cv_nm_interface="BSD nm" ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$ac_compile" 2>conftest.err) ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) ++ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) ++ cat conftest.out >&AS_MESSAGE_LOG_FD ++ if $GREP 'External.*some_variable' conftest.out > /dev/null; then ++ lt_cv_nm_interface="MS dumpbin" ++ fi ++ rm -f conftest*]) ++])# LT_PATH_NM ++ ++# Old names: ++AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) ++AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AM_PROG_NM], []) ++dnl AC_DEFUN([AC_PROG_NM], []) ++ ++ ++# LT_LIB_M ++# -------- ++# check for math library ++AC_DEFUN([LT_LIB_M], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++LIBM= ++case $host in ++*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) ++ # These system don't have libm, or don't need it ++ ;; ++*-ncr-sysv4.3*) ++ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") ++ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ++ ;; ++*) ++ AC_CHECK_LIB(m, cos, LIBM="-lm") ++ ;; ++esac ++AC_SUBST([LIBM]) ++])# LT_LIB_M ++ ++# Old name: ++AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_CHECK_LIBM], []) ++ ++ ++# _LT_COMPILER_NO_RTTI([TAGNAME]) ++# ------------------------------- ++m4_defun([_LT_COMPILER_NO_RTTI], ++[m4_require([_LT_TAG_COMPILER])dnl ++ ++_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= ++ ++if test "$GCC" = yes; then ++ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ++ ++ _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], ++ lt_cv_prog_compiler_rtti_exceptions, ++ [-fno-rtti -fno-exceptions], [], ++ [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) ++fi ++_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], ++ [Compiler flag to turn off builtin functions]) ++])# _LT_COMPILER_NO_RTTI ++ ++ ++# _LT_CMD_GLOBAL_SYMBOLS ++# ---------------------- ++m4_defun([_LT_CMD_GLOBAL_SYMBOLS], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([LT_PATH_NM])dnl ++AC_REQUIRE([LT_PATH_LD])dnl ++m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_TAG_COMPILER])dnl ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++AC_MSG_CHECKING([command to parse $NM output from $compiler object]) ++AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], ++[ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[[BCDEGRST]]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[[BCDT]]' ++ ;; ++cygwin* | mingw* | pw32* | cegcc*) ++ symcode='[[ABCDGISTW]]' ++ ;; ++hpux*) ++ if test "$host_cpu" = ia64; then ++ symcode='[[ABCDEGRST]]' ++ fi ++ ;; ++irix* | nonstopux*) ++ symcode='[[BCDEGRST]]' ++ ;; ++osf*) ++ symcode='[[BCDEGQRST]]' ++ ;; ++solaris*) ++ symcode='[[BDRT]]' ++ ;; ++sco3.2v5*) ++ symcode='[[DT]]' ++ ;; ++sysv4.2uw2*) ++ symcode='[[DT]]' ++ ;; ++sysv5* | sco5v6* | unixware* | OpenUNIX*) ++ symcode='[[ABDT]]' ++ ;; ++sysv4) ++ symcode='[[DFNSTU]]' ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++case `$NM -V 2>&1` in ++*GNU* | *'with BFD'*) ++ symcode='[[ABCDGIRSTW]]' ;; ++esac ++ ++# Transform an extracted symbol line into a proper C declaration. ++# Some systems (esp. on ia64) link data and code symbols differently, ++# so use this general approach. ++lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $build_os in ++mingw*) ++ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# Try without a prefix underscore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. ++ symxfrm="\\1 $ac_symprfx\\2 \\2" ++ ++ # Write the raw and C identifiers. ++ if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ # Fake it for dumpbin and say T for any non-static function ++ # and D for any global variable. ++ # Also find C++ and __fastcall symbols from MSVC++, ++ # which start with @ or ?. ++ lt_cv_sys_global_symbol_pipe="$AWK ['"\ ++" {last_section=section; section=\$ 3};"\ ++" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ ++" \$ 0!~/External *\|/{next};"\ ++" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ ++" {if(hide[section]) next};"\ ++" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ ++" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ ++" s[1]~/^[@?]/{print s[1], s[1]; next};"\ ++" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ ++" ' prfx=^$ac_symprfx]" ++ else ++ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" ++ fi ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ ++ rm -f conftest* ++ cat > conftest.$ac_ext <<_LT_EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(void); ++void nm_test_func(void){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++_LT_EOF ++ ++ if AC_TRY_EVAL(ac_compile); then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then ++ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<_LT_EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++_LT_EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' ++ ++ cat <<_LT_EOF >> conftest.$ac_ext ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ void *address; ++} ++lt__PROGRAM__LTX_preloaded_symbols[[]] = ++{ ++ { "@PROGRAM@", (void *) 0 }, ++_LT_EOF ++ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext ++ cat <<\_LT_EOF >> conftest.$ac_ext ++ {0, (void *) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt__PROGRAM__LTX_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif ++_LT_EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ lt_save_LIBS="$LIBS" ++ lt_save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" ++ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then ++ pipe_works=yes ++ fi ++ LIBS="$lt_save_LIBS" ++ CFLAGS="$lt_save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD ++ fi ++ else ++ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -rf conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++]) ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ lt_cv_sys_global_symbol_to_cdecl= ++fi ++if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then ++ AC_MSG_RESULT(failed) ++else ++ AC_MSG_RESULT(ok) ++fi ++ ++_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], ++ [Take the output of nm and produce a listing of raw symbols and C names]) ++_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], ++ [Transform the output of nm in a proper C declaration]) ++_LT_DECL([global_symbol_to_c_name_address], ++ [lt_cv_sys_global_symbol_to_c_name_address], [1], ++ [Transform the output of nm in a C name address pair]) ++_LT_DECL([global_symbol_to_c_name_address_lib_prefix], ++ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], ++ [Transform the output of nm in a C name address pair when lib prefix is needed]) ++]) # _LT_CMD_GLOBAL_SYMBOLS ++ ++ ++# _LT_COMPILER_PIC([TAGNAME]) ++# --------------------------- ++m4_defun([_LT_COMPILER_PIC], ++[m4_require([_LT_TAG_COMPILER])dnl ++_LT_TAGVAR(lt_prog_compiler_wl, $1)= ++_LT_TAGVAR(lt_prog_compiler_pic, $1)= ++_LT_TAGVAR(lt_prog_compiler_static, $1)= ++ ++AC_MSG_CHECKING([for $compiler option to produce PIC]) ++m4_if([$1], [CXX], [ ++ # C++ specific cases for pic, static, wl, etc. ++ if test "$GXX" = yes; then ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ++ case $host_os in ++ aix*) ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ m68k) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ esac ++ ;; ++ ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ # Although the cygwin gcc ignores -fPIC, still need this for old-style ++ # (--disable-auto-import) libraries ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ++ ;; ++ *djgpp*) ++ # DJGPP does not support shared libraries at all ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ ;; ++ interix[[3-9]]*) ++ # Interix 3.x gcc -fpic/-fPIC options generate broken code. ++ # Instead, we relocate shared libraries at runtime. ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic ++ fi ++ ;; ++ hpux*) ++ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ++ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ++ # sets the default TLS model and affects inlining. ++ case $host_cpu in ++ hppa*64*) ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ ;; ++ *qnx* | *nto*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ else ++ case $host_os in ++ aix[[4-9]]*) ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ else ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ chorus*) ++ case $cc_basename in ++ cxch68*) ++ # Green Hills C++ Compiler ++ # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ++ ;; ++ esac ++ ;; ++ dgux*) ++ case $cc_basename in ++ ec++*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ ;; ++ ghcx*) ++ # Green Hills C++ Compiler ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ freebsd* | dragonfly*) ++ # FreeBSD uses GNU C++ ++ ;; ++ hpux9* | hpux10* | hpux11*) ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ++ if test "$host_cpu" != ia64; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ++ fi ++ ;; ++ aCC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ++ case $host_cpu in ++ hppa*64*|ia64*) ++ # +Z the default ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ++ ;; ++ esac ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ interix*) ++ # This is c89, which is MS Visual C++ (no shared libs) ++ # Anyone wants to do a port? ++ ;; ++ irix5* | irix6* | nonstopux*) ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ # CC pic flag -KPIC is the default. ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ linux* | k*bsd*-gnu) ++ case $cc_basename in ++ KCC*) ++ # KAI C++ Compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ ecpc* ) ++ # old Intel C++ for x86_64 which still supported -KPIC. ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ icpc* ) ++ # Intel C++, used to be incompatible with GCC. ++ # ICC 10 doesn't accept -KPIC any more. ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ pgCC* | pgcpp*) ++ # Portland Group C++ compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ cxx*) ++ # Compaq C++ ++ # Make sure the PIC flag is empty. It appears that all Alpha ++ # Linux and Compaq Tru64 Unix objects are PIC. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ xlc* | xlC*) ++ # IBM XL 8.0 on PPC ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C++ 5.9 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ lynxos*) ++ ;; ++ m88k*) ++ ;; ++ mvs*) ++ case $cc_basename in ++ cxx*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ netbsd*) ++ ;; ++ *qnx* | *nto*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ osf3* | osf4* | osf5*) ++ case $cc_basename in ++ KCC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ++ ;; ++ RCC*) ++ # Rational C++ 2.4.1 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ ;; ++ cxx*) ++ # Digital/Compaq C++ ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # Make sure the PIC flag is empty. It appears that all Alpha ++ # Linux and Compaq Tru64 Unix objects are PIC. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ psos*) ++ ;; ++ solaris*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.2, 5.x and Centerline C++ ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ++ ;; ++ gcx*) ++ # Green Hills C++ Compiler ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ sunos4*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.x ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ lcc*) ++ # Lucid ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ esac ++ ;; ++ tandem*) ++ case $cc_basename in ++ NCC*) ++ # NonStop-UX NCC 3.20 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ ;; ++ *) ++ ;; ++ esac ++ ;; ++ vxworks*) ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ ;; ++ esac ++ fi ++], ++[ ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ++ case $host_os in ++ aix*) ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ m68k) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ esac ++ ;; ++ ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ # Although the cygwin gcc ignores -fPIC, still need this for old-style ++ # (--disable-auto-import) libraries ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ ;; ++ ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ++ ;; ++ ++ hpux*) ++ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ++ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ++ # sets the default TLS model and affects inlining. ++ case $host_cpu in ++ hppa*64*) ++ # +Z the default ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ ;; ++ ++ interix[[3-9]]*) ++ # Interix 3.x gcc -fpic/-fPIC options generate broken code. ++ # Instead, we relocate shared libraries at runtime. ++ ;; ++ ++ msdosdjgpp*) ++ # Just because we use GCC doesn't mean we suddenly get shared libraries ++ # on systems that don't support them. ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ enable_shared=no ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic ++ fi ++ ;; ++ ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for flag to pass linker flags through the system compiler. ++ case $host_os in ++ aix*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ else ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ++ # not for PA HP-UX. ++ case $host_cpu in ++ hppa*64*|ia64*) ++ # +Z the default ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ++ ;; ++ esac ++ # Is there a better lt_prog_compiler_static that works with the bundled CC? ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # PIC (with -KPIC) is the default. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ ++ linux* | k*bsd*-gnu) ++ case $cc_basename in ++ # old Intel for x86_64 which still supported -KPIC. ++ ecc*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ # icc used to be incompatible with GCC. ++ # ICC 10 doesn't accept -KPIC any more. ++ icc* | ifort*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ++ ;; ++ # Lahey Fortran 8.1. ++ lf95*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ++ ;; ++ pgcc* | pgf77* | pgf90* | pgf95*) ++ # Portland Group compilers (*not* the Pentium gcc compiler, ++ # which looks to be a dead project) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ccc*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # All Alpha code is PIC. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ xl*) ++ # IBM XL C 8.0/Fortran 10.1 on PPC ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C 5.9 ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ ;; ++ *Sun\ F*) ++ # Sun Fortran 8.3 passes all unrecognized flags to the linker ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ ++ newsos6) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ # All OSF/1 code is PIC. ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ ++ rdos*) ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ++ ;; ++ ++ solaris*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ case $cc_basename in ++ f77* | f90* | f95*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; ++ esac ++ ;; ++ ++ sunos4*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ fi ++ ;; ++ ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ unicos*) ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ ;; ++ ++ uts4*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; ++ ++ *) ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ++ ;; ++ esac ++ fi ++]) ++case $host_os in ++ # For platforms which do not support PIC, -DPIC is meaningless: ++ *djgpp*) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ ;; ++ *) ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ++ ;; ++esac ++AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) ++_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], ++ [How to pass a linker flag through the compiler]) ++ ++# ++# Check to make sure the PIC flag actually works. ++# ++if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then ++ _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], ++ [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], ++ [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in ++ "" | " "*) ;; ++ *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; ++ esac], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)= ++ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) ++fi ++_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], ++ [Additional compiler flags for building library objects]) ++ ++# ++# Check to make sure the static flag actually works. ++# ++wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" ++_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], ++ _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), ++ $lt_tmp_static_flag, ++ [], ++ [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) ++_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], ++ [Compiler flag to prevent dynamic linking]) ++])# _LT_COMPILER_PIC ++ ++ ++# _LT_LINKER_SHLIBS([TAGNAME]) ++# ---------------------------- ++# See if the linker supports building shared libraries. ++m4_defun([_LT_LINKER_SHLIBS], ++[AC_REQUIRE([LT_PATH_LD])dnl ++AC_REQUIRE([LT_PATH_NM])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_DECL_SED])dnl ++m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl ++m4_require([_LT_TAG_COMPILER])dnl ++AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ++m4_if([$1], [CXX], [ ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ case $host_os in ++ aix[[4-9]]*) ++ # If we're using GNU nm, then we don't want the "-C" option. ++ # -C means demangle to AIX nm, but means don't demangle with GNU nm ++ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ else ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ fi ++ ;; ++ pw32*) ++ _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ++ ;; ++ cygwin* | mingw* | cegcc*) ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ++ ;; ++ *) ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ ;; ++ esac ++ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ++], [ ++ runpath_var= ++ _LT_TAGVAR(allow_undefined_flag, $1)= ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(archive_cmds, $1)= ++ _LT_TAGVAR(archive_expsym_cmds, $1)= ++ _LT_TAGVAR(compiler_needs_object, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)= ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(hardcode_automatic, $1)=no ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= ++ _LT_TAGVAR(hardcode_libdir_separator, $1)= ++ _LT_TAGVAR(hardcode_minus_L, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ++ _LT_TAGVAR(inherit_rpath, $1)=no ++ _LT_TAGVAR(link_all_deplibs, $1)=unknown ++ _LT_TAGVAR(module_cmds, $1)= ++ _LT_TAGVAR(module_expsym_cmds, $1)= ++ _LT_TAGVAR(old_archive_from_new_cmds, $1)= ++ _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= ++ _LT_TAGVAR(thread_safe_flag_spec, $1)= ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ # include_expsyms should be a list of space-separated symbols to be *always* ++ # included in the symbol list ++ _LT_TAGVAR(include_expsyms, $1)= ++ # exclude_expsyms can be an extended regexp of symbols to exclude ++ # it will be wrapped by ` (' and `)$', so one must not match beginning or ++ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++ # as well as any symbol that contains `d'. ++ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ++ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++ # platforms (ab)use it in PIC code, but their linkers get confused if ++ # the symbol is explicitly referenced. Since portable code cannot ++ # rely on this symbol name, it's probably fine to never include it in ++ # preloaded symbol tables. ++ # Exclude shared library initialization/finalization symbols. ++dnl Note also adjust exclude_expsyms for C++ above. ++ extract_expsyms_cmds= ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++ interix*) ++ # we just hope/assume this is gcc and not c89 (= MSVC++) ++ with_gnu_ld=yes ++ ;; ++ openbsd*) ++ with_gnu_ld=no ++ ;; ++ esac ++ ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # Set some defaults for GNU ld with shared library support. These ++ # are reset later if shared libraries are not supported. Putting them ++ # here allows them to be overridden if necessary. ++ runpath_var=LD_RUN_PATH ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then ++ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ fi ++ supports_anon_versioning=no ++ case `$LD -v 2>&1` in ++ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 ++ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... ++ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... ++ *\ 2.11.*) ;; # other 2.11 versions ++ *) supports_anon_versioning=yes ;; ++ esac ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix[[3-9]]*) ++ # On AIX/PPC, the GNU linker is very broken ++ if test "$host_cpu" != ia64; then ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++_LT_EOF ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='' ++ ;; ++ m68k) ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ ;; ++ esac ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ++ # as there is no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is; otherwise, prepend... ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ interix[[3-9]]*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ++ # Instead, shared libraries are loaded at an image base (0x10000000 by ++ # default) and relocated if they conflict, which is a slow very memory ++ # consuming and fragmenting process. To avoid this, we pick a random, ++ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ++ # time. Moving up from 0x10000000 also allows more sbrk(2) space. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ ;; ++ ++ gnu* | linux* | tpf* | k*bsd*-gnu) ++ tmp_diet=no ++ if test "$host_os" = linux-dietlibc; then ++ case $cc_basename in ++ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) ++ esac ++ fi ++ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ ++ && test "$tmp_diet" = no ++ then ++ tmp_addflag= ++ tmp_sharedflag='-shared' ++ case $cc_basename,$host_cpu in ++ pgcc*) # Portland Group C compiler ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ tmp_addflag=' $pic_flag' ++ ;; ++ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ tmp_addflag=' $pic_flag -Mnomain' ;; ++ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ tmp_addflag=' -i_dynamic' ;; ++ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ tmp_addflag=' -i_dynamic -nofor_main' ;; ++ ifc* | ifort*) # Intel Fortran compiler ++ tmp_addflag=' -nofor_main' ;; ++ lf95*) # Lahey Fortran 8.1 ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ tmp_sharedflag='--shared' ;; ++ xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) ++ tmp_sharedflag='-qmkshrobj' ++ tmp_addflag= ;; ++ esac ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) # Sun C 5.9 ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ _LT_TAGVAR(compiler_needs_object, $1)=yes ++ tmp_sharedflag='-G' ;; ++ *Sun\ F*) # Sun Fortran 8.3 ++ tmp_sharedflag='-G' ;; ++ esac ++ _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ ++ if test "x$supports_anon_versioning" = xyes; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' ++ fi ++ ++ case $cc_basename in ++ xlf*) ++ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' ++ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ if test "x$supports_anon_versioning" = xyes; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ fi ++ ;; ++ esac ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris*) ++ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) ++ case `$LD -v 2>&1` in ++ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not ++*** reliably create shared libraries on SCO systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.16.91.0.3 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ ;; ++ *) ++ # For security reasons, it is highly recommended that you always ++ # use absolute paths for naming shared libraries, and exclude the ++ # DT_RUNPATH tag from executables and libraries. But doing so ++ # requires that you compile everything twice, which is a pain. ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ sunos4*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ++ if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then ++ runpath_var= ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)= ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ fi ++ else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ _LT_TAGVAR(hardcode_direct, $1)=unsupported ++ fi ++ ;; ++ ++ aix[[4-9]]*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ # If we're using GNU nm, then we don't want the "-C" option. ++ # -C means demangle to AIX nm, but means don't demangle with GNU nm ++ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ else ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ fi ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) ++ for ld_flag in $LDFLAGS; do ++ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then ++ aix_use_runtimelinking=yes ++ break ++ fi ++ done ++ ;; ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ _LT_TAGVAR(archive_cmds, $1)='' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' ++ ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ # We only want to do this on AIX 4.2 and lower, the check ++ # below for broken collect2 doesn't work under 4.3+ ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && ++ strings "$collect2name" | $GREP resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ : ++ else ++ # We have old collect2 ++ _LT_TAGVAR(hardcode_direct, $1)=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)= ++ fi ++ ;; ++ esac ++ shared_flag='-shared' ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag="$shared_flag "'${wl}-G' ++ fi ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release ++ # chokes on -Wl,-G. The following line is correct: ++ shared_flag='-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' ++ # It seems that -bexpall does not export symbols beginning with ++ # underscore (_), so it is better to generate a list of symbols to export. ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ _LT_TAGVAR(allow_undefined_flag, $1)='-berok' ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ _LT_SYS_MODULE_PATH_AIX ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' ++ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" ++ else ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ _LT_SYS_MODULE_PATH_AIX ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' ++ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' ++ # Exported symbols can be pulled into shared objects from archives ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ # This is similar to how AIX traditionally builds its shared libraries. ++ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='' ++ ;; ++ m68k) ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ ;; ++ esac ++ ;; ++ ++ bsdi[[45]]*) ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ # FIXME: Should let the user specify the lib program. ++ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ;; ++ ++ darwin* | rhapsody*) ++ _LT_DARWIN_LINKER_FEATURES($1) ++ ;; ++ ++ dgux*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ freebsd1*) ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd* | dragonfly*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ hpux9*) ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ ;; ++ ++ hpux10*) ++ if test "$GCC" = yes -a "$with_gnu_ld" = no; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ if test "$with_gnu_ld" = no; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ fi ++ ;; ++ ++ hpux11*) ++ if test "$GCC" = yes -a "$with_gnu_ld" = no; then ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ else ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ fi ++ if test "$with_gnu_ld" = no; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ case $host_cpu in ++ hppa*64*|ia64*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ *) ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ ;; ++ esac ++ fi ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ # Try to use the -exported_symbol ld option, if it does not ++ # work, assume that -exports_file does not work either and ++ # implicitly export all symbols. ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ AC_LINK_IFELSE(int foo(void) {}, ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ ) ++ LDFLAGS="$save_LDFLAGS" ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(inherit_rpath, $1)=yes ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ newsos6) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ *nto* | *qnx*) ++ ;; ++ ++ openbsd*) ++ if test -f /usr/libexec/ld.so; then ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ else ++ case $host_os in ++ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ os2*) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ else ++ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ++ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' ++ ++ # Both c and cxx compiler support -rpath directly ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++ fi ++ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ;; ++ ++ solaris*) ++ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' ++ if test "$GCC" = yes; then ++ wlarc='${wl}' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ else ++ case `$CC -V 2>&1` in ++ *"Compilers 5.0"*) ++ wlarc='' ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ++ ;; ++ *) ++ wlarc='${wl}' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ ;; ++ esac ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) ++ # The compiler driver will combine and reorder linker options, ++ # but understands `-z linker_flag'. GCC discards it without `$wl', ++ # but is careful enough not to reorder. ++ # Supported since Solaris 2.6 (maybe 2.5.1?) ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ++ else ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ++ fi ++ ;; ++ esac ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ ;; ++ motorola) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ sysv4.3*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ fi ++ ;; ++ ++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) ++ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ runpath_var='LD_RUN_PATH' ++ ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6*) ++ # Note: We can NOT use -z defs as we might desire, because we do not ++ # link with -lc, and that would cause any symbols used from libc to ++ # always be unresolved, which means just about no library would ++ # ever link correctly. If we're not using GNU ld we use -z text ++ # though, which does catch some bad symbols but isn't as heavy-handed ++ # as -z defs. ++ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' ++ _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' ++ runpath_var='LD_RUN_PATH' ++ ++ if test "$GCC" = yes; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ ;; ++ ++ uts4*) ++ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ ++ *) ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ++ if test x$host_vendor = xsni; then ++ case $host in ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ++ ;; ++ esac ++ fi ++ fi ++]) ++AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) ++test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no ++ ++_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld ++ ++_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl ++_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl ++_LT_DECL([], [extract_expsyms_cmds], [2], ++ [The commands to extract the exported symbol list from a shared archive]) ++ ++# ++# Do we need to explicitly link libc? ++# ++case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in ++x|xyes) ++ # Assume -lc should be added ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ ++ if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $_LT_TAGVAR(archive_cmds, $1) in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) ++ $RM conftest* ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) ++ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) ++ _LT_TAGVAR(allow_undefined_flag, $1)= ++ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) ++ then ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ else ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ fi ++ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++ $RM conftest* ++ AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ++ ;; ++ esac ++ fi ++ ;; ++esac ++ ++_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], ++ [Whether or not to add -lc for building shared libraries]) ++_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], ++ [enable_shared_with_static_runtimes], [0], ++ [Whether or not to disallow shared libs when runtime libs are static]) ++_LT_TAGDECL([], [export_dynamic_flag_spec], [1], ++ [Compiler flag to allow reflexive dlopens]) ++_LT_TAGDECL([], [whole_archive_flag_spec], [1], ++ [Compiler flag to generate shared objects directly from archives]) ++_LT_TAGDECL([], [compiler_needs_object], [1], ++ [Whether the compiler copes with passing no objects directly]) ++_LT_TAGDECL([], [old_archive_from_new_cmds], [2], ++ [Create an old-style archive from a shared archive]) ++_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], ++ [Create a temporary old-style archive to link instead of a shared archive]) ++_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) ++_LT_TAGDECL([], [archive_expsym_cmds], [2]) ++_LT_TAGDECL([], [module_cmds], [2], ++ [Commands used to build a loadable module if different from building ++ a shared archive.]) ++_LT_TAGDECL([], [module_expsym_cmds], [2]) ++_LT_TAGDECL([], [with_gnu_ld], [1], ++ [Whether we are building with GNU ld or not]) ++_LT_TAGDECL([], [allow_undefined_flag], [1], ++ [Flag that allows shared libraries with undefined symbols to be built]) ++_LT_TAGDECL([], [no_undefined_flag], [1], ++ [Flag that enforces no undefined symbols]) ++_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], ++ [Flag to hardcode $libdir into a binary during linking. ++ This must work even if $libdir does not exist]) ++_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], ++ [[If ld is used when linking, flag to hardcode $libdir into a binary ++ during linking. This must work even if $libdir does not exist]]) ++_LT_TAGDECL([], [hardcode_libdir_separator], [1], ++ [Whether we need a single "-rpath" flag with a separated argument]) ++_LT_TAGDECL([], [hardcode_direct], [0], ++ [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes ++ DIR into the resulting binary]) ++_LT_TAGDECL([], [hardcode_direct_absolute], [0], ++ [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes ++ DIR into the resulting binary and the resulting library dependency is ++ "absolute", i.e impossible to change by setting ${shlibpath_var} if the ++ library is relocated]) ++_LT_TAGDECL([], [hardcode_minus_L], [0], ++ [Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++ into the resulting binary]) ++_LT_TAGDECL([], [hardcode_shlibpath_var], [0], ++ [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++ into the resulting binary]) ++_LT_TAGDECL([], [hardcode_automatic], [0], ++ [Set to "yes" if building a shared library automatically hardcodes DIR ++ into the library and all subsequent libraries and executables linked ++ against it]) ++_LT_TAGDECL([], [inherit_rpath], [0], ++ [Set to yes if linker adds runtime paths of dependent libraries ++ to runtime path list]) ++_LT_TAGDECL([], [link_all_deplibs], [0], ++ [Whether libtool must link a program against all its dependency libraries]) ++_LT_TAGDECL([], [fix_srcfile_path], [1], ++ [Fix the shell variable $srcfile for the compiler]) ++_LT_TAGDECL([], [always_export_symbols], [0], ++ [Set to "yes" if exported symbols are required]) ++_LT_TAGDECL([], [export_symbols_cmds], [2], ++ [The commands to list exported symbols]) ++_LT_TAGDECL([], [exclude_expsyms], [1], ++ [Symbols that should not be listed in the preloaded symbols]) ++_LT_TAGDECL([], [include_expsyms], [1], ++ [Symbols that must always be exported]) ++_LT_TAGDECL([], [prelink_cmds], [2], ++ [Commands necessary for linking programs (against libraries) with templates]) ++_LT_TAGDECL([], [file_list_spec], [1], ++ [Specify filename containing input files]) ++dnl FIXME: Not yet implemented ++dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], ++dnl [Compiler flag to generate thread safe objects]) ++])# _LT_LINKER_SHLIBS ++ ++ ++# _LT_LANG_C_CONFIG([TAG]) ++# ------------------------ ++# Ensure that the configuration variables for a C compiler are suitably ++# defined. These variables are subsequently used by _LT_CONFIG to write ++# the compiler configuration to `libtool'. ++m4_defun([_LT_LANG_C_CONFIG], ++[m4_require([_LT_DECL_EGREP])dnl ++lt_save_CC="$CC" ++AC_LANG_PUSH(C) ++ ++# Source file extension for C test sources. ++ac_ext=c ++ ++# Object file extension for compiled C test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code="int some_variable = 0;" ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code='int main(){return(0);}' ++ ++_LT_TAG_COMPILER ++# Save the default compiler, since it gets overwritten when the other ++# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. ++compiler_DEFAULT=$CC ++ ++# save warnings/boilerplate of simple test code ++_LT_COMPILER_BOILERPLATE ++_LT_LINKER_BOILERPLATE ++ ++## CAVEAT EMPTOR: ++## There is no encapsulation within the following macros, do not change ++## the running order or otherwise move them around unless you know exactly ++## what you are doing... ++if test -n "$compiler"; then ++ _LT_COMPILER_NO_RTTI($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ LT_SYS_DLOPEN_SELF ++ _LT_CMD_STRIPLIB ++ ++ # Report which library types will actually be built ++ AC_MSG_CHECKING([if libtool supports shared libraries]) ++ AC_MSG_RESULT([$can_build_shared]) ++ ++ AC_MSG_CHECKING([whether to build shared libraries]) ++ test "$can_build_shared" = "no" && enable_shared=no ++ ++ # On AIX, shared libraries and static libraries use the same namespace, and ++ # are all built from PIC. ++ case $host_os in ++ aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++ aix[[4-9]]*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++ esac ++ AC_MSG_RESULT([$enable_shared]) ++ ++ AC_MSG_CHECKING([whether to build static libraries]) ++ # Make sure either enable_shared or enable_static is yes. ++ test "$enable_shared" = yes || enable_static=yes ++ AC_MSG_RESULT([$enable_static]) ++ ++ _LT_CONFIG($1) ++fi ++AC_LANG_POP ++CC="$lt_save_CC" ++])# _LT_LANG_C_CONFIG ++ ++ ++# _LT_PROG_CXX ++# ------------ ++# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ ++# compiler, we have our own version here. ++m4_defun([_LT_PROG_CXX], ++[ ++pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) ++AC_PROG_CXX ++if test -n "$CXX" && ( test "X$CXX" != "Xno" && ++ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || ++ (test "X$CXX" != "Xg++"))) ; then ++ AC_PROG_CXXCPP ++else ++ _lt_caught_CXX_error=yes ++fi ++popdef([AC_MSG_ERROR]) ++])# _LT_PROG_CXX ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([_LT_PROG_CXX], []) ++ ++ ++# _LT_LANG_CXX_CONFIG([TAG]) ++# -------------------------- ++# Ensure that the configuration variables for a C++ compiler are suitably ++# defined. These variables are subsequently used by _LT_CONFIG to write ++# the compiler configuration to `libtool'. ++m4_defun([_LT_LANG_CXX_CONFIG], ++[AC_REQUIRE([_LT_PROG_CXX])dnl ++m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++m4_require([_LT_DECL_EGREP])dnl ++ ++AC_LANG_PUSH(C++) ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++_LT_TAGVAR(allow_undefined_flag, $1)= ++_LT_TAGVAR(always_export_symbols, $1)=no ++_LT_TAGVAR(archive_expsym_cmds, $1)= ++_LT_TAGVAR(compiler_needs_object, $1)=no ++_LT_TAGVAR(export_dynamic_flag_spec, $1)= ++_LT_TAGVAR(hardcode_direct, $1)=no ++_LT_TAGVAR(hardcode_direct_absolute, $1)=no ++_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= ++_LT_TAGVAR(hardcode_libdir_separator, $1)= ++_LT_TAGVAR(hardcode_minus_L, $1)=no ++_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ++_LT_TAGVAR(hardcode_automatic, $1)=no ++_LT_TAGVAR(inherit_rpath, $1)=no ++_LT_TAGVAR(module_cmds, $1)= ++_LT_TAGVAR(module_expsym_cmds, $1)= ++_LT_TAGVAR(link_all_deplibs, $1)=unknown ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(no_undefined_flag, $1)= ++_LT_TAGVAR(whole_archive_flag_spec, $1)= ++_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ ++# Source file extension for C++ test sources. ++ac_ext=cpp ++ ++# Object file extension for compiled C++ test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# No sense in running all these tests if we already determined that ++# the CXX compiler isn't working. Some variables (like enable_shared) ++# are currently assumed to apply to all compilers on this platform, ++# and will be corrupted by setting them based on a non-working compiler. ++if test "$_lt_caught_CXX_error" != yes; then ++ # Code to be used in simple compile tests ++ lt_simple_compile_test_code="int some_variable = 0;" ++ ++ # Code to be used in simple link tests ++ lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' ++ ++ # ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ _LT_TAG_COMPILER ++ ++ # save warnings/boilerplate of simple test code ++ _LT_COMPILER_BOILERPLATE ++ _LT_LINKER_BOILERPLATE ++ ++ # Allow CC to be a program name with arguments. ++ lt_save_CC=$CC ++ lt_save_LD=$LD ++ lt_save_GCC=$GCC ++ GCC=$GXX ++ lt_save_with_gnu_ld=$with_gnu_ld ++ lt_save_path_LD=$lt_cv_path_LD ++ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then ++ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx ++ else ++ $as_unset lt_cv_prog_gnu_ld ++ fi ++ if test -n "${lt_cv_path_LDCXX+set}"; then ++ lt_cv_path_LD=$lt_cv_path_LDCXX ++ else ++ $as_unset lt_cv_path_LD ++ fi ++ test -z "${LDCXX+set}" || LD=$LDCXX ++ CC=${CXX-"c++"} ++ compiler=$CC ++ _LT_TAGVAR(compiler, $1)=$CC ++ _LT_CC_BASENAME([$compiler]) ++ ++ if test -n "$compiler"; then ++ # We don't want -fno-exception when compiling C++ code, so set the ++ # no_builtin_flag separately ++ if test "$GXX" = yes; then ++ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ++ else ++ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= ++ fi ++ ++ if test "$GXX" = yes; then ++ # Set up default GNU C++ configuration ++ ++ LT_PATH_LD ++ ++ # Check if GNU C++ uses GNU ld as the underlying linker, since the ++ # archiving commands below assume that GNU ld is being used. ++ if test "$with_gnu_ld" = yes; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ++ ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to ++ # investigate it a little bit more. (MM) ++ wlarc='${wl}' ++ ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if eval "`$CC -print-prog-name=ld` --help 2>&1" | ++ $GREP 'no-whole-archive' > /dev/null; then ++ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ _LT_TAGVAR(whole_archive_flag_spec, $1)= ++ fi ++ else ++ with_gnu_ld=no ++ wlarc= ++ ++ # A generic and very simple default shared library creation ++ # command for GNU C++ for the case where it uses the native ++ # linker, instead of GNU ld. If possible, this setting should ++ # overridden to take advantage of the native linker features on ++ # the platform it is being used on. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ fi ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' ++ ++ else ++ GXX=no ++ with_gnu_ld=no ++ wlarc= ++ fi ++ ++ # PORTME: fill in a description of your system's C++ link characteristics ++ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ case $host_os in ++ aix3*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ aix[[4-9]]*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ ;; ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ _LT_TAGVAR(archive_cmds, $1)='' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' ++ ++ if test "$GXX" = yes; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ # We only want to do this on AIX 4.2 and lower, the check ++ # below for broken collect2 doesn't work under 4.3+ ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && ++ strings "$collect2name" | $GREP resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ : ++ else ++ # We have old collect2 ++ _LT_TAGVAR(hardcode_direct, $1)=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)= ++ fi ++ esac ++ shared_flag='-shared' ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag="$shared_flag "'${wl}-G' ++ fi ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release ++ # chokes on -Wl,-G. The following line is correct: ++ shared_flag='-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' ++ # It seems that -bexpall does not export symbols beginning with ++ # underscore (_), so it is better to generate a list of symbols to ++ # export. ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ _LT_TAGVAR(allow_undefined_flag, $1)='-berok' ++ # Determine the default libpath from the value encoded in an empty ++ # executable. ++ _LT_SYS_MODULE_PATH_AIX ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ++ ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' ++ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" ++ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" ++ else ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ _LT_SYS_MODULE_PATH_AIX ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' ++ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' ++ # Exported symbols can be pulled into shared objects from archives ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ++ # This is similar to how AIX traditionally builds its shared ++ # libraries. ++ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ chorus*) ++ case $cc_basename in ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ++ # as there is no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is; otherwise, prepend... ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ darwin* | rhapsody*) ++ _LT_DARWIN_LINKER_FEATURES($1) ++ ;; ++ ++ dgux*) ++ case $cc_basename in ++ ec++*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ghcx*) ++ # Green Hills C++ Compiler ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ freebsd[[12]]*) ++ # C++ shared libraries reported to be fairly broken before ++ # switch to ELF ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ freebsd-elf*) ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ ;; ++ ++ freebsd* | dragonfly*) ++ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF ++ # conventions ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ ;; ++ ++ gnu*) ++ ;; ++ ++ hpux9*) ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, ++ # but as the default ++ # location of the library. ++ ++ case $cc_basename in ++ CC*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ aCC*) ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ++ ;; ++ *) ++ if test "$GXX" = yes; then ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ else ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ hpux10*|hpux11*) ++ if test $with_gnu_ld = no; then ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ case $host_cpu in ++ hppa*64*|ia64*) ++ ;; ++ *) ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ ;; ++ esac ++ fi ++ case $host_cpu in ++ hppa*64*|ia64*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ ;; ++ *) ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, ++ # but as the default ++ # location of the library. ++ ;; ++ esac ++ ++ case $cc_basename in ++ CC*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ aCC*) ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ esac ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ++ ;; ++ *) ++ if test "$GXX" = yes; then ++ if test $with_gnu_ld = no; then ++ case $host_cpu in ++ hppa*64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ ia64*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ ;; ++ esac ++ fi ++ else ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ interix[[3-9]]*) ++ _LT_TAGVAR(hardcode_direct, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ++ # Instead, shared libraries are loaded at an image base (0x10000000 by ++ # default) and relocated if they conflict, which is a slow very memory ++ # consuming and fragmenting process. To avoid this, we pick a random, ++ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ++ # time. Moving up from 0x10000000 also allows more sbrk(2) space. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ ;; ++ irix5* | irix6*) ++ case $cc_basename in ++ CC*) ++ # SGI C++ ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -ar", where "CC" is the IRIX C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ++ ;; ++ *) ++ if test "$GXX" = yes; then ++ if test "$with_gnu_ld" = no; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' ++ fi ++ fi ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ;; ++ esac ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ _LT_TAGVAR(inherit_rpath, $1)=yes ++ ;; ++ ++ linux* | k*bsd*-gnu) ++ case $cc_basename in ++ KCC*) ++ # Kuck and Associates, Inc. (KAI) C++ Compiler ++ ++ # KCC will only create a shared library if the output file ++ # ends with ".so" (or ".sl" for HP-UX), so rename the library ++ # to its proper name (with version) after linking. ++ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -Bstatic", where "CC" is the KAI C++ compiler. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ++ ;; ++ icpc* | ecpc* ) ++ # Intel C++ ++ with_gnu_ld=yes ++ # version 8.0 and above of icpc choke on multiply defined symbols ++ # if we add $predep_objects and $postdep_objects, however 7.1 and ++ # earlier do not add the objects themselves. ++ case `$CC -V 2>&1` in ++ *"Version 7."*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ *) # Version 8.0 or newer ++ tmp_idyn= ++ case $host_cpu in ++ ia64*) tmp_idyn=' -i_dynamic';; ++ esac ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ ;; ++ esac ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ++ ;; ++ pgCC* | pgcpp*) ++ # Portland Group C++ compiler ++ case `$CC -V` in ++ *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) ++ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ ++ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $RANLIB $oldlib' ++ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ ++ rm -rf $tpldir~ ++ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ ;; ++ *) # Version 6 will use weak symbols ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ ;; ++ esac ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ ;; ++ cxx*) ++ # Compaq C++ ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' ++ ++ runpath_var=LD_RUN_PATH ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ++ ;; ++ xl*) ++ # IBM XL 8.0 on PPC, with GNU ld ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ if test "x$supports_anon_versioning" = xyes; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' ++ fi ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C++ 5.9 ++ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ _LT_TAGVAR(compiler_needs_object, $1)=yes ++ ++ # Not sure whether something based on ++ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 ++ # would be better. ++ output_verbose_link_cmd='echo' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -xar", where "CC" is the Sun C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ ++ lynxos*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ m88k*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ mvs*) ++ case $cc_basename in ++ cxx*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' ++ wlarc= ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ fi ++ # Workaround some broken pre-1.5 toolchains ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ++ ;; ++ ++ *nto* | *qnx*) ++ _LT_TAGVAR(ld_shlibs, $1)=yes ++ ;; ++ ++ openbsd2*) ++ # C++ shared libraries are fairly broken ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ openbsd*) ++ if test -f /usr/libexec/ld.so; then ++ _LT_TAGVAR(hardcode_direct, $1)=yes ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ++ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ fi ++ output_verbose_link_cmd=echo ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ case $cc_basename in ++ KCC*) ++ # Kuck and Associates, Inc. (KAI) C++ Compiler ++ ++ # KCC will only create a shared library if the output file ++ # ends with ".so" (or ".sl" for HP-UX), so rename the library ++ # to its proper name (with version) after linking. ++ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Archives containing C++ object files must be created using ++ # the KAI C++ compiler. ++ case $host in ++ osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; ++ *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; ++ esac ++ ;; ++ RCC*) ++ # Rational C++ 2.4.1 ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ cxx*) ++ case $host in ++ osf3*) ++ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ ;; ++ *) ++ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ ++ echo "-hidden">> $lib.exp~ ++ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ ++ $RM $lib.exp' ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ++ ;; ++ esac ++ ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ # ++ # There doesn't appear to be a way to prevent this compiler from ++ # explicitly linking system object files so we need to strip them ++ # from the output so that they don't get included in the library ++ # dependencies. ++ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ++ ;; ++ *) ++ if test "$GXX" = yes && test "$with_gnu_ld" = no; then ++ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ++ case $host in ++ osf3*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ ;; ++ esac ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' ++ ++ else ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ psos*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ sunos4*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.x ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ lcc*) ++ # Lucid ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ solaris*) ++ case $cc_basename in ++ CC*) ++ # Sun C++ 4.2, 5.x and Centerline C++ ++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes ++ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) ++ # The compiler driver will combine and reorder linker options, ++ # but understands `-z linker_flag'. ++ # Supported since Solaris 2.6 (maybe 2.5.1?) ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ++ ;; ++ esac ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ ++ output_verbose_link_cmd='echo' ++ ++ # Archives containing C++ object files must be created using ++ # "CC -xar", where "CC" is the Sun C++ compiler. This is ++ # necessary to make sure instantiated templates are included ++ # in the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ++ ;; ++ gcx*) ++ # Green Hills C++ Compiler ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ ++ # The C++ compiler must be used to create the archive. ++ _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ++ ;; ++ *) ++ # GNU C++ compiler with Solaris linker ++ if test "$GXX" = yes && test "$with_gnu_ld" = no; then ++ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' ++ if $CC --version | $GREP -v '^2\.7' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' ++ else ++ # g++ 2.7 appears to require `-G' NOT `-shared' on this ++ # platform. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ ++ # Commands to make compiler produce verbose output that lists ++ # what "hidden" libraries, object files and flags are used when ++ # linking a shared library. ++ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' ++ fi ++ ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) ++ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ++ ;; ++ esac ++ fi ++ ;; ++ esac ++ ;; ++ ++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) ++ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ runpath_var='LD_RUN_PATH' ++ ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6*) ++ # Note: We can NOT use -z defs as we might desire, because we do not ++ # link with -lc, and that would cause any symbols used from libc to ++ # always be unresolved, which means just about no library would ++ # ever link correctly. If we're not using GNU ld we use -z text ++ # though, which does catch some bad symbols but isn't as heavy-handed ++ # as -z defs. ++ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' ++ _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' ++ _LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' ++ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' ++ _LT_TAGVAR(link_all_deplibs, $1)=yes ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' ++ runpath_var='LD_RUN_PATH' ++ ++ case $cc_basename in ++ CC*) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ ;; ++ ++ tandem*) ++ case $cc_basename in ++ NCC*) ++ # NonStop-UX NCC 3.20 ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ;; ++ ++ vxworks*) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ ++ *) ++ # FIXME: insert proper C++ library support ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ ;; ++ esac ++ ++ AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) ++ test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no ++ ++ _LT_TAGVAR(GCC, $1)="$GXX" ++ _LT_TAGVAR(LD, $1)="$LD" ++ ++ ## CAVEAT EMPTOR: ++ ## There is no encapsulation within the following macros, do not change ++ ## the running order or otherwise move them around unless you know exactly ++ ## what you are doing... ++ _LT_SYS_HIDDEN_LIBDEPS($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++ fi # test -n "$compiler" ++ ++ CC=$lt_save_CC ++ LDCXX=$LD ++ LD=$lt_save_LD ++ GCC=$lt_save_GCC ++ with_gnu_ld=$lt_save_with_gnu_ld ++ lt_cv_path_LDCXX=$lt_cv_path_LD ++ lt_cv_path_LD=$lt_save_path_LD ++ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld ++ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ++fi # test "$_lt_caught_CXX_error" != yes ++ ++AC_LANG_POP ++])# _LT_LANG_CXX_CONFIG ++ ++ ++# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) ++# --------------------------------- ++# Figure out "hidden" library dependencies from verbose ++# compiler output when linking a shared library. ++# Parse the compiler output and extract the necessary ++# objects, libraries and library flags. ++m4_defun([_LT_SYS_HIDDEN_LIBDEPS], ++[m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++# Dependencies to place before and after the object being linked: ++_LT_TAGVAR(predep_objects, $1)= ++_LT_TAGVAR(postdep_objects, $1)= ++_LT_TAGVAR(predeps, $1)= ++_LT_TAGVAR(postdeps, $1)= ++_LT_TAGVAR(compiler_lib_search_path, $1)= ++ ++dnl we can't use the lt_simple_compile_test_code here, ++dnl because it contains code intended for an executable, ++dnl not a library. It's possible we should let each ++dnl tag define a new lt_????_link_test_code variable, ++dnl but it's only used here... ++m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF ++int a; ++void foo (void) { a = 0; } ++_LT_EOF ++], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF ++class Foo ++{ ++public: ++ Foo (void) { a = 0; } ++private: ++ int a; ++}; ++_LT_EOF ++], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF ++ subroutine foo ++ implicit none ++ integer*4 a ++ a=0 ++ return ++ end ++_LT_EOF ++], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF ++ subroutine foo ++ implicit none ++ integer a ++ a=0 ++ return ++ end ++_LT_EOF ++], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF ++public class foo { ++ private int a; ++ public void bar (void) { ++ a = 0; ++ } ++}; ++_LT_EOF ++]) ++dnl Parse the compiler output and extract the necessary ++dnl objects, libraries and library flags. ++if AC_TRY_EVAL(ac_compile); then ++ # Parse the compiler output and extract the necessary ++ # objects, libraries and library flags. ++ ++ # Sentinel used to keep track of whether or not we are before ++ # the conftest object file. ++ pre_test_object_deps_done=no ++ ++ for p in `eval "$output_verbose_link_cmd"`; do ++ case $p in ++ ++ -L* | -R* | -l*) ++ # Some compilers place space between "-{L,R}" and the path. ++ # Remove the space. ++ if test $p = "-L" || ++ test $p = "-R"; then ++ prev=$p ++ continue ++ else ++ prev= ++ fi ++ ++ if test "$pre_test_object_deps_done" = no; then ++ case $p in ++ -L* | -R*) ++ # Internal compiler library paths should come after those ++ # provided the user. The postdeps already come after the ++ # user supplied libs so there is no need to process them. ++ if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then ++ _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" ++ else ++ _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" ++ fi ++ ;; ++ # The "-l" case would never come before the object being ++ # linked, so don't bother handling this case. ++ esac ++ else ++ if test -z "$_LT_TAGVAR(postdeps, $1)"; then ++ _LT_TAGVAR(postdeps, $1)="${prev}${p}" ++ else ++ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" ++ fi ++ fi ++ ;; ++ ++ *.$objext) ++ # This assumes that the test object file only shows up ++ # once in the compiler output. ++ if test "$p" = "conftest.$objext"; then ++ pre_test_object_deps_done=yes ++ continue ++ fi ++ ++ if test "$pre_test_object_deps_done" = no; then ++ if test -z "$_LT_TAGVAR(predep_objects, $1)"; then ++ _LT_TAGVAR(predep_objects, $1)="$p" ++ else ++ _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" ++ fi ++ else ++ if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then ++ _LT_TAGVAR(postdep_objects, $1)="$p" ++ else ++ _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" ++ fi ++ fi ++ ;; ++ ++ *) ;; # Ignore the rest. ++ ++ esac ++ done ++ ++ # Clean up. ++ rm -f a.out a.exe ++else ++ echo "libtool.m4: error: problem compiling $1 test program" ++fi ++ ++$RM -f confest.$objext ++ ++# PORTME: override above test on systems where it is broken ++m4_if([$1], [CXX], ++[case $host_os in ++interix[[3-9]]*) ++ # Interix 3.5 installs completely hosed .la files for C++, so rather than ++ # hack all around it, let's just trust "g++" to DTRT. ++ _LT_TAGVAR(predep_objects,$1)= ++ _LT_TAGVAR(postdep_objects,$1)= ++ _LT_TAGVAR(postdeps,$1)= ++ ;; ++ ++linux*) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C++ 5.9 ++ ++ # The more standards-conforming stlport4 library is ++ # incompatible with the Cstd library. Avoid specifying ++ # it if it's in CXXFLAGS. Ignore libCrun as ++ # -library=stlport4 depends on it. ++ case " $CXX $CXXFLAGS " in ++ *" -library=stlport4 "*) ++ solaris_use_stlport4=yes ++ ;; ++ esac ++ ++ if test "$solaris_use_stlport4" != yes; then ++ _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' ++ fi ++ ;; ++ esac ++ ;; ++ ++solaris*) ++ case $cc_basename in ++ CC*) ++ # The more standards-conforming stlport4 library is ++ # incompatible with the Cstd library. Avoid specifying ++ # it if it's in CXXFLAGS. Ignore libCrun as ++ # -library=stlport4 depends on it. ++ case " $CXX $CXXFLAGS " in ++ *" -library=stlport4 "*) ++ solaris_use_stlport4=yes ++ ;; ++ esac ++ ++ # Adding this requires a known-good setup of shared libraries for ++ # Sun compiler versions before 5.6, else PIC objects from an old ++ # archive will be linked into the output, leading to subtle bugs. ++ if test "$solaris_use_stlport4" != yes; then ++ _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' ++ fi ++ ;; ++ esac ++ ;; ++esac ++]) ++ ++case " $_LT_TAGVAR(postdeps, $1) " in ++*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; ++esac ++ _LT_TAGVAR(compiler_lib_search_dirs, $1)= ++if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then ++ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` ++fi ++_LT_TAGDECL([], [compiler_lib_search_dirs], [1], ++ [The directories searched by this compiler when creating a shared library]) ++_LT_TAGDECL([], [predep_objects], [1], ++ [Dependencies to place before and after the objects being linked to ++ create a shared library]) ++_LT_TAGDECL([], [postdep_objects], [1]) ++_LT_TAGDECL([], [predeps], [1]) ++_LT_TAGDECL([], [postdeps], [1]) ++_LT_TAGDECL([], [compiler_lib_search_path], [1], ++ [The library search path used internally by the compiler when linking ++ a shared library]) ++])# _LT_SYS_HIDDEN_LIBDEPS ++ ++ ++# _LT_PROG_F77 ++# ------------ ++# Since AC_PROG_F77 is broken, in that it returns the empty string ++# if there is no fortran compiler, we have our own version here. ++m4_defun([_LT_PROG_F77], ++[ ++pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) ++AC_PROG_F77 ++if test -z "$F77" || test "X$F77" = "Xno"; then ++ _lt_disable_F77=yes ++fi ++popdef([AC_MSG_ERROR]) ++])# _LT_PROG_F77 ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([_LT_PROG_F77], []) ++ ++ ++# _LT_LANG_F77_CONFIG([TAG]) ++# -------------------------- ++# Ensure that the configuration variables for a Fortran 77 compiler are ++# suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to `libtool'. ++m4_defun([_LT_LANG_F77_CONFIG], ++[AC_REQUIRE([_LT_PROG_F77])dnl ++AC_LANG_PUSH(Fortran 77) ++ ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++_LT_TAGVAR(allow_undefined_flag, $1)= ++_LT_TAGVAR(always_export_symbols, $1)=no ++_LT_TAGVAR(archive_expsym_cmds, $1)= ++_LT_TAGVAR(export_dynamic_flag_spec, $1)= ++_LT_TAGVAR(hardcode_direct, $1)=no ++_LT_TAGVAR(hardcode_direct_absolute, $1)=no ++_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= ++_LT_TAGVAR(hardcode_libdir_separator, $1)= ++_LT_TAGVAR(hardcode_minus_L, $1)=no ++_LT_TAGVAR(hardcode_automatic, $1)=no ++_LT_TAGVAR(inherit_rpath, $1)=no ++_LT_TAGVAR(module_cmds, $1)= ++_LT_TAGVAR(module_expsym_cmds, $1)= ++_LT_TAGVAR(link_all_deplibs, $1)=unknown ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(no_undefined_flag, $1)= ++_LT_TAGVAR(whole_archive_flag_spec, $1)= ++_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ ++# Source file extension for f77 test sources. ++ac_ext=f ++ ++# Object file extension for compiled f77 test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# No sense in running all these tests if we already determined that ++# the F77 compiler isn't working. Some variables (like enable_shared) ++# are currently assumed to apply to all compilers on this platform, ++# and will be corrupted by setting them based on a non-working compiler. ++if test "$_lt_disable_F77" != yes; then ++ # Code to be used in simple compile tests ++ lt_simple_compile_test_code="\ ++ subroutine t ++ return ++ end ++" ++ ++ # Code to be used in simple link tests ++ lt_simple_link_test_code="\ ++ program t ++ end ++" ++ ++ # ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ _LT_TAG_COMPILER ++ ++ # save warnings/boilerplate of simple test code ++ _LT_COMPILER_BOILERPLATE ++ _LT_LINKER_BOILERPLATE ++ ++ # Allow CC to be a program name with arguments. ++ lt_save_CC="$CC" ++ lt_save_GCC=$GCC ++ CC=${F77-"f77"} ++ compiler=$CC ++ _LT_TAGVAR(compiler, $1)=$CC ++ _LT_CC_BASENAME([$compiler]) ++ GCC=$G77 ++ if test -n "$compiler"; then ++ AC_MSG_CHECKING([if libtool supports shared libraries]) ++ AC_MSG_RESULT([$can_build_shared]) ++ ++ AC_MSG_CHECKING([whether to build shared libraries]) ++ test "$can_build_shared" = "no" && enable_shared=no ++ ++ # On AIX, shared libraries and static libraries use the same namespace, and ++ # are all built from PIC. ++ case $host_os in ++ aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ aix[[4-9]]*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++ esac ++ AC_MSG_RESULT([$enable_shared]) ++ ++ AC_MSG_CHECKING([whether to build static libraries]) ++ # Make sure either enable_shared or enable_static is yes. ++ test "$enable_shared" = yes || enable_static=yes ++ AC_MSG_RESULT([$enable_static]) ++ ++ _LT_TAGVAR(GCC, $1)="$G77" ++ _LT_TAGVAR(LD, $1)="$LD" ++ ++ ## CAVEAT EMPTOR: ++ ## There is no encapsulation within the following macros, do not change ++ ## the running order or otherwise move them around unless you know exactly ++ ## what you are doing... ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++ fi # test -n "$compiler" ++ ++ GCC=$lt_save_GCC ++ CC="$lt_save_CC" ++fi # test "$_lt_disable_F77" != yes ++ ++AC_LANG_POP ++])# _LT_LANG_F77_CONFIG ++ ++ ++# _LT_PROG_FC ++# ----------- ++# Since AC_PROG_FC is broken, in that it returns the empty string ++# if there is no fortran compiler, we have our own version here. ++m4_defun([_LT_PROG_FC], ++[ ++pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) ++AC_PROG_FC ++if test -z "$FC" || test "X$FC" = "Xno"; then ++ _lt_disable_FC=yes ++fi ++popdef([AC_MSG_ERROR]) ++])# _LT_PROG_FC ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([_LT_PROG_FC], []) ++ ++ ++# _LT_LANG_FC_CONFIG([TAG]) ++# ------------------------- ++# Ensure that the configuration variables for a Fortran compiler are ++# suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to `libtool'. ++m4_defun([_LT_LANG_FC_CONFIG], ++[AC_REQUIRE([_LT_PROG_FC])dnl ++AC_LANG_PUSH(Fortran) ++ ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++_LT_TAGVAR(allow_undefined_flag, $1)= ++_LT_TAGVAR(always_export_symbols, $1)=no ++_LT_TAGVAR(archive_expsym_cmds, $1)= ++_LT_TAGVAR(export_dynamic_flag_spec, $1)= ++_LT_TAGVAR(hardcode_direct, $1)=no ++_LT_TAGVAR(hardcode_direct_absolute, $1)=no ++_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= ++_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= ++_LT_TAGVAR(hardcode_libdir_separator, $1)= ++_LT_TAGVAR(hardcode_minus_L, $1)=no ++_LT_TAGVAR(hardcode_automatic, $1)=no ++_LT_TAGVAR(inherit_rpath, $1)=no ++_LT_TAGVAR(module_cmds, $1)= ++_LT_TAGVAR(module_expsym_cmds, $1)= ++_LT_TAGVAR(link_all_deplibs, $1)=unknown ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++_LT_TAGVAR(no_undefined_flag, $1)= ++_LT_TAGVAR(whole_archive_flag_spec, $1)= ++_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no ++ ++# Source file extension for fc test sources. ++ac_ext=${ac_fc_srcext-f} ++ ++# Object file extension for compiled fc test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# No sense in running all these tests if we already determined that ++# the FC compiler isn't working. Some variables (like enable_shared) ++# are currently assumed to apply to all compilers on this platform, ++# and will be corrupted by setting them based on a non-working compiler. ++if test "$_lt_disable_FC" != yes; then ++ # Code to be used in simple compile tests ++ lt_simple_compile_test_code="\ ++ subroutine t ++ return ++ end ++" ++ ++ # Code to be used in simple link tests ++ lt_simple_link_test_code="\ ++ program t ++ end ++" ++ ++ # ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ _LT_TAG_COMPILER ++ ++ # save warnings/boilerplate of simple test code ++ _LT_COMPILER_BOILERPLATE ++ _LT_LINKER_BOILERPLATE ++ ++ # Allow CC to be a program name with arguments. ++ lt_save_CC="$CC" ++ lt_save_GCC=$GCC ++ CC=${FC-"f95"} ++ compiler=$CC ++ GCC=$ac_cv_fc_compiler_gnu ++ ++ _LT_TAGVAR(compiler, $1)=$CC ++ _LT_CC_BASENAME([$compiler]) ++ ++ if test -n "$compiler"; then ++ AC_MSG_CHECKING([if libtool supports shared libraries]) ++ AC_MSG_RESULT([$can_build_shared]) ++ ++ AC_MSG_CHECKING([whether to build shared libraries]) ++ test "$can_build_shared" = "no" && enable_shared=no ++ ++ # On AIX, shared libraries and static libraries use the same namespace, and ++ # are all built from PIC. ++ case $host_os in ++ aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ aix[[4-9]]*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++ esac ++ AC_MSG_RESULT([$enable_shared]) ++ ++ AC_MSG_CHECKING([whether to build static libraries]) ++ # Make sure either enable_shared or enable_static is yes. ++ test "$enable_shared" = yes || enable_static=yes ++ AC_MSG_RESULT([$enable_static]) ++ ++ _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" ++ _LT_TAGVAR(LD, $1)="$LD" ++ ++ ## CAVEAT EMPTOR: ++ ## There is no encapsulation within the following macros, do not change ++ ## the running order or otherwise move them around unless you know exactly ++ ## what you are doing... ++ _LT_SYS_HIDDEN_LIBDEPS($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_SYS_DYNAMIC_LINKER($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++ fi # test -n "$compiler" ++ ++ GCC=$lt_save_GCC ++ CC="$lt_save_CC" ++fi # test "$_lt_disable_FC" != yes ++ ++AC_LANG_POP ++])# _LT_LANG_FC_CONFIG ++ ++ ++# _LT_LANG_GCJ_CONFIG([TAG]) ++# -------------------------- ++# Ensure that the configuration variables for the GNU Java Compiler compiler ++# are suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to `libtool'. ++m4_defun([_LT_LANG_GCJ_CONFIG], ++[AC_REQUIRE([LT_PROG_GCJ])dnl ++AC_LANG_SAVE ++ ++# Source file extension for Java test sources. ++ac_ext=java ++ ++# Object file extension for compiled Java test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code="class foo {}" ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' ++ ++# ltmain only uses $CC for tagged configurations so make sure $CC is set. ++_LT_TAG_COMPILER ++ ++# save warnings/boilerplate of simple test code ++_LT_COMPILER_BOILERPLATE ++_LT_LINKER_BOILERPLATE ++ ++# Allow CC to be a program name with arguments. ++lt_save_CC="$CC" ++lt_save_GCC=$GCC ++GCC=yes ++CC=${GCJ-"gcj"} ++compiler=$CC ++_LT_TAGVAR(compiler, $1)=$CC ++_LT_TAGVAR(LD, $1)="$LD" ++_LT_CC_BASENAME([$compiler]) ++ ++# GCJ did not exist at the time GCC didn't implicitly link libc in. ++_LT_TAGVAR(archive_cmds_need_lc, $1)=no ++ ++_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ++ ++## CAVEAT EMPTOR: ++## There is no encapsulation within the following macros, do not change ++## the running order or otherwise move them around unless you know exactly ++## what you are doing... ++if test -n "$compiler"; then ++ _LT_COMPILER_NO_RTTI($1) ++ _LT_COMPILER_PIC($1) ++ _LT_COMPILER_C_O($1) ++ _LT_COMPILER_FILE_LOCKS($1) ++ _LT_LINKER_SHLIBS($1) ++ _LT_LINKER_HARDCODE_LIBPATH($1) ++ ++ _LT_CONFIG($1) ++fi ++ ++AC_LANG_RESTORE ++ ++GCC=$lt_save_GCC ++CC="$lt_save_CC" ++])# _LT_LANG_GCJ_CONFIG ++ ++ ++# _LT_LANG_RC_CONFIG([TAG]) ++# ------------------------- ++# Ensure that the configuration variables for the Windows resource compiler ++# are suitably defined. These variables are subsequently used by _LT_CONFIG ++# to write the compiler configuration to `libtool'. ++m4_defun([_LT_LANG_RC_CONFIG], ++[AC_REQUIRE([LT_PROG_RC])dnl ++AC_LANG_SAVE ++ ++# Source file extension for RC test sources. ++ac_ext=rc ++ ++# Object file extension for compiled RC test sources. ++objext=o ++_LT_TAGVAR(objext, $1)=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code="$lt_simple_compile_test_code" ++ ++# ltmain only uses $CC for tagged configurations so make sure $CC is set. ++_LT_TAG_COMPILER ++ ++# save warnings/boilerplate of simple test code ++_LT_COMPILER_BOILERPLATE ++_LT_LINKER_BOILERPLATE ++ ++# Allow CC to be a program name with arguments. ++lt_save_CC="$CC" ++lt_save_GCC=$GCC ++GCC= ++CC=${RC-"windres"} ++compiler=$CC ++_LT_TAGVAR(compiler, $1)=$CC ++_LT_CC_BASENAME([$compiler]) ++_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes ++ ++if test -n "$compiler"; then ++ : ++ _LT_CONFIG($1) ++fi ++ ++GCC=$lt_save_GCC ++AC_LANG_RESTORE ++CC="$lt_save_CC" ++])# _LT_LANG_RC_CONFIG ++ ++ ++# LT_PROG_GCJ ++# ----------- ++AC_DEFUN([LT_PROG_GCJ], ++[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], ++ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], ++ [AC_CHECK_TOOL(GCJ, gcj,) ++ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" ++ AC_SUBST(GCJFLAGS)])])[]dnl ++]) ++ ++# Old name: ++AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([LT_AC_PROG_GCJ], []) ++ ++ ++# LT_PROG_RC ++# ---------- ++AC_DEFUN([LT_PROG_RC], ++[AC_CHECK_TOOL(RC, windres,) ++]) ++ ++# Old name: ++AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([LT_AC_PROG_RC], []) ++ ++ ++# _LT_DECL_EGREP ++# -------------- ++# If we don't have a new enough Autoconf to choose the best grep ++# available, choose the one first in the user's PATH. ++m4_defun([_LT_DECL_EGREP], ++[AC_REQUIRE([AC_PROG_EGREP])dnl ++AC_REQUIRE([AC_PROG_FGREP])dnl ++test -z "$GREP" && GREP=grep ++_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) ++_LT_DECL([], [EGREP], [1], [An ERE matcher]) ++_LT_DECL([], [FGREP], [1], [A literal string matcher]) ++dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too ++AC_SUBST([GREP]) ++]) ++ ++ ++# _LT_DECL_OBJDUMP ++# -------------- ++# If we don't have a new enough Autoconf to choose the best objdump ++# available, choose the one first in the user's PATH. ++m4_defun([_LT_DECL_OBJDUMP], ++[AC_CHECK_TOOL(OBJDUMP, objdump, false) ++test -z "$OBJDUMP" && OBJDUMP=objdump ++_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) ++AC_SUBST([OBJDUMP]) ++]) ++ ++ ++# _LT_DECL_SED ++# ------------ ++# Check for a fully-functional sed program, that truncates ++# as few characters as possible. Prefer GNU sed if found. ++m4_defun([_LT_DECL_SED], ++[AC_PROG_SED ++test -z "$SED" && SED=sed ++Xsed="$SED -e 1s/^X//" ++_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) ++_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], ++ [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ++])# _LT_DECL_SED ++ ++m4_ifndef([AC_PROG_SED], [ ++############################################################ ++# NOTE: This macro has been submitted for inclusion into # ++# GNU Autoconf as AC_PROG_SED. When it is available in # ++# a released version of Autoconf we should remove this # ++# macro and use it instead. # ++############################################################ ++ ++m4_defun([AC_PROG_SED], ++[AC_MSG_CHECKING([for a sed that does not truncate output]) ++AC_CACHE_VAL(lt_cv_path_SED, ++[# Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for lt_ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then ++ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++IFS=$as_save_IFS ++lt_ac_max=0 ++lt_ac_count=0 ++# Add /usr/xpg4/bin/sed as it is typically found on Solaris ++# along with /bin/sed that truncates output. ++for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do ++ test ! -f $lt_ac_sed && continue ++ cat /dev/null > conftest.in ++ lt_ac_count=0 ++ echo $ECHO_N "0123456789$ECHO_C" >conftest.in ++ # Check for GNU sed and select it if it is found. ++ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then ++ lt_cv_path_SED=$lt_ac_sed ++ break ++ fi ++ while true; do ++ cat conftest.in conftest.in >conftest.tmp ++ mv conftest.tmp conftest.in ++ cp conftest.in conftest.nl ++ echo >>conftest.nl ++ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break ++ cmp -s conftest.out conftest.nl || break ++ # 10000 chars as input seems more than enough ++ test $lt_ac_count -gt 10 && break ++ lt_ac_count=`expr $lt_ac_count + 1` ++ if test $lt_ac_count -gt $lt_ac_max; then ++ lt_ac_max=$lt_ac_count ++ lt_cv_path_SED=$lt_ac_sed ++ fi ++ done ++done ++]) ++SED=$lt_cv_path_SED ++AC_SUBST([SED]) ++AC_MSG_RESULT([$SED]) ++])#AC_PROG_SED ++])#m4_ifndef ++ ++# Old name: ++AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([LT_AC_PROG_SED], []) ++ ++ ++# _LT_CHECK_SHELL_FEATURES ++# ------------------------ ++# Find out whether the shell is Bourne or XSI compatible, ++# or has some other useful features. ++m4_defun([_LT_CHECK_SHELL_FEATURES], ++[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) ++# Try some XSI features ++xsi_shell=no ++( _lt_dummy="a/b/c" ++ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,, \ ++ && eval 'test $(( 1 + 1 )) -eq 2 \ ++ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ ++ && xsi_shell=yes ++AC_MSG_RESULT([$xsi_shell]) ++_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) ++ ++AC_MSG_CHECKING([whether the shell understands "+="]) ++lt_shell_append=no ++( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ ++ >/dev/null 2>&1 \ ++ && lt_shell_append=yes ++AC_MSG_RESULT([$lt_shell_append]) ++_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) ++ ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ lt_unset=unset ++else ++ lt_unset=false ++fi ++_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl ++ ++# test EBCDIC or ASCII ++case `echo X|tr X '\101'` in ++ A) # ASCII based system ++ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr ++ lt_SP2NL='tr \040 \012' ++ lt_NL2SP='tr \015\012 \040\040' ++ ;; ++ *) # EBCDIC based system ++ lt_SP2NL='tr \100 \n' ++ lt_NL2SP='tr \r\n \100\100' ++ ;; ++esac ++_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl ++_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ++])# _LT_CHECK_SHELL_FEATURES ++ ++ ++# _LT_PROG_XSI_SHELLFNS ++# --------------------- ++# Bourne and XSI compatible variants of some useful shell functions. ++m4_defun([_LT_PROG_XSI_SHELLFNS], ++[case $xsi_shell in ++ yes) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++} ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result="${1##*/}" ++} ++ ++# func_dirname_and_basename file append nondir_replacement ++# perform func_basename and func_dirname in a single function ++# call: ++# dirname: Compute the dirname of FILE. If nonempty, ++# add APPEND to the result, otherwise set result ++# to NONDIR_REPLACEMENT. ++# value returned in "$func_dirname_result" ++# basename: Compute filename of FILE. ++# value retuned in "$func_basename_result" ++# Implementation must be kept synchronized with func_dirname ++# and func_basename. For efficiency, we do not delegate to ++# those functions but instead duplicate the functionality here. ++func_dirname_and_basename () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++ func_basename_result="${1##*/}" ++} ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++func_stripname () ++{ ++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ++ # positional parameters, so assign one to ordinary parameter first. ++ func_stripname_result=${3} ++ func_stripname_result=${func_stripname_result#"${1}"} ++ func_stripname_result=${func_stripname_result%"${2}"} ++} ++ ++# func_opt_split ++func_opt_split () ++{ ++ func_opt_split_opt=${1%%=*} ++ func_opt_split_arg=${1#*=} ++} ++ ++# func_lo2o object ++func_lo2o () ++{ ++ case ${1} in ++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ++ *) func_lo2o_result=${1} ;; ++ esac ++} ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=${1%.*}.lo ++} ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=$(( $[*] )) ++} ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=${#1} ++} ++ ++_LT_EOF ++ ;; ++ *) # Bourne compatible functions. ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++} ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ++} ++ ++dnl func_dirname_and_basename ++dnl A portable version of this function is already defined in general.m4sh ++dnl so there is no need for it here. ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# func_strip_suffix prefix name ++func_stripname () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "X${3}" \ ++ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "X${3}" \ ++ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; ++ esac ++} ++ ++# sed scripts: ++my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' ++my_sed_long_arg='1s/^-[[^=]]*=//' ++ ++# func_opt_split ++func_opt_split () ++{ ++ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` ++ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` ++} ++ ++# func_lo2o object ++func_lo2o () ++{ ++ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` ++} ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` ++} ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=`expr "$[@]"` ++} ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` ++} ++ ++_LT_EOF ++esac ++ ++case $lt_shell_append in ++ yes) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "$[1]+=\$[2]" ++} ++_LT_EOF ++ ;; ++ *) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "$[1]=\$$[1]\$[2]" ++} ++ ++_LT_EOF ++ ;; ++ esac ++]) +diff -Naur libva-0.31.0/m4/lt~obsolete.m4 libva-0.31.0.patch/m4/lt~obsolete.m4 +--- libva-0.31.0/m4/lt~obsolete.m4 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/m4/lt~obsolete.m4 2009-07-30 18:46:57.000000000 +0200 +@@ -0,0 +1,92 @@ ++# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- ++# ++# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. ++# Written by Scott James Remnant, 2004. ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# serial 4 lt~obsolete.m4 ++ ++# These exist entirely to fool aclocal when bootstrapping libtool. ++# ++# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) ++# which have later been changed to m4_define as they aren't part of the ++# exported API, or moved to Autoconf or Automake where they belong. ++# ++# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN ++# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us ++# using a macro with the same name in our local m4/libtool.m4 it'll ++# pull the old libtool.m4 in (it doesn't see our shiny new m4_define ++# and doesn't know about Autoconf macros at all.) ++# ++# So we provide this file, which has a silly filename so it's always ++# included after everything else. This provides aclocal with the ++# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything ++# because those macros already exist, or will be overwritten later. ++# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. ++# ++# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. ++# Yes, that means every name once taken will need to remain here until ++# we give up compatibility with versions before 1.7, at which point ++# we need to keep only those names which we still refer to. ++ ++# This is to help aclocal find these macros, as it can't see m4_define. ++AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) ++ ++m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) ++m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) ++m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) ++m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) ++m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) ++m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) ++m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) ++m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) ++m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) ++m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) ++m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) ++m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) ++m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) ++m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) ++m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) ++m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) ++m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) ++m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) ++m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) ++m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) ++m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) ++m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) ++m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) ++m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) ++m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) ++m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) ++m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) ++m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) ++m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) ++m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) ++m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) ++m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) ++m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) ++m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) ++m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) ++m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) ++m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) ++m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) ++m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) ++m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) ++m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) ++m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) ++m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) ++m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) ++m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) ++m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) ++m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +diff -Naur libva-0.31.0/m4/ltoptions.m4 libva-0.31.0.patch/m4/ltoptions.m4 +--- libva-0.31.0/m4/ltoptions.m4 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/m4/ltoptions.m4 2009-07-30 18:46:57.000000000 +0200 +@@ -0,0 +1,368 @@ ++# Helper functions for option handling. -*- Autoconf -*- ++# ++# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. ++# Written by Gary V. Vaughan, 2004 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# serial 6 ltoptions.m4 ++ ++# This is to help aclocal find these macros, as it can't see m4_define. ++AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) ++ ++ ++# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) ++# ------------------------------------------ ++m4_define([_LT_MANGLE_OPTION], ++[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) ++ ++ ++# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) ++# --------------------------------------- ++# Set option OPTION-NAME for macro MACRO-NAME, and if there is a ++# matching handler defined, dispatch to it. Other OPTION-NAMEs are ++# saved as a flag. ++m4_define([_LT_SET_OPTION], ++[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl ++m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), ++ _LT_MANGLE_DEFUN([$1], [$2]), ++ [m4_warning([Unknown $1 option `$2'])])[]dnl ++]) ++ ++ ++# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) ++# ------------------------------------------------------------ ++# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. ++m4_define([_LT_IF_OPTION], ++[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) ++ ++ ++# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) ++# ------------------------------------------------------- ++# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME ++# are set. ++m4_define([_LT_UNLESS_OPTIONS], ++[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), ++ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), ++ [m4_define([$0_found])])])[]dnl ++m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ++])[]dnl ++]) ++ ++ ++# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) ++# ---------------------------------------- ++# OPTION-LIST is a space-separated list of Libtool options associated ++# with MACRO-NAME. If any OPTION has a matching handler declared with ++# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about ++# the unknown option and exit. ++m4_defun([_LT_SET_OPTIONS], ++[# Set options ++m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), ++ [_LT_SET_OPTION([$1], _LT_Option)]) ++ ++m4_if([$1],[LT_INIT],[ ++ dnl ++ dnl Simply set some default values (i.e off) if boolean options were not ++ dnl specified: ++ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ++ ]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ++ ]) ++ dnl ++ dnl If no reference was made to various pairs of opposing options, then ++ dnl we run the default mode handler for the pair. For example, if neither ++ dnl `shared' nor `disable-shared' was passed, we enable building of shared ++ dnl archives by default: ++ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) ++ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], ++ [_LT_ENABLE_FAST_INSTALL]) ++ ]) ++])# _LT_SET_OPTIONS ++ ++ ++## --------------------------------- ## ++## Macros to handle LT_INIT options. ## ++## --------------------------------- ## ++ ++# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) ++# ----------------------------------------- ++m4_define([_LT_MANGLE_DEFUN], ++[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) ++ ++ ++# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) ++# ----------------------------------------------- ++m4_define([LT_OPTION_DEFINE], ++[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ++])# LT_OPTION_DEFINE ++ ++ ++# dlopen ++# ------ ++LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ++]) ++ ++AU_DEFUN([AC_LIBTOOL_DLOPEN], ++[_LT_SET_OPTION([LT_INIT], [dlopen]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you ++put the `dlopen' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) ++ ++ ++# win32-dll ++# --------- ++# Declare package support for building win32 dll's. ++LT_OPTION_DEFINE([LT_INIT], [win32-dll], ++[enable_win32_dll=yes ++ ++case $host in ++*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) ++ AC_CHECK_TOOL(AS, as, false) ++ AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++ AC_CHECK_TOOL(OBJDUMP, objdump, false) ++ ;; ++esac ++ ++test -z "$AS" && AS=as ++_LT_DECL([], [AS], [0], [Assembler program])dnl ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl ++ ++test -z "$OBJDUMP" && OBJDUMP=objdump ++_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ++])# win32-dll ++ ++AU_DEFUN([AC_LIBTOOL_WIN32_DLL], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++_LT_SET_OPTION([LT_INIT], [win32-dll]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you ++put the `win32-dll' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) ++ ++ ++# _LT_ENABLE_SHARED([DEFAULT]) ++# ---------------------------- ++# implement the --enable-shared flag, and supports the `shared' and ++# `disable-shared' LT_INIT options. ++# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. ++m4_define([_LT_ENABLE_SHARED], ++[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl ++AC_ARG_ENABLE([shared], ++ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], ++ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], ++ [p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_shared=yes ;; ++ no) enable_shared=no ;; ++ *) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ++ for pkg in $enableval; do ++ IFS="$lt_save_ifs" ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ;; ++ esac], ++ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) ++ ++ _LT_DECL([build_libtool_libs], [enable_shared], [0], ++ [Whether or not to build shared libraries]) ++])# _LT_ENABLE_SHARED ++ ++LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) ++ ++# Old names: ++AC_DEFUN([AC_ENABLE_SHARED], ++[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ++]) ++ ++AC_DEFUN([AC_DISABLE_SHARED], ++[_LT_SET_OPTION([LT_INIT], [disable-shared]) ++]) ++ ++AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) ++AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AM_ENABLE_SHARED], []) ++dnl AC_DEFUN([AM_DISABLE_SHARED], []) ++ ++ ++ ++# _LT_ENABLE_STATIC([DEFAULT]) ++# ---------------------------- ++# implement the --enable-static flag, and support the `static' and ++# `disable-static' LT_INIT options. ++# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. ++m4_define([_LT_ENABLE_STATIC], ++[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl ++AC_ARG_ENABLE([static], ++ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], ++ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], ++ [p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_static=yes ;; ++ no) enable_static=no ;; ++ *) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ++ for pkg in $enableval; do ++ IFS="$lt_save_ifs" ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ;; ++ esac], ++ [enable_static=]_LT_ENABLE_STATIC_DEFAULT) ++ ++ _LT_DECL([build_old_libs], [enable_static], [0], ++ [Whether or not to build static libraries]) ++])# _LT_ENABLE_STATIC ++ ++LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) ++ ++# Old names: ++AC_DEFUN([AC_ENABLE_STATIC], ++[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ++]) ++ ++AC_DEFUN([AC_DISABLE_STATIC], ++[_LT_SET_OPTION([LT_INIT], [disable-static]) ++]) ++ ++AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) ++AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AM_ENABLE_STATIC], []) ++dnl AC_DEFUN([AM_DISABLE_STATIC], []) ++ ++ ++ ++# _LT_ENABLE_FAST_INSTALL([DEFAULT]) ++# ---------------------------------- ++# implement the --enable-fast-install flag, and support the `fast-install' ++# and `disable-fast-install' LT_INIT options. ++# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. ++m4_define([_LT_ENABLE_FAST_INSTALL], ++[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl ++AC_ARG_ENABLE([fast-install], ++ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], ++ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], ++ [p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_fast_install=yes ;; ++ no) enable_fast_install=no ;; ++ *) ++ enable_fast_install=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ++ for pkg in $enableval; do ++ IFS="$lt_save_ifs" ++ if test "X$pkg" = "X$p"; then ++ enable_fast_install=yes ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ;; ++ esac], ++ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) ++ ++_LT_DECL([fast_install], [enable_fast_install], [0], ++ [Whether or not to optimize for fast installation])dnl ++])# _LT_ENABLE_FAST_INSTALL ++ ++LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) ++ ++# Old names: ++AU_DEFUN([AC_ENABLE_FAST_INSTALL], ++[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you put ++the `fast-install' option into LT_INIT's first parameter.]) ++]) ++ ++AU_DEFUN([AC_DISABLE_FAST_INSTALL], ++[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you put ++the `disable-fast-install' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) ++dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) ++ ++ ++# _LT_WITH_PIC([MODE]) ++# -------------------- ++# implement the --with-pic flag, and support the `pic-only' and `no-pic' ++# LT_INIT options. ++# MODE is either `yes' or `no'. If omitted, it defaults to `both'. ++m4_define([_LT_WITH_PIC], ++[AC_ARG_WITH([pic], ++ [AS_HELP_STRING([--with-pic], ++ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], ++ [pic_mode="$withval"], ++ [pic_mode=default]) ++ ++test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) ++ ++_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ++])# _LT_WITH_PIC ++ ++LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) ++LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) ++ ++# Old name: ++AU_DEFUN([AC_LIBTOOL_PICMODE], ++[_LT_SET_OPTION([LT_INIT], [pic-only]) ++AC_DIAGNOSE([obsolete], ++[$0: Remove this warning and the call to _LT_SET_OPTION when you ++put the `pic-only' option into LT_INIT's first parameter.]) ++]) ++ ++dnl aclocal-1.4 backwards compatibility: ++dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ++ ++## ----------------- ## ++## LTDL_INIT Options ## ++## ----------------- ## ++ ++m4_define([_LTDL_MODE], []) ++LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], ++ [m4_define([_LTDL_MODE], [nonrecursive])]) ++LT_OPTION_DEFINE([LTDL_INIT], [recursive], ++ [m4_define([_LTDL_MODE], [recursive])]) ++LT_OPTION_DEFINE([LTDL_INIT], [subproject], ++ [m4_define([_LTDL_MODE], [subproject])]) ++ ++m4_define([_LTDL_TYPE], []) ++LT_OPTION_DEFINE([LTDL_INIT], [installable], ++ [m4_define([_LTDL_TYPE], [installable])]) ++LT_OPTION_DEFINE([LTDL_INIT], [convenience], ++ [m4_define([_LTDL_TYPE], [convenience])]) +diff -Naur libva-0.31.0/m4/ltsugar.m4 libva-0.31.0.patch/m4/ltsugar.m4 +--- libva-0.31.0/m4/ltsugar.m4 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/m4/ltsugar.m4 2009-07-30 18:46:57.000000000 +0200 +@@ -0,0 +1,123 @@ ++# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- ++# ++# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. ++# Written by Gary V. Vaughan, 2004 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# serial 6 ltsugar.m4 ++ ++# This is to help aclocal find these macros, as it can't see m4_define. ++AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) ++ ++ ++# lt_join(SEP, ARG1, [ARG2...]) ++# ----------------------------- ++# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their ++# associated separator. ++# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier ++# versions in m4sugar had bugs. ++m4_define([lt_join], ++[m4_if([$#], [1], [], ++ [$#], [2], [[$2]], ++ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) ++m4_define([_lt_join], ++[m4_if([$#$2], [2], [], ++ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) ++ ++ ++# lt_car(LIST) ++# lt_cdr(LIST) ++# ------------ ++# Manipulate m4 lists. ++# These macros are necessary as long as will still need to support ++# Autoconf-2.59 which quotes differently. ++m4_define([lt_car], [[$1]]) ++m4_define([lt_cdr], ++[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], ++ [$#], 1, [], ++ [m4_dquote(m4_shift($@))])]) ++m4_define([lt_unquote], $1) ++ ++ ++# lt_append(MACRO-NAME, STRING, [SEPARATOR]) ++# ------------------------------------------ ++# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. ++# Note that neither SEPARATOR nor STRING are expanded; they are appended ++# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). ++# No SEPARATOR is output if MACRO-NAME was previously undefined (different ++# than defined and empty). ++# ++# This macro is needed until we can rely on Autoconf 2.62, since earlier ++# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. ++m4_define([lt_append], ++[m4_define([$1], ++ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) ++ ++ ++ ++# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) ++# ---------------------------------------------------------- ++# Produce a SEP delimited list of all paired combinations of elements of ++# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list ++# has the form PREFIXmINFIXSUFFIXn. ++# Needed until we can rely on m4_combine added in Autoconf 2.62. ++m4_define([lt_combine], ++[m4_if(m4_eval([$# > 3]), [1], ++ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl ++[[m4_foreach([_Lt_prefix], [$2], ++ [m4_foreach([_Lt_suffix], ++ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, ++ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) ++ ++ ++# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) ++# ----------------------------------------------------------------------- ++# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited ++# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. ++m4_define([lt_if_append_uniq], ++[m4_ifdef([$1], ++ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], ++ [lt_append([$1], [$2], [$3])$4], ++ [$5])], ++ [lt_append([$1], [$2], [$3])$4])]) ++ ++ ++# lt_dict_add(DICT, KEY, VALUE) ++# ----------------------------- ++m4_define([lt_dict_add], ++[m4_define([$1($2)], [$3])]) ++ ++ ++# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) ++# -------------------------------------------- ++m4_define([lt_dict_add_subkey], ++[m4_define([$1($2:$3)], [$4])]) ++ ++ ++# lt_dict_fetch(DICT, KEY, [SUBKEY]) ++# ---------------------------------- ++m4_define([lt_dict_fetch], ++[m4_ifval([$3], ++ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), ++ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) ++ ++ ++# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) ++# ----------------------------------------------------------------- ++m4_define([lt_if_dict_fetch], ++[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], ++ [$5], ++ [$6])]) ++ ++ ++# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) ++# -------------------------------------------------------------- ++m4_define([lt_dict_filter], ++[m4_if([$5], [], [], ++ [lt_join(m4_quote(m4_default([$4], [[, ]])), ++ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), ++ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ++]) +diff -Naur libva-0.31.0/m4/ltversion.m4 libva-0.31.0.patch/m4/ltversion.m4 +--- libva-0.31.0/m4/ltversion.m4 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/m4/ltversion.m4 2009-07-30 18:46:57.000000000 +0200 +@@ -0,0 +1,23 @@ ++# ltversion.m4 -- version numbers -*- Autoconf -*- ++# ++# Copyright (C) 2004 Free Software Foundation, Inc. ++# Written by Scott James Remnant, 2004 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++ ++# Generated from ltversion.in. ++ ++# serial 3012 ltversion.m4 ++# This file is part of GNU Libtool ++ ++m4_define([LT_PACKAGE_VERSION], [2.2.6]) ++m4_define([LT_PACKAGE_REVISION], [1.3012]) ++ ++AC_DEFUN([LTVERSION_VERSION], ++[macro_version='2.2.6' ++macro_revision='1.3012' ++_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) ++_LT_DECL(, macro_revision, 0) ++]) +diff -Naur libva-0.31.0/Makefile.am libva-0.31.0.patch/Makefile.am +--- libva-0.31.0/Makefile.am 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/Makefile.am 2009-10-12 02:43:29.516782281 +0200 +@@ -32,10 +32,13 @@ + + pcfiles = libva.pc + pcfiles += libva-x11.pc ++if USE_GLX ++pcfiles += libva-glx.pc ++endif + + pkgconfigdir = @pkgconfigdir@ + pkgconfig_DATA = $(pcfiles) + +-EXTRA_DIST = libva.pc.in libva-x11.pc.in ++EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in + + CLEANFILES = $(pcfiles) +diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.patch/Makefile.in --- libva-0.31.0/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/Makefile.in 2009-10-10 23:10:15.549782118 +0200 ++++ libva-0.31.0.patch/Makefile.in 2009-10-12 02:44:01.874658048 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -44585,26 +67368,34 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c -@@ -59,7 +61,7 @@ +@@ -56,12 +58,13 @@ + host_triplet = @host@ + @BUILD_DUMMY_DRIVER_TRUE@am__append_1 = dummy_drv_video + @BUILD_I965_DRIVER_TRUE@am__append_2 = i965_drv_video ++@USE_GLX_TRUE@am__append_3 = libva-glx.pc subdir = . DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/libva.pc.in $(srcdir)/libva_display.pc.in \ -+ $(srcdir)/libva-x11.pc.in $(srcdir)/libva.pc.in \ - $(top_srcdir)/configure COPYING config.guess config.sub \ - depcomp install-sh ltmain.sh missing +- $(top_srcdir)/configure COPYING config.guess config.sub \ +- depcomp install-sh ltmain.sh missing ++ $(srcdir)/libva-glx.pc.in $(srcdir)/libva-x11.pc.in \ ++ $(srcdir)/libva.pc.in $(top_srcdir)/configure COPYING \ ++ config.guess config.sub depcomp install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -@@ -70,7 +72,8 @@ + am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ +@@ -70,7 +73,8 @@ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = libva.pc libva_display.pc -+CONFIG_CLEAN_FILES = libva.pc libva-x11.pc ++CONFIG_CLEAN_FILES = libva.pc libva-x11.pc libva-glx.pc +CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ -@@ -85,12 +88,29 @@ +@@ -85,12 +89,29 @@ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; @@ -44636,7 +67427,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in ETAGS = etags CTAGS = ctags DIST_SUBDIRS = src test dummy_drv_video i965_drv_video -@@ -98,9 +118,34 @@ +@@ -98,9 +119,34 @@ distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ @@ -44674,7 +67465,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print -@@ -117,24 +162,19 @@ +@@ -117,38 +163,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -44700,8 +67491,11 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -143,12 +183,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -44715,9 +67509,11 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -157,12 +197,17 @@ +@@ -156,13 +199,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -44733,7 +67529,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -188,8 +233,7 @@ +@@ -188,8 +237,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -44743,7 +67539,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -222,6 +266,7 @@ +@@ -222,6 +270,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -44751,7 +67547,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -235,16 +280,14 @@ +@@ -235,16 +284,14 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -44764,14 +67560,14 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in - libva.pc \ - libva-$(LIBVA_DISPLAY).pc - -+pcfiles = libva.pc libva-x11.pc ++pcfiles = libva.pc libva-x11.pc $(am__append_3) pkgconfig_DATA = $(pcfiles) -EXTRA_DIST = libva.pc.in libva_display.pc.in -+EXTRA_DIST = libva.pc.in libva-x11.pc.in ++EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in CLEANFILES = $(pcfiles) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive -@@ -256,15 +299,15 @@ +@@ -256,15 +303,15 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -44792,7 +67588,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -280,9 +323,10 @@ +@@ -280,9 +327,10 @@ $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) @@ -44805,7 +67601,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in config.h: stamp-h1 @if test ! -f $@; then \ -@@ -294,7 +338,7 @@ +@@ -294,7 +342,7 @@ @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) @@ -44814,16 +67610,18 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in rm -f stamp-h1 touch $@ -@@ -302,7 +346,7 @@ +@@ -302,7 +350,9 @@ -rm -f config.h stamp-h1 libva.pc: $(top_builddir)/config.status $(srcdir)/libva.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ -libva_display.pc: $(top_builddir)/config.status $(srcdir)/libva_display.pc.in +libva-x11.pc: $(top_builddir)/config.status $(srcdir)/libva-x11.pc.in ++ cd $(top_builddir) && $(SHELL) ./config.status $@ ++libva-glx.pc: $(top_builddir)/config.status $(srcdir)/libva-glx.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -@@ -312,24 +356,27 @@ +@@ -312,24 +362,27 @@ -rm -rf .libs _libs distclean-libtool: @@ -44861,7 +67659,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. -@@ -355,7 +402,7 @@ +@@ -355,7 +408,7 @@ else \ local_target="$$target"; \ fi; \ @@ -44870,7 +67668,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ -@@ -389,16 +436,16 @@ +@@ -389,16 +442,16 @@ else \ local_target="$$target"; \ fi; \ @@ -44890,7 +67688,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -406,14 +453,14 @@ +@@ -406,14 +459,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -44907,7 +67705,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ -@@ -425,7 +472,7 @@ +@@ -425,7 +478,7 @@ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ @@ -44916,7 +67714,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ -@@ -434,36 +481,41 @@ +@@ -434,36 +487,41 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -44967,7 +67765,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ -@@ -479,38 +531,54 @@ +@@ -479,38 +537,54 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -45034,7 +67832,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) -@@ -522,6 +590,10 @@ +@@ -522,6 +596,10 @@ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) @@ -45045,7 +67843,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) -@@ -551,6 +623,8 @@ +@@ -551,6 +629,8 @@ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ @@ -45054,7 +67852,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ -@@ -562,9 +636,11 @@ +@@ -562,9 +642,11 @@ mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) @@ -45067,7 +67865,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ -@@ -586,13 +662,15 @@ +@@ -586,13 +668,15 @@ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ @@ -45085,7 +67883,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ -@@ -638,6 +716,7 @@ +@@ -638,6 +722,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -45093,7 +67891,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -658,6 +737,8 @@ +@@ -658,6 +743,8 @@ html: html-recursive @@ -45102,7 +67900,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in info: info-recursive info-am: -@@ -666,18 +747,28 @@ +@@ -666,18 +753,28 @@ install-dvi: install-dvi-recursive @@ -45131,7 +67929,7 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in installcheck-am: maintainer-clean: maintainer-clean-recursive -@@ -700,30 +791,27 @@ +@@ -700,30 +797,27 @@ uninstall-am: uninstall-pkgconfigDATA @@ -45179,9 +67977,2627 @@ diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.diff/Makefile.in # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in +diff -Naur libva-0.31.0/src/glx/Makefile.am libva-0.31.0.patch/src/glx/Makefile.am +--- libva-0.31.0/src/glx/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/Makefile.am 2009-10-12 02:43:29.518784042 +0200 +@@ -0,0 +1,41 @@ ++# Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++# ++# 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, sub license, 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 (including the ++# next paragraph) 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 NON-INFRINGEMENT. ++# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ ++AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 ++ ++source_c = \ ++ va_glx.c \ ++ va_glx_impl.c ++ ++source_h = \ ++ va_glx.h \ ++ va_backend_glx.h ++ ++source_h_priv = \ ++ va_glx_impl.h \ ++ va_glx_private.h ++ ++noinst_LTLIBRARIES = libva_glx.la ++libva_glxincludedir = ${includedir}/va ++libva_glxinclude_HEADERS = $(source_h) ++libva_glx_la_SOURCES = $(source_c) ++noinst_HEADERS = $(source_h_priv) +diff -Naur libva-0.31.0/src/glx/Makefile.in libva-0.31.0.patch/src/glx/Makefile.in +--- libva-0.31.0/src/glx/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/Makefile.in 2009-10-12 02:44:01.592657349 +0200 +@@ -0,0 +1,577 @@ ++# Makefile.in generated by automake 1.11 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++# Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++# ++# 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, sub license, 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 (including the ++# next paragraph) 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 NON-INFRINGEMENT. ++# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ ++ ++VPATH = @srcdir@ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++subdir = src/glx ++DIST_COMMON = $(libva_glxinclude_HEADERS) $(noinst_HEADERS) \ ++ $(srcdir)/Makefile.am $(srcdir)/Makefile.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(install_sh) -d ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++libva_glx_la_LIBADD = ++am__objects_1 = va_glx.lo va_glx_impl.lo ++am_libva_glx_la_OBJECTS = $(am__objects_1) ++libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS) ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SOURCES = $(libva_glx_la_SOURCES) ++DIST_SOURCES = $(libva_glx_la_SOURCES) ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__installdirs = "$(DESTDIR)$(libva_glxincludedir)" ++HEADERS = $(libva_glxinclude_HEADERS) $(noinst_HEADERS) ++ETAGS = etags ++CTAGS = ctags ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++AMTAR = @AMTAR@ ++AR = @AR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DRM_CFLAGS = @DRM_CFLAGS@ ++DRM_LIBS = @DRM_LIBS@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ ++GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ ++GREP = @GREP@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LIBTOOL = @LIBTOOL@ ++LIBVA_CFLAGS = @LIBVA_CFLAGS@ ++LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ ++LIBVA_LIBS = @LIBVA_LIBS@ ++LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ ++LIBVA_LT_VERSION = @LIBVA_LT_VERSION@ ++LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ ++LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ ++LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ ++LIBVA_VERSION = @LIBVA_VERSION@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++RANLIB = @RANLIB@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++X11_CFLAGS = @X11_CFLAGS@ ++X11_LIBS = @X11_LIBS@ ++XEXT_CFLAGS = @XEXT_CFLAGS@ ++XEXT_LIBS = @XEXT_LIBS@ ++XFIXES_CFLAGS = @XFIXES_CFLAGS@ ++XFIXES_LIBS = @XFIXES_LIBS@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++libvabackendlib = @libvabackendlib@ ++libvacorelib = @libvacorelib@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++lt_ECHO = @lt_ECHO@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++pkgconfigdir = @pkgconfigdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 ++source_c = \ ++ va_glx.c \ ++ va_glx_impl.c ++ ++source_h = \ ++ va_glx.h \ ++ va_backend_glx.h ++ ++source_h_priv = \ ++ va_glx_impl.h \ ++ va_glx_private.h ++ ++noinst_LTLIBRARIES = libva_glx.la ++libva_glxincludedir = ${includedir}/va ++libva_glxinclude_HEADERS = $(source_h) ++libva_glx_la_SOURCES = $(source_c) ++noinst_HEADERS = $(source_h_priv) ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/glx/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/glx/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ ++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ ++ test "$$dir" != "$$p" || dir=.; \ ++ echo "rm -f \"$${dir}/so_locations\""; \ ++ rm -f "$${dir}/so_locations"; \ ++ done ++libva_glx.la: $(libva_glx_la_OBJECTS) $(libva_glx_la_DEPENDENCIES) ++ $(LINK) $(libva_glx_la_OBJECTS) $(libva_glx_la_LIBADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_glx.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_glx_impl.Plo@am__quote@ ++ ++.c.o: ++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(COMPILE) -c $< ++ ++.c.obj: ++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` ++ ++.c.lo: ++@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++install-libva_glxincludeHEADERS: $(libva_glxinclude_HEADERS) ++ @$(NORMAL_INSTALL) ++ test -z "$(libva_glxincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libva_glxincludedir)" ++ @list='$(libva_glxinclude_HEADERS)'; test -n "$(libva_glxincludedir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libva_glxincludedir)'"; \ ++ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libva_glxincludedir)" || exit $$?; \ ++ done ++ ++uninstall-libva_glxincludeHEADERS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(libva_glxinclude_HEADERS)'; test -n "$(libva_glxincludedir)" || list=; \ ++ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ ++ test -n "$$files" || exit 0; \ ++ echo " ( cd '$(DESTDIR)$(libva_glxincludedir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(libva_glxincludedir)" && rm -f $$files ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) $(HEADERS) ++installdirs: ++ for dir in "$(DESTDIR)$(libva_glxincludedir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-libva_glxincludeHEADERS ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-libva_glxincludeHEADERS ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ ++ distclean-compile distclean-generic distclean-libtool \ ++ distclean-tags distdir dvi dvi-am html html-am info info-am \ ++ install install-am install-data install-data-am install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-info install-info-am \ ++ install-libva_glxincludeHEADERS install-man install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags uninstall uninstall-am uninstall-libva_glxincludeHEADERS ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur libva-0.31.0/src/glx/va_backend_glx.h libva-0.31.0.patch/src/glx/va_backend_glx.h +--- libva-0.31.0/src/glx/va_backend_glx.h 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/va_backend_glx.h 2009-10-12 02:43:29.522782327 +0200 +@@ -0,0 +1,87 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#ifndef VA_BACKEND_GLX_H ++#define VA_BACKEND_GLX_H ++ ++struct VADriverContext; ++ ++struct VADriverVTableGLX { ++ /* Optional: create a surface used for display to OpenGL */ ++ VAStatus (*vaCreateSurfaceGLX)( ++ struct VADriverContext *ctx, ++ unsigned int gl_target, ++ unsigned int gl_texture, ++ void **gl_surface ++ ); ++ ++ /* Optional: destroy a VA/GLX surface */ ++ VAStatus (*vaDestroySurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface ++ ); ++ ++ /* Optional: associate a VA surface to a VA/GLX surface */ ++ VAStatus (*vaAssociateSurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++ ); ++ ++ /* Optional: deassociate a VA surface from a VA/GLX surface */ ++ VAStatus (*vaDeassociateSurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface ++ ); ++ ++ /* Optional: synchronize a VA/GLX surface */ ++ VAStatus (*vaSyncSurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface ++ ); ++ ++ /* Optional: prepare VA/GLX surface for rendering */ ++ VAStatus (*vaBeginRenderSurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface ++ ); ++ ++ /* Optional: notify the server that the VA/GLX surface is no ++ longer used for rendering */ ++ VAStatus (*vaEndRenderSurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface ++ ); ++ ++ /* Optional: copy a VA surface to a VA/GLX surface */ ++ VAStatus (*vaCopySurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++ ); ++}; ++ ++#endif /* VA_BACKEND_GLX_H */ +diff -Naur libva-0.31.0/src/glx/va_glx.c libva-0.31.0.patch/src/glx/va_glx.c +--- libva-0.31.0/src/glx/va_glx.c 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/va_glx.c 2009-10-12 02:43:29.523782615 +0200 +@@ -0,0 +1,295 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#include "va_glx_private.h" ++#include "va_glx_impl.h" ++ ++#define INIT_CONTEXT(ctx, dpy) do { \ ++ if (!vaDisplayIsValid(dpy)) \ ++ return VA_STATUS_ERROR_INVALID_DISPLAY; \ ++ \ ++ ctx = ((VADisplayContextP)(dpy))->pDriverContext; \ ++ if (!(ctx)) \ ++ return VA_STATUS_ERROR_INVALID_DISPLAY; \ ++ \ ++ VAStatus status = va_glx_init_context(ctx); \ ++ if (status != VA_STATUS_SUCCESS) \ ++ return status; \ ++ } while (0) ++ ++#define INIT_SURFACE(surface, surface_arg) do { \ ++ surface = (VASurfaceGLXP)(surface_arg); \ ++ if (!vaSurfaceIsValid(surface)) \ ++ return VA_STATUS_ERROR_INVALID_SURFACE; \ ++ } while (0) ++ ++#define INVOKE(ctx, func, args) do { \ ++ VADriverVTableGLXP vtable; \ ++ vtable = &VA_DRIVER_CONTEXT_GLX(ctx)->vtable; \ ++ if (!vtable->va##func##GLX) \ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; \ ++ status = vtable->va##func##GLX args; \ ++ } while (0) ++ ++// Check VADisplay is valid ++static inline int vaDisplayIsValid(VADisplay dpy) ++{ ++ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; ++ ++ return (pDisplayContext && ++ pDisplayContext->vaIsValid && ++ pDisplayContext->vaIsValid(pDisplayContext)); ++} ++ ++// Check VASurfaceGLX is valid ++static inline int vaSurfaceIsValid(VASurfaceGLXP pSurfaceGLX) ++{ ++ return pSurfaceGLX && pSurfaceGLX->magic == VA_SURFACE_GLX_MAGIC; ++} ++ ++// Destroy VA/GLX display context ++static void va_DisplayContextDestroy(VADisplayContextP pDisplayContext) ++{ ++ VADisplayContextGLXP pDisplayContextGLX; ++ VADriverContextP pDriverContext; ++ VADriverContextGLXP pDriverContextGLX; ++ ++ if (!pDisplayContext) ++ return; ++ ++ pDriverContext = pDisplayContext->pDriverContext; ++ pDriverContextGLX = pDriverContext->glx; ++ if (pDriverContextGLX) { ++ free(pDriverContextGLX); ++ pDriverContext->glx = NULL; ++ } ++ ++ pDisplayContextGLX = pDisplayContext->opaque; ++ if (pDisplayContextGLX) { ++ if (pDisplayContextGLX->vaDestroy) ++ pDisplayContextGLX->vaDestroy(pDisplayContext); ++ free(pDisplayContextGLX); ++ pDisplayContext->opaque = NULL; ++ } ++} ++ ++// Return a suitable VADisplay for VA API ++VADisplay vaGetDisplayGLX(Display *native_dpy) ++{ ++ VADisplay dpy = NULL; ++ VADisplayContextP pDisplayContext = NULL; ++ VADisplayContextGLXP pDisplayContextGLX = NULL; ++ VADriverContextP pDriverContext; ++ VADriverContextGLXP pDriverContextGLX = NULL; ++ ++ dpy = vaGetDisplay(native_dpy); ++ if (!dpy) ++ return NULL; ++ pDisplayContext = (VADisplayContextP)dpy; ++ pDriverContext = pDisplayContext->pDriverContext; ++ ++ pDisplayContextGLX = calloc(1, sizeof(*pDisplayContextGLX)); ++ if (!pDisplayContextGLX) ++ goto error; ++ ++ pDriverContextGLX = calloc(1, sizeof(*pDriverContextGLX)); ++ if (!pDriverContextGLX) ++ goto error; ++ ++ pDisplayContextGLX->vaDestroy = pDisplayContext->vaDestroy; ++ pDisplayContext->vaDestroy = va_DisplayContextDestroy; ++ pDisplayContext->opaque = pDisplayContextGLX; ++ pDriverContext->glx = pDriverContextGLX; ++ return dpy; ++ ++error: ++ free(pDriverContextGLX); ++ free(pDisplayContextGLX); ++ pDisplayContext->vaDestroy(pDisplayContext); ++ return NULL; ++} ++ ++// Create a surface used for display to OpenGL ++VAStatus vaCreateSurfaceGLX( ++ VADisplay dpy, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ /* Make sure it is a valid GL texture object */ ++ if (!glIsTexture(texture)) ++ return VA_STATUS_ERROR_INVALID_PARAMETER; ++ ++ INIT_CONTEXT(ctx, dpy); ++ ++ pSurfaceGLX = va_glx_create_surface(ctx, target, texture); ++ if (!pSurfaceGLX) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ ++ INVOKE(ctx, CreateSurface, (ctx, target, texture, &pSurfaceGLX->priv)); ++ ++ if (status != VA_STATUS_SUCCESS) ++ va_glx_destroy_surface(ctx, &pSurfaceGLX); ++ ++ *gl_surface = pSurfaceGLX; ++ return status; ++} ++ ++// Destroy a VA/GLX surface ++VAStatus vaDestroySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ INVOKE(ctx, DestroySurface, (ctx, pSurfaceGLX)); ++ ++ free(pSurfaceGLX); ++ return status; ++} ++ ++// Associate a VA surface to a VA/GLX surface ++VAStatus vaAssociateSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ INVOKE(ctx, AssociateSurface, (ctx, pSurfaceGLX, surface, flags)); ++ ++ if (status == VA_STATUS_SUCCESS) ++ pSurfaceGLX->surface = surface; ++ ++ return status; ++} ++ ++// Deassociate a VA surface from a VA/GLX surface ++VAStatus vaDeassociateSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ INVOKE(ctx, DeassociateSurface, (ctx, pSurfaceGLX)); ++ ++ if (status == VA_STATUS_SUCCESS) ++ pSurfaceGLX->surface = VA_INVALID_SURFACE; ++ ++ return status; ++} ++ ++// Synchronize a VA/GLX surface ++VAStatus vaSyncSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ INVOKE(ctx, SyncSurface, (ctx, pSurfaceGLX)); ++ return status; ++} ++ ++// Prepare VA/GLX surface for rendering ++VAStatus vaBeginRenderSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ INVOKE(ctx, BeginRenderSurface, (ctx, pSurfaceGLX)); ++ return status; ++} ++ ++// Notify the server that the VA/GLX surface is no longer used for rendering ++VAStatus vaEndRenderSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ INVOKE(ctx, EndRenderSurface, (ctx, pSurfaceGLX)); ++ return status; ++} ++ ++// Copy a VA surface to a VA/GLX surface ++VAStatus vaCopySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VADriverContextP ctx; ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ INVOKE(ctx, CopySurface, (ctx, pSurfaceGLX, surface, flags)); ++ return status; ++} +diff -Naur libva-0.31.0/src/glx/va_glx.h libva-0.31.0.patch/src/glx/va_glx.h +--- libva-0.31.0/src/glx/va_glx.h 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/va_glx.h 2009-10-12 02:43:29.524782692 +0200 +@@ -0,0 +1,217 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#ifndef VA_GLX_H ++#define VA_GLX_H ++ ++#ifdef IN_LIBVA ++#include "va.h" ++#else ++#include ++#endif ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/** ++ * Return a suitable VADisplay for VA API ++ * ++ * @param[in] dpy the X11 display ++ * @return a VADisplay ++ */ ++VADisplay vaGetDisplayGLX( ++ Display *dpy ++); ++ ++/** ++ * Create a surface used for display to OpenGL ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] target the GL target to which the texture needs to be bound ++ * @param[in] texture the GL texture ++ * @param[out] gl_surface the VA/GLX surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaCreateSurfaceGLX( ++ VADisplay dpy, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++); ++ ++/** ++ * Destroy a VA/GLX surface ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaDestroySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++); ++ ++/** ++ * Associate a VA surface to a VA/GLX surface ++ * ++ * The association is live until vaDeassociateSurfaceGLX(), ++ * vaCopySurfaceGLX() or the next call to vaBeginPicture() with the ++ * specificed VA surface. ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA/GLX surface ++ * @param[in] surface the VA surface ++ * @param[in] flags the PutSurface flags ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaAssociateSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++); ++ ++/** ++ * Deassociate a VA surface from a VA/GLX surface ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaDeassociateSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++); ++ ++/** ++ * Synchronize a VA/GLX surface ++ * ++ * This function blocks until all pending operations on the VA/GLX ++ * surface have been completed. ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaSyncSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++); ++ ++/** ++ * Prepare VA/GLX surface for rendering ++ * ++ * This function performs an implicit vaSyncSurfaceGLX(). ++ * ++ * Implementations using the GLX texture-from-pixmap extension will ++ * generally call glXBindTexImage() here. ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaBeginRenderSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++); ++ ++/** ++ * Notify the server that the VA/GLX surface is no longer used for ++ * rendering ++ * ++ * Implementations using the GLX texture-from-pixmap extension will ++ * generally call glXReleaseTexImage() here. ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaEndRenderSurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++); ++ ++/** ++ * Copy a VA surface to a VA/GLX surface ++ * ++ * This function kills any association that was previously made with ++ * vaAssociateSurfaceGLX() and will not return until the copy is ++ * completed. ++ * ++ * Upon successful return, the underlying GL texture will contain the ++ * complete pixels and no call to vaBeginRenderSurfaceGLX() or ++ * vaEndRenderSurfaceGLX() is required. ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA/GLX destination surface ++ * @param[in] surface the VA source surface ++ * @param[in] flags the PutSurface flags ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaCopySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* VA_GLX_H */ +diff -Naur libva-0.31.0/src/glx/va_glx_impl.c libva-0.31.0.patch/src/glx/va_glx_impl.c +--- libva-0.31.0/src/glx/va_glx_impl.c 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/va_glx_impl.c 2009-10-12 02:43:29.526782638 +0200 +@@ -0,0 +1,1168 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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 _GNU_SOURCE 1 ++#include "va_glx_private.h" ++#include "va_glx_impl.h" ++#include ++#include ++#include ++#include ++#include ++ ++static void va_glx_error_message(const char *format, ...) ++{ ++ va_list args; ++ va_start(args, format); ++ fprintf(stderr, "[%s] ", PACKAGE_NAME); ++ vfprintf(stderr, format, args); ++ va_end(args); ++} ++ ++// X error trap ++static int x11_error_code = 0; ++static int (*old_error_handler)(Display *, XErrorEvent *); ++ ++static int error_handler(Display *dpy, XErrorEvent *error) ++{ ++ x11_error_code = error->error_code; ++ return 0; ++} ++ ++static void x11_trap_errors(void) ++{ ++ x11_error_code = 0; ++ old_error_handler = XSetErrorHandler(error_handler); ++} ++ ++static int x11_untrap_errors(void) ++{ ++ XSetErrorHandler(old_error_handler); ++ return x11_error_code; ++} ++ ++// Returns a string representation of an OpenGL error ++static const char *gl_get_error_string(GLenum error) ++{ ++ static const struct { ++ GLenum val; ++ const char *str; ++ } ++ gl_errors[] = { ++ { GL_NO_ERROR, "no error" }, ++ { GL_INVALID_ENUM, "invalid enumerant" }, ++ { GL_INVALID_VALUE, "invalid value" }, ++ { GL_INVALID_OPERATION, "invalid operation" }, ++ { GL_STACK_OVERFLOW, "stack overflow" }, ++ { GL_STACK_UNDERFLOW, "stack underflow" }, ++ { GL_OUT_OF_MEMORY, "out of memory" }, ++#ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT ++ { GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "invalid framebuffer operation" }, ++#endif ++ { ~0, NULL } ++ }; ++ ++ int i; ++ for (i = 0; gl_errors[i].str; i++) { ++ if (gl_errors[i].val == error) ++ return gl_errors[i].str; ++ } ++ return "unknown"; ++} ++ ++static inline int gl_do_check_error(int report) ++{ ++ GLenum error; ++ int is_error = 0; ++ while ((error = glGetError()) != GL_NO_ERROR) { ++ if (report) ++ va_glx_error_message("glError: %s caught\n", ++ gl_get_error_string(error)); ++ is_error = 1; ++ } ++ return is_error; ++} ++ ++static inline void gl_purge_errors(void) ++{ ++ gl_do_check_error(0); ++} ++ ++static inline int gl_check_error(void) ++{ ++ return gl_do_check_error(1); ++} ++ ++// glGetFloatv() wrapper ++static int gl_get_current_color(float color[4]) ++{ ++ gl_purge_errors(); ++ glGetFloatv(GL_CURRENT_COLOR, color); ++ if (gl_check_error()) ++ return -1; ++ return 0; ++} ++ ++// glGetIntegerv() wrapper ++static int gl_get_param(GLenum param, unsigned int *pval) ++{ ++ GLint val; ++ ++ gl_purge_errors(); ++ glGetIntegerv(param, &val); ++ if (gl_check_error()) ++ return -1; ++ if (pval) ++ *pval = val; ++ return 0; ++} ++ ++// glGetTexLevelParameteriv() wrapper ++static int gl_get_texture_param(GLenum param, unsigned int *pval) ++{ ++ GLint val; ++ ++ gl_purge_errors(); ++ glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, param, &val); ++ if (gl_check_error()) ++ return -1; ++ if (pval) ++ *pval = val; ++ return 0; ++} ++ ++// Returns the OpenGL VTable ++static inline VAOpenGLVTableP gl_get_vtable(VADriverContextP ctx) ++{ ++ return &VA_DRIVER_CONTEXT_GLX(ctx)->gl_vtable; ++} ++ ++// Lookup for a GLX function ++typedef void (*GLFuncPtr)(void); ++typedef GLFuncPtr (*GLXGetProcAddressProc)(const char *); ++ ++static GLFuncPtr get_proc_address_default(const char *name) ++{ ++ return NULL; ++} ++ ++static GLXGetProcAddressProc get_proc_address_func(void) ++{ ++ GLXGetProcAddressProc get_proc_func; ++ ++ dlerror(); ++ get_proc_func = (GLXGetProcAddressProc) ++ dlsym(RTLD_DEFAULT, "glXGetProcAddress"); ++ if (dlerror() == NULL) ++ return get_proc_func; ++ ++ get_proc_func = (GLXGetProcAddressProc) ++ dlsym(RTLD_DEFAULT, "glXGetProcAddressARB"); ++ if (dlerror() == NULL) ++ return get_proc_func; ++ ++ return get_proc_address_default; ++} ++ ++static inline GLFuncPtr get_proc_address(const char *name) ++{ ++ static GLXGetProcAddressProc get_proc_func = NULL; ++ if (get_proc_func == NULL) ++ get_proc_func = get_proc_address_func(); ++ return get_proc_func(name); ++} ++ ++// Check for GLX extensions (TFP, FBO) ++static int check_extension(const char *name, const char *ext) ++{ ++ const char *end; ++ int name_len, n; ++ ++ if (name == NULL || ext == NULL) ++ return 0; ++ ++ end = ext + strlen(ext); ++ name_len = strlen(name); ++ while (ext < end) { ++ n = strcspn(ext, " "); ++ if (n == name_len && strncmp(name, ext, n) == 0) ++ return 1; ++ ext += (n + 1); ++ } ++ return 0; ++} ++ ++static int check_tfp_extensions(VADriverContextP ctx) ++{ ++ const char *gl_extensions; ++ const char *glx_extensions; ++ ++ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); ++ if (!check_extension("GL_ARB_texture_non_power_of_two", gl_extensions)) ++ return 0; ++ ++ glx_extensions = glXQueryExtensionsString(ctx->x11_dpy, ctx->x11_screen); ++ if (!check_extension("GLX_EXT_texture_from_pixmap", glx_extensions)) ++ return 0; ++ return 1; ++} ++ ++static int check_fbo_extensions(VADriverContextP ctx) ++{ ++ const char *gl_extensions; ++ ++ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); ++ if (!check_extension("GL_ARB_framebuffer_object", gl_extensions)) ++ return 0; ++ if (!check_extension("GL_EXT_framebuffer_object", gl_extensions)) ++ return 0; ++ return 1; ++} ++ ++// Load GLX extensions ++static int load_tfp_extensions(VADriverContextP ctx) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ pOpenGLVTable->glx_bind_tex_image = (PFNGLXBINDTEXIMAGEEXTPROC) ++ get_proc_address("glXBindTexImageEXT"); ++ if (pOpenGLVTable->glx_bind_tex_image == NULL) ++ return 0; ++ pOpenGLVTable->glx_release_tex_image = (PFNGLXRELEASETEXIMAGEEXTPROC) ++ get_proc_address("glXReleaseTexImageEXT"); ++ if (pOpenGLVTable->glx_release_tex_image == NULL) ++ return 0; ++ return 1; ++} ++ ++static int load_fbo_extensions(VADriverContextP ctx) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ pOpenGLVTable->gl_gen_framebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC) ++ get_proc_address("glGenFramebuffersEXT"); ++ if (pOpenGLVTable->gl_gen_framebuffers == NULL) ++ return 0; ++ pOpenGLVTable->gl_delete_framebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC) ++ get_proc_address("glDeleteFramebuffersEXT"); ++ if (pOpenGLVTable->gl_delete_framebuffers == NULL) ++ return 0; ++ pOpenGLVTable->gl_bind_framebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC) ++ get_proc_address("glBindFramebufferEXT"); ++ if (pOpenGLVTable->gl_bind_framebuffer == NULL) ++ return 0; ++ pOpenGLVTable->gl_gen_renderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC) ++ get_proc_address("glGenRenderbuffersEXT"); ++ if (pOpenGLVTable->gl_gen_renderbuffers == NULL) ++ return 0; ++ pOpenGLVTable->gl_delete_renderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC) ++ get_proc_address("glDeleteRenderbuffersEXT"); ++ if (pOpenGLVTable->gl_delete_renderbuffers == NULL) ++ return 0; ++ pOpenGLVTable->gl_bind_renderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC) ++ get_proc_address("glBindRenderbufferEXT"); ++ if (pOpenGLVTable->gl_bind_renderbuffer == NULL) ++ return 0; ++ pOpenGLVTable->gl_renderbuffer_storage = (PFNGLRENDERBUFFERSTORAGEEXTPROC) ++ get_proc_address("glRenderbufferStorageEXT"); ++ if (pOpenGLVTable->gl_renderbuffer_storage == NULL) ++ return 0; ++ pOpenGLVTable->gl_framebuffer_renderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) ++ get_proc_address("glFramebufferRenderbufferEXT"); ++ if (pOpenGLVTable->gl_framebuffer_renderbuffer == NULL) ++ return 0; ++ pOpenGLVTable->gl_framebuffer_texture_2d = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) ++ get_proc_address("glFramebufferTexture2DEXT"); ++ if (pOpenGLVTable->gl_framebuffer_texture_2d == NULL) ++ return 0; ++ pOpenGLVTable->gl_check_framebuffer_status = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) ++ get_proc_address("glCheckFramebufferStatusEXT"); ++ if (pOpenGLVTable->gl_check_framebuffer_status == NULL) ++ return 0; ++ return 1; ++} ++ ++ ++/* ========================================================================= */ ++/* === VA/GLX helpers === */ ++/* ========================================================================= */ ++ ++// OpenGL texture state ++typedef struct OpenGLTextureState *OpenGLTextureStateP; ++ ++struct OpenGLTextureState { ++ int was_enabled; ++ int was_bound; ++ GLenum target; ++ GLuint old_texture; ++}; ++ ++// Bind texture, preserve previous texture state ++static int bind_texture(OpenGLTextureStateP ts, GLenum target, GLuint texture) ++{ ++ ts->target = target; ++ ts->old_texture = 0; ++ ts->was_bound = 0; ++ ts->was_enabled = glIsEnabled(target); ++ if (!ts->was_enabled) ++ glEnable(target); ++ ++ GLenum texture_binding; ++ switch (target) { ++ case GL_TEXTURE_1D: ++ texture_binding = GL_TEXTURE_BINDING_1D; ++ break; ++ case GL_TEXTURE_2D: ++ texture_binding = GL_TEXTURE_BINDING_2D; ++ break; ++ case GL_TEXTURE_3D: ++ texture_binding = GL_TEXTURE_BINDING_3D; ++ break; ++ case GL_TEXTURE_RECTANGLE_ARB: ++ texture_binding = GL_TEXTURE_BINDING_RECTANGLE_ARB; ++ break; ++ default: ++ assert(!target); ++ return -1; ++ } ++ ++ if (ts->was_enabled && gl_get_param(texture_binding, &ts->old_texture) < 0) ++ return -1; ++ ++ ts->was_bound = texture == ts->old_texture; ++ if (!ts->was_bound) { ++ gl_purge_errors(); ++ glBindTexture(target, texture); ++ if (gl_check_error()) ++ return -1; ++ } ++ return 0; ++} ++ ++// Unbind texture, restore previous texture state ++static void unbind_texture(OpenGLTextureStateP ts) ++{ ++ if (!ts->was_bound && ts->old_texture) ++ glBindTexture(ts->target, ts->old_texture); ++ if (!ts->was_enabled) ++ glDisable(ts->target); ++} ++ ++// Create Pixmaps for GLX texture-from-pixmap extension ++static int create_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ const unsigned int width = pSurfaceGLX->width; ++ const unsigned int height = pSurfaceGLX->height; ++ Pixmap pixmap = None; ++ GLXFBConfig *fbconfig = NULL; ++ GLXPixmap glx_pixmap = None; ++ Window root_window; ++ XWindowAttributes wattr; ++ int *attrib; ++ int n_fbconfig_attribs, x, y, status; ++ unsigned int border_width, depth, dummy; ++ ++ root_window = RootWindow(ctx->x11_dpy, ctx->x11_screen); ++ XGetWindowAttributes(ctx->x11_dpy, root_window, &wattr); ++ pixmap = XCreatePixmap(ctx->x11_dpy, root_window, ++ width, height, wattr.depth); ++ if (!pixmap) ++ return -1; ++ pSurfaceGLX->pixmap = pixmap; ++ ++ x11_trap_errors(); ++ status = XGetGeometry(ctx->x11_dpy, ++ (Drawable)pixmap, ++ &root_window, ++ &x, ++ &y, ++ &dummy, ++ &dummy, ++ &border_width, ++ &depth); ++ if (x11_untrap_errors() != 0 || status == 0) ++ return -1; ++ if (depth != 24 && depth != 32) ++ return -1; ++ ++ int fbconfig_attribs[32] = { ++ GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, ++ GLX_DOUBLEBUFFER, GL_TRUE, ++ GLX_RENDER_TYPE, GLX_RGBA_BIT, ++ GLX_X_RENDERABLE, GL_TRUE, ++ GLX_Y_INVERTED_EXT, GL_TRUE, ++ GLX_RED_SIZE, 8, ++ GLX_GREEN_SIZE, 8, ++ GLX_BLUE_SIZE, 8, ++ GL_NONE, ++ }; ++ for (attrib = fbconfig_attribs; *attrib != GL_NONE; attrib += 2) ++ ; ++ *attrib++ = GLX_DEPTH_SIZE; *attrib++ = depth; ++ if (depth == 32) { ++ *attrib++ = GLX_ALPHA_SIZE; *attrib++ = 8; ++ *attrib++ = GLX_BIND_TO_TEXTURE_RGBA_EXT; *attrib++ = GL_TRUE; ++ } ++ else { ++ *attrib++ = GLX_BIND_TO_TEXTURE_RGB_EXT; *attrib++ = GL_TRUE; ++ } ++ *attrib++ = GL_NONE; ++ ++ fbconfig = glXChooseFBConfig(ctx->x11_dpy, ctx->x11_screen, fbconfig_attribs, &n_fbconfig_attribs); ++ if (fbconfig == NULL) ++ return -1; ++ ++ int pixmap_attribs[10] = { ++ GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT, ++ GLX_MIPMAP_TEXTURE_EXT, GL_FALSE, ++ GL_NONE, ++ }; ++ for (attrib = pixmap_attribs; *attrib != GL_NONE; attrib += 2) ++ ; ++ *attrib++ = GLX_TEXTURE_FORMAT_EXT; ++ if (depth == 32) ++ *attrib++ = GLX_TEXTURE_FORMAT_RGBA_EXT; ++ else ++ *attrib++ = GLX_TEXTURE_FORMAT_RGB_EXT; ++ *attrib++ = GL_NONE; ++ ++ x11_trap_errors(); ++ glx_pixmap = glXCreatePixmap(ctx->x11_dpy, ++ fbconfig[0], ++ pixmap, ++ pixmap_attribs); ++ free(fbconfig); ++ if (x11_untrap_errors() != 0) ++ return -1; ++ pSurfaceGLX->glx_pixmap = glx_pixmap; ++ return 0; ++} ++ ++// Destroy Pixmaps used for TFP ++static void destroy_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ if (pSurfaceGLX->glx_pixmap) { ++ glXDestroyPixmap(ctx->x11_dpy, pSurfaceGLX->glx_pixmap); ++ pSurfaceGLX->glx_pixmap = None; ++ } ++ ++ if (pSurfaceGLX->pixmap) { ++ XFreePixmap(ctx->x11_dpy, pSurfaceGLX->pixmap); ++ pSurfaceGLX->pixmap = None; ++ } ++} ++ ++// Bind GLX Pixmap to texture ++static int bind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ if (pSurfaceGLX->is_bound) ++ return 0; ++ ++ x11_trap_errors(); ++ pOpenGLVTable->glx_bind_tex_image(ctx->x11_dpy, pSurfaceGLX->glx_pixmap, ++ GLX_FRONT_LEFT_EXT, NULL); ++ XSync(ctx->x11_dpy, False); ++ if (x11_untrap_errors() != 0) { ++ va_glx_error_message("failed to bind pixmap\n"); ++ return -1; ++ } ++ ++ pSurfaceGLX->is_bound = 1; ++ return 0; ++} ++ ++// Release GLX Pixmap from texture ++static int unbind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ if (!pSurfaceGLX->is_bound) ++ return 0; ++ ++ x11_trap_errors(); ++ pOpenGLVTable->glx_release_tex_image(ctx->x11_dpy, pSurfaceGLX->glx_pixmap, ++ GLX_FRONT_LEFT_EXT); ++ XSync(ctx->x11_dpy, False); ++ if (x11_untrap_errors() != 0) { ++ va_glx_error_message("failed to release pixmap\n"); ++ return -1; ++ } ++ ++ pSurfaceGLX->is_bound = 0; ++ return 0; ++} ++ ++// Render GLX Pixmap to texture ++static void render_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ const unsigned int w = pSurfaceGLX->width; ++ const unsigned int h = pSurfaceGLX->height; ++ float old_color[4]; ++ ++ gl_get_current_color(old_color); ++ glColor4f(1.0f, 1.0f, 1.0f, 1.0f); ++ glBegin(GL_QUADS); ++ { ++ glTexCoord2f(0.0f, 0.0f); glVertex2i(0, 0); ++ glTexCoord2f(0.0f, 1.0f); glVertex2i(0, h); ++ glTexCoord2f(1.0f, 1.0f); glVertex2i(w, h); ++ glTexCoord2f(1.0f, 0.0f); glVertex2i(w, 0); ++ } ++ glEnd(); ++ glColor4fv(old_color); ++} ++ ++// Create offscreen surface ++static int create_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ const GLenum texture = pSurfaceGLX->texture; ++ const unsigned int texture_width = pSurfaceGLX->width; ++ const unsigned int texture_height = pSurfaceGLX->height; ++ GLuint fbo, fbo_buffer, fbo_texture; ++ GLenum status; ++ ++ glGenTextures(1, &fbo_texture); ++ glBindTexture(GL_TEXTURE_2D, fbo_texture); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); ++ glPixelStorei(GL_UNPACK_ALIGNMENT, 4); ++ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_width, texture_height, 0, ++ GL_BGRA, GL_UNSIGNED_BYTE, NULL); ++ ++ pOpenGLVTable->gl_gen_framebuffers(1, &fbo); ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo); ++ pOpenGLVTable->gl_gen_renderbuffers(1, &fbo_buffer); ++ pOpenGLVTable->gl_bind_renderbuffer(GL_RENDERBUFFER_EXT, fbo_buffer); ++ ++ glBindTexture(GL_TEXTURE_2D, texture); ++ pOpenGLVTable->gl_framebuffer_texture_2d(GL_FRAMEBUFFER_EXT, ++ GL_COLOR_ATTACHMENT0_EXT, ++ GL_TEXTURE_2D, texture, 0); ++ ++ status = pOpenGLVTable->gl_check_framebuffer_status(GL_DRAW_FRAMEBUFFER_EXT); ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); ++ if (status != GL_FRAMEBUFFER_COMPLETE_EXT) ++ return -1; ++ ++ pSurfaceGLX->fbo = fbo; ++ pSurfaceGLX->fbo_buffer = fbo_buffer; ++ pSurfaceGLX->fbo_texture = fbo_texture; ++ return 0; ++} ++ ++// Destroy offscreen surface ++static void destroy_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ if (pSurfaceGLX->fbo_texture) { ++ glDeleteTextures(1, &pSurfaceGLX->fbo_texture); ++ pSurfaceGLX->fbo_texture = 0; ++ } ++ ++ if (pSurfaceGLX->fbo_buffer) { ++ pOpenGLVTable->gl_delete_renderbuffers(1, &pSurfaceGLX->fbo_buffer); ++ pSurfaceGLX->fbo_buffer = 0; ++ } ++ ++ if (pSurfaceGLX->fbo) { ++ pOpenGLVTable->gl_delete_framebuffers(1, &pSurfaceGLX->fbo); ++ pSurfaceGLX->fbo = 0; ++ } ++} ++ ++// Setup matrices to match the FBO texture dimensions ++static void fbo_enter(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ const unsigned int width = pSurfaceGLX->width; ++ const unsigned int height = pSurfaceGLX->height; ++ ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, pSurfaceGLX->fbo); ++ glPushAttrib(GL_VIEWPORT_BIT); ++ glMatrixMode(GL_PROJECTION); ++ glPushMatrix(); ++ glLoadIdentity(); ++ glMatrixMode(GL_MODELVIEW); ++ glPushMatrix(); ++ glLoadIdentity(); ++ glViewport(0, 0, width, height); ++ glTranslatef(-1.0f, -1.0f, 0.0f); ++ glScalef(2.0f / width, 2.0f / height, 1.0f); ++ ++ glBindTexture(GL_TEXTURE_2D, pSurfaceGLX->fbo_texture); ++} ++ ++// Restore original OpenGL matrices ++static void fbo_leave(VADriverContextP ctx) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ glPopAttrib(); ++ glMatrixMode(GL_PROJECTION); ++ glPopMatrix(); ++ glMatrixMode(GL_MODELVIEW); ++ glPopMatrix(); ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); ++} ++ ++// Create VA/GLX surface ++VASurfaceGLXP ++va_glx_create_surface(VADriverContextP ctx, GLenum target, GLuint texture) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VASurfaceGLXP pSurfaceGLX; ++ unsigned int internal_format, border_width, width, height; ++ int is_error = 1; ++ ++ /* Make sure binding succeeds, if texture was not already bound */ ++ struct OpenGLTextureState ts; ++ if (bind_texture(&ts, target, texture) < 0) ++ goto end; ++ ++ pSurfaceGLX = malloc(sizeof(*pSurfaceGLX)); ++ if (!pSurfaceGLX) ++ goto end; ++ ++ pSurfaceGLX->magic = VA_SURFACE_GLX_MAGIC; ++ pSurfaceGLX->target = target; ++ pSurfaceGLX->texture = texture; ++ pSurfaceGLX->surface = VA_INVALID_SURFACE; ++ pSurfaceGLX->is_bound = 0; ++ pSurfaceGLX->pixmap = None; ++ pSurfaceGLX->glx_pixmap = None; ++ pSurfaceGLX->fbo = 0; ++ pSurfaceGLX->fbo_buffer = 0; ++ pSurfaceGLX->fbo_texture = 0; ++ pSurfaceGLX->priv = NULL; ++ ++ /* XXX: we don't support other textures than RGBA */ ++ if (gl_get_texture_param(GL_TEXTURE_INTERNAL_FORMAT, &internal_format) < 0) ++ goto end; ++ if (internal_format != GL_RGBA) ++ goto end; ++ ++ /* Check texture dimensions */ ++ if (gl_get_texture_param(GL_TEXTURE_BORDER, &border_width) < 0) ++ goto end; ++ if (gl_get_texture_param(GL_TEXTURE_WIDTH, &width) < 0) ++ goto end; ++ if (gl_get_texture_param(GL_TEXTURE_HEIGHT, &height) < 0) ++ goto end; ++ ++ width -= 2 * border_width; ++ height -= 2 * border_width; ++ if (width == 0 || height == 0) ++ goto end; ++ ++ pSurfaceGLX->width = width; ++ pSurfaceGLX->height = height; ++ ++ /* Create Pixmaps for TFP */ ++ if (pDriverContextGLX->use_tfp) { ++ if (create_tfp_surface(ctx, pSurfaceGLX) < 0) ++ goto end; ++ } ++ ++ /* Create Pixmaps for FBO */ ++ if (pDriverContextGLX->use_fbo) { ++ if (create_fbo_surface(ctx, pSurfaceGLX) < 0) ++ goto end; ++ } ++ ++ is_error = 0; ++end: ++ if (is_error && pSurfaceGLX) ++ va_glx_destroy_surface(ctx, &pSurfaceGLX); ++ ++ unbind_texture(&ts); ++ return pSurfaceGLX; ++} ++ ++// Destroy VA/GLX surface ++void va_glx_destroy_surface(VADriverContextP ctx, VASurfaceGLXP *ppSurfaceGLX) ++{ ++ VASurfaceGLXP pSurfaceGLX = *ppSurfaceGLX; ++ ++ unbind_pixmap(ctx, pSurfaceGLX); ++ destroy_fbo_surface(ctx, pSurfaceGLX); ++ destroy_tfp_surface(ctx, pSurfaceGLX); ++ ++ free(pSurfaceGLX); ++ *ppSurfaceGLX = NULL; ++} ++ ++ ++/* ========================================================================= */ ++/* === VA/GLX implementation from the driver (fordward calls) === */ ++/* ========================================================================= */ ++ ++#define INVOKE(ctx, func, args) do { \ ++ VADriverVTableGLXP vtable = &(ctx)->vtable.glx; \ ++ if (!vtable->va##func##GLX) \ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; \ ++ \ ++ VAStatus status = vtable->va##func##GLX args; \ ++ if (status != VA_STATUS_SUCCESS) \ ++ return status; \ ++ } while (0) ++ ++static VAStatus ++vaCreateSurfaceGLX_impl_driver( ++ VADriverContextP ctx, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++) ++{ ++ INVOKE(ctx, CreateSurface, (ctx, target, texture, gl_surface)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaDestroySurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) ++{ ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ INVOKE(ctx, DestroySurface, (ctx, pSurfaceGLX->priv)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaAssociateSurfaceGLX_impl_driver( ++ VADriverContextP ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ INVOKE(ctx, AssociateSurface, (ctx, pSurfaceGLX->priv, surface, flags)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaDeassociateSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) ++{ ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ INVOKE(ctx, DeassociateSurface, (ctx, pSurfaceGLX->priv)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaSyncSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) ++{ ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ INVOKE(ctx, SyncSurface, (ctx, pSurfaceGLX->priv)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaBeginRenderSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) ++{ ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ INVOKE(ctx, BeginRenderSurface, (ctx, pSurfaceGLX->priv)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaEndRenderSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) ++{ ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ INVOKE(ctx, EndRenderSurface, (ctx, pSurfaceGLX->priv)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaCopySurfaceGLX_impl_driver( ++ VADriverContextP ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ INVOKE(ctx, CopySurface, (ctx, pSurfaceGLX->priv, surface, flags)); ++ return VA_STATUS_SUCCESS; ++} ++ ++#undef INVOKE ++ ++ ++/* ========================================================================= */ ++/* === VA/GLX implementation from libVA (generic and suboptimal path) === */ ++/* ========================================================================= */ ++ ++static VAStatus ++vaCreateSurfaceGLX_impl_libva( ++ VADriverContextP ctx, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ ++ if (!pDriverContextGLX->use_tfp) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ *gl_surface = NULL; ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaDestroySurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ ++ if (!pDriverContextGLX->use_tfp) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaAssociateSurfaceGLX_impl_libva( ++ VADriverContextP ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ VAStatus status; ++ ++ if (!pDriverContextGLX->use_tfp) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ /* XXX: only support VA_FRAME_PICTURE */ ++ if (flags != VA_FRAME_PICTURE) ++ return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; ++ ++ /* XXX: optimise case where we are associating the same VA surface ++ as before an no changed occurred to it */ ++ status = vtable->vaDeassociateSurfaceGLX(ctx, gl_surface); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ x11_trap_errors(); ++ status = ctx->vtable.vaPutSurface(ctx, ++ surface, ++ pSurfaceGLX->pixmap, ++ 0, 0, ++ pSurfaceGLX->width, ++ pSurfaceGLX->height, ++ 0, 0, ++ pSurfaceGLX->width, ++ pSurfaceGLX->height, ++ NULL, 0, ++ flags); ++ XSync(ctx->x11_dpy, False); ++ if (x11_untrap_errors() != 0) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ pSurfaceGLX->surface = surface; ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaDeassociateSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ if (!pDriverContextGLX->use_tfp) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ if (unbind_pixmap(ctx, pSurfaceGLX) < 0) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ pSurfaceGLX->surface = VA_INVALID_SURFACE; ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaSyncSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ if (!pDriverContextGLX->use_tfp) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ if (pSurfaceGLX->surface == VA_INVALID_SURFACE) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ ++ return ctx->vtable.vaSyncSurface(ctx, pSurfaceGLX->surface); ++} ++ ++static VAStatus ++vaBeginRenderSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ VAStatus status; ++ ++ if (!pDriverContextGLX->use_tfp) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ status = vaSyncSurfaceGLX_impl_libva(ctx, gl_surface); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ if (bind_pixmap(ctx, pSurfaceGLX) < 0) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaEndRenderSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ VAStatus status; ++ ++ if (!pDriverContextGLX->use_tfp) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ if (unbind_pixmap(ctx, pSurfaceGLX) < 0) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaCopySurfaceGLX_impl_libva( ++ VADriverContextP ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ VAStatus status; ++ ++ if (!pDriverContextGLX->use_fbo) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ /* XXX: only support VA_FRAME_PICTURE */ ++ if (flags != VA_FRAME_PICTURE) ++ return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; ++ ++ /* Associate VA surface */ ++ status = vtable->vaAssociateSurfaceGLX(ctx, gl_surface, surface, flags); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ /* Make sure binding succeeds, if texture was not already bound */ ++ struct OpenGLTextureState ts; ++ if (bind_texture(&ts, pSurfaceGLX->target, pSurfaceGLX->texture) < 0) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ /* Render to FBO */ ++ fbo_enter(ctx, pSurfaceGLX); ++ status = vtable->vaBeginRenderSurfaceGLX(ctx, gl_surface); ++ if (status == VA_STATUS_SUCCESS) { ++ render_pixmap(ctx, pSurfaceGLX); ++ status = vtable->vaEndRenderSurfaceGLX(ctx, gl_surface); ++ } ++ fbo_leave(ctx); ++ unbind_texture(&ts); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ return vtable->vaDeassociateSurfaceGLX(ctx, gl_surface); ++} ++ ++ ++/* ========================================================================= */ ++/* === VA/GLX bind functions implementation with vaCopySurfaceGLX() === */ ++/* ========================================================================= */ ++ ++static VAStatus ++vaAssociateSurfaceGLX_impl_bind( ++ VADriverContextP ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ VAStatus status; ++ ++ if (!pDriverContextGLX->has_copy) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ status = vtable->vaCopySurfaceGLX(ctx, gl_surface, surface, flags); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ pSurfaceGLX->surface = surface; ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaDeassociateSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) ++{ ++ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); ++ VASurfaceGLXP pSurfaceGLX = gl_surface; ++ ++ if (!pDriverContextGLX->has_copy) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ pSurfaceGLX->surface = VA_INVALID_SURFACE; ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaBeginRenderSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) ++{ ++ /* Surface is already copied into the texture, in vaAssociateSurfaceGLX() */ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaEndRenderSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) ++{ ++ return VA_STATUS_SUCCESS; ++} ++ ++ ++/* ========================================================================= */ ++/* === Private VA/GLX vtable initialization === */ ++/* ========================================================================= */ ++ ++// Initialize GLX driver context ++VAStatus va_glx_init_context(VADriverContextP ctx) ++{ ++ VADriverContextGLXP glx_ctx = VA_DRIVER_CONTEXT_GLX(ctx); ++ VADriverVTableGLXP vtable = &glx_ctx->vtable; ++ int needs_tfp = 0, needs_fbo = 0; ++ ++ if (glx_ctx->is_initialized) ++ return VA_STATUS_SUCCESS; ++ ++ glx_ctx->has_copy = ctx->vtable.glx.vaCopySurfaceGLX != NULL; ++ glx_ctx->has_bind = (ctx->vtable.glx.vaAssociateSurfaceGLX != NULL && ++ ctx->vtable.glx.vaBeginRenderSurfaceGLX != NULL && ++ ctx->vtable.glx.vaEndRenderSurfaceGLX != NULL && ++ ctx->vtable.glx.vaDeassociateSurfaceGLX != NULL); ++ ++ switch ((((unsigned int)glx_ctx->has_bind) << 1) | glx_ctx->has_copy) { ++ case 0: ++ /* Full implementation in libVA */ ++ needs_tfp = 1; ++ needs_fbo = 1; ++ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_libva; ++ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_libva; ++ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_libva; ++ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_libva; ++ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_libva; ++ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_libva; ++ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_libva; ++ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_libva; ++ break; ++ case 1: ++ /* Add bind functions based on vaCopySurfaceGLX() */ ++ /* XXX: override vaSyncSurfaceGLX()? */ ++ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; ++ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; ++ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_bind; ++ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_bind; ++ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_bind; ++ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_bind; ++ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; ++ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_driver; ++ break; ++ case 2: ++ /* Add copy function based on vaBeginRenderSurfaceGLX() et al. */ ++ needs_fbo = 1; ++ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; ++ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; ++ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_driver; ++ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_driver; ++ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_driver; ++ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_driver; ++ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; ++ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_libva; ++ break; ++ case 3: ++ /* Keep driver bind & copy functions */ ++ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; ++ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; ++ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_driver; ++ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_driver; ++ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_driver; ++ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_driver; ++ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; ++ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_driver; ++ break; ++ default: ++ /* Fatal error: this cannot happen */ ++ assert(0); ++ return VA_STATUS_ERROR_UNKNOWN; ++ } ++ ++ glx_ctx->has_tfp = 0; ++ glx_ctx->use_tfp = 0; ++ glx_ctx->has_fbo = 0; ++ glx_ctx->use_fbo = 0; ++ ++ if (needs_tfp) { ++ glx_ctx->has_tfp = check_tfp_extensions(ctx); ++ if (!glx_ctx->has_tfp || !load_tfp_extensions(ctx)) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ glx_ctx->use_tfp = 1; ++ } ++ ++ if (needs_fbo) { ++ glx_ctx->has_fbo = check_fbo_extensions(ctx); ++ if (!glx_ctx->has_fbo || !load_fbo_extensions(ctx)) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ glx_ctx->use_fbo = 1; ++ } ++ ++ glx_ctx->is_initialized = 1; ++ return VA_STATUS_SUCCESS; ++} +diff -Naur libva-0.31.0/src/glx/va_glx_impl.h libva-0.31.0.patch/src/glx/va_glx_impl.h +--- libva-0.31.0/src/glx/va_glx_impl.h 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/va_glx_impl.h 2009-10-12 02:43:29.527786138 +0200 +@@ -0,0 +1,46 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#ifndef VA_GLX_IMPL_H ++#define VA_GLX_IMPL_H ++ ++/** ++ * Initialize GLX driver context ++ * ++ * @param[in] ctx the VA driver context ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus va_glx_init_context(VADriverContextP ctx) ++ ATTRIBUTE_HIDDEN; ++ ++/** Create VA/GLX surface */ ++VASurfaceGLXP ++va_glx_create_surface(VADriverContextP ctx, GLenum target, GLuint texture) ++ ATTRIBUTE_HIDDEN; ++ ++/** Destroy VA/GLX surface */ ++void va_glx_destroy_surface(VADriverContextP ctx, VASurfaceGLXP *pSurfaceGLX) ++ ATTRIBUTE_HIDDEN; ++ ++#endif /* VA_GLX_IMPL_H */ +diff -Naur libva-0.31.0/src/glx/va_glx_private.h libva-0.31.0.patch/src/glx/va_glx_private.h +--- libva-0.31.0/src/glx/va_glx_private.h 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/glx/va_glx_private.h 2009-10-12 02:43:29.527786138 +0200 +@@ -0,0 +1,98 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#ifndef VA_GLX_PRIVATE_H ++#define VA_GLX_PRIVATE_H ++ ++#include "config.h" ++#include "va.h" ++#include "va_backend.h" ++#include "va_x11.h" ++#include "va_glx.h" ++ ++#if GLX_GLXEXT_VERSION < 18 ++typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display *, GLXDrawable, int, const int *); ++typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int); ++#endif ++ ++typedef struct VAOpenGLVTable *VAOpenGLVTableP; ++ ++struct VAOpenGLVTable { ++ PFNGLXBINDTEXIMAGEEXTPROC glx_bind_tex_image; ++ PFNGLXRELEASETEXIMAGEEXTPROC glx_release_tex_image; ++ PFNGLGENFRAMEBUFFERSEXTPROC gl_gen_framebuffers; ++ PFNGLDELETEFRAMEBUFFERSEXTPROC gl_delete_framebuffers; ++ PFNGLBINDFRAMEBUFFEREXTPROC gl_bind_framebuffer; ++ PFNGLGENRENDERBUFFERSEXTPROC gl_gen_renderbuffers; ++ PFNGLDELETERENDERBUFFERSEXTPROC gl_delete_renderbuffers; ++ PFNGLBINDRENDERBUFFEREXTPROC gl_bind_renderbuffer; ++ PFNGLRENDERBUFFERSTORAGEEXTPROC gl_renderbuffer_storage; ++ PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC gl_framebuffer_renderbuffer; ++ PFNGLFRAMEBUFFERTEXTURE2DEXTPROC gl_framebuffer_texture_2d; ++ PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC gl_check_framebuffer_status; ++}; ++ ++typedef struct VADisplayContextGLX *VADisplayContextGLXP; ++typedef struct VADriverContextGLX *VADriverContextGLXP; ++typedef struct VASurfaceGLX *VASurfaceGLXP; ++typedef struct VADriverVTableGLX *VADriverVTableGLXP; ++ ++struct VADisplayContextGLX { ++ void (*vaDestroy)(VADisplayContextP ctx); ++}; ++ ++#define VA_DRIVER_CONTEXT_GLX(ctx) ((VADriverContextGLXP)((ctx)->glx)) ++ ++struct VADriverContextGLX { ++ struct VADriverVTableGLX vtable; ++ struct VAOpenGLVTable gl_vtable; ++ unsigned int is_initialized : 1; ++ unsigned int has_copy : 1; ++ unsigned int has_bind : 1; ++ unsigned int has_tfp : 1; ++ unsigned int has_fbo : 1; ++ unsigned int use_tfp : 1; ++ unsigned int use_fbo : 1; ++}; ++ ++/** Unique VASurfaceGLX identifier */ ++#define VA_SURFACE_GLX_MAGIC VA_FOURCC('V','A','G','L') ++ ++struct VASurfaceGLX { ++ uint32_t magic; ///< Magic number identifying a VASurfaceGLX ++ GLenum target; ///< GL target to which the texture is bound ++ GLuint texture; ///< GL texture ++ VASurfaceID surface; ///< Associated VA surface ++ unsigned int width; ++ unsigned int height; ++ int is_bound; ++ Pixmap pixmap; ++ GLXPixmap glx_pixmap; ++ GLuint fbo; ++ GLuint fbo_buffer; ++ GLuint fbo_texture; ++ void *priv; ///< Private VA/GLX surface data from driver ++}; ++ ++#endif /* VA_GLX_PRIVATE_H */ +diff -Naur libva-0.31.0/src/Makefile.am libva-0.31.0.patch/src/Makefile.am +--- libva-0.31.0/src/Makefile.am 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/src/Makefile.am 2009-10-12 02:43:29.528783352 +0200 +@@ -28,22 +28,37 @@ + LDADD = \ + $(LIBVA_LT_LDFLAGS) + +-lib_LTLIBRARIES = \ +- libva.la \ +- libva-x11.la ++libva_x11_backend = libva-x11.la ++libva_x11_backenddir = x11 ++if USE_GLX ++libva_glx_backend = libva-glx.la ++libva_glx_backenddir = glx ++else ++libva_glx_backend = ++libva_glx_backenddir = ++endif ++ ++lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend) + + libva_ladir = $(libdir) + libva_la_LDFLAGS = $(LDADD) -no-undefined + libva_la_LIBADD = $(LIBVA_LIBS) -ldl + + libva_x11_la_SOURCES = +-libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) ++libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl + libva_x11_la_LDFLAGS = $(LDADD) + libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la + +-SUBDIRS = x11 ++libva_glx_la_SOURCES = ++libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl ++libva_glx_la_LDFLAGS = $(LDADD) ++libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la ++ ++SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) + +-libva_la_SOURCES = va.c ++DIST_SUBDIRS = x11 glx ++ ++libva_la_SOURCES = va.c va_compat.c + + libvaincludedir = ${includedir}/va + libvainclude_HEADERS = va.h va_backend.h va_version.h +@@ -52,4 +67,8 @@ + va_version.h + + EXTRA_DIST = \ +- va_version.h.in ++ va_version.h.in \ ++ va_compat.h \ ++ va_compat_template.h ++ ++va_compat.c: va_compat_template.h +diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.patch/src/Makefile.in --- libva-0.31.0/src/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/Makefile.in 2009-10-10 23:10:15.222782566 +0200 ++++ libva-0.31.0.patch/src/Makefile.in 2009-10-12 02:44:01.508657682 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -45205,7 +70621,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c -@@ -65,14 +67,29 @@ +@@ -65,23 +67,44 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = va_version.h @@ -45236,8 +70652,24 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in -libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = ++am_libva_glx_la_OBJECTS = ++libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS) ++libva_glx_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(libva_glx_la_LDFLAGS) $(LDFLAGS) -o $@ ++@USE_GLX_TRUE@am_libva_glx_la_rpath = -rpath $(libdir) am_libva_x11_la_OBJECTS = -@@ -89,6 +106,7 @@ + libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS) + libva_x11_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libva_x11_la_LDFLAGS) $(LDFLAGS) -o $@ + libva_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +-am_libva_la_OBJECTS = va.lo ++am_libva_la_OBJECTS = va.lo va_compat.lo + libva_la_OBJECTS = $(am_libva_la_OBJECTS) + libva_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libva_la_LDFLAGS) \ +@@ -89,6 +112,7 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -45245,7 +70677,20 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -107,14 +125,41 @@ +@@ -98,8 +122,10 @@ + LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +-SOURCES = $(libva_x11_la_SOURCES) $(libva_la_SOURCES) +-DIST_SOURCES = $(libva_x11_la_SOURCES) $(libva_la_SOURCES) ++SOURCES = $(libva_glx_la_SOURCES) $(libva_x11_la_SOURCES) \ ++ $(libva_la_SOURCES) ++DIST_SOURCES = $(libva_glx_la_SOURCES) $(libva_x11_la_SOURCES) \ ++ $(libva_la_SOURCES) + RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ +@@ -107,14 +133,40 @@ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive @@ -45258,7 +70703,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in + distdir ETAGS = etags CTAGS = ctags - DIST_SUBDIRS = $(SUBDIRS) +-DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ @@ -45288,7 +70733,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ -@@ -127,24 +172,19 @@ +@@ -127,38 +179,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -45314,8 +70759,11 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -153,12 +193,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -45329,9 +70777,11 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -167,12 +207,17 @@ +@@ -166,13 +215,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -45347,7 +70797,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -198,8 +243,7 @@ +@@ -198,8 +253,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -45357,7 +70807,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -232,6 +276,7 @@ +@@ -232,6 +286,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -45365,7 +70815,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -245,6 +290,7 @@ +@@ -245,6 +300,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -45373,16 +70823,53 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = \ -@@ -265,7 +311,7 @@ +@@ -255,26 +311,36 @@ + LDADD = \ + $(LIBVA_LT_LDFLAGS) + +-lib_LTLIBRARIES = \ +- libva.la \ +- libva-x11.la +- ++libva_x11_backend = libva-x11.la ++libva_x11_backenddir = x11 ++@USE_GLX_FALSE@libva_glx_backend = ++@USE_GLX_TRUE@libva_glx_backend = libva-glx.la ++@USE_GLX_FALSE@libva_glx_backenddir = ++@USE_GLX_TRUE@libva_glx_backenddir = glx ++lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend) + libva_ladir = $(libdir) + libva_la_LDFLAGS = $(LDADD) -no-undefined + libva_la_LIBADD = $(LIBVA_LIBS) -ldl libva_x11_la_SOURCES = - libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) +-libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) ++libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl libva_x11_la_LDFLAGS = $(LDADD) -libva_x11_la_DEPENDENCIES = $(libvacorelib) +-SUBDIRS = x11 +-libva_la_SOURCES = va.c +libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la - SUBDIRS = x11 - libva_la_SOURCES = va.c ++libva_glx_la_SOURCES = ++libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl ++libva_glx_la_LDFLAGS = $(LDADD) ++libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la ++SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) ++DIST_SUBDIRS = x11 glx ++libva_la_SOURCES = va.c va_compat.c libvaincludedir = ${includedir}/va -@@ -284,14 +330,14 @@ + libvainclude_HEADERS = va.h va_backend.h va_version.h + DISTCLEANFILES = \ + va_version.h + + EXTRA_DIST = \ +- va_version.h.in ++ va_version.h.in \ ++ va_compat.h \ ++ va_compat_template.h + + all: all-recursive + +@@ -284,14 +350,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -45402,7 +70889,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -309,25 +355,30 @@ +@@ -309,25 +375,30 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -45442,7 +70929,20 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in done clean-libLTLIBRARIES: -@@ -353,21 +404,21 @@ +@@ -338,6 +409,8 @@ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done ++libva-glx.la: $(libva_glx_la_OBJECTS) $(libva_glx_la_DEPENDENCIES) ++ $(libva_glx_la_LINK) $(am_libva_glx_la_rpath) $(libva_glx_la_OBJECTS) $(libva_glx_la_LIBADD) $(LIBS) + libva-x11.la: $(libva_x11_la_OBJECTS) $(libva_x11_la_DEPENDENCIES) + $(libva_x11_la_LINK) -rpath $(libdir) $(libva_x11_la_OBJECTS) $(libva_x11_la_LIBADD) $(LIBS) + libva.la: $(libva_la_OBJECTS) $(libva_la_DEPENDENCIES) +@@ -350,24 +423,25 @@ + -rm -f *.tab.c + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_compat.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -45467,7 +70967,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -380,20 +431,23 @@ +@@ -380,20 +454,23 @@ install-libvaincludeHEADERS: $(libvainclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(libvaincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libvaincludedir)" @@ -45500,7 +71000,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. -@@ -419,7 +473,7 @@ +@@ -419,7 +496,7 @@ else \ local_target="$$target"; \ fi; \ @@ -45509,7 +71009,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ -@@ -453,16 +507,16 @@ +@@ -453,16 +530,16 @@ else \ local_target="$$target"; \ fi; \ @@ -45529,7 +71029,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -470,14 +524,14 @@ +@@ -470,14 +547,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -45546,7 +71046,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ -@@ -489,7 +543,7 @@ +@@ -489,7 +566,7 @@ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ @@ -45555,7 +71055,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -498,29 +552,34 @@ +@@ -498,29 +575,34 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -45598,7 +71098,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -541,29 +600,44 @@ +@@ -541,29 +623,44 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -45653,7 +71153,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in distdir) \ || exit 1; \ fi; \ -@@ -596,6 +670,7 @@ +@@ -596,6 +693,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -45661,7 +71161,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: -@@ -618,6 +693,8 @@ +@@ -618,6 +716,8 @@ html: html-recursive @@ -45670,7 +71170,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in info: info-recursive info-am: -@@ -626,18 +703,28 @@ +@@ -626,18 +726,28 @@ install-dvi: install-dvi-recursive @@ -45699,7 +71199,7 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in installcheck-am: maintainer-clean: maintainer-clean-recursive -@@ -660,8 +747,8 @@ +@@ -660,8 +770,8 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-libvaincludeHEADERS @@ -45710,17 +71210,6822 @@ diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.diff/src/Makefile.in .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ -@@ -680,6 +767,7 @@ +@@ -680,6 +790,9 @@ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-libvaincludeHEADERS ++ ++va_compat.c: va_compat_template.h + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.in +diff -Naur libva-0.31.0/src/va_backend.h libva-0.31.0.patch/src/va_backend.h +--- libva-0.31.0/src/va_backend.h 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/src/va_backend.h 2009-10-12 02:43:29.531782258 +0200 +@@ -32,9 +32,11 @@ + #ifdef IN_LIBVA + #include "va.h" + #include "x11/va_x11.h" ++#include "glx/va_backend_glx.h" + #else + #include + #include ++#include + #endif + + #include +@@ -372,6 +374,9 @@ + unsigned int *chroma_v_offset, + void **buffer + ); ++ ++ /* Optional: GLX support hooks */ ++ struct VADriverVTableGLX glx; + }; + + struct VADriverContext +@@ -394,6 +399,8 @@ + void *handle; /* dlopen handle */ + + void *dri_state; ++ void *glx; /* opaque for GLX code */ ++ void *compat; /* opaque for compat code */ + }; + + struct VADisplayContext +@@ -413,6 +420,8 @@ + VADisplayContextP ctx, + char **driver_name + ); ++ ++ void *opaque; /* opaque for display extensions (e.g. GLX) */ + }; + + typedef VAStatus (*VADriverInit) ( +diff -Naur libva-0.31.0/src/va.c libva-0.31.0.patch/src/va.c +--- libva-0.31.0/src/va.c 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/src/va.c 2009-10-12 02:43:29.532782615 +0200 +@@ -25,6 +25,7 @@ + #define _GNU_SOURCE 1 + #include "va.h" + #include "va_backend.h" ++#include "va_compat.h" + + #include + #include +@@ -40,6 +41,9 @@ + + + #define DRIVER_INIT_FUNC "__vaDriverInit_0_31" ++#define DRIVER_INIT_FUNC_SDS "__vaDriverInit_0_31_sds" ++#define DRIVER_INIT_FUNC_0_29 "__vaDriverInit_0_29" ++#define DRIVER_INIT_FUNC_0_30 "__vaDriverInit_0_30" + + #define DRIVER_EXTENSION "_drv_video.so" + +@@ -130,10 +134,6 @@ + { + /* don't allow setuid apps to use LIBVA_DRIVERS_PATH */ + search_path = getenv("LIBVA_DRIVERS_PATH"); +- if (!search_path) +- { +- search_path = getenv("LIBGL_DRIVERS_PATH"); +- } + } + if (!search_path) + { +@@ -167,7 +167,23 @@ + else + { + VADriverInit init_func; +- init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); ++ int compat_version = 0; ++ /* First, try SDS extensions (VDPAU and XvBA backends) */ ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_SDS); ++ if (!init_func) ++ { ++ /* Otherwise, we need the compatibility layer for some buffers */ ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); ++ compat_version = VA_MINOR_VERSION; ++ if (!init_func) { ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_29); ++ compat_version = 29; ++ } ++ if (!init_func) { ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_30); ++ compat_version = 30; ++ } ++ } + if (!init_func) + { + va_errorMessage("%s has no function %s\n", driver_path, DRIVER_INIT_FUNC); +@@ -175,7 +191,36 @@ + } + else + { +- vaStatus = (*init_func)(ctx); ++ struct VADriverContext_0_29 ctx_0_29; ++ struct VADriverContext_0_30 ctx_0_30; ++ void *compat_ctx = NULL; ++ ++ switch (compat_version) { ++ case 29: ++ compat_ctx = &ctx_0_29; ++ ctx_0_29.pDriverData = NULL; ++ ctx_0_29.x11_dpy = ctx->x11_dpy; ++ ctx_0_29.x11_screen = ctx->x11_screen; ++ break; ++ case 30: ++ compat_ctx = &ctx_0_30; ++ ctx_0_30.pDriverData = NULL; ++ ctx_0_30.x11_dpy = ctx->x11_dpy; ++ ctx_0_30.x11_screen = ctx->x11_screen; ++ break; ++ case VA_MINOR_VERSION: ++ compat_ctx = ctx; ++ break; ++ default: ++ ASSERT(compat_version == 0); ++ vaStatus = VA_STATUS_ERROR_UNKNOWN; ++ break; ++ } ++ ++ vaStatus = (*init_func)(compat_ctx ? compat_ctx : ctx); ++ ++ if (VA_STATUS_SUCCESS == vaStatus) ++ vaStatus = va_compat_init(dpy, compat_version, compat_ctx); + + if (VA_STATUS_SUCCESS == vaStatus) + { +@@ -373,6 +418,8 @@ + old_ctx->handle = NULL; + } + ++ va_compat_fini(dpy); ++ + if (VA_STATUS_SUCCESS == vaStatus) + pDisplayContext->vaDestroy(pDisplayContext); + return vaStatus; +diff -Naur libva-0.31.0/src/va_compat.c libva-0.31.0.patch/src/va_compat.c +--- libva-0.31.0/src/va_compat.c 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/va_compat.c 2009-10-12 02:43:29.535782638 +0200 +@@ -0,0 +1,1170 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#include "config.h" ++#include "va.h" ++#include "va_compat.h" ++#include "va_backend.h" ++#include ++#include ++#include ++ ++#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext) ++#define COMPAT_CTX(ctx) ((VACompatContextP)(ctx)->compat) ++#define ASSERT assert ++ ++/* Invoke the normal VA API entry-point. This one can be replaced with ++ one of the va_compat_*() functions */ ++#define VA_INVOKE(FUNC, CTX, ...) \ ++ (CTX)->vtable.FUNC(CTX, __VA_ARGS__) ++ ++/* Invoke the real VA API entry-point. That is, the driver's function */ ++#define VA_INVOKE_COMPAT_ARGS(CTX, ...) \ ++ (COMPAT_CTX(CTX)->compat_ctx, __VA_ARGS__) ++#define VA_INVOKE_COMPAT(FUNC, CTX, ...) \ ++ COMPAT_CTX(CTX)->vtable.FUNC VA_INVOKE_COMPAT_ARGS(CTX, __VA_ARGS__) ++ ++typedef struct VACompatContext *VACompatContextP; ++ ++typedef VAStatus (*VABufferTranslateFunc)(VACompatContextP ctx, void *dest, const void *src); ++ ++typedef enum { ++ VA_DRIVER_ID_UNKNOWN, ++ VA_DRIVER_ID_POULSBO, ++ VA_DRIVER_ID_IEGD ++} VADriverID; ++ ++typedef struct { ++ VABufferID id; ++ VABufferType type; ++ unsigned int size; ++ unsigned int num_elements; ++ unsigned char *data; ++ VABufferTranslateFunc translate; ++ VABufferID compat_id; ++ unsigned int compat_size; ++ unsigned char *compat_data; ++ unsigned int map_count; ++} VABufferCompat; ++ ++typedef struct VAContextMap *VAContextMapP; ++typedef struct VAContextMap { ++ VASurfaceID surface; ++ VAContextID context; ++ VAContextMapP next; ++} VAContextMap; ++ ++typedef struct { ++ VAStatus (*vaTerminate)(void *); ++ VAStatus (*vaQueryConfigProfiles)(void *, VAProfile *, int *); ++ VAStatus (*vaQueryConfigEntrypoints)(void *, VAProfile, VAEntrypoint *, int *); ++ VAStatus (*vaGetConfigAttributes)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int); ++ VAStatus (*vaCreateConfig)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int, VAConfigID *); ++ VAStatus (*vaDestroyConfig)(void *, VAConfigID); ++ VAStatus (*vaQueryConfigAttributes)(void *, VAConfigID, VAProfile *, VAEntrypoint *, VAConfigAttrib *, int *); ++ VAStatus (*vaCreateSurfaces)(void *, int, int, int, int, VASurfaceID *); ++ VAStatus (*vaDestroySurfaces)(void *, VASurfaceID *, int); ++ VAStatus (*vaCreateContext)(void *, VAConfigID, int, int, int, VASurfaceID *, int, VAContextID *); ++ VAStatus (*vaDestroyContext)(void *, VAContextID); ++ VAStatus (*vaCreateBuffer)(void *, VAContextID, VABufferType, unsigned int, unsigned int, void *, VABufferID *); ++ VAStatus (*vaBufferSetNumElements)(void *, VABufferID, unsigned int); ++ VAStatus (*vaMapBuffer)(void *, VABufferID, void **); ++ VAStatus (*vaUnmapBuffer)(void *, VABufferID); ++ VAStatus (*vaDestroyBuffer)(void *, VABufferID); ++ VAStatus (*vaBeginPicture)(void *, VAContextID, VASurfaceID); ++ VAStatus (*vaRenderPicture)(void *, VAContextID, VABufferID *, int); ++ VAStatus (*vaEndPicture)(void *, VAContextID); ++ VAStatus (*vaSyncSurface_pre31)(void *, VAContextID, VASurfaceID); ++ VAStatus (*vaQuerySurfaceStatus)(void *, VASurfaceID, VASurfaceStatus *); ++ VAStatus (*vaPutSurface)(void *, VASurfaceID, unsigned long, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, VARectangle *, unsigned int, unsigned int); ++ VAStatus (*vaQueryImageFormats)(void *, VAImageFormat *, int *); ++ VAStatus (*vaCreateImage)(void *, VAImageFormat *, int, int, VAImage *); ++ VAStatus (*vaDeriveImage)(void *, VASurfaceID, VAImage *); ++ VAStatus (*vaDestroyImage)(void *, VAImageID); ++ VAStatus (*vaSetImagePalette)(void *, VAImageID, unsigned char *); ++ VAStatus (*vaGetImage)(void *, VASurfaceID, int, int, unsigned int, unsigned int, VAImageID); ++ VAStatus (*vaPutImage_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int); ++ VAStatus (*vaPutImage2_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); ++ VAStatus (*vaQuerySubpictureFormats)(void *, VAImageFormat *, unsigned int *, unsigned int *); ++ VAStatus (*vaCreateSubpicture)(void *, VAImageID, VASubpictureID *); ++ VAStatus (*vaDestroySubpicture)(void *, VASubpictureID); ++ VAStatus (*vaSetSubpictureImage)(void *, VASubpictureID, VAImageID); ++ VAStatus (*vaSetSubpictureChromakey)(void *, VASubpictureID, unsigned int, unsigned int, unsigned int); ++ VAStatus (*vaSetSubpictureGlobalAlpha)(void *, VASubpictureID, float); ++ VAStatus (*vaAssociateSubpicture_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, short, short, unsigned short, unsigned short, unsigned int); ++ VAStatus (*vaAssociateSubpicture2_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); ++ VAStatus (*vaDeassociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int); ++ VAStatus (*vaQueryDisplayAttributes)(void *, VADisplayAttribute *, int *); ++ VAStatus (*vaGetDisplayAttributes)(void *, VADisplayAttribute *, int); ++ VAStatus (*vaSetDisplayAttributes)(void *, VADisplayAttribute *, int); ++ ++ /* 0.29 hooks */ ++ VAStatus (*vaSetSubpicturePalette)(void *, VASubpictureID, unsigned char *); ++ VAStatus (*vaDbgCopySurfaceToBuffer)(void *, VASurfaceID, void **, unsigned int *); ++ ++ /* 0.30 hooks */ ++ VAStatus (*vaCreateSurfaceFromCIFrame)(void *, unsigned long, VASurfaceID *); ++ VAStatus (*vaCreateSurfaceFromV4L2Buf)(void *, int, struct v4l2_format *, struct v4l2_buffer *, VASurfaceID *); ++ VAStatus (*vaCopySurfaceToBuffer)(void *, VASurfaceID, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, void **); ++ ++ /* 0.31 hooks */ ++ VAStatus (*vaPutImage)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); ++ VAStatus (*vaAssociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); ++ VAStatus (*vaSyncSurface)(void *, VASurfaceID); ++} VACompatDriverVTable; ++ ++typedef struct VACompatContext { ++ VABufferCompat *buffers; ++ unsigned int buffers_count_max; ++ unsigned int compat_version; ++ void *compat_ctx; ++ VACompatDriverVTable vtable; /* original vtable */ ++ VADriverID driver_id; ++ char *driver_name; ++ VAContextMapP context_map; ++ VAContextMapP last_context_map_match; ++ unsigned int skip_frame : 1; ++} VACompatContext; ++ ++#define COMPAT_MAJOR 0 ++#define COMPAT_MINOR 29 ++#include "va_compat_template.h" ++ ++#define COMPAT_MAJOR 0 ++#define COMPAT_MINOR 30 ++#include "va_compat_template.h" ++ ++#define COMPAT_MAJOR 0 ++#define COMPAT_MINOR 31 ++#include "va_compat_template.h" ++ ++static inline int va_IsIntelBuffer(VADriverContextP ctx, VABufferID id) ++{ ++ VACompatContextP compat = ctx->compat; ++ ++ if (compat->driver_id == VA_DRIVER_ID_POULSBO) { ++ /* There were only Intel implementations for VA API. Besides, the ++ returned buffer IDs had the following format [ 0 BASE ID ] where ++ BASE is the 7-bit value 0x04 and ID an index into the heap of ++ objects */ ++ return (id & 0x7f000000) == 0x04000000; ++ } ++ ++ if (compat->driver_id == VA_DRIVER_ID_IEGD) { ++ /* XXX: there is no means to differentiate the buffers, they ++ are linearly generated (IEGD 10.0 build 1335) */ ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static VAContextMapP va_context_map_lookup_p( ++ VACompatContextP ctx, ++ VASurfaceID surface ++) ++{ ++ VAContextMapP m = ctx->context_map; ++ ++ while (m) { ++ if (m->surface == surface) ++ return m; ++ m = m->next; ++ } ++ return NULL; ++} ++ ++static VAContextID va_context_map_lookup( ++ VACompatContextP ctx, ++ VASurfaceID surface ++) ++{ ++ VAContextMapP m; ++ ++ /* Lookup in cached */ ++ m = ctx->last_context_map_match; ++ if (m && m->surface == surface) ++ return m->context; ++ ++ /* Full (slow) lookup */ ++ m = va_context_map_lookup_p(ctx, surface); ++ if (m) { ++ ctx->last_context_map_match = m; ++ return m->context; ++ } ++ return VA_INVALID_ID; ++} ++ ++static void va_context_map_add( ++ VACompatContextP ctx, ++ VAContextID context, ++ VASurfaceID surface ++) ++{ ++ VAContextMapP m; ++ ++ /* Update existing entry */ ++ m = va_context_map_lookup_p(ctx, surface); ++ if (m) { ++ m->context = context; ++ return; ++ } ++ ++ /* Create new mapping */ ++ m = malloc(sizeof(*m)); ++ ASSERT(m); ++ if (m) { ++ m->surface = surface; ++ m->context = context; ++ m->next = ctx->context_map; ++ ctx->context_map = m; ++ } ++} ++ ++static void va_context_map_remove( ++ VACompatContextP ctx, ++ VAContextID context ++) ++{ ++ VAContextMapP p = NULL; ++ VAContextMapP m = ctx->context_map; ++ VAContextMapP d; ++ ++ while (m) { ++ if (m->context == context) { ++ d = m; ++ ++ /* Unlink current node */ ++ if (p) ++ p->next = m->next; ++ else ++ ctx->context_map = m->next; ++ m = m->next; ++ ++ /* Reset cache */ ++ if (ctx->last_context_map_match == d) ++ ctx->last_context_map_match = NULL; ++ ++ free(d); ++ } ++ else { ++ p = m; ++ m = m->next; ++ } ++ } ++} ++ ++static VABufferCompat *va_GetBufferCompat ( ++ VADriverContextP ctx, ++ VABufferID id ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ int index; ++ ++ if (!va_IsIntelBuffer(ctx, id)) ++ return NULL; ++ ++ index = id & 0x00ffffff; ++ if (index >= compat->buffers_count_max) ++ return NULL; ++ ++ if (compat->buffers[index].id != id) ++ return NULL; ++ ++ return &compat->buffers[index]; ++} ++ ++static VAStatus va_TranslateBufferCompat ( ++ VADriverContextP ctx, ++ VABufferCompat *compat_buffer ++) ++{ ++ VAStatus status; ++ unsigned char *src, *dest; ++ int i; ++ ++ status = VA_INVOKE(vaMapBuffer, ctx, compat_buffer->id, (void **)&src); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ ASSERT(compat_buffer->data); ++ ASSERT(src == compat_buffer->data); ++ ASSERT(compat_buffer->compat_data); ++ dest = compat_buffer->compat_data; ++ for (i = 0; i < compat_buffer->num_elements; i++) ++ { ++ /* XXX: check errors */ ++ status = compat_buffer->translate(ctx->compat, dest, src); ++ ++ src += compat_buffer->size; ++ dest += compat_buffer->compat_size; ++ } ++ ++ return VA_INVOKE(vaUnmapBuffer, ctx, compat_buffer->id); ++} ++ ++static VAStatus va_CreateBufferCompat ( ++ VADriverContextP ctx, ++ VAContextID context, ++ VABufferID id, ++ VABufferType type, ++ unsigned int size, ++ unsigned int num_elements, ++ unsigned int compat_size, ++ VABufferTranslateFunc translate_func ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ VABufferCompat *compat_buffer; ++ int index; ++ ++ if (!va_IsIntelBuffer(ctx, id)) ++ return VA_STATUS_ERROR_INVALID_BUFFER; ++ index = id & 0x00ffffff; ++ ++ /* XXX: this allocation strategy is not really space efficient... */ ++ if (index >= compat->buffers_count_max) ++ { ++ compat->buffers_count_max = index + 1; ++ compat->buffers = realloc(compat->buffers, ++ (compat->buffers_count_max * ++ sizeof(VABufferCompat))); ++ if (compat->buffers == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ } ++ ++ compat_buffer = &compat->buffers[index]; ++ compat_buffer->id = id; ++ compat_buffer->type = type; ++ compat_buffer->size = size; ++ compat_buffer->num_elements = num_elements; ++ compat_buffer->data = NULL; ++ compat_buffer->translate = translate_func; ++ compat_buffer->compat_size = compat_size; ++ compat_buffer->compat_data = NULL; ++ compat_buffer->map_count = 0; ++ ++ return VA_INVOKE_COMPAT(vaCreateBuffer, ++ ctx, ++ context, ++ type, ++ compat_size, ++ num_elements, ++ NULL, ++ &compat_buffer->compat_id); ++} ++ ++static VAStatus va_DestroyBufferCompat ( ++ VADriverContextP ctx, ++ VABufferID id ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, id)) == NULL) ++ return VA_STATUS_SUCCESS; ++ ++ /* Force unmap if there were more maps than unmaps */ ++ if (compat_buffer->map_count > 1) ++ compat_buffer->map_count = 1; ++ if (compat_buffer->map_count > 1) ++ { ++ if ((status = VA_INVOKE(vaUnmapBuffer, ctx, id)) != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ compat_buffer->id = 0; ++ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->compat_id); ++} ++ ++static VAStatus va_compat_CreateBuffer ( ++ VADriverContextP ctx, ++ VAContextID context, /* in */ ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++) ++{ ++ VABufferTranslateFunc translate_func = NULL; ++ unsigned int compat_size = 0; ++ VAStatus status; ++ ++ status = VA_INVOKE_COMPAT(vaCreateBuffer, ++ ctx, ++ context, ++ type, ++ size, ++ num_elements, ++ data, ++ buf_id); ++ ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++#define INIT_TRANSLATE_FUNC_(STRUCT, MAJOR, MINOR) do { \ ++ translate_func = va_compat_translate_VA##STRUCT##_##MAJOR##_##MINOR; \ ++ compat_size = sizeof(VA##STRUCT##_##MAJOR##_##MINOR); \ ++} while (0) ++#define INIT_TRANSLATE_FUNC(BUFFER, CODEC, MAJOR, MINOR) \ ++ INIT_TRANSLATE_FUNC_(BUFFER##Buffer##CODEC, MAJOR, MINOR) ++ ++ /* XXX: this assumes all structures have different sizes from each other */ ++ switch (size) { ++ case sizeof(VAPictureParameterBufferH264): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VASliceParameterBufferH264): ++ if (type == VASliceParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VAPictureParameterBufferVC1): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VAPictureParameterBufferMPEG2): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VASliceParameterBufferMPEG2): ++ if (type == VASliceParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VAPictureParameterBufferMPEG4): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VAEncSliceParameterBuffer): ++ if (type == VAEncSliceParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 30: INIT_TRANSLATE_FUNC_(EncSliceParameterBuffer, 0,30); break; ++ } ++ } ++ break; ++ } ++ ++#undef INIT_TRANSLATE_FUNC ++ ++ /* Create thunk */ ++ if (buf_id && translate_func) ++ { ++ ASSERT(compat_size > 0); ++ ++ status = va_CreateBufferCompat(ctx, ++ context, ++ *buf_id, ++ type, ++ size, ++ num_elements, ++ compat_size, ++ translate_func); ++ } ++ ++ return status; ++} ++ ++static VAStatus va_compat_BufferSetNumElements ( ++ VADriverContextP ctx, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, ctx, buf_id, num_elements); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) != NULL) ++ { ++ compat_buffer->num_elements = num_elements; ++ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, ++ ctx, ++ compat_buffer->compat_id, ++ num_elements); ++ } ++ ++ return status; ++} ++ ++static VAStatus va_compat_DestroyBuffer ( ++ VADriverContextP ctx, ++ VABufferID buffer_id ++) ++{ ++ VAStatus status; ++ if ((status = va_DestroyBufferCompat(ctx, buffer_id)) != VA_STATUS_SUCCESS) ++ return status; ++ ++ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, buffer_id); ++} ++ ++static VAStatus va_compat_MapBuffer ( ++ VADriverContextP ctx, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) ++ return VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, pbuf); ++ ++ if (compat_buffer->map_count++ == 0) ++ { ++ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, (void **)&compat_buffer->data); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, compat_buffer->compat_id, (void **)&compat_buffer->compat_data); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ if (pbuf) ++ *pbuf = compat_buffer->data; ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus va_compat_UnmapBuffer ( ++ VADriverContextP ctx, ++ VABufferID buf_id /* in */ ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) ++ return VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, buf_id); ++ ++ if (--compat_buffer->map_count == 0) ++ { ++ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->compat_id); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ compat_buffer->compat_data = NULL; ++ ++ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->id); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ compat_buffer->data = NULL; ++ } ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus va_compat_BeginPicture ( ++ VADriverContextP ctx, ++ VAContextID context, ++ VASurfaceID render_target ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ compat->skip_frame = 0; ++ return VA_INVOKE_COMPAT(vaBeginPicture, ctx, context, render_target); ++} ++ ++static VAStatus va_compat_EndPicture ( ++ VADriverContextP ctx, ++ VAContextID context ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ VAStatus status = VA_INVOKE_COMPAT(vaEndPicture, ctx, context); ++ ++ /* Ignore errors if the HW decoder did not handle VC-1 skipped P-frames */ ++ if (compat->skip_frame && status == VA_STATUS_ERROR_UNKNOWN) ++ status = VA_STATUS_SUCCESS; ++ ++ return status; ++} ++ ++static VAStatus va_compat_RenderPicture ( ++ VADriverContextP ctx, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ VABufferCompat *compat_buffer; ++ VABufferID *compat_buffer_ids; ++ VAStatus status; ++ int i, n; ++ ++ if ((n = num_buffers) < 1) ++ n = 1; ++ compat_buffer_ids = alloca(n * sizeof(compat_buffer_ids[0])); ++ ++ for (i = 0; i < num_buffers; i++) ++ { ++ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) == NULL) ++ compat_buffer_ids[i] = buffers[i]; ++ else ++ { ++ status = va_TranslateBufferCompat(ctx, compat_buffer); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ compat_buffer_ids[i] = compat_buffer->compat_id; ++ } ++ } ++ ++ if (!compat->skip_frame) ++ { ++ status = VA_INVOKE_COMPAT(vaRenderPicture, ctx, context, compat_buffer_ids, num_buffers); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ /* Buffers are automatically destroyed afterwards */ ++ for (i = 0; i < num_buffers; i++) ++ { ++ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) != NULL) ++ { ++ status = VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->id); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ } ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++#define DEFINE_VTABLE_ENTRY_(RETVAL, PROC, ARGS, COMPAT_PROC, COMPAT_ARGS, COMPAT_PRE, COMPAT_POST) \ ++static RETVAL va_compat_##PROC ARGS \ ++{ \ ++ if (COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC == NULL) \ ++ return VA_STATUS_ERROR_OPERATION_FAILED; \ ++ COMPAT_PRE; \ ++ RETVAL ret = COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC VA_INVOKE_COMPAT_ARGS COMPAT_ARGS; \ ++ COMPAT_POST; \ ++ return ret; \ ++} ++ ++#define DEFINE_VTABLE_ENTRY(RETVAL, PROC, DECL_ARGS, CALL_ARGS) \ ++DEFINE_VTABLE_ENTRY_(RETVAL, PROC, DECL_ARGS, PROC, CALL_ARGS, {}, {}) ++ ++static VAStatus va_compat_Terminate(VADriverContextP ctx) ++{ ++ if (COMPAT_CTX(ctx)->vtable.vaTerminate == NULL) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ return COMPAT_CTX(ctx)->vtable.vaTerminate(COMPAT_CTX(ctx)->compat_ctx); ++} ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryConfigProfiles, ++ (VADriverContextP ctx, VAProfile *profile_list, int *num_profiles), ++ (ctx, profile_list, num_profiles)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryConfigEntrypoints, ++ (VADriverContextP ctx, VAProfile profile, ++ VAEntrypoint *entrypoint_list, int *num_entrypoints), ++ (ctx, profile, entrypoint_list, num_entrypoints)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, GetConfigAttributes, ++ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, int num_attribs), ++ (ctx, profile, entrypoint, attrib_list, num_attribs)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateConfig, ++ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, int num_attribs, VAConfigID *config_id), ++ (ctx, profile, entrypoint, attrib_list, num_attribs, config_id)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroyConfig, ++ (VADriverContextP ctx, VAConfigID config_id), ++ (ctx, config_id)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryConfigAttributes, ++ (VADriverContextP ctx, VAConfigID config_id, VAProfile *profile, ++ VAEntrypoint *entrypoint, VAConfigAttrib *attrib_list, int *num_attribs), ++ (ctx, config_id, profile, entrypoint, attrib_list, num_attribs)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSurfaces, ++ (VADriverContextP ctx, int width, int height, int format, ++ int num_surfaces, VASurfaceID *surfaces), ++ (ctx, width, height, format, num_surfaces, surfaces)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroySurfaces, ++ (VADriverContextP ctx, VASurfaceID *surface_list, int num_surfaces), ++ (ctx, surface_list, num_surfaces)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateContext, ++ (VADriverContextP ctx, VAConfigID config_id, ++ int picture_width, int picture_height, int flag, ++ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), ++ (ctx, config_id, picture_width, picture_height, flag, ++ render_targets, num_render_targets, context)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroyContext, ++ (VADriverContextP ctx, VAContextID context), ++ (ctx, context)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SyncSurface, ++ (VADriverContextP ctx, VASurfaceID render_target), ++ (ctx, render_target)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QuerySurfaceStatus, ++ (VADriverContextP ctx, VASurfaceID render_target, VASurfaceStatus *status), ++ (ctx, render_target, status)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, PutSurface, ++ (VADriverContextP ctx, VASurfaceID surface, Drawable draw, ++ short srcx, short srcy, unsigned short srcw, unsigned short srch, ++ short destx, short desty, unsigned short destw, unsigned short desth, ++ VARectangle *cliprects, unsigned int number_cliprects, unsigned int flags), ++ (ctx, surface, draw, srcx, srcy, srcw, srch, destx, desty, destw, desth, ++ cliprects, number_cliprects, flags)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryImageFormats, ++ (VADriverContextP ctx, VAImageFormat *format_list, int *num_formats), ++ (ctx, format_list, num_formats)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateImage, ++ (VADriverContextP ctx, VAImageFormat *format, ++ int width, int height, VAImage *image), ++ (ctx, format, width, height, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DeriveImage, ++ (VADriverContextP ctx, VASurfaceID surface, VAImage *image), ++ (ctx, surface, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroyImage, ++ (VADriverContextP ctx, VAImageID image), ++ (ctx, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetImagePalette, ++ (VADriverContextP ctx, VAImageID image, unsigned char *palette), ++ (ctx, image, palette)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, GetImage, ++ (VADriverContextP ctx, VASurfaceID surface, ++ int x, int y, unsigned int width, unsigned int height, VAImageID image), ++ (ctx, surface, x, y, width, height, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, PutImage, ++ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, ++ int srcx, int srcy, unsigned int srcw, unsigned int srch, ++ int destx, int desty, unsigned int destw, unsigned int desth), ++ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QuerySubpictureFormats, ++ (VADriverContextP ctx, VAImageFormat *format_list, ++ unsigned int *flags, unsigned int *num_formats), ++ (ctx, format_list, flags, num_formats)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSubpicture, ++ (VADriverContextP ctx, VAImageID image, VASubpictureID *subpicture), ++ (ctx, image, subpicture)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroySubpicture, ++ (VADriverContextP ctx, VASubpictureID subpicture), ++ (ctx, subpicture)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetSubpictureImage, ++ (VADriverContextP ctx, VASubpictureID subpicture, VAImageID image), ++ (ctx, subpicture, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetSubpictureChromakey, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask), ++ (ctx, subpicture, chromakey_min, chromakey_max, chromakey_mask)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetSubpictureGlobalAlpha, ++ (VADriverContextP ctx, VASubpictureID subpicture, float global_alpha), ++ (ctx, subpicture, global_alpha)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, AssociateSubpicture, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, int num_surfaces, ++ short srcx, short srcy, unsigned short srcw, unsigned short srch, ++ short destx, short desty, unsigned short destw, unsigned short desth, ++ unsigned int flags), ++ (ctx, subpicture, target_surfaces, num_surfaces, ++ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DeassociateSubpicture, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, int num_surfaces), ++ (ctx, subpicture, target_surfaces, num_surfaces)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryDisplayAttributes, ++ (VADriverContextP ctx, VADisplayAttribute *attr_list, int *num_attributes), ++ (ctx, attr_list, num_attributes)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, GetDisplayAttributes, ++ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), ++ (ctx, attr_list, num_attributes)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetDisplayAttributes, ++ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), ++ (ctx, attr_list, num_attributes)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSurfaceFromCIFrame, ++ (VADriverContextP ctx, unsigned long frame_id, VASurfaceID *surface), ++ (ctx, frame_id, surface)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSurfaceFromV4L2Buf, ++ (VADriverContextP ctx, int v4l2_fd, ++ struct v4l2_format *v4l2_fmt, struct v4l2_buffer *v4l2_buf, ++ VASurfaceID *surface), ++ (ctx, v4l2_fd, v4l2_fmt, v4l2_buf, surface)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CopySurfaceToBuffer, ++ (VADriverContextP ctx, VASurfaceID surface, unsigned int *fourcc, ++ unsigned int *luma_stride, ++ unsigned int *chroma_u_stride, unsigned int *chroma_v_stride, ++ unsigned int *luma_offset, ++ unsigned int *chroma_u_offset, unsigned int *chroma_v_offset, ++ void **buffer), ++ (ctx, surface, fourcc, ++ luma_stride, chroma_u_stride, chroma_v_stride, ++ luma_offset, chroma_u_offset, chroma_v_offset, ++ buffer)) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, SyncSurface_pre31, ++ (VADriverContextP ctx, VASurfaceID render_target), ++ SyncSurface_pre31, ++ (ctx, va_context_map_lookup(COMPAT_CTX(ctx), render_target), render_target), ++ {}, {}) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, PutImage_pre31, ++ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, ++ int srcx, int srcy, unsigned int srcw, unsigned int srch, ++ int destx, int desty, unsigned int destw, unsigned int desth), ++ PutImage2_pre31, ++ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth), ++ {}, {}) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, AssociateSubpicture_pre31, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, int num_surfaces, ++ short srcx, short srcy, unsigned short srcw, unsigned short srch, ++ short destx, short desty, unsigned short destw, unsigned short desth, ++ unsigned int flags), ++ AssociateSubpicture2_pre31, ++ (ctx, subpicture, target_surfaces, num_surfaces, ++ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags), ++ {}, {}) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, CreateContext_pre31, ++ (VADriverContextP ctx, VAConfigID config_id, ++ int picture_width, int picture_height, int flag, ++ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), ++ CreateContext, ++ (ctx, config_id, picture_width, picture_height, flag, ++ render_targets, num_render_targets, context), ++ {}, { ++ VACompatContextP const compat_ctx = COMPAT_CTX(ctx); ++ int i; ++ for (i = 0; i < num_render_targets; i++) ++ va_context_map_add(compat_ctx, *context, render_targets[i]); ++ }) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, DestroyContext_pre31, ++ (VADriverContextP ctx, VAContextID context), ++ DestroyContext, ++ (ctx, context), ++ {}, { va_context_map_remove(COMPAT_CTX(ctx), context); }) ++ ++#undef DEFINE_VTABLE_ENTRY ++#undef DEFINE_VTABLE_ENTRY_ ++ ++static void va_compat_init_VADriverVTable(VADriverContextP ctx, int compat_version) ++{ ++#define INIT_VTABLE_(CTX, DST_PROC, SRC_PROC) \ ++ (CTX)->vtable.va##DST_PROC = va_compat_##SRC_PROC ++#define INIT_VTABLE(CTX, PROC) \ ++ INIT_VTABLE_(CTX, PROC, PROC) ++ ++ INIT_VTABLE(ctx, Terminate); ++ INIT_VTABLE(ctx, QueryConfigProfiles); ++ INIT_VTABLE(ctx, QueryConfigEntrypoints); ++ INIT_VTABLE(ctx, GetConfigAttributes); ++ INIT_VTABLE(ctx, CreateConfig); ++ INIT_VTABLE(ctx, DestroyConfig); ++ INIT_VTABLE(ctx, QueryConfigAttributes); ++ INIT_VTABLE(ctx, CreateSurfaces); ++ INIT_VTABLE(ctx, DestroySurfaces); ++ INIT_VTABLE(ctx, CreateContext); ++ INIT_VTABLE(ctx, DestroyContext); ++ INIT_VTABLE(ctx, CreateBuffer); ++ INIT_VTABLE(ctx, BufferSetNumElements); ++ INIT_VTABLE(ctx, MapBuffer); ++ INIT_VTABLE(ctx, UnmapBuffer); ++ INIT_VTABLE(ctx, DestroyBuffer); ++ INIT_VTABLE(ctx, BeginPicture); ++ INIT_VTABLE(ctx, RenderPicture); ++ INIT_VTABLE(ctx, EndPicture); ++ INIT_VTABLE(ctx, SyncSurface); ++ INIT_VTABLE(ctx, QuerySurfaceStatus); ++ INIT_VTABLE(ctx, PutSurface); ++ INIT_VTABLE(ctx, QueryImageFormats); ++ INIT_VTABLE(ctx, CreateImage); ++ INIT_VTABLE(ctx, DeriveImage); ++ INIT_VTABLE(ctx, DestroyImage); ++ INIT_VTABLE(ctx, SetImagePalette); ++ INIT_VTABLE(ctx, GetImage); ++ INIT_VTABLE(ctx, PutImage); ++ INIT_VTABLE(ctx, QuerySubpictureFormats); ++ INIT_VTABLE(ctx, CreateSubpicture); ++ INIT_VTABLE(ctx, DestroySubpicture); ++ INIT_VTABLE(ctx, SetSubpictureImage); ++ INIT_VTABLE(ctx, SetSubpictureChromakey); ++ INIT_VTABLE(ctx, SetSubpictureGlobalAlpha); ++ INIT_VTABLE(ctx, AssociateSubpicture); ++ INIT_VTABLE(ctx, DeassociateSubpicture); ++ INIT_VTABLE(ctx, QueryDisplayAttributes); ++ INIT_VTABLE(ctx, GetDisplayAttributes); ++ INIT_VTABLE(ctx, SetDisplayAttributes); ++ INIT_VTABLE(ctx, CreateSurfaceFromCIFrame); ++ INIT_VTABLE(ctx, CreateSurfaceFromV4L2Buf); ++ INIT_VTABLE(ctx, CopySurfaceToBuffer); ++ ++ if (compat_version && compat_version < 31) { ++ INIT_VTABLE_(ctx, CreateContext, CreateContext_pre31); ++ INIT_VTABLE_(ctx, DestroyContext, DestroyContext_pre31); ++ INIT_VTABLE_(ctx, SyncSurface, SyncSurface_pre31); ++ INIT_VTABLE_(ctx, PutImage, PutImage_pre31); ++ INIT_VTABLE_(ctx, AssociateSubpicture, AssociateSubpicture_pre31); ++ } ++ ++#undef INIT_VTABLE ++#undef INIT_VTABLE__ ++} ++ ++VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx) ++{ ++ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; ++ VADriverContextP ctx = CTX(dpy); ++ VADriverContextP_0_29 ctx_0_29; ++ VADriverContextP_0_30 ctx_0_30; ++ VACompatContextP compat; ++ VAStatus status; ++ char *driver_name; ++ ++ ctx->compat = NULL; ++ ++ if (compat_version == 0) ++ return VA_STATUS_SUCCESS; ++ ++ ASSERT(compat_ctx); ++ if (compat_ctx == NULL) ++ return VA_STATUS_ERROR_UNKNOWN; ++ ++ driver_name = NULL; ++ status = pDisplayContext->vaGetDriverName(pDisplayContext, &driver_name); ++ ASSERT(status == VA_STATUS_SUCCESS); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ if ((compat = malloc(sizeof(*compat))) == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ compat->buffers = NULL; ++ compat->buffers_count_max = 0; ++ compat->compat_version = compat_version; ++ compat->compat_ctx = NULL; ++ compat->driver_name = driver_name; ++ compat->context_map = NULL; ++ compat->last_context_map_match = NULL; ++ ctx->compat = compat; ++ ++ if (strcmp(driver_name, "psb") == 0) ++ compat->driver_id = VA_DRIVER_ID_POULSBO; ++ else if (strcmp(driver_name, "iegd") == 0) ++ compat->driver_id = VA_DRIVER_ID_IEGD; ++ else ++ compat->driver_id = VA_DRIVER_ID_UNKNOWN; ++ ++ switch (compat_version) { ++ case 29: ++ if ((ctx_0_29 = malloc(sizeof(*ctx_0_29))) == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ memcpy(ctx_0_29, compat_ctx, sizeof(*ctx_0_29)); ++ va_compat_translate_VADriverContext_0_29(compat, ctx_0_29); ++ compat->compat_ctx = ctx_0_29; ++ COPY_FIELD(ctx, ctx_0_29, version_major); ++ COPY_FIELD(ctx, ctx_0_29, version_minor); ++ COPY_FIELD(ctx, ctx_0_29, max_profiles); ++ COPY_FIELD(ctx, ctx_0_29, max_entrypoints); ++ COPY_FIELD(ctx, ctx_0_29, max_attributes); ++ COPY_FIELD(ctx, ctx_0_29, max_image_formats); ++ COPY_FIELD(ctx, ctx_0_29, max_subpic_formats); ++ COPY_FIELD(ctx, ctx_0_29, max_display_attributes); ++ COPY_FIELD(ctx, ctx_0_29, str_vendor); ++ break; ++ case 30: ++ if ((ctx_0_30 = malloc(sizeof(*ctx_0_30))) == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ memcpy(ctx_0_30, compat_ctx, sizeof(*ctx_0_30)); ++ va_compat_translate_VADriverContext_0_30(compat, ctx_0_30); ++ compat->compat_ctx = ctx_0_30; ++ COPY_FIELD(ctx, ctx_0_30, version_major); ++ COPY_FIELD(ctx, ctx_0_30, version_minor); ++ COPY_FIELD(ctx, ctx_0_30, max_profiles); ++ COPY_FIELD(ctx, ctx_0_30, max_entrypoints); ++ COPY_FIELD(ctx, ctx_0_30, max_attributes); ++ COPY_FIELD(ctx, ctx_0_30, max_image_formats); ++ COPY_FIELD(ctx, ctx_0_30, max_subpic_formats); ++ COPY_FIELD(ctx, ctx_0_30, max_display_attributes); ++ COPY_FIELD(ctx, ctx_0_30, str_vendor); ++ break; ++ case VA_MINOR_VERSION: ++ va_compat_translate_VADriverContext(compat, compat_ctx); ++ compat->compat_ctx = compat_ctx; ++ break; ++ default: ++ ASSERT(compat_version == 0); ++ return VA_STATUS_ERROR_UNKNOWN; ++ } ++ ++ va_compat_init_VADriverVTable(ctx, compat_version); ++ return VA_STATUS_SUCCESS; ++} ++ ++VAStatus va_compat_fini(VADisplay dpy) ++{ ++ VADriverContextP ctx = CTX(dpy); ++ VACompatContextP compat = ctx->compat; ++ int i; ++ ++ if (compat == NULL) ++ return VA_STATUS_SUCCESS; ++ ++ if (compat->driver_name) ++ { ++ free(compat->driver_name); ++ compat->driver_name = NULL; ++ } ++ ++ if (compat->buffers) ++ { ++ for (i = 0; i < compat->buffers_count_max; i++) ++ { ++ if (compat->buffers[i].id) ++ va_DestroyBufferCompat(ctx, compat->buffers[i].id); ++ } ++ free(compat->buffers); ++ compat->buffers = NULL; ++ } ++ ++ if (compat->compat_ctx && compat->compat_version != VA_MINOR_VERSION) ++ { ++ free(compat->compat_ctx); ++ compat->compat_ctx = NULL; ++ } ++ ++ if (compat->context_map) ++ { ++ VAContextMapP d, m = compat->context_map; ++ while (m) { ++ d = m; ++ m = m->next; ++ free(d); ++ } ++ } ++ compat->last_context_map_match = NULL; ++ ++ free(compat); ++ ctx->compat = NULL; ++ return VA_STATUS_SUCCESS; ++} +diff -Naur libva-0.31.0/src/va_compat.h libva-0.31.0.patch/src/va_compat.h +--- libva-0.31.0/src/va_compat.h 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/va_compat.h 2009-10-12 02:43:29.538782382 +0200 +@@ -0,0 +1,1420 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#ifndef VA_COMPAT_H ++#define VA_COMPAT_H ++ ++VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx); ++VAStatus va_compat_fini(VADisplay dpy); ++ ++/* H.264 Picture (0.29) */ ++typedef struct _VAPictureH264_0_29 ++{ ++ VASurfaceID picture_id; ++ unsigned int flags; ++ unsigned int TopFieldOrderCnt; ++ unsigned int BottomFieldOrderCnt; ++} VAPictureH264_0_29; ++ ++/* H.264 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferH264_0_29 ++{ ++ VAPictureH264_0_29 CurrPic; ++ VAPictureH264_0_29 ReferenceFrames[16]; /* in DPB */ ++ unsigned short picture_width_in_mbs_minus1; ++ unsigned short picture_height_in_mbs_minus1; ++ unsigned char bit_depth_luma_minus8; ++ unsigned char bit_depth_chroma_minus8; ++ unsigned char num_ref_frames; ++ union { ++ struct { ++ unsigned char chroma_format_idc : 2; ++ unsigned char residual_colour_transform_flag : 1; ++ unsigned char frame_mbs_only_flag : 1; ++ unsigned char mb_adaptive_frame_field_flag : 1; ++ unsigned char direct_8x8_inference_flag : 1; ++ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ ++ }; ++ unsigned char seq_fields; ++ }; ++ unsigned char num_slice_groups_minus1; ++ unsigned char slice_group_map_type; ++ signed char pic_init_qp_minus26; ++ signed char chroma_qp_index_offset; ++ signed char second_chroma_qp_index_offset; ++ union { ++ struct { ++ unsigned char entropy_coding_mode_flag : 1; ++ unsigned char weighted_pred_flag : 1; ++ unsigned char weighted_bipred_idc : 2; ++ unsigned char transform_8x8_mode_flag : 1; ++ unsigned char field_pic_flag : 1; ++ unsigned char constrained_intra_pred_flag : 1; ++ }; ++ unsigned char pic_fields; ++ }; ++ unsigned short frame_num; ++} VAPictureParameterBufferH264_0_29; ++ ++/* H.264 Slice Parameter Buffer (0.29) */ ++typedef struct _VASliceParameterBufferH264_0_29 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ ++ unsigned short first_mb_in_slice; ++ unsigned char slice_type; ++ unsigned char direct_spatial_mv_pred_flag; ++ unsigned char num_ref_idx_l0_active_minus1; ++ unsigned char num_ref_idx_l1_active_minus1; ++ unsigned char cabac_init_idc; ++ char slice_qp_delta; ++ unsigned char disable_deblocking_filter_idc; ++ char slice_alpha_c0_offset_div2; ++ char slice_beta_offset_div2; ++ VAPictureH264_0_29 RefPicList0[32]; /* See 8.2.4.2 */ ++ VAPictureH264_0_29 RefPicList1[32]; /* See 8.2.4.2 */ ++ unsigned char luma_log2_weight_denom; ++ unsigned char chroma_log2_weight_denom; ++ unsigned char luma_weight_l0_flag; ++ short luma_weight_l0[32]; ++ short luma_offset_l0[32]; ++ unsigned char chroma_weight_l0_flag; ++ short chroma_weight_l0[32][2]; ++ short chroma_offset_l0[32][2]; ++ unsigned char luma_weight_l1_flag; ++ short luma_weight_l1[32]; ++ short luma_offset_l1[32]; ++ unsigned char chroma_weight_l1_flag; ++ short chroma_weight_l1[32][2]; ++ short chroma_offset_l1[32][2]; ++} VASliceParameterBufferH264_0_29; ++ ++/* VC-1 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferVC1_0_29 ++{ ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* if out-of-loop post-processing is done on the render ++ target, then we need to keep the in-loop decoded ++ picture as a reference picture */ ++ VASurfaceID inloop_decoded_picture; ++ ++ /* sequence layer for AP or meta data for SP and MP */ ++ union { ++ struct { ++ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ ++ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ ++ unsigned char overlap : 1;/* METADATA::OVERLAP */ ++ }; ++ unsigned char sequence_fields; ++ }; ++ ++ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ ++ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ ++ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ ++ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ ++ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ ++ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ ++ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ ++ union { ++ struct { ++ unsigned char range_mapping_luma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ ++ unsigned char range_mapping_luma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ ++ unsigned char range_mapping_chroma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ ++ unsigned char range_mapping_chroma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ ++ }; ++ unsigned char range_mapping_fields; ++ }; ++ ++ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ ++ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ ++ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ ++ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ ++ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ ++ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ ++ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ ++ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ ++ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ ++ union { ++ struct { ++ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ ++ unsigned char frame_coding_mode : 3;/* PICTURE_LAYER::FCM */ ++ unsigned char top_field_first : 1;/* PICTURE_LAYER::TFF */ ++ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ ++ unsigned char intensity_compensation: 1;/* PICTURE_LAYER::INTCOMP */ ++ }; ++ unsigned char picture_fields; ++ }; ++ union { ++ struct { ++ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ ++ }; ++ unsigned char raw_coding_flag; ++ }; ++ union { ++ struct { ++ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ ++ }; ++ unsigned char bitplane_present_flag; /* signal what bitplane is being passed via the bitplane buffer */ ++ }; ++ union { ++ struct { ++ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ ++ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ ++ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ ++ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ ++ }; ++ unsigned short reference_fields; ++ }; ++ union { ++ struct { ++ VAMvModeVC1 mv_mode : 3; /* PICTURE_LAYER::MVMODE */ ++ VAMvModeVC1 mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ ++ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ ++ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ ++ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ ++ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ ++ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ ++ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ ++ unsigned char extended_dmv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_DMV */ ++ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ ++ }; ++ unsigned int mv_fields; ++ }; ++ union { ++ struct { ++ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ ++ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ ++ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ ++ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ ++ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ ++ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ ++ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ ++ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ ++ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ ++ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ ++ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ ++ }; ++ unsigned long pic_quantizer_fields; ++ }; ++ union { ++ struct { ++ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ ++ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ ++ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ ++ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ ++ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ ++ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ ++ }; ++ unsigned short transform_fields; ++ }; ++} VAPictureParameterBufferVC1_0_29; ++ ++/* MPEG-2 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferMPEG2_0_29 ++{ ++ unsigned short horizontal_size; ++ unsigned short vertical_size; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* meanings of the following fields are the same as in the standard */ ++ int picture_coding_type; ++ int f_code; /* pack all four fcode into this */ ++ union { ++ struct { ++ unsigned char intra_dc_precision : 2; ++ unsigned char picture_structure : 2; ++ unsigned char top_field_first : 1; ++ unsigned char frame_pred_frame_dct : 1; ++ unsigned char concealment_motion_vectors : 1; ++ unsigned char q_scale_type : 1; ++ unsigned char intra_vlc_format : 1; ++ unsigned char alternate_scan : 1; ++ unsigned char repeat_first_field : 1; ++ unsigned char progressive_frame : 1; ++ unsigned char is_first_field : 1; /* indicate whether the current field ++ * is the first field for field picture ++ */ ++ }; ++ unsigned int picture_coding_extension; ++ }; ++} VAPictureParameterBufferMPEG2_0_29; ++ ++/* MPEG-2 Slice Parameter Buffer (0.29) */ ++typedef struct _VASliceParameterBufferMPEG2_0_29 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ ++ unsigned int slice_vertical_position; ++ int quantiser_scale_code; ++ int intra_slice_flag; ++} VASliceParameterBufferMPEG2_0_29; ++ ++/* MPEG-4 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferMPEG4_0_29 ++{ ++ unsigned short vop_width; ++ unsigned short vop_height; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ union { ++ struct { ++ unsigned char short_video_header : 1; ++ unsigned char chroma_format : 2; ++ unsigned char interlaced : 1; ++ unsigned char obmc_disable : 1; ++ unsigned char sprite_enable : 2; ++ unsigned char sprite_warping_accuracy : 2; ++ unsigned char quant_type : 1; ++ unsigned char quarter_sample : 1; ++ unsigned char data_partitioned : 1; ++ unsigned char reversible_vlc : 1; ++ }; ++ unsigned short vol_fields; ++ }; ++ unsigned char no_of_sprite_warping_points; ++ short sprite_trajectory_du[3]; ++ short sprite_trajectory_dv[3]; ++ unsigned char quant_precision; ++ union { ++ struct { ++ unsigned char vop_coding_type : 2; ++ unsigned char backward_reference_vop_coding_type : 2; ++ unsigned char vop_rounding_type : 1; ++ unsigned char intra_dc_vlc_thr : 3; ++ unsigned char top_field_first : 1; ++ unsigned char alternate_vertical_scan_flag : 1; ++ }; ++ unsigned short vop_fields; ++ }; ++ unsigned char vop_fcode_forward; ++ unsigned char vop_fcode_backward; ++ /* short header related */ ++ unsigned char num_gobs_in_vop; ++ unsigned char num_macroblocks_in_gob; ++ /* for direct mode prediction */ ++ short TRB; ++ short TRD; ++} VAPictureParameterBufferMPEG4_0_29; ++ ++/* H.264 Picture (0.30) */ ++typedef struct _VAPictureH264_0_30 ++{ ++ VASurfaceID picture_id; ++ unsigned int flags; ++ unsigned int TopFieldOrderCnt; ++ unsigned int BottomFieldOrderCnt; ++} VAPictureH264_0_30; ++ ++/* H.264 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferH264_0_30 ++{ ++ VAPictureH264 CurrPic; ++ VAPictureH264 ReferenceFrames[16]; /* in DPB */ ++ unsigned short picture_width_in_mbs_minus1; ++ unsigned short picture_height_in_mbs_minus1; ++ unsigned char bit_depth_luma_minus8; ++ unsigned char bit_depth_chroma_minus8; ++ unsigned char num_ref_frames; ++ union { ++ struct { ++ unsigned char chroma_format_idc : 2; ++ unsigned char residual_colour_transform_flag : 1; ++ unsigned char frame_mbs_only_flag : 1; ++ unsigned char mb_adaptive_frame_field_flag : 1; ++ unsigned char direct_8x8_inference_flag : 1; ++ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ ++ } bits; ++ unsigned char value; ++ } seq_fields; ++ unsigned char num_slice_groups_minus1; ++ unsigned char slice_group_map_type; ++ signed char pic_init_qp_minus26; ++ signed char chroma_qp_index_offset; ++ signed char second_chroma_qp_index_offset; ++ union { ++ struct { ++ unsigned char entropy_coding_mode_flag : 1; ++ unsigned char weighted_pred_flag : 1; ++ unsigned char weighted_bipred_idc : 2; ++ unsigned char transform_8x8_mode_flag : 1; ++ unsigned char field_pic_flag : 1; ++ unsigned char constrained_intra_pred_flag : 1; ++ } bits; ++ unsigned char value; ++ } pic_fields; ++ unsigned short frame_num; ++} VAPictureParameterBufferH264_0_30; ++ ++/* H.264 Slice Parameter Buffer (0.30) */ ++typedef struct _VASliceParameterBufferH264_0_30 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ ++ unsigned short first_mb_in_slice; ++ unsigned char slice_type; ++ unsigned char direct_spatial_mv_pred_flag; ++ unsigned char num_ref_idx_l0_active_minus1; ++ unsigned char num_ref_idx_l1_active_minus1; ++ unsigned char cabac_init_idc; ++ char slice_qp_delta; ++ unsigned char disable_deblocking_filter_idc; ++ char slice_alpha_c0_offset_div2; ++ char slice_beta_offset_div2; ++ VAPictureH264 RefPicList0[32]; /* See 8.2.4.2 */ ++ VAPictureH264 RefPicList1[32]; /* See 8.2.4.2 */ ++ unsigned char luma_log2_weight_denom; ++ unsigned char chroma_log2_weight_denom; ++ unsigned char luma_weight_l0_flag; ++ short luma_weight_l0[32]; ++ short luma_offset_l0[32]; ++ unsigned char chroma_weight_l0_flag; ++ short chroma_weight_l0[32][2]; ++ short chroma_offset_l0[32][2]; ++ unsigned char luma_weight_l1_flag; ++ short luma_weight_l1[32]; ++ short luma_offset_l1[32]; ++ unsigned char chroma_weight_l1_flag; ++ short chroma_weight_l1[32][2]; ++ short chroma_offset_l1[32][2]; ++} VASliceParameterBufferH264_0_30; ++ ++/* VC-1 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferVC1_0_30 ++{ ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* if out-of-loop post-processing is done on the render ++ target, then we need to keep the in-loop decoded ++ picture as a reference picture */ ++ VASurfaceID inloop_decoded_picture; ++ ++ /* sequence layer for AP or meta data for SP and MP */ ++ union { ++ struct { ++ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ ++ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ ++ unsigned char overlap : 1;/* METADATA::OVERLAP */ ++ } bits; ++ unsigned char value; ++ } sequence_fields; ++ ++ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ ++ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ ++ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ ++ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ ++ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ ++ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ ++ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ ++ union { ++ struct { ++ unsigned char luma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ ++ unsigned char luma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ ++ unsigned char chroma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ ++ unsigned char chroma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ ++ } bits; ++ unsigned char value; ++ } range_mapping_fields; ++ ++ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ ++ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ ++ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ ++ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ ++ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ ++ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ ++ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ ++ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ ++ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ ++ union { ++ struct { ++ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ ++ unsigned char frame_coding_mode : 3; /* PICTURE_LAYER::FCM */ ++ unsigned char top_field_first : 1; /* PICTURE_LAYER::TFF */ ++ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ ++ unsigned char intensity_compensation : 1; /* PICTURE_LAYER::INTCOMP */ ++ } bits; ++ unsigned char value; ++ } picture_fields; ++ union { ++ struct { ++ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ ++ } flags; ++ unsigned char value; ++ } raw_coding; ++ union { ++ struct { ++ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ ++ } flags; ++ unsigned char value; ++ } bitplane_present; /* signal what bitplane is being passed via the bitplane buffer */ ++ union { ++ struct { ++ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ ++ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ ++ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ ++ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ ++ } bits; ++ unsigned short value; ++ } reference_fields; ++ union { ++ struct { ++ unsigned char mv_mode : 3; /* PICTURE_LAYER::MVMODE */ ++ unsigned char mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ ++ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ ++ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ ++ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ ++ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ ++ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ ++ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ ++ unsigned char extended_dmv_flag : 1; /* ENTRY_POCHAR_LAYER::EXTENDED_DMV */ ++ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ ++ } bits; ++ unsigned int value; ++ } mv_fields; ++ union { ++ struct { ++ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ ++ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ ++ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ ++ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ ++ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ ++ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ ++ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ ++ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ ++ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ ++ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ ++ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ ++ } bits; ++ unsigned long value; ++ } pic_quantizer_fields; ++ union { ++ struct { ++ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ ++ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ ++ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ ++ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ ++ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ ++ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ ++ } bits; ++ unsigned short value; ++ } transform_fields; ++} VAPictureParameterBufferVC1_0_30; ++ ++/* MPEG-2 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferMPEG2_0_30 ++{ ++ unsigned short horizontal_size; ++ unsigned short vertical_size; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* meanings of the following fields are the same as in the standard */ ++ int picture_coding_type; ++ int f_code; /* pack all four fcode into this */ ++ union { ++ struct { ++ unsigned int intra_dc_precision : 2; ++ unsigned int picture_structure : 2; ++ unsigned int top_field_first : 1; ++ unsigned int frame_pred_frame_dct : 1; ++ unsigned int concealment_motion_vectors : 1; ++ unsigned int q_scale_type : 1; ++ unsigned int intra_vlc_format : 1; ++ unsigned int alternate_scan : 1; ++ unsigned int repeat_first_field : 1; ++ unsigned int progressive_frame : 1; ++ unsigned int is_first_field : 1; /* indicate whether the current field ++ * is the first field for field picture ++ */ ++ } bits; ++ unsigned int value; ++ } picture_coding_extension; ++} VAPictureParameterBufferMPEG2_0_30; ++ ++/* MPEG-2 Slice Parameter Buffer (0.29) */ ++typedef VASliceParameterBufferMPEG2_0_29 VASliceParameterBufferMPEG2_0_30; ++ ++/* MPEG-4 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferMPEG4_0_30 ++{ ++ unsigned short vop_width; ++ unsigned short vop_height; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ union { ++ struct { ++ unsigned char short_video_header : 1; ++ unsigned char chroma_format : 2; ++ unsigned char interlaced : 1; ++ unsigned char obmc_disable : 1; ++ unsigned char sprite_enable : 2; ++ unsigned char sprite_warping_accuracy : 2; ++ unsigned char quant_type : 1; ++ unsigned char quarter_sample : 1; ++ unsigned char data_partitioned : 1; ++ unsigned char reversible_vlc : 1; ++ } bits; ++ unsigned short value; ++ } vol_fields; ++ unsigned char no_of_sprite_warping_points; ++ short sprite_trajectory_du[3]; ++ short sprite_trajectory_dv[3]; ++ unsigned char quant_precision; ++ union { ++ struct { ++ unsigned char vop_coding_type : 2; ++ unsigned char backward_reference_vop_coding_type : 2; ++ unsigned char vop_rounding_type : 1; ++ unsigned char intra_dc_vlc_thr : 3; ++ unsigned char top_field_first : 1; ++ unsigned char alternate_vertical_scan_flag : 1; ++ } bits; ++ unsigned short value; ++ } vop_fields; ++ unsigned char vop_fcode_forward; ++ unsigned char vop_fcode_backward; ++ /* short header related */ ++ unsigned char num_gobs_in_vop; ++ unsigned char num_macroblocks_in_gob; ++ /* for direct mode prediction */ ++ short TRB; ++ short TRD; ++} VAPictureParameterBufferMPEG4_0_30; ++ ++/* Encode Slice Parameter Buffer (0.30) */ ++typedef struct _VAEncSliceParameterBuffer_0_30 ++{ ++ unsigned int start_row_number; /* starting MB row number for this slice */ ++ unsigned int slice_height; /* slice height measured in MB */ ++ union { ++ struct { ++ unsigned char is_intra : 1; ++ unsigned char disable_deblocking_filter_idc : 2; ++ } bits; ++ unsigned char value; ++ } slice_flags; ++} VAEncSliceParameterBuffer_0_30; ++ ++typedef struct VADriverContext_0_29 *VADriverContextP_0_29; ++ ++/* Driver VTable (0.29) */ ++struct VADriverVTable_0_29 ++{ ++ VAStatus (*vaTerminate) ( VADriverContextP_0_29 ctx ); ++ ++ VAStatus (*vaQueryConfigProfiles) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile *profile_list, /* out */ ++ int *num_profiles /* out */ ++ ); ++ ++ VAStatus (*vaQueryConfigEntrypoints) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile profile, ++ VAEntrypoint *entrypoint_list, /* out */ ++ int *num_entrypoints /* out */ ++ ); ++ ++ VAStatus (*vaGetConfigAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, /* in/out */ ++ int num_attribs ++ ); ++ ++ VAStatus (*vaCreateConfig) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, ++ int num_attribs, ++ VAConfigID *config_id /* out */ ++ ); ++ ++ VAStatus (*vaDestroyConfig) ( ++ VADriverContextP_0_29 ctx, ++ VAConfigID config_id ++ ); ++ ++ VAStatus (*vaQueryConfigAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VAConfigID config_id, ++ VAProfile *profile, /* out */ ++ VAEntrypoint *entrypoint, /* out */ ++ VAConfigAttrib *attrib_list, /* out */ ++ int *num_attribs /* out */ ++ ); ++ ++ VAStatus (*vaCreateSurfaces) ( ++ VADriverContextP_0_29 ctx, ++ int width, ++ int height, ++ int format, ++ int num_surfaces, ++ VASurfaceID *surfaces /* out */ ++ ); ++ ++ VAStatus (*vaDestroySurfaces) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID *surface_list, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaCreateContext) ( ++ VADriverContextP_0_29 ctx, ++ VAConfigID config_id, ++ int picture_width, ++ int picture_height, ++ int flag, ++ VASurfaceID *render_targets, ++ int num_render_targets, ++ VAContextID *context /* out */ ++ ); ++ ++ VAStatus (*vaDestroyContext) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaCreateBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, /* in */ ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++ ); ++ ++ VAStatus (*vaBufferSetNumElements) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++ ); ++ ++ VAStatus (*vaMapBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++ ); ++ ++ VAStatus (*vaUnmapBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buf_id /* in */ ++ ); ++ ++ VAStatus (*vaDestroyBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buffer_id ++ ); ++ ++ VAStatus (*vaBeginPicture) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaRenderPicture) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++ ); ++ ++ VAStatus (*vaEndPicture) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaSyncSurface) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaQuerySurfaceStatus) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID render_target, ++ VASurfaceStatus *status /* out */ ++ ); ++ ++ VAStatus (*vaPutSurface) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ unsigned long draw, /* X Drawable */ ++ short srcx, ++ short srcy, ++ unsigned short srcw, ++ unsigned short srch, ++ short destx, ++ short desty, ++ unsigned short destw, ++ unsigned short desth, ++ VARectangle *cliprects, /* client supplied clip list */ ++ unsigned int number_cliprects, /* number of clip rects in the clip list */ ++ unsigned int flags /* de-interlacing flags */ ++ ); ++ ++ VAStatus (*vaQueryImageFormats) ( ++ VADriverContextP_0_29 ctx, ++ VAImageFormat *format_list, /* out */ ++ int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateImage) ( ++ VADriverContextP_0_29 ctx, ++ VAImageFormat *format, ++ int width, ++ int height, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDeriveImage) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDestroyImage) ( ++ VADriverContextP_0_29 ctx, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetImagePalette) ( ++ VADriverContextP_0_29 ctx, ++ VAImageID image, ++ /* ++ * pointer to an array holding the palette data. The size of the array is ++ * num_palette_entries * entry_bytes in size. The order of the components ++ * in the palette is described by the component_order in VAImage struct ++ */ ++ unsigned char *palette ++ ); ++ ++ VAStatus (*vaGetImage) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ int x, /* coordinates of the upper left source pixel */ ++ int y, ++ unsigned int width, /* width and height of the region */ ++ unsigned int height, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaPutImage) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int width, ++ unsigned int height, ++ int dest_x, ++ int dest_y ++ ); ++ ++ VAStatus (*vaPutImage2) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height ++ ); ++ ++ VAStatus (*vaQuerySubpictureFormats) ( ++ VADriverContextP_0_29 ctx, ++ VAImageFormat *format_list, /* out */ ++ unsigned int *flags, /* out */ ++ unsigned int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateSubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VAImageID image, ++ VASubpictureID *subpicture /* out */ ++ ); ++ ++ VAStatus (*vaDestroySubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture ++ ); ++ ++ VAStatus (*vaSetSubpictureImage) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetSubpicturePalette) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ /* ++ * pointer to an array holding the palette data. The size of the array is ++ * num_palette_entries * entry_bytes in size. The order of the components ++ * in the palette is described by the component_order in VASubpicture struct ++ */ ++ unsigned char *palette ++ ); ++ ++ VAStatus (*vaSetSubpictureChromakey) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask ++ ); ++ ++ VAStatus (*vaSetSubpictureGlobalAlpha) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ float global_alpha ++ ); ++ ++ VAStatus (*vaAssociateSubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short width, ++ unsigned short height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaAssociateSubpicture2) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ unsigned short src_width, ++ unsigned short src_height, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short dest_width, ++ unsigned short dest_height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaDeassociateSubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaQueryDisplayAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VADisplayAttribute *attr_list, /* out */ ++ int *num_attributes /* out */ ++ ); ++ ++ VAStatus (*vaGetDisplayAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VADisplayAttribute *attr_list, /* in/out */ ++ int num_attributes ++ ); ++ ++ VAStatus (*vaSetDisplayAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VADisplayAttribute *attr_list, ++ int num_attributes ++ ); ++ ++ ++ VAStatus (*vaDbgCopySurfaceToBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ void **buffer, /* out */ ++ unsigned int *stride /* out */ ++ ); ++}; ++ ++/* Driver context (0.29) */ ++struct VADriverContext_0_29 ++{ ++ void *old_pNext; /* preserved for binary compatibility */ ++ ++ void *pDriverData; ++ struct VADriverVTable_0_29 vtable; ++ ++ void *x11_dpy; ++ int x11_screen; ++ ++ int version_major; ++ int version_minor; ++ int max_profiles; ++ int max_entrypoints; ++ int max_attributes; ++ int max_image_formats; ++ int max_subpic_formats; ++ int max_display_attributes; ++ const char *str_vendor; ++ ++ void *handle; /* dlopen handle */ ++}; ++ ++/* Forward declarations for VA API 0.30 */ ++struct v4l2_format; ++struct v4l2_buffer; ++typedef struct VADriverContext_0_30 *VADriverContextP_0_30; ++ ++/* Driver VTable (0.30) */ ++struct VADriverVTable_0_30 ++{ ++ VAStatus (*vaTerminate) ( VADriverContextP_0_30 ctx ); ++ ++ VAStatus (*vaQueryConfigProfiles) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile *profile_list, /* out */ ++ int *num_profiles /* out */ ++ ); ++ ++ VAStatus (*vaQueryConfigEntrypoints) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile profile, ++ VAEntrypoint *entrypoint_list, /* out */ ++ int *num_entrypoints /* out */ ++ ); ++ ++ VAStatus (*vaGetConfigAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, /* in/out */ ++ int num_attribs ++ ); ++ ++ VAStatus (*vaCreateConfig) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, ++ int num_attribs, ++ VAConfigID *config_id /* out */ ++ ); ++ ++ VAStatus (*vaDestroyConfig) ( ++ VADriverContextP_0_30 ctx, ++ VAConfigID config_id ++ ); ++ ++ VAStatus (*vaQueryConfigAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VAConfigID config_id, ++ VAProfile *profile, /* out */ ++ VAEntrypoint *entrypoint, /* out */ ++ VAConfigAttrib *attrib_list, /* out */ ++ int *num_attribs /* out */ ++ ); ++ ++ VAStatus (*vaCreateSurfaces) ( ++ VADriverContextP_0_30 ctx, ++ int width, ++ int height, ++ int format, ++ int num_surfaces, ++ VASurfaceID *surfaces /* out */ ++ ); ++ ++ VAStatus (*vaDestroySurfaces) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID *surface_list, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaCreateContext) ( ++ VADriverContextP_0_30 ctx, ++ VAConfigID config_id, ++ int picture_width, ++ int picture_height, ++ int flag, ++ VASurfaceID *render_targets, ++ int num_render_targets, ++ VAContextID *context /* out */ ++ ); ++ ++ VAStatus (*vaDestroyContext) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaCreateBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, /* in */ ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++ ); ++ ++ VAStatus (*vaBufferSetNumElements) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++ ); ++ ++ VAStatus (*vaMapBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++ ); ++ ++ VAStatus (*vaUnmapBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buf_id /* in */ ++ ); ++ ++ VAStatus (*vaDestroyBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buffer_id ++ ); ++ ++ VAStatus (*vaBeginPicture) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaRenderPicture) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++ ); ++ ++ VAStatus (*vaEndPicture) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaSyncSurface) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaQuerySurfaceStatus) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID render_target, ++ VASurfaceStatus *status /* out */ ++ ); ++ ++ VAStatus (*vaPutSurface) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ unsigned long draw, /* X Drawable */ ++ short srcx, ++ short srcy, ++ unsigned short srcw, ++ unsigned short srch, ++ short destx, ++ short desty, ++ unsigned short destw, ++ unsigned short desth, ++ VARectangle *cliprects, /* client supplied clip list */ ++ unsigned int number_cliprects, /* number of clip rects in the clip list */ ++ unsigned int flags /* de-interlacing flags */ ++ ); ++ ++ VAStatus (*vaQueryImageFormats) ( ++ VADriverContextP_0_30 ctx, ++ VAImageFormat *format_list, /* out */ ++ int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateImage) ( ++ VADriverContextP_0_30 ctx, ++ VAImageFormat *format, ++ int width, ++ int height, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDeriveImage) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDestroyImage) ( ++ VADriverContextP_0_30 ctx, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetImagePalette) ( ++ VADriverContextP_0_30 ctx, ++ VAImageID image, ++ /* ++ * pointer to an array holding the palette data. The size of the array is ++ * num_palette_entries * entry_bytes in size. The order of the components ++ * in the palette is described by the component_order in VAImage struct ++ */ ++ unsigned char *palette ++ ); ++ ++ VAStatus (*vaGetImage) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ int x, /* coordinates of the upper left source pixel */ ++ int y, ++ unsigned int width, /* width and height of the region */ ++ unsigned int height, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaPutImage) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int width, ++ unsigned int height, ++ int dest_x, ++ int dest_y ++ ); ++ ++ VAStatus (*vaPutImage2) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height ++ ); ++ ++ VAStatus (*vaQuerySubpictureFormats) ( ++ VADriverContextP_0_30 ctx, ++ VAImageFormat *format_list, /* out */ ++ unsigned int *flags, /* out */ ++ unsigned int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateSubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VAImageID image, ++ VASubpictureID *subpicture /* out */ ++ ); ++ ++ VAStatus (*vaDestroySubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture ++ ); ++ ++ VAStatus (*vaSetSubpictureImage) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetSubpictureChromakey) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask ++ ); ++ ++ VAStatus (*vaSetSubpictureGlobalAlpha) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ float global_alpha ++ ); ++ ++ VAStatus (*vaAssociateSubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short width, ++ unsigned short height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaAssociateSubpicture2) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ unsigned short src_width, ++ unsigned short src_height, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short dest_width, ++ unsigned short dest_height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaDeassociateSubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaQueryDisplayAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VADisplayAttribute *attr_list, /* out */ ++ int *num_attributes /* out */ ++ ); ++ ++ VAStatus (*vaGetDisplayAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VADisplayAttribute *attr_list, /* in/out */ ++ int num_attributes ++ ); ++ ++ VAStatus (*vaSetDisplayAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VADisplayAttribute *attr_list, ++ int num_attributes ++ ); ++ ++ /* device specific */ ++ VAStatus (*vaCreateSurfaceFromCIFrame) ( ++ VADriverContextP_0_30 ctx, ++ unsigned long frame_id, ++ VASurfaceID *surface /* out */ ++ ); ++ ++ ++ VAStatus (*vaCreateSurfaceFromV4L2Buf) ( ++ VADriverContextP_0_30 ctx, ++ int v4l2_fd, /* file descriptor of V4L2 device */ ++ struct v4l2_format *v4l2_fmt, /* format of V4L2 */ ++ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ ++ VASurfaceID *surface /* out */ ++ ); ++ ++ VAStatus (*vaCopySurfaceToBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ unsigned int *fourcc, /* out for follow argument */ ++ unsigned int *luma_stride, ++ unsigned int *chroma_u_stride, ++ unsigned int *chroma_v_stride, ++ unsigned int *luma_offset, ++ unsigned int *chroma_u_offset, ++ unsigned int *chroma_v_offset, ++ void **buffer ++ ); ++}; ++ ++/* Driver context (0.30) */ ++struct VADriverContext_0_30 ++{ ++ void *pDriverData; ++ struct VADriverVTable_0_30 vtable; ++ ++ void *x11_dpy; ++ int x11_screen; ++ int version_major; ++ int version_minor; ++ int max_profiles; ++ int max_entrypoints; ++ int max_attributes; ++ int max_image_formats; ++ int max_subpic_formats; ++ int max_display_attributes; ++ const char *str_vendor; ++ ++ void *handle; /* dlopen handle */ ++ ++ void *dri_state; ++}; ++ ++/* Driver VTable and context (0.31) */ ++#define VADriverVTable_0_31 VADriverVTable ++#define VADriverContext_0_31 VADriverContext ++ ++#endif /* VA_COMPAT_H */ +diff -Naur libva-0.31.0/src/va_compat_template.h libva-0.31.0.patch/src/va_compat_template.h +--- libva-0.31.0/src/va_compat_template.h 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/va_compat_template.h 2009-10-12 02:43:29.539782250 +0200 +@@ -0,0 +1,539 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#undef CONCAT_ ++#define CONCAT_(x, y) x##y ++#undef CONCAT ++#define CONCAT(x, y) CONCAT_(x, y) ++#undef MKCOMPAT_ ++#define MKCOMPAT_(NAME,MINOR) CONCAT(CONCAT(NAME,_0_),MINOR) ++#undef MKCOMPAT ++#define MKCOMPAT(NAME) MKCOMPAT_(NAME,COMPAT_MINOR) ++#undef STRUCT ++#define STRUCT(BUFFER, CODEC) MKCOMPAT(VA##BUFFER##Buffer##CODEC) ++#undef TRANSLATE_1 ++#define TRANSLATE_1(NAME) CONCAT(va_compat_translate_,NAME) ++#undef TRANSLATE_ ++#define TRANSLATE_(NAME) TRANSLATE_1(MKCOMPAT(NAME)) ++#undef TRANSLATE ++#define TRANSLATE(BUFFER, CODEC) TRANSLATE_1(STRUCT(BUFFER,CODEC)) ++ ++#undef COPY_ARRAY ++#define COPY_ARRAY(DST, SRC, ARRAY) \ ++ memcpy((DST)->ARRAY, (SRC)->ARRAY, sizeof((DST)->ARRAY)) ++ ++#undef COPY_FIELD ++#define COPY_FIELD(DST, SRC, MEMBER) \ ++ (DST)->MEMBER = (SRC)->MEMBER ++ ++#undef COPY_VTABLE__ ++#define COPY_VTABLE__(DST, DST_MEMBER, SRC, SRC_MEMBER) \ ++ (DST##_vtable)->DST_MEMBER = (SRC##_vtable)->SRC_MEMBER ++ ++#undef COPY_VTABLE_ ++#define COPY_VTABLE_(DST, DST_SUFFIX, SRC, MEMBER) \ ++ COPY_VTABLE__(DST, MEMBER##_##DST_SUFFIX, SRC, MEMBER) ++ ++#undef COPY_VTABLE ++#define COPY_VTABLE(DST, SRC, MEMBER) \ ++ COPY_VTABLE__(DST, MEMBER, SRC, MEMBER) ++ ++/* 0.29 */ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 ++#undef BFV ++#define BFV(a, b) a ++#undef BFM ++#define BFM(a, b, c) c ++#undef COPY_BIT_FIELD ++#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ ++ (DST)->MEMBER = (SRC)->FIELD.bits.MEMBER ++#undef COPY_BIT_FLAG ++#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ ++ (DST)->MEMBER = (SRC)->FIELD.flags.MEMBER ++#endif ++ ++/* 0.29 glue to match 0.30 names */ ++#undef M_raw_coding ++#undef M_bitplane_present ++#undef M_luma_flag ++#undef M_luma ++#undef M_chroma_flag ++#undef M_chroma ++ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 ++#define M_raw_coding raw_coding_flag ++#define M_bitplane_present bitplane_present_flag ++#define M_luma_flag range_mapping_luma_flag ++#define M_luma range_mapping_luma ++#define M_chroma_flag range_mapping_chroma_flag ++#define M_chroma range_mapping_chroma ++#else ++#define M_raw_coding raw_coding ++#define M_bitplane_present bitplane_present ++#define M_luma_flag luma_flag ++#define M_luma luma ++#define M_chroma_flag chroma_flag ++#define M_chroma chroma ++#endif ++ ++/* 0.30 */ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 ++#undef BFV ++#define BFV(a, b) a.b ++#undef BFM ++#define BFM(a, b, c) a.b.c ++#undef COPY_BIT_FIELD ++#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ ++ (DST)->FIELD.bits.MEMBER = (SRC)->FIELD.bits.MEMBER ++#undef COPY_BIT_FLAG ++#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ ++ (DST)->FIELD.flags.MEMBER = (SRC)->FIELD.flags.MEMBER ++#endif ++ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR < 31 ++static VAStatus TRANSLATE_(VAPictureH264)( ++ VACompatContextP ctx, ++ void *dest_pic, ++ const void *src_pic ++) ++{ ++ MKCOMPAT(VAPictureH264) *dest = dest_pic; ++ const VAPictureH264 *src = src_pic; ++ ++ COPY_FIELD(dest, src, picture_id); ++ COPY_FIELD(dest, src, flags); ++ COPY_FIELD(dest, src, TopFieldOrderCnt); ++ COPY_FIELD(dest, src, BottomFieldOrderCnt); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(PictureParameter,H264)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,H264) *dest = dest_buffer; ++ const VAPictureParameterBufferH264 *src = src_buffer; ++ VAStatus status; ++ int i; ++ ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->CurrPic, &src->CurrPic); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ for (i = 0; i < 16; i++) { ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->ReferenceFrames[i], ++ &src->ReferenceFrames[i]); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ COPY_FIELD(dest, src, picture_width_in_mbs_minus1); ++ COPY_FIELD(dest, src, picture_height_in_mbs_minus1); ++ COPY_FIELD(dest, src, bit_depth_luma_minus8); ++ COPY_FIELD(dest, src, bit_depth_chroma_minus8); ++ COPY_FIELD(dest, src, num_ref_frames); ++ dest->BFV(seq_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, seq_fields, chroma_format_idc); ++ COPY_BIT_FIELD(dest, src, seq_fields, residual_colour_transform_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, frame_mbs_only_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, mb_adaptive_frame_field_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, direct_8x8_inference_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, MinLumaBiPredSize8x8); ++ COPY_FIELD(dest, src, num_slice_groups_minus1); ++ COPY_FIELD(dest, src, slice_group_map_type); ++ COPY_FIELD(dest, src, pic_init_qp_minus26); ++ COPY_FIELD(dest, src, chroma_qp_index_offset); ++ COPY_FIELD(dest, src, second_chroma_qp_index_offset); ++ dest->BFV(pic_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, pic_fields, entropy_coding_mode_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, weighted_pred_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, weighted_bipred_idc); ++ COPY_BIT_FIELD(dest, src, pic_fields, transform_8x8_mode_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, field_pic_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, constrained_intra_pred_flag); ++ COPY_FIELD(dest, src, frame_num); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(SliceParameter,H264)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(SliceParameter,H264) *dest = dest_buffer; ++ const VASliceParameterBufferH264 *src = src_buffer; ++ VAStatus status; ++ int i; ++ ++ COPY_FIELD(dest, src, slice_data_size); ++ COPY_FIELD(dest, src, slice_data_offset); ++ COPY_FIELD(dest, src, slice_data_flag); ++ COPY_FIELD(dest, src, slice_data_bit_offset); ++ COPY_FIELD(dest, src, first_mb_in_slice); ++ COPY_FIELD(dest, src, slice_type); ++ COPY_FIELD(dest, src, direct_spatial_mv_pred_flag); ++ COPY_FIELD(dest, src, num_ref_idx_l0_active_minus1); ++ COPY_FIELD(dest, src, num_ref_idx_l1_active_minus1); ++ COPY_FIELD(dest, src, cabac_init_idc); ++ COPY_FIELD(dest, src, slice_qp_delta); ++ COPY_FIELD(dest, src, disable_deblocking_filter_idc); ++ COPY_FIELD(dest, src, slice_alpha_c0_offset_div2); ++ COPY_FIELD(dest, src, slice_beta_offset_div2); ++ for (i = 0; i < 32; i++) { ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->RefPicList0[i], ++ &src->RefPicList0[i]); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->RefPicList1[i], ++ &src->RefPicList1[i]); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ COPY_FIELD(dest, src, luma_log2_weight_denom); ++ COPY_FIELD(dest, src, chroma_log2_weight_denom); ++ COPY_FIELD(dest, src, luma_weight_l0_flag); ++ COPY_ARRAY(dest, src, luma_weight_l0); ++ COPY_ARRAY(dest, src, luma_offset_l0); ++ COPY_FIELD(dest, src, chroma_weight_l0_flag); ++ COPY_ARRAY(dest, src, chroma_weight_l0); ++ COPY_ARRAY(dest, src, chroma_offset_l0); ++ COPY_FIELD(dest, src, luma_weight_l1_flag); ++ COPY_ARRAY(dest, src, luma_weight_l1); ++ COPY_ARRAY(dest, src, luma_offset_l1); ++ COPY_FIELD(dest, src, chroma_weight_l1_flag); ++ COPY_ARRAY(dest, src, chroma_weight_l1); ++ COPY_ARRAY(dest, src, chroma_offset_l1); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(PictureParameter,VC1)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,VC1) *dest = dest_buffer; ++ const VAPictureParameterBufferVC1 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, forward_reference_picture); ++ COPY_FIELD(dest, src, backward_reference_picture); ++ COPY_FIELD(dest, src, inloop_decoded_picture); ++ dest->BFV(sequence_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, sequence_fields, interlace); ++ COPY_BIT_FIELD(dest, src, sequence_fields, syncmarker); ++ COPY_BIT_FIELD(dest, src, sequence_fields, overlap); ++ COPY_FIELD(dest, src, coded_width); ++ COPY_FIELD(dest, src, coded_height); ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 ++ dest->closed_entry = src->entrypoint_fields.bits.closed_entry; ++ dest->broken_link = src->entrypoint_fields.bits.broken_link; ++ dest->loopfilter = src->entrypoint_fields.bits.loopfilter; ++#else ++ COPY_BIT_FIELD(dest, src, entrypoint_fields, closed_entry); ++ COPY_BIT_FIELD(dest, src, entrypoint_fields, broken_link); ++ COPY_BIT_FIELD(dest, src, entrypoint_fields, loopfilter); ++#endif ++ COPY_FIELD(dest, src, conditional_overlap_flag); ++ COPY_FIELD(dest, src, fast_uvmc_flag); ++ dest->BFV(range_mapping_fields, value) = 0; /* reset all bits */ ++ dest->BFM(range_mapping_fields, bits, M_luma_flag) = ++ src->range_mapping_fields.bits.luma_flag; ++ dest->BFM(range_mapping_fields, bits, M_luma) = ++ src->range_mapping_fields.bits.luma; ++ dest->BFM(range_mapping_fields, bits, M_chroma_flag) = ++ src->range_mapping_fields.bits.chroma_flag; ++ dest->BFM(range_mapping_fields, bits, M_chroma) = ++ src->range_mapping_fields.bits.chroma; ++ COPY_FIELD(dest, src, b_picture_fraction); ++ COPY_FIELD(dest, src, cbp_table); ++ COPY_FIELD(dest, src, mb_mode_table); ++ COPY_FIELD(dest, src, range_reduction_frame); ++ COPY_FIELD(dest, src, rounding_control); ++ COPY_FIELD(dest, src, post_processing); ++ COPY_FIELD(dest, src, picture_resolution_index); ++ COPY_FIELD(dest, src, luma_scale); ++ COPY_FIELD(dest, src, luma_shift); ++ dest->BFV(picture_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, picture_fields, picture_type); ++ COPY_BIT_FIELD(dest, src, picture_fields, frame_coding_mode); ++ COPY_BIT_FIELD(dest, src, picture_fields, top_field_first); ++ COPY_BIT_FIELD(dest, src, picture_fields, is_first_field); ++ COPY_BIT_FIELD(dest, src, picture_fields, intensity_compensation); ++ dest->BFV(M_raw_coding, value) = 0; /* reset all bits */ ++ COPY_BIT_FLAG(dest, src, raw_coding, mv_type_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, direct_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, skip_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, field_tx); ++ COPY_BIT_FLAG(dest, src, raw_coding, forward_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, ac_pred); ++ COPY_BIT_FLAG(dest, src, raw_coding, overflags); ++ dest->BFV(M_bitplane_present, value) = 0; /* reset all bits */ ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_mv_type_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_direct_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_skip_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_field_tx); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_forward_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_ac_pred); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_overflags); ++ dest->BFV(reference_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance_flag); ++ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance); ++ COPY_BIT_FIELD(dest, src, reference_fields, num_reference_pictures); ++ COPY_BIT_FIELD(dest, src, reference_fields, reference_field_pic_indicator); ++ dest->BFV(mv_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode); ++ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode2); ++ COPY_BIT_FIELD(dest, src, mv_fields, mv_table); ++ COPY_BIT_FIELD(dest, src, mv_fields, two_mv_block_pattern_table); ++ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_switch); ++ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_block_pattern_table); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_flag); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_range); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_flag); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_range); ++ dest->BFV(pic_quantizer_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dquant); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, quantizer); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, half_qp); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_scale); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_type); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_frame); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_profile); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_sb_edge); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_db_edge); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_binary_level); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, alt_pic_quantizer); ++ dest->BFV(transform_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, transform_fields, variable_sized_transform_flag); ++ COPY_BIT_FIELD(dest, src, transform_fields, mb_level_transform_type_flag); ++ COPY_BIT_FIELD(dest, src, transform_fields, frame_level_transform_type); ++ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx1); ++ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx2); ++ COPY_BIT_FIELD(dest, src, transform_fields, intra_transform_dc_table); ++ ++ if (src->picture_fields.bits.picture_type == 4) { ++ dest->BFM(picture_fields, bits, picture_type) = 1; /* P-frame */ ++ ctx->skip_frame = 1; ++ } ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(PictureParameter,MPEG2)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,MPEG2) *dest = dest_buffer; ++ const VAPictureParameterBufferMPEG2 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, horizontal_size); ++ COPY_FIELD(dest, src, vertical_size); ++ COPY_FIELD(dest, src, forward_reference_picture); ++ COPY_FIELD(dest, src, backward_reference_picture); ++ COPY_FIELD(dest, src, picture_coding_type); ++ COPY_FIELD(dest, src, f_code); ++ dest->BFV(picture_coding_extension, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_dc_precision); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, picture_structure); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, top_field_first); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, frame_pred_frame_dct); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, concealment_motion_vectors); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, q_scale_type); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_vlc_format); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, alternate_scan); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, repeat_first_field); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, progressive_frame); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, is_first_field); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(SliceParameter,MPEG2)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(SliceParameter,MPEG2) *dest = dest_buffer; ++ const VASliceParameterBufferMPEG2 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, slice_data_size); ++ COPY_FIELD(dest, src, slice_data_offset); ++ COPY_FIELD(dest, src, slice_data_flag); ++ COPY_FIELD(dest, src, macroblock_offset); ++ COPY_FIELD(dest, src, slice_vertical_position); ++ COPY_FIELD(dest, src, quantiser_scale_code); ++ COPY_FIELD(dest, src, intra_slice_flag); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(PictureParameter,MPEG4)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,MPEG4) *dest = dest_buffer; ++ const VAPictureParameterBufferMPEG4 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, vop_width); ++ COPY_FIELD(dest, src, vop_height); ++ COPY_FIELD(dest, src, forward_reference_picture); ++ COPY_FIELD(dest, src, backward_reference_picture); ++ dest->BFV(vol_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, vol_fields, short_video_header); ++ COPY_BIT_FIELD(dest, src, vol_fields, chroma_format); ++ COPY_BIT_FIELD(dest, src, vol_fields, interlaced); ++ COPY_BIT_FIELD(dest, src, vol_fields, obmc_disable); ++ COPY_BIT_FIELD(dest, src, vol_fields, sprite_enable); ++ COPY_BIT_FIELD(dest, src, vol_fields, sprite_warping_accuracy); ++ COPY_BIT_FIELD(dest, src, vol_fields, quant_type); ++ COPY_BIT_FIELD(dest, src, vol_fields, quarter_sample); ++ COPY_BIT_FIELD(dest, src, vol_fields, data_partitioned); ++ COPY_BIT_FIELD(dest, src, vol_fields, reversible_vlc); ++ COPY_FIELD(dest, src, no_of_sprite_warping_points); ++ COPY_ARRAY(dest, src, sprite_trajectory_du); ++ COPY_ARRAY(dest, src, sprite_trajectory_dv); ++ COPY_FIELD(dest, src, quant_precision); ++ dest->BFV(vop_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, vop_fields, vop_coding_type); ++ COPY_BIT_FIELD(dest, src, vop_fields, backward_reference_vop_coding_type); ++ COPY_BIT_FIELD(dest, src, vop_fields, vop_rounding_type); ++ COPY_BIT_FIELD(dest, src, vop_fields, intra_dc_vlc_thr); ++ COPY_BIT_FIELD(dest, src, vop_fields, top_field_first); ++ COPY_BIT_FIELD(dest, src, vop_fields, alternate_vertical_scan_flag); ++ COPY_FIELD(dest, src, vop_fcode_forward); ++ COPY_FIELD(dest, src, vop_fcode_backward); ++ COPY_FIELD(dest, src, num_gobs_in_vop); ++ COPY_FIELD(dest, src, num_macroblocks_in_gob); ++ COPY_FIELD(dest, src, TRB); ++ COPY_FIELD(dest, src, TRD); ++ ++ return VA_STATUS_SUCCESS; ++} ++#endif ++ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 ++static VAStatus TRANSLATE_(VAEncSliceParameterBuffer)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ MKCOMPAT(VAEncSliceParameterBuffer) * const dest = dest_buffer; ++ const VAEncSliceParameterBuffer * const src = src_buffer; ++ ++ COPY_FIELD(dest, src, start_row_number); ++ COPY_FIELD(dest, src, slice_height); ++ dest->BFV(slice_flags, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, slice_flags, is_intra); ++ COPY_BIT_FIELD(dest, src, slice_flags, disable_deblocking_filter_idc); ++ ++ return VA_STATUS_SUCCESS; ++} ++#endif ++ ++static void TRANSLATE_(VADriverContext)( ++ VACompatContext *dest, ++ const struct MKCOMPAT(VADriverContext) *src ++) ++{ ++ VACompatDriverVTable *dest_vtable = &dest->vtable; ++ const struct MKCOMPAT(VADriverVTable) *src_vtable = &src->vtable; ++ ++ memset(dest_vtable, 0, sizeof(*dest_vtable)); ++ COPY_VTABLE(dest, src, vaTerminate); ++ COPY_VTABLE(dest, src, vaQueryConfigProfiles); ++ COPY_VTABLE(dest, src, vaQueryConfigEntrypoints); ++ COPY_VTABLE(dest, src, vaGetConfigAttributes); ++ COPY_VTABLE(dest, src, vaCreateConfig); ++ COPY_VTABLE(dest, src, vaDestroyConfig); ++ COPY_VTABLE(dest, src, vaQueryConfigAttributes); ++ COPY_VTABLE(dest, src, vaCreateSurfaces); ++ COPY_VTABLE(dest, src, vaDestroySurfaces); ++ COPY_VTABLE(dest, src, vaCreateContext); ++ COPY_VTABLE(dest, src, vaDestroyContext); ++ COPY_VTABLE(dest, src, vaCreateBuffer); ++ COPY_VTABLE(dest, src, vaBufferSetNumElements); ++ COPY_VTABLE(dest, src, vaMapBuffer); ++ COPY_VTABLE(dest, src, vaUnmapBuffer); ++ COPY_VTABLE(dest, src, vaDestroyBuffer); ++ COPY_VTABLE(dest, src, vaBeginPicture); ++ COPY_VTABLE(dest, src, vaRenderPicture); ++ COPY_VTABLE(dest, src, vaEndPicture); ++ COPY_VTABLE(dest, src, vaQuerySurfaceStatus); ++ COPY_VTABLE(dest, src, vaPutSurface); ++ COPY_VTABLE(dest, src, vaQueryImageFormats); ++ COPY_VTABLE(dest, src, vaCreateImage); ++ COPY_VTABLE(dest, src, vaDeriveImage); ++ COPY_VTABLE(dest, src, vaDestroyImage); ++ COPY_VTABLE(dest, src, vaSetImagePalette); ++ COPY_VTABLE(dest, src, vaGetImage); ++ COPY_VTABLE(dest, src, vaQuerySubpictureFormats); ++ COPY_VTABLE(dest, src, vaCreateSubpicture); ++ COPY_VTABLE(dest, src, vaDestroySubpicture); ++ COPY_VTABLE(dest, src, vaSetSubpictureImage); ++ COPY_VTABLE(dest, src, vaSetSubpictureChromakey); ++ COPY_VTABLE(dest, src, vaSetSubpictureGlobalAlpha); ++ COPY_VTABLE(dest, src, vaDeassociateSubpicture); ++ COPY_VTABLE(dest, src, vaQueryDisplayAttributes); ++ COPY_VTABLE(dest, src, vaGetDisplayAttributes); ++ COPY_VTABLE(dest, src, vaSetDisplayAttributes); ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR <= 29 ++ COPY_VTABLE(dest, src, vaSetSubpicturePalette); ++ COPY_VTABLE(dest, src, vaDbgCopySurfaceToBuffer); ++#endif ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 30 ++ COPY_VTABLE(dest, src, vaCreateSurfaceFromCIFrame); ++ COPY_VTABLE(dest, src, vaCreateSurfaceFromV4L2Buf); ++ COPY_VTABLE(dest, src, vaCopySurfaceToBuffer); ++#endif ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 31 ++ COPY_VTABLE(dest, src, vaSyncSurface); ++ COPY_VTABLE(dest, src, vaPutImage); ++ COPY_VTABLE(dest, src, vaAssociateSubpicture); ++#else ++ COPY_VTABLE_(dest, pre31, src, vaSyncSurface); ++ COPY_VTABLE_(dest, pre31, src, vaPutImage); ++ COPY_VTABLE_(dest, pre31, src, vaPutImage2); ++ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture); ++ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture2); ++#endif ++} ++ ++#undef COMPAT_MAJOR ++#undef COMPAT_MINOR +diff -Naur libva-0.31.0/src/va.c.orig libva-0.31.0.patch/src/va.c.orig +--- libva-0.31.0/src/va.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/va.c.orig 2009-10-12 02:43:29.542782343 +0200 +@@ -0,0 +1,1266 @@ ++/* ++ * Copyright (c) 2007 Intel Corporation. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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 _GNU_SOURCE 1 ++#include "va.h" ++#include "va_backend.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include "va_dri.h" ++#include "va_dri2.h" ++#include "va_dricommon.h" ++ ++ ++#define DRIVER_INIT_FUNC "__vaDriverInit_0_31" ++#define DRIVER_INIT_FUNC_SDS "__vaDriverInit_0_31_sds" ++ ++#define DRIVER_EXTENSION "_drv_video.so" ++ ++#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext) ++#define CHECK_DISPLAY(dpy) if( !vaDisplayIsValid(dpy) ) { return VA_STATUS_ERROR_INVALID_DISPLAY; } ++ ++#define ASSERT assert ++#define CHECK_VTABLE(s, ctx, func) if (!va_checkVtable(ctx->vtable.va##func, #func)) s = VA_STATUS_ERROR_UNKNOWN; ++#define CHECK_MAXIMUM(s, ctx, var) if (!va_checkMaximum(ctx->max_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN; ++#define CHECK_STRING(s, ctx, var) if (!va_checkString(ctx->str_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN; ++ ++#define TRACE(func) if (va_debug_trace) va_infoMessage("[TR] %s\n", #func); ++ ++static int va_debug_trace = 0; ++ ++static int vaDisplayIsValid(VADisplay dpy) ++{ ++ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; ++ return pDisplayContext && pDisplayContext->vaIsValid(pDisplayContext); ++} ++ ++static void va_errorMessage(const char *msg, ...) ++{ ++ va_list args; ++ ++ fprintf(stderr, "libva error: "); ++ va_start(args, msg); ++ vfprintf(stderr, msg, args); ++ va_end(args); ++} ++ ++static void va_infoMessage(const char *msg, ...) ++{ ++ va_list args; ++ ++ fprintf(stderr, "libva: "); ++ va_start(args, msg); ++ vfprintf(stderr, msg, args); ++ va_end(args); ++} ++ ++static Bool va_checkVtable(void *ptr, char *function) ++{ ++ if (!ptr) ++ { ++ va_errorMessage("No valid vtable entry for va%s\n", function); ++ return False; ++ } ++ return True; ++} ++ ++static Bool va_checkMaximum(int value, char *variable) ++{ ++ if (!value) ++ { ++ va_errorMessage("Failed to define max_%s in init\n", variable); ++ return False; ++ } ++ return True; ++} ++ ++static Bool va_checkString(const char* value, char *variable) ++{ ++ if (!value) ++ { ++ va_errorMessage("Failed to define str_%s in init\n", variable); ++ return False; ++ } ++ return True; ++} ++ ++static VAStatus va_getDriverName(VADisplay dpy, char **driver_name) ++{ ++ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; ++ ++ return pDisplayContext->vaGetDriverName(pDisplayContext, driver_name); ++} ++ ++static VAStatus va_openDriver(VADisplay dpy, char *driver_name) ++{ ++ VADriverContextP ctx = CTX(dpy); ++ VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN; ++ char *search_path = NULL; ++ char *saveptr; ++ char *driver_dir; ++ ++ if (geteuid() == getuid()) ++ { ++ /* don't allow setuid apps to use LIBVA_DRIVERS_PATH */ ++ search_path = getenv("LIBVA_DRIVERS_PATH"); ++ } ++ if (!search_path) ++ { ++ search_path = VA_DRIVERS_PATH; ++ } ++ ++ search_path = strdup((const char *)search_path); ++ driver_dir = strtok_r((const char *)search_path, ":", &saveptr); ++ while(driver_dir) ++ { ++ void *handle = NULL; ++ char *driver_path = (char *) malloc( strlen(driver_dir) + ++ strlen(driver_name) + ++ strlen(DRIVER_EXTENSION) + 2 ); ++ strncpy( driver_path, driver_dir, strlen(driver_dir) + 1); ++ strncat( driver_path, "/", strlen("/") ); ++ strncat( driver_path, driver_name, strlen(driver_name) ); ++ strncat( driver_path, DRIVER_EXTENSION, strlen(DRIVER_EXTENSION) ); ++ ++ va_infoMessage("Trying to open %s\n", driver_path); ++ ++ handle = dlopen( driver_path, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE ); ++ if (!handle) ++ { ++ /* Don't give errors for non-existing files */ ++ if (0 == access( driver_path, F_OK)) ++ { ++ va_errorMessage("dlopen of %s failed: %s\n", driver_path, dlerror()); ++ } ++ } ++ else ++ { ++ VADriverInit init_func; ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); ++ if (!init_func) ++ { ++ /* Then try SDS extensions (VDPAU and XvBA backends) */ ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_SDS); ++ } ++ if (!init_func) ++ { ++ va_errorMessage("%s has no function %s\n", driver_path, DRIVER_INIT_FUNC); ++ dlclose(handle); ++ } ++ else ++ { ++ vaStatus = (*init_func)(ctx); ++ ++ if (VA_STATUS_SUCCESS == vaStatus) ++ { ++ CHECK_MAXIMUM(vaStatus, ctx, profiles); ++ CHECK_MAXIMUM(vaStatus, ctx, entrypoints); ++ CHECK_MAXIMUM(vaStatus, ctx, attributes); ++ CHECK_MAXIMUM(vaStatus, ctx, image_formats); ++ CHECK_MAXIMUM(vaStatus, ctx, subpic_formats); ++ CHECK_MAXIMUM(vaStatus, ctx, display_attributes); ++ CHECK_STRING(vaStatus, ctx, vendor); ++ CHECK_VTABLE(vaStatus, ctx, Terminate); ++ CHECK_VTABLE(vaStatus, ctx, QueryConfigProfiles); ++ CHECK_VTABLE(vaStatus, ctx, QueryConfigEntrypoints); ++ CHECK_VTABLE(vaStatus, ctx, QueryConfigAttributes); ++ CHECK_VTABLE(vaStatus, ctx, CreateConfig); ++ CHECK_VTABLE(vaStatus, ctx, DestroyConfig); ++ CHECK_VTABLE(vaStatus, ctx, GetConfigAttributes); ++ CHECK_VTABLE(vaStatus, ctx, CreateSurfaces); ++ CHECK_VTABLE(vaStatus, ctx, DestroySurfaces); ++ CHECK_VTABLE(vaStatus, ctx, CreateContext); ++ CHECK_VTABLE(vaStatus, ctx, DestroyContext); ++ CHECK_VTABLE(vaStatus, ctx, CreateBuffer); ++ CHECK_VTABLE(vaStatus, ctx, BufferSetNumElements); ++ CHECK_VTABLE(vaStatus, ctx, MapBuffer); ++ CHECK_VTABLE(vaStatus, ctx, UnmapBuffer); ++ CHECK_VTABLE(vaStatus, ctx, DestroyBuffer); ++ CHECK_VTABLE(vaStatus, ctx, BeginPicture); ++ CHECK_VTABLE(vaStatus, ctx, RenderPicture); ++ CHECK_VTABLE(vaStatus, ctx, EndPicture); ++ CHECK_VTABLE(vaStatus, ctx, SyncSurface); ++ CHECK_VTABLE(vaStatus, ctx, QuerySurfaceStatus); ++ CHECK_VTABLE(vaStatus, ctx, PutSurface); ++ CHECK_VTABLE(vaStatus, ctx, QueryImageFormats); ++ CHECK_VTABLE(vaStatus, ctx, CreateImage); ++ CHECK_VTABLE(vaStatus, ctx, DeriveImage); ++ CHECK_VTABLE(vaStatus, ctx, DestroyImage); ++ CHECK_VTABLE(vaStatus, ctx, SetImagePalette); ++ CHECK_VTABLE(vaStatus, ctx, GetImage); ++ CHECK_VTABLE(vaStatus, ctx, PutImage); ++ CHECK_VTABLE(vaStatus, ctx, QuerySubpictureFormats); ++ CHECK_VTABLE(vaStatus, ctx, CreateSubpicture); ++ CHECK_VTABLE(vaStatus, ctx, DestroySubpicture); ++ CHECK_VTABLE(vaStatus, ctx, SetSubpictureImage); ++ CHECK_VTABLE(vaStatus, ctx, SetSubpictureChromakey); ++ CHECK_VTABLE(vaStatus, ctx, SetSubpictureGlobalAlpha); ++ CHECK_VTABLE(vaStatus, ctx, AssociateSubpicture); ++ CHECK_VTABLE(vaStatus, ctx, DeassociateSubpicture); ++ CHECK_VTABLE(vaStatus, ctx, QueryDisplayAttributes); ++ CHECK_VTABLE(vaStatus, ctx, GetDisplayAttributes); ++ CHECK_VTABLE(vaStatus, ctx, SetDisplayAttributes); ++ } ++ if (VA_STATUS_SUCCESS != vaStatus) ++ { ++ va_errorMessage("%s init failed\n", driver_path); ++ dlclose(handle); ++ } ++ if (VA_STATUS_SUCCESS == vaStatus) ++ { ++ ctx->handle = handle; ++ } ++ free(driver_path); ++ break; ++ } ++ } ++ free(driver_path); ++ ++ driver_dir = strtok_r(NULL, ":", &saveptr); ++ } ++ ++ free(search_path); ++ ++ return vaStatus; ++} ++ ++VAPrivFunc vaGetLibFunc(VADisplay dpy, const char *func) ++{ ++ VADriverContextP ctx; ++ if( !vaDisplayIsValid(dpy) ) ++ return NULL; ++ ctx = CTX(dpy); ++ ++ if (NULL == ctx->handle) ++ return NULL; ++ ++ return (VAPrivFunc) dlsym(ctx->handle, func); ++} ++ ++ ++/* ++ * Returns a short english description of error_status ++ */ ++const char *vaErrorStr(VAStatus error_status) ++{ ++ switch(error_status) ++ { ++ case VA_STATUS_SUCCESS: ++ return "success (no error)"; ++ case VA_STATUS_ERROR_OPERATION_FAILED: ++ return "operation failed"; ++ case VA_STATUS_ERROR_ALLOCATION_FAILED: ++ return "resource allocation failed"; ++ case VA_STATUS_ERROR_INVALID_DISPLAY: ++ return "invalid VADisplay"; ++ case VA_STATUS_ERROR_INVALID_CONFIG: ++ return "invalid VAConfigID"; ++ case VA_STATUS_ERROR_INVALID_CONTEXT: ++ return "invalid VAContextID"; ++ case VA_STATUS_ERROR_INVALID_SURFACE: ++ return "invalid VASurfaceID"; ++ case VA_STATUS_ERROR_INVALID_BUFFER: ++ return "invalid VABufferID"; ++ case VA_STATUS_ERROR_INVALID_IMAGE: ++ return "invalid VAImageID"; ++ case VA_STATUS_ERROR_INVALID_SUBPICTURE: ++ return "invalid VASubpictureID"; ++ case VA_STATUS_ERROR_ATTR_NOT_SUPPORTED: ++ return "attribute not supported"; ++ case VA_STATUS_ERROR_MAX_NUM_EXCEEDED: ++ return "list argument exceeds maximum number"; ++ case VA_STATUS_ERROR_UNSUPPORTED_PROFILE: ++ return "the requested VAProfile is not supported"; ++ case VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT: ++ return "the requested VAEntryPoint is not supported"; ++ case VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT: ++ return "the requested RT Format is not supported"; ++ case VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE: ++ return "the requested VABufferType is not supported"; ++ case VA_STATUS_ERROR_SURFACE_BUSY: ++ return "surface is in use"; ++ case VA_STATUS_ERROR_FLAG_NOT_SUPPORTED: ++ return "flag not supported"; ++ case VA_STATUS_ERROR_INVALID_PARAMETER: ++ return "invalid parameter"; ++ case VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED: ++ return "resolution not supported"; ++ case VA_STATUS_ERROR_UNIMPLEMENTED: ++ return "the requested function is not implemented"; ++ case VA_STATUS_ERROR_UNKNOWN: ++ return "unknown libva error"; ++ } ++ return "unknown libva error / description missing"; ++} ++ ++VAStatus vaInitialize ( ++ VADisplay dpy, ++ int *major_version, /* out */ ++ int *minor_version /* out */ ++) ++{ ++ char *driver_name = NULL; ++ VAStatus vaStatus; ++ ++ CHECK_DISPLAY(dpy); ++ ++ va_debug_trace = (getenv("LIBVA_DEBUG_TRACE") != NULL); ++ ++ va_infoMessage("libva version %s\n", VA_VERSION_S); ++ ++ vaStatus = va_getDriverName(dpy, &driver_name); ++ va_infoMessage("va_getDriverName() returns %d\n", vaStatus); ++ ++ if (VA_STATUS_SUCCESS == vaStatus) ++ { ++ vaStatus = va_openDriver(dpy, driver_name); ++ va_infoMessage("va_openDriver() returns %d\n", vaStatus); ++ ++ *major_version = VA_MAJOR_VERSION; ++ *minor_version = VA_MINOR_VERSION; ++ } ++ ++ if (driver_name) ++ free(driver_name); ++ return vaStatus; ++} ++ ++ ++/* ++ * After this call, all library internal resources will be cleaned up ++ */ ++VAStatus vaTerminate ( ++ VADisplay dpy ++) ++{ ++ VAStatus vaStatus = VA_STATUS_SUCCESS; ++ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; ++ VADriverContextP old_ctx; ++ ++ CHECK_DISPLAY(dpy); ++ old_ctx = CTX(dpy); ++ ++ if (old_ctx->handle) ++ { ++ vaStatus = old_ctx->vtable.vaTerminate(old_ctx); ++ dlclose(old_ctx->handle); ++ old_ctx->handle = NULL; ++ } ++ ++ if (VA_STATUS_SUCCESS == vaStatus) ++ pDisplayContext->vaDestroy(pDisplayContext); ++ return vaStatus; ++} ++ ++/* ++ * vaQueryVendorString returns a pointer to a zero-terminated string ++ * describing some aspects of the VA implemenation on a specific ++ * hardware accelerator. The format of the returned string is: ++ * --- ++ * e.g. for the Intel GMA500 implementation, an example would be: ++ * "IntelGMA500-1.0-0.2-patch3 ++ */ ++const char *vaQueryVendorString ( ++ VADisplay dpy ++) ++{ ++ if( !vaDisplayIsValid(dpy) ) ++ return NULL; ++ ++ return CTX(dpy)->str_vendor; ++} ++ ++ ++/* Get maximum number of profiles supported by the implementation */ ++int vaMaxNumProfiles ( ++ VADisplay dpy ++) ++{ ++ if( !vaDisplayIsValid(dpy) ) ++ return 0; ++ ++ return CTX(dpy)->max_profiles; ++} ++ ++/* Get maximum number of entrypoints supported by the implementation */ ++int vaMaxNumEntrypoints ( ++ VADisplay dpy ++) ++{ ++ if( !vaDisplayIsValid(dpy) ) ++ return 0; ++ ++ return CTX(dpy)->max_entrypoints; ++} ++ ++ ++/* Get maximum number of attributs supported by the implementation */ ++int vaMaxNumConfigAttributes ( ++ VADisplay dpy ++) ++{ ++ if( !vaDisplayIsValid(dpy) ) ++ return 0; ++ ++ return CTX(dpy)->max_attributes; ++} ++ ++VAStatus vaQueryConfigEntrypoints ( ++ VADisplay dpy, ++ VAProfile profile, ++ VAEntrypoint *entrypoints, /* out */ ++ int *num_entrypoints /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaQueryConfigEntrypoints); ++ return ctx->vtable.vaQueryConfigEntrypoints ( ctx, profile, entrypoints, num_entrypoints); ++} ++ ++VAStatus vaGetConfigAttributes ( ++ VADisplay dpy, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, /* in/out */ ++ int num_attribs ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaGetConfigAttributes); ++ return ctx->vtable.vaGetConfigAttributes ( ctx, profile, entrypoint, attrib_list, num_attribs ); ++} ++ ++VAStatus vaQueryConfigProfiles ( ++ VADisplay dpy, ++ VAProfile *profile_list, /* out */ ++ int *num_profiles /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaQueryConfigProfiles); ++ return ctx->vtable.vaQueryConfigProfiles ( ctx, profile_list, num_profiles ); ++} ++ ++VAStatus vaCreateConfig ( ++ VADisplay dpy, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, ++ int num_attribs, ++ VAConfigID *config_id /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCreateConfig); ++ return ctx->vtable.vaCreateConfig ( ctx, profile, entrypoint, attrib_list, num_attribs, config_id ); ++} ++ ++VAStatus vaDestroyConfig ( ++ VADisplay dpy, ++ VAConfigID config_id ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDestroyConfig); ++ return ctx->vtable.vaDestroyConfig ( ctx, config_id ); ++} ++ ++VAStatus vaQueryConfigAttributes ( ++ VADisplay dpy, ++ VAConfigID config_id, ++ VAProfile *profile, /* out */ ++ VAEntrypoint *entrypoint, /* out */ ++ VAConfigAttrib *attrib_list,/* out */ ++ int *num_attribs /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaQueryConfigAttributes); ++ return ctx->vtable.vaQueryConfigAttributes( ctx, config_id, profile, entrypoint, attrib_list, num_attribs); ++} ++ ++VAStatus vaCreateSurfaces ( ++ VADisplay dpy, ++ int width, ++ int height, ++ int format, ++ int num_surfaces, ++ VASurfaceID *surfaces /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCreateSurfaces); ++ return ctx->vtable.vaCreateSurfaces( ctx, width, height, format, num_surfaces, surfaces ); ++} ++ ++ ++VAStatus vaDestroySurfaces ( ++ VADisplay dpy, ++ VASurfaceID *surface_list, ++ int num_surfaces ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDestroySurfaces); ++ return ctx->vtable.vaDestroySurfaces( ctx, surface_list, num_surfaces ); ++} ++ ++VAStatus vaCreateContext ( ++ VADisplay dpy, ++ VAConfigID config_id, ++ int picture_width, ++ int picture_height, ++ int flag, ++ VASurfaceID *render_targets, ++ int num_render_targets, ++ VAContextID *context /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCreateContext); ++ return ctx->vtable.vaCreateContext( ctx, config_id, picture_width, picture_height, ++ flag, render_targets, num_render_targets, context ); ++} ++ ++VAStatus vaDestroyContext ( ++ VADisplay dpy, ++ VAContextID context ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDestroyContext); ++ return ctx->vtable.vaDestroyContext( ctx, context ); ++} ++ ++VAStatus vaCreateBuffer ( ++ VADisplay dpy, ++ VAContextID context, /* in */ ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCreateBuffer); ++ return ctx->vtable.vaCreateBuffer( ctx, context, type, size, num_elements, data, buf_id); ++} ++ ++VAStatus vaBufferSetNumElements ( ++ VADisplay dpy, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaBufferSetNumElements); ++ return ctx->vtable.vaBufferSetNumElements( ctx, buf_id, num_elements ); ++} ++ ++ ++VAStatus vaMapBuffer ( ++ VADisplay dpy, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaMapBuffer); ++ return ctx->vtable.vaMapBuffer( ctx, buf_id, pbuf ); ++} ++ ++VAStatus vaUnmapBuffer ( ++ VADisplay dpy, ++ VABufferID buf_id /* in */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaUnmapBuffer); ++ return ctx->vtable.vaUnmapBuffer( ctx, buf_id ); ++} ++ ++VAStatus vaDestroyBuffer ( ++ VADisplay dpy, ++ VABufferID buffer_id ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDestroyBuffer); ++ return ctx->vtable.vaDestroyBuffer( ctx, buffer_id ); ++} ++ ++VAStatus vaBeginPicture ( ++ VADisplay dpy, ++ VAContextID context, ++ VASurfaceID render_target ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaBeginPicture); ++ return ctx->vtable.vaBeginPicture( ctx, context, render_target ); ++} ++ ++VAStatus vaRenderPicture ( ++ VADisplay dpy, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaRenderPicture); ++ return ctx->vtable.vaRenderPicture( ctx, context, buffers, num_buffers ); ++} ++ ++VAStatus vaEndPicture ( ++ VADisplay dpy, ++ VAContextID context ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaEndPicture); ++ return ctx->vtable.vaEndPicture( ctx, context ); ++} ++ ++VAStatus vaSyncSurface ( ++ VADisplay dpy, ++ VASurfaceID render_target ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaSyncSurface); ++ return ctx->vtable.vaSyncSurface( ctx, render_target ); ++} ++ ++VAStatus vaQuerySurfaceStatus ( ++ VADisplay dpy, ++ VASurfaceID render_target, ++ VASurfaceStatus *status /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaQuerySurfaceStatus); ++ return ctx->vtable.vaQuerySurfaceStatus( ctx, render_target, status ); ++} ++ ++VAStatus vaPutSurface ( ++ VADisplay dpy, ++ VASurfaceID surface, ++ Drawable draw, /* X Drawable */ ++ short srcx, ++ short srcy, ++ unsigned short srcw, ++ unsigned short srch, ++ short destx, ++ short desty, ++ unsigned short destw, ++ unsigned short desth, ++ VARectangle *cliprects, /* client supplied clip list */ ++ unsigned int number_cliprects, /* number of clip rects in the clip list */ ++ unsigned int flags /* de-interlacing flags */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaPutSurface); ++ return ctx->vtable.vaPutSurface( ctx, surface, draw, srcx, srcy, srcw, srch, ++ destx, desty, destw, desth, ++ cliprects, number_cliprects, flags ); ++} ++ ++/* Get maximum number of image formats supported by the implementation */ ++int vaMaxNumImageFormats ( ++ VADisplay dpy ++) ++{ ++ if( !vaDisplayIsValid(dpy) ) ++ return 0; ++ ++ return CTX(dpy)->max_image_formats; ++} ++ ++VAStatus vaQueryImageFormats ( ++ VADisplay dpy, ++ VAImageFormat *format_list, /* out */ ++ int *num_formats /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaQueryImageFormats); ++ return ctx->vtable.vaQueryImageFormats ( ctx, format_list, num_formats); ++} ++ ++/* ++ * The width and height fields returned in the VAImage structure may get ++ * enlarged for some YUV formats. The size of the data buffer that needs ++ * to be allocated will be given in the "data_size" field in VAImage. ++ * Image data is not allocated by this function. The client should ++ * allocate the memory and fill in the VAImage structure's data field ++ * after looking at "data_size" returned from the library. ++ */ ++VAStatus vaCreateImage ( ++ VADisplay dpy, ++ VAImageFormat *format, ++ int width, ++ int height, ++ VAImage *image /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCreateImage); ++ return ctx->vtable.vaCreateImage ( ctx, format, width, height, image); ++} ++ ++/* ++ * Should call DestroyImage before destroying the surface it is bound to ++ */ ++VAStatus vaDestroyImage ( ++ VADisplay dpy, ++ VAImageID image ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDestroyImage); ++ return ctx->vtable.vaDestroyImage ( ctx, image); ++} ++ ++VAStatus vaSetImagePalette ( ++ VADisplay dpy, ++ VAImageID image, ++ unsigned char *palette ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaSetImagePalette); ++ return ctx->vtable.vaSetImagePalette ( ctx, image, palette); ++} ++ ++/* ++ * Retrieve surface data into a VAImage ++ * Image must be in a format supported by the implementation ++ */ ++VAStatus vaGetImage ( ++ VADisplay dpy, ++ VASurfaceID surface, ++ int x, /* coordinates of the upper left source pixel */ ++ int y, ++ unsigned int width, /* width and height of the region */ ++ unsigned int height, ++ VAImageID image ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaGetImage); ++ return ctx->vtable.vaGetImage ( ctx, surface, x, y, width, height, image); ++} ++ ++/* ++ * Copy data from a VAImage to a surface ++ * Image must be in a format supported by the implementation ++ */ ++VAStatus vaPutImage ( ++ VADisplay dpy, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaPutImage); ++ return ctx->vtable.vaPutImage ( ctx, surface, image, src_x, src_y, src_width, src_height, dest_x, dest_y, dest_width, dest_height ); ++} ++ ++/* ++ * Derive an VAImage from an existing surface. ++ * This interface will derive a VAImage and corresponding image buffer from ++ * an existing VA Surface. The image buffer can then be mapped/unmapped for ++ * direct CPU access. This operation is only possible on implementations with ++ * direct rendering capabilities and internal surface formats that can be ++ * represented with a VAImage. When the operation is not possible this interface ++ * will return VA_STATUS_ERROR_OPERATION_FAILED. Clients should then fall back ++ * to using vaCreateImage + vaPutImage to accomplish the same task in an ++ * indirect manner. ++ * ++ * Implementations should only return success when the resulting image buffer ++ * would be useable with vaMap/Unmap. ++ * ++ * When directly accessing a surface special care must be taken to insure ++ * proper synchronization with the graphics hardware. Clients should call ++ * vaQuerySurfaceStatus to insure that a surface is not the target of concurrent ++ * rendering or currently being displayed by an overlay. ++ * ++ * Additionally nothing about the contents of a surface should be assumed ++ * following a vaPutSurface. Implementations are free to modify the surface for ++ * scaling or subpicture blending within a call to vaPutImage. ++ * ++ * Calls to vaPutImage or vaGetImage using the same surface from which the image ++ * has been derived will return VA_STATUS_ERROR_SURFACE_BUSY. vaPutImage or ++ * vaGetImage with other surfaces is supported. ++ * ++ * An image created with vaDeriveImage should be freed with vaDestroyImage. The ++ * image and image buffer structures will be destroyed; however, the underlying ++ * surface will remain unchanged until freed with vaDestroySurfaces. ++ */ ++VAStatus vaDeriveImage ( ++ VADisplay dpy, ++ VASurfaceID surface, ++ VAImage *image /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDeriveImage); ++ return ctx->vtable.vaDeriveImage ( ctx, surface, image ); ++} ++ ++ ++/* Get maximum number of subpicture formats supported by the implementation */ ++int vaMaxNumSubpictureFormats ( ++ VADisplay dpy ++) ++{ ++ if( !vaDisplayIsValid(dpy) ) ++ return 0; ++ ++ return CTX(dpy)->max_subpic_formats; ++} ++ ++/* ++ * Query supported subpicture formats ++ * The caller must provide a "format_list" array that can hold at ++ * least vaMaxNumSubpictureFormats() entries. The flags arrary holds the flag ++ * for each format to indicate additional capabilities for that format. The actual ++ * number of formats returned in "format_list" is returned in "num_formats". ++ */ ++VAStatus vaQuerySubpictureFormats ( ++ VADisplay dpy, ++ VAImageFormat *format_list, /* out */ ++ unsigned int *flags, /* out */ ++ unsigned int *num_formats /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaQuerySubpictureFormats); ++ return ctx->vtable.vaQuerySubpictureFormats ( ctx, format_list, flags, num_formats); ++} ++ ++/* ++ * Subpictures are created with an image associated. ++ */ ++VAStatus vaCreateSubpicture ( ++ VADisplay dpy, ++ VAImageID image, ++ VASubpictureID *subpicture /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCreateSubpicture); ++ return ctx->vtable.vaCreateSubpicture ( ctx, image, subpicture ); ++} ++ ++/* ++ * Destroy the subpicture before destroying the image it is assocated to ++ */ ++VAStatus vaDestroySubpicture ( ++ VADisplay dpy, ++ VASubpictureID subpicture ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDestroySubpicture); ++ return ctx->vtable.vaDestroySubpicture ( ctx, subpicture); ++} ++ ++VAStatus vaSetSubpictureImage ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VAImageID image ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaSetSubpictureImage); ++ return ctx->vtable.vaSetSubpictureImage ( ctx, subpicture, image); ++} ++ ++ ++/* ++ * If chromakey is enabled, then the area where the source value falls within ++ * the chromakey [min, max] range is transparent ++ */ ++VAStatus vaSetSubpictureChromakey ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaSetSubpictureChromakey); ++ return ctx->vtable.vaSetSubpictureChromakey ( ctx, subpicture, chromakey_min, chromakey_max, chromakey_mask ); ++} ++ ++ ++/* ++ * Global alpha value is between 0 and 1. A value of 1 means fully opaque and ++ * a value of 0 means fully transparent. If per-pixel alpha is also specified then ++ * the overall alpha is per-pixel alpha multiplied by the global alpha ++ */ ++VAStatus vaSetSubpictureGlobalAlpha ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ float global_alpha ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaSetSubpictureGlobalAlpha); ++ return ctx->vtable.vaSetSubpictureGlobalAlpha ( ctx, subpicture, global_alpha ); ++} ++ ++/* ++ vaAssociateSubpicture associates the subpicture with the target_surface. ++ It defines the region mapping between the subpicture and the target ++ surface through source and destination rectangles (with the same width and height). ++ Both will be displayed at the next call to vaPutSurface. Additional ++ associations before the call to vaPutSurface simply overrides the association. ++*/ ++VAStatus vaAssociateSubpicture ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ unsigned short src_width, ++ unsigned short src_height, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short dest_width, ++ unsigned short dest_height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaAssociateSubpicture); ++ return ctx->vtable.vaAssociateSubpicture ( ctx, subpicture, target_surfaces, num_surfaces, src_x, src_y, src_width, src_height, dest_x, dest_y, dest_width, dest_height, flags ); ++} ++ ++/* ++ * vaDeassociateSubpicture removes the association of the subpicture with target_surfaces. ++ */ ++VAStatus vaDeassociateSubpicture ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaDeassociateSubpicture); ++ return ctx->vtable.vaDeassociateSubpicture ( ctx, subpicture, target_surfaces, num_surfaces ); ++} ++ ++ ++/* Get maximum number of display attributes supported by the implementation */ ++int vaMaxNumDisplayAttributes ( ++ VADisplay dpy ++) ++{ ++ if( !vaDisplayIsValid(dpy) ) ++ return 0; ++ ++ return CTX(dpy)->max_display_attributes; ++} ++ ++/* ++ * Query display attributes ++ * The caller must provide a "attr_list" array that can hold at ++ * least vaMaxNumDisplayAttributes() entries. The actual number of attributes ++ * returned in "attr_list" is returned in "num_attributes". ++ */ ++VAStatus vaQueryDisplayAttributes ( ++ VADisplay dpy, ++ VADisplayAttribute *attr_list, /* out */ ++ int *num_attributes /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaQueryDisplayAttributes); ++ return ctx->vtable.vaQueryDisplayAttributes ( ctx, attr_list, num_attributes ); ++} ++ ++/* ++ * Get display attributes ++ * This function returns the current attribute values in "attr_list". ++ * Only attributes returned with VA_DISPLAY_ATTRIB_GETTABLE set in the "flags" field ++ * from vaQueryDisplayAttributes() can have their values retrieved. ++ */ ++VAStatus vaGetDisplayAttributes ( ++ VADisplay dpy, ++ VADisplayAttribute *attr_list, /* in/out */ ++ int num_attributes ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaGetDisplayAttributes); ++ return ctx->vtable.vaGetDisplayAttributes ( ctx, attr_list, num_attributes ); ++} ++ ++/* ++ * Set display attributes ++ * Only attributes returned with VA_DISPLAY_ATTRIB_SETTABLE set in the "flags" field ++ * from vaQueryDisplayAttributes() can be set. If the attribute is not settable or ++ * the value is out of range, the function returns VA_STATUS_ERROR_ATTR_NOT_SUPPORTED ++ */ ++VAStatus vaSetDisplayAttributes ( ++ VADisplay dpy, ++ VADisplayAttribute *attr_list, ++ int num_attributes ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaSetDisplayAttributes); ++ return ctx->vtable.vaSetDisplayAttributes ( ctx, attr_list, num_attributes ); ++} ++ ++/* Wrap a CI (camera imaging) frame as a VA surface to share captured video between camear ++ * and VA encode. With frame_id, VA driver need to call CI interfaces to get the information ++ * of the frame, and to determine if the frame can be wrapped as a VA surface ++ * ++ * Application should make sure the frame is idle before the frame is passed into VA stack ++ * and also a vaSyncSurface should be called before application tries to access the frame ++ * from CI stack ++ */ ++VAStatus vaCreateSurfaceFromCIFrame ( ++ VADisplay dpy, ++ unsigned long frame_id, ++ VASurfaceID *surface /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCreateSurfacesFromCIFrame); ++ ++ if (ctx->vtable.vaCreateSurfaceFromCIFrame) ++ return ctx->vtable.vaCreateSurfaceFromCIFrame( ctx, frame_id, surface ); ++ else ++ return VA_STATUS_ERROR_UNKNOWN; ++} ++ ++ ++/* Wrap a V4L2 buffer as a VA surface, so that V4L2 camera, VA encode ++ * can share the data without copy ++ * The VA driver should query the camera device from v4l2_fd to see ++ * if camera device memory/buffer can be wrapped into a VA surface ++ * Buffer information is passed in by v4l2_fmt and v4l2_buf structure, ++ * VA driver also needs do further check if the buffer can meet encode ++ * hardware requirement, such as dimension, fourcc, stride, etc ++ * ++ * Application should make sure the buffer is idle before the frame into VA stack ++ * and also a vaSyncSurface should be called before application tries to access the frame ++ * from V4L2 stack ++ */ ++VAStatus vaCreateSurfaceFromV4L2Buf( ++ VADisplay dpy, ++ int v4l2_fd, /* file descriptor of V4L2 device */ ++ struct v4l2_format *v4l2_fmt, /* format of V4L2 */ ++ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ ++ VASurfaceID *surface /* out */ ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vtable.vaCreateSurfaceFromV4L2Buf); ++ ++ if (ctx->vtable.vaCreateSurfaceFromV4L2Buf) ++ return ctx->vtable.vaCreateSurfaceFromV4L2Buf( ctx, v4l2_fd, v4l2_fmt, v4l2_buf, surface ); ++ else ++ return VA_STATUS_ERROR_UNKNOWN; ++} ++ ++/* It is a debug interface, and isn't exported in core VAAPI ++ * It is used to dump surface data into system memory ++ * Application should explicitly call free to release the buffer memory ++ */ ++ ++VAStatus vaCopySurfaceToBuffer(VADisplay dpy, ++ VASurfaceID surface, ++ unsigned int *fourcc, /* following are output argument */ ++ unsigned int *luma_stride, ++ unsigned int *chroma_u_stride, ++ unsigned int *chroma_v_stride, ++ unsigned int *luma_offset, ++ unsigned int *chroma_u_offset, ++ unsigned int *chroma_v_offset, ++ void **buffer ++) ++{ ++ VADriverContextP ctx; ++ CHECK_DISPLAY(dpy); ++ ctx = CTX(dpy); ++ ++ TRACE(vaCopySurfaceToBuffer); ++ if (ctx->vtable.vaCopySurfaceToBuffer) ++ return ctx->vtable.vaCopySurfaceToBuffer( ctx, surface, fourcc, luma_stride, chroma_u_stride, chroma_v_stride, luma_offset, chroma_u_offset, chroma_v_offset, buffer); ++ else ++ return VA_STATUS_ERROR_UNKNOWN; ++} +diff -Naur libva-0.31.0/src/va.h libva-0.31.0.patch/src/va.h +--- libva-0.31.0/src/va.h 2009-09-22 15:17:03.000000000 +0200 ++++ libva-0.31.0.patch/src/va.h 2009-10-12 02:43:29.544782289 +0200 +@@ -130,6 +130,22 @@ + #define VA_STATUS_ERROR_UNIMPLEMENTED 0x00000014 + #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF + ++/* De-interlacing flags for vaPutSurface() */ ++#define VA_FRAME_PICTURE 0x00000000 ++#define VA_TOP_FIELD 0x00000001 ++#define VA_BOTTOM_FIELD 0x00000002 ++ ++/* ++ * Clears the drawable with background color. ++ * for hardware overlay based implementation this flag ++ * can be used to turn off the overlay ++ */ ++#define VA_CLEAR_DRAWABLE 0x00000008 ++ ++/* Color space conversion flags for vaPutSurface() */ ++#define VA_SRC_BT601 0x00000010 ++#define VA_SRC_BT709 0x00000020 ++ + /* + * Returns a short english description of error_status + */ +diff -Naur libva-0.31.0/src/va.h.orig libva-0.31.0.patch/src/va.h.orig +--- libva-0.31.0/src/va.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/va.h.orig 2009-10-12 02:43:29.547782661 +0200 +@@ -0,0 +1,1714 @@ ++/* ++ * Copyright (c) 2007-2009 Intel Corporation. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS 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. ++ */ ++/* ++ * Video Acceleration (VA) API Specification ++ * ++ * Rev. 0.30 ++ * ++ * ++ * Revision History: ++ * rev 0.10 (12/10/2006 Jonathan Bian) - Initial draft ++ * rev 0.11 (12/15/2006 Jonathan Bian) - Fixed some errors ++ * rev 0.12 (02/05/2007 Jonathan Bian) - Added VC-1 data structures for slice level decode ++ * rev 0.13 (02/28/2007 Jonathan Bian) - Added GetDisplay() ++ * rev 0.14 (04/13/2007 Jonathan Bian) - Fixed MPEG-2 PictureParameter structure, cleaned up a few funcs. ++ * rev 0.15 (04/20/2007 Jonathan Bian) - Overhauled buffer management ++ * rev 0.16 (05/02/2007 Jonathan Bian) - Added error codes and fixed some issues with configuration ++ * rev 0.17 (05/07/2007 Jonathan Bian) - Added H.264/AVC data structures for slice level decode. ++ * rev 0.18 (05/14/2007 Jonathan Bian) - Added data structures for MPEG-4 slice level decode ++ * and MPEG-2 motion compensation. ++ * rev 0.19 (08/06/2007 Jonathan Bian) - Removed extra type for bitplane data. ++ * rev 0.20 (08/08/2007 Jonathan Bian) - Added missing fields to VC-1 PictureParameter structure. ++ * rev 0.21 (08/20/2007 Jonathan Bian) - Added image and subpicture support. ++ * rev 0.22 (08/27/2007 Jonathan Bian) - Added support for chroma-keying and global alpha. ++ * rev 0.23 (09/11/2007 Jonathan Bian) - Fixed some issues with images and subpictures. ++ * rev 0.24 (09/18/2007 Jonathan Bian) - Added display attributes. ++ * rev 0.25 (10/18/2007 Jonathan Bian) - Changed to use IDs only for some types. ++ * rev 0.26 (11/07/2007 Waldo Bastian) - Change vaCreateBuffer semantics ++ * rev 0.27 (11/19/2007 Matt Sottek) - Added DeriveImage ++ * rev 0.28 (12/06/2007 Jonathan Bian) - Added new versions of PutImage and AssociateSubpicture ++ * to enable scaling ++ * rev 0.29 (02/07/2008 Jonathan Bian) - VC1 parameter fixes, ++ * added VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED ++ * rev 0.30 (03/01/2009 Jonathan Bian) - Added encoding support for H.264 BP and MPEG-4 SP and fixes ++ * for ISO C conformance. ++ * rev 0.31 (09/02/2009 Gwenole Beauchesne) - VC-1/H264 fields change for VDPAU and XvBA backend ++ * Application needs to relink with the new library. ++ * ++ * Acknowledgements: ++ * Some concepts borrowed from XvMC and XvImage. ++ * Waldo Bastian (Intel), Matt Sottek (Intel), Austin Yuan (Intel), and Gwenole Beauchesne (SDS) ++ * contributed to various aspects of the API. ++ */ ++ ++#ifndef _VA_H_ ++#define _VA_H_ ++ ++#ifdef IN_LIBVA ++#include "va_version.h" ++#else ++#include ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* ++Overview ++ ++The VA API is intended to provide an interface between a video decode/encode/display ++application (client) and a hardware accelerator (server), to off-load ++video decode/encode/display operations from the host to the hardware accelerator at various ++entry-points. ++ ++The basic operation steps are: ++ ++- Negotiate a mutually acceptable configuration with the server to lock ++ down profile, entrypoints, and other attributes that will not change on ++ a frame-by-frame basis. ++- Create a decode context which represents a "virtualized" hardware decode ++ device ++- Get and fill decode buffers with picture level, slice level and macroblock ++ level data (depending on entrypoints) ++- Pass the decode buffers to the server to decode the current frame ++ ++Initialization & Configuration Management ++ ++- Find out supported profiles ++- Find out entrypoints for a given profile ++- Find out configuration attributes for a given profile/entrypoint pair ++- Create a configuration for use by the decoder ++ ++*/ ++ ++typedef void* VADisplay; /* window system dependent */ ++ ++typedef int VAStatus; /* Return status type from functions */ ++/* Values for the return status */ ++#define VA_STATUS_SUCCESS 0x00000000 ++#define VA_STATUS_ERROR_OPERATION_FAILED 0x00000001 ++#define VA_STATUS_ERROR_ALLOCATION_FAILED 0x00000002 ++#define VA_STATUS_ERROR_INVALID_DISPLAY 0x00000003 ++#define VA_STATUS_ERROR_INVALID_CONFIG 0x00000004 ++#define VA_STATUS_ERROR_INVALID_CONTEXT 0x00000005 ++#define VA_STATUS_ERROR_INVALID_SURFACE 0x00000006 ++#define VA_STATUS_ERROR_INVALID_BUFFER 0x00000007 ++#define VA_STATUS_ERROR_INVALID_IMAGE 0x00000008 ++#define VA_STATUS_ERROR_INVALID_SUBPICTURE 0x00000009 ++#define VA_STATUS_ERROR_ATTR_NOT_SUPPORTED 0x0000000a ++#define VA_STATUS_ERROR_MAX_NUM_EXCEEDED 0x0000000b ++#define VA_STATUS_ERROR_UNSUPPORTED_PROFILE 0x0000000c ++#define VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT 0x0000000d ++#define VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT 0x0000000e ++#define VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE 0x0000000f ++#define VA_STATUS_ERROR_SURFACE_BUSY 0x00000010 ++#define VA_STATUS_ERROR_FLAG_NOT_SUPPORTED 0x00000011 ++#define VA_STATUS_ERROR_INVALID_PARAMETER 0x00000012 ++#define VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED 0x00000013 ++#define VA_STATUS_ERROR_UNIMPLEMENTED 0x00000014 ++#define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF ++ ++/* ++ * Returns a short english description of error_status ++ */ ++const char *vaErrorStr(VAStatus error_status); ++ ++/* ++ * Initialization: ++ * A display must be obtained by calling vaGetDisplay() before calling ++ * vaInitialize() and other functions. This connects the API to the ++ * native window system. ++ * For X Windows, native_dpy would be from XOpenDisplay() ++ */ ++typedef void* NativeDisplay; /* window system dependent */ ++ ++/* ++ * Initialize the library ++ */ ++VAStatus vaInitialize ( ++ VADisplay dpy, ++ int *major_version, /* out */ ++ int *minor_version /* out */ ++); ++ ++/* ++ * After this call, all library internal resources will be cleaned up ++ */ ++VAStatus vaTerminate ( ++ VADisplay dpy ++); ++ ++/* ++ * vaQueryVendorString returns a pointer to a zero-terminated string ++ * describing some aspects of the VA implemenation on a specific ++ * hardware accelerator. The format of the returned string is vendor ++ * specific and at the discretion of the implementer. ++ * e.g. for the Intel GMA500 implementation, an example would be: ++ * "Intel GMA500 - 2.0.0.32L.0005" ++ */ ++const char *vaQueryVendorString ( ++ VADisplay dpy ++); ++ ++typedef int (*VAPrivFunc)(); ++ ++/* ++ * Return a function pointer given a function name in the library. ++ * This allows private interfaces into the library ++ */ ++VAPrivFunc vaGetLibFunc ( ++ VADisplay dpy, ++ const char *func ++); ++ ++/* Currently defined profiles */ ++typedef enum ++{ ++ VAProfileMPEG2Simple = 0, ++ VAProfileMPEG2Main = 1, ++ VAProfileMPEG4Simple = 2, ++ VAProfileMPEG4AdvancedSimple = 3, ++ VAProfileMPEG4Main = 4, ++ VAProfileH264Baseline = 5, ++ VAProfileH264Main = 6, ++ VAProfileH264High = 7, ++ VAProfileVC1Simple = 8, ++ VAProfileVC1Main = 9, ++ VAProfileVC1Advanced = 10, ++ VAProfileH263Baseline = 11 ++} VAProfile; ++ ++/* ++ * Currently defined entrypoints ++ */ ++typedef enum ++{ ++ VAEntrypointVLD = 1, ++ VAEntrypointIZZ = 2, ++ VAEntrypointIDCT = 3, ++ VAEntrypointMoComp = 4, ++ VAEntrypointDeblocking = 5, ++ VAEntrypointEncSlice = 6 /* slice level encode */ ++} VAEntrypoint; ++ ++/* Currently defined configuration attribute types */ ++typedef enum ++{ ++ VAConfigAttribRTFormat = 0, ++ VAConfigAttribSpatialResidual = 1, ++ VAConfigAttribSpatialClipping = 2, ++ VAConfigAttribIntraResidual = 3, ++ VAConfigAttribEncryption = 4, ++ VAConfigAttribRateControl = 5 ++} VAConfigAttribType; ++ ++/* ++ * Configuration attributes ++ * If there is more than one value for an attribute, a default ++ * value will be assigned to the attribute if the client does not ++ * specify the attribute when creating a configuration ++ */ ++typedef struct _VAConfigAttrib { ++ VAConfigAttribType type; ++ unsigned int value; /* OR'd flags (bits) for this attribute */ ++} VAConfigAttrib; ++ ++/* attribute value for VAConfigAttribRTFormat */ ++#define VA_RT_FORMAT_YUV420 0x00000001 ++#define VA_RT_FORMAT_YUV422 0x00000002 ++#define VA_RT_FORMAT_YUV444 0x00000004 ++#define VA_RT_FORMAT_PROTECTED 0x80000000 ++ ++/* attribute value for VAConfigAttribRateControl */ ++#define VA_RC_NONE 0x00000001 ++#define VA_RC_CBR 0x00000002 ++#define VA_RC_VBR 0x00000004 ++ ++/* ++ * if an attribute is not applicable for a given ++ * profile/entrypoint pair, then set the value to the following ++ */ ++#define VA_ATTRIB_NOT_SUPPORTED 0x80000000 ++ ++/* Get maximum number of profiles supported by the implementation */ ++int vaMaxNumProfiles ( ++ VADisplay dpy ++); ++ ++/* Get maximum number of entrypoints supported by the implementation */ ++int vaMaxNumEntrypoints ( ++ VADisplay dpy ++); ++ ++/* Get maximum number of attributs supported by the implementation */ ++int vaMaxNumConfigAttributes ( ++ VADisplay dpy ++); ++ ++/* ++ * Query supported profiles ++ * The caller must provide a "profile_list" array that can hold at ++ * least vaMaxNumProfile() entries. The actual number of profiles ++ * returned in "profile_list" is returned in "num_profile". ++ */ ++VAStatus vaQueryConfigProfiles ( ++ VADisplay dpy, ++ VAProfile *profile_list, /* out */ ++ int *num_profiles /* out */ ++); ++ ++/* ++ * Query supported entrypoints for a given profile ++ * The caller must provide an "entrypoint_list" array that can hold at ++ * least vaMaxNumEntrypoints() entries. The actual number of entrypoints ++ * returned in "entrypoint_list" is returned in "num_entrypoints". ++ */ ++VAStatus vaQueryConfigEntrypoints ( ++ VADisplay dpy, ++ VAProfile profile, ++ VAEntrypoint *entrypoint_list, /* out */ ++ int *num_entrypoints /* out */ ++); ++ ++/* ++ * Get attributes for a given profile/entrypoint pair ++ * The caller must provide an "attrib_list" with all attributes to be ++ * retrieved. Upon return, the attributes in "attrib_list" have been ++ * updated with their value. Unknown attributes or attributes that are ++ * not supported for the given profile/entrypoint pair will have their ++ * value set to VA_ATTRIB_NOT_SUPPORTED ++ */ ++VAStatus vaGetConfigAttributes ( ++ VADisplay dpy, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, /* in/out */ ++ int num_attribs ++); ++ ++/* Generic ID type, can be re-typed for specific implementation */ ++typedef unsigned int VAGenericID; ++ ++typedef VAGenericID VAConfigID; ++ ++/* ++ * Create a configuration for the decode pipeline ++ * it passes in the attribute list that specifies the attributes it cares ++ * about, with the rest taking default values. ++ */ ++VAStatus vaCreateConfig ( ++ VADisplay dpy, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, ++ int num_attribs, ++ VAConfigID *config_id /* out */ ++); ++ ++/* ++ * Free resources associdated with a given config ++ */ ++VAStatus vaDestroyConfig ( ++ VADisplay dpy, ++ VAConfigID config_id ++); ++ ++/* ++ * Query all attributes for a given configuration ++ * The profile of the configuration is returned in "profile" ++ * The entrypoint of the configuration is returned in "entrypoint" ++ * The caller must provide an "attrib_list" array that can hold at least ++ * vaMaxNumConfigAttributes() entries. The actual number of attributes ++ * returned in "attrib_list" is returned in "num_attribs" ++ */ ++VAStatus vaQueryConfigAttributes ( ++ VADisplay dpy, ++ VAConfigID config_id, ++ VAProfile *profile, /* out */ ++ VAEntrypoint *entrypoint, /* out */ ++ VAConfigAttrib *attrib_list,/* out */ ++ int *num_attribs /* out */ ++); ++ ++ ++/* ++ * Contexts and Surfaces ++ * ++ * Context represents a "virtual" video decode pipeline. Surfaces are render ++ * targets for a given context. The data in the surfaces are not accessible ++ * to the client and the internal data format of the surface is implementatin ++ * specific. ++ * ++ * Surfaces will be bound to a context when the context is created. Once ++ * a surface is bound to a given context, it can not be used to create ++ * another context. The association is removed when the context is destroyed ++ * ++ * Both contexts and surfaces are identified by unique IDs and its ++ * implementation specific internals are kept opaque to the clients ++ */ ++ ++typedef VAGenericID VAContextID; ++ ++typedef VAGenericID VASurfaceID; ++ ++#define VA_INVALID_ID 0xffffffff ++#define VA_INVALID_SURFACE VA_INVALID_ID ++ ++/* ++ * vaCreateSurfaces - Create an array of surfaces used for decode and display ++ * dpy: display ++ * width: surface width ++ * height: surface height ++ * format: VA_RT_FORMAT_YUV420, VA_RT_FORMAT_YUV422 or VA_RT_FORMAT_YUV444 ++ * num_surfaces: number of surfaces to be created ++ * surfaces: array of surfaces created upon return ++ */ ++VAStatus vaCreateSurfaces ( ++ VADisplay dpy, ++ int width, ++ int height, ++ int format, ++ int num_surfaces, ++ VASurfaceID *surfaces /* out */ ++); ++ ++/* Wrap a CI (camera imaging) frame as a VA surface to share captured video between camear ++ * and VA encode. With frame_id, VA driver need to call CI interfaces to get the information ++ * of the frame, and to determine if the frame can be wrapped as a VA surface ++ * ++ * Application should make sure the frame is idle before the frame is passed into VA stack ++ * and also a vaSyncSurface should be called before application tries to access the frame ++ * from CI stack ++ */ ++VAStatus vaCreateSurfaceFromCIFrame ( ++ VADisplay dpy, ++ unsigned long frame_id, ++ VASurfaceID *surface /* out */ ++); ++ ++ ++/* ++ * vaDestroySurfaces - Destroy resources associated with surfaces. ++ * Surfaces can only be destroyed after the context associated has been ++ * destroyed. ++ * dpy: display ++ * surfaces: array of surfaces to destroy ++ * num_surfaces: number of surfaces in the array to be destroyed. ++ */ ++VAStatus vaDestroySurfaces ( ++ VADisplay dpy, ++ VASurfaceID *surfaces, ++ int num_surfaces ++); ++ ++#define VA_PROGRESSIVE 0x1 ++/* ++ * vaCreateContext - Create a context ++ * dpy: display ++ * config_id: configuration for the context ++ * picture_width: coded picture width ++ * picture_height: coded picture height ++ * flag: any combination of the following: ++ * VA_PROGRESSIVE (only progressive frame pictures in the sequence when set) ++ * render_targets: render targets (surfaces) tied to the context ++ * num_render_targets: number of render targets in the above array ++ * context: created context id upon return ++ */ ++VAStatus vaCreateContext ( ++ VADisplay dpy, ++ VAConfigID config_id, ++ int picture_width, ++ int picture_height, ++ int flag, ++ VASurfaceID *render_targets, ++ int num_render_targets, ++ VAContextID *context /* out */ ++); ++ ++/* ++ * vaDestroyContext - Destroy a context ++ * dpy: display ++ * context: context to be destroyed ++ */ ++VAStatus vaDestroyContext ( ++ VADisplay dpy, ++ VAContextID context ++); ++ ++/* ++ * Buffers ++ * Buffers are used to pass various types of data from the ++ * client to the server. The server maintains a data store ++ * for each buffer created, and the client idenfies a buffer ++ * through a unique buffer id assigned by the server. ++ */ ++ ++typedef VAGenericID VABufferID; ++ ++typedef enum ++{ ++ VAPictureParameterBufferType = 0, ++ VAIQMatrixBufferType = 1, ++ VABitPlaneBufferType = 2, ++ VASliceGroupMapBufferType = 3, ++ VASliceParameterBufferType = 4, ++ VASliceDataBufferType = 5, ++ VAMacroblockParameterBufferType = 6, ++ VAResidualDataBufferType = 7, ++ VADeblockingParameterBufferType = 8, ++ VAImageBufferType = 9, ++ VAProtectedSliceDataBufferType = 10, ++/* Following are encode buffer types */ ++ VAEncCodedBufferType = 21, ++ VAEncSequenceParameterBufferType = 22, ++ VAEncPictureParameterBufferType = 23, ++ VAEncSliceParameterBufferType = 24, ++ VAEncH264VUIBufferType = 25, ++ VAEncH264SEIBufferType = 26, ++} VABufferType; ++ ++ ++/* ++ * There will be cases where the bitstream buffer will not have enough room to hold ++ * the data for the entire slice, and the following flags will be used in the slice ++ * parameter to signal to the server for the possible cases. ++ * If a slice parameter buffer and slice data buffer pair is sent to the server with ++ * the slice data partially in the slice data buffer (BEGIN and MIDDLE cases below), ++ * then a slice parameter and data buffer needs to be sent again to complete this slice. ++ */ ++#define VA_SLICE_DATA_FLAG_ALL 0x00 /* whole slice is in the buffer */ ++#define VA_SLICE_DATA_FLAG_BEGIN 0x01 /* The beginning of the slice is in the buffer but the end if not */ ++#define VA_SLICE_DATA_FLAG_MIDDLE 0x02 /* Neither beginning nor end of the slice is in the buffer */ ++#define VA_SLICE_DATA_FLAG_END 0x04 /* end of the slice is in the buffer */ ++ ++/* Codec-independent Slice Parameter Buffer base */ ++typedef struct _VASliceParameterBufferBase ++{ ++ unsigned int slice_data_size; /* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset; /* the offset to the first byte of slice data */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX definitions */ ++} VASliceParameterBufferBase; ++ ++/**************************** ++ * MPEG-2 data structures ++ ****************************/ ++ ++/* MPEG-2 Picture Parameter Buffer */ ++/* ++ * For each frame or field, and before any slice data, a single ++ * picture parameter buffer must be send. ++ */ ++typedef struct _VAPictureParameterBufferMPEG2 ++{ ++ unsigned short horizontal_size; ++ unsigned short vertical_size; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* meanings of the following fields are the same as in the standard */ ++ int picture_coding_type; ++ int f_code; /* pack all four fcode into this */ ++ union { ++ struct { ++ unsigned int intra_dc_precision : 2; ++ unsigned int picture_structure : 2; ++ unsigned int top_field_first : 1; ++ unsigned int frame_pred_frame_dct : 1; ++ unsigned int concealment_motion_vectors : 1; ++ unsigned int q_scale_type : 1; ++ unsigned int intra_vlc_format : 1; ++ unsigned int alternate_scan : 1; ++ unsigned int repeat_first_field : 1; ++ unsigned int progressive_frame : 1; ++ unsigned int is_first_field : 1; /* indicate whether the current field ++ * is the first field for field picture ++ */ ++ } bits; ++ unsigned int value; ++ } picture_coding_extension; ++} VAPictureParameterBufferMPEG2; ++ ++/* MPEG-2 Inverse Quantization Matrix Buffer */ ++typedef struct _VAIQMatrixBufferMPEG2 ++{ ++ int load_intra_quantiser_matrix; ++ int load_non_intra_quantiser_matrix; ++ int load_chroma_intra_quantiser_matrix; ++ int load_chroma_non_intra_quantiser_matrix; ++ unsigned char intra_quantiser_matrix[64]; ++ unsigned char non_intra_quantiser_matrix[64]; ++ unsigned char chroma_intra_quantiser_matrix[64]; ++ unsigned char chroma_non_intra_quantiser_matrix[64]; ++} VAIQMatrixBufferMPEG2; ++ ++/* MPEG-2 Slice Parameter Buffer */ ++typedef struct _VASliceParameterBufferMPEG2 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ ++ unsigned int slice_horizontal_position; ++ unsigned int slice_vertical_position; ++ int quantiser_scale_code; ++ int intra_slice_flag; ++} VASliceParameterBufferMPEG2; ++ ++/* MPEG-2 Macroblock Parameter Buffer */ ++typedef struct _VAMacroblockParameterBufferMPEG2 ++{ ++ unsigned short macroblock_address; ++ /* ++ * macroblock_address (in raster scan order) ++ * top-left: 0 ++ * bottom-right: picture-height-in-mb*picture-width-in-mb - 1 ++ */ ++ unsigned char macroblock_type; /* see definition below */ ++ union { ++ struct { ++ unsigned int frame_motion_type : 2; ++ unsigned int field_motion_type : 2; ++ unsigned int dct_type : 1; ++ } bits; ++ unsigned int value; ++ } macroblock_modes; ++ unsigned char motion_vertical_field_select; ++ /* ++ * motion_vertical_field_select: ++ * see section 6.3.17.2 in the spec ++ * only the lower 4 bits are used ++ * bit 0: first vector forward ++ * bit 1: first vector backward ++ * bit 2: second vector forward ++ * bit 3: second vector backward ++ */ ++ short PMV[2][2][2]; /* see Table 7-7 in the spec */ ++ unsigned short coded_block_pattern; ++ /* ++ * The bitplanes for coded_block_pattern are described ++ * in Figure 6.10-12 in the spec ++ */ ++ ++ /* Number of skipped macroblocks after this macroblock */ ++ unsigned short num_skipped_macroblocks; ++} VAMacroblockParameterBufferMPEG2; ++ ++/* ++ * OR'd flags for macroblock_type (section 6.3.17.1 in the spec) ++ */ ++#define VA_MB_TYPE_MOTION_FORWARD 0x02 ++#define VA_MB_TYPE_MOTION_BACKWARD 0x04 ++#define VA_MB_TYPE_MOTION_PATTERN 0x08 ++#define VA_MB_TYPE_MOTION_INTRA 0x10 ++ ++/* ++ * MPEG-2 Residual Data Buffer ++ * For each macroblock, there wil be 64 shorts (16-bit) in the ++ * residual data buffer ++ */ ++ ++/**************************** ++ * MPEG-4 Part 2 data structures ++ ****************************/ ++ ++/* MPEG-4 Picture Parameter Buffer */ ++/* ++ * For each frame or field, and before any slice data, a single ++ * picture parameter buffer must be send. ++ */ ++typedef struct _VAPictureParameterBufferMPEG4 ++{ ++ unsigned short vop_width; ++ unsigned short vop_height; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ union { ++ struct { ++ unsigned int short_video_header : 1; ++ unsigned int chroma_format : 2; ++ unsigned int interlaced : 1; ++ unsigned int obmc_disable : 1; ++ unsigned int sprite_enable : 2; ++ unsigned int sprite_warping_accuracy : 2; ++ unsigned int quant_type : 1; ++ unsigned int quarter_sample : 1; ++ unsigned int data_partitioned : 1; ++ unsigned int reversible_vlc : 1; ++ } bits; ++ unsigned int value; ++ } vol_fields; ++ unsigned char no_of_sprite_warping_points; ++ short sprite_trajectory_du[3]; ++ short sprite_trajectory_dv[3]; ++ unsigned char quant_precision; ++ union { ++ struct { ++ unsigned int vop_coding_type : 2; ++ unsigned int backward_reference_vop_coding_type : 2; ++ unsigned int vop_rounding_type : 1; ++ unsigned int intra_dc_vlc_thr : 3; ++ unsigned int top_field_first : 1; ++ unsigned int alternate_vertical_scan_flag : 1; ++ } bits; ++ unsigned int value; ++ } vop_fields; ++ unsigned char vop_fcode_forward; ++ unsigned char vop_fcode_backward; ++ /* short header related */ ++ unsigned char num_gobs_in_vop; ++ unsigned char num_macroblocks_in_gob; ++ /* for direct mode prediction */ ++ short TRB; ++ short TRD; ++} VAPictureParameterBufferMPEG4; ++ ++/* MPEG-4 Inverse Quantization Matrix Buffer */ ++typedef struct _VAIQMatrixBufferMPEG4 ++{ ++ int load_intra_quant_mat; ++ int load_non_intra_quant_mat; ++ unsigned char intra_quant_mat[64]; ++ unsigned char non_intra_quant_mat[64]; ++} VAIQMatrixBufferMPEG4; ++ ++/* MPEG-4 Slice Parameter Buffer */ ++typedef struct _VASliceParameterBufferMPEG4 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ ++ unsigned int macroblock_number; ++ int quant_scale; ++} VASliceParameterBufferMPEG4; ++ ++/* ++ VC-1 data structures ++*/ ++ ++typedef enum /* see 7.1.1.32 */ ++{ ++ VAMvMode1Mv = 0, ++ VAMvMode1MvHalfPel = 1, ++ VAMvMode1MvHalfPelBilinear = 2, ++ VAMvModeMixedMv = 3, ++ VAMvModeIntensityCompensation = 4 ++} VAMvModeVC1; ++ ++/* VC-1 Picture Parameter Buffer */ ++/* ++ * For each picture, and before any slice data, a picture parameter ++ * buffer must be send. Multiple picture parameter buffers may be ++ * sent for a single picture. In that case picture parameters will ++ * apply to all slice data that follow it until a new picture ++ * parameter buffer is sent. ++ * ++ * Notes: ++ * pic_quantizer_type should be set to the applicable quantizer ++ * type as defined by QUANTIZER (J.1.19) and either ++ * PQUANTIZER (7.1.1.8) or PQINDEX (7.1.1.6) ++ */ ++typedef struct _VAPictureParameterBufferVC1 ++{ ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* if out-of-loop post-processing is done on the render ++ target, then we need to keep the in-loop decoded ++ picture as a reference picture */ ++ VASurfaceID inloop_decoded_picture; ++ ++ /* sequence layer for AP or meta data for SP and MP */ ++ union { ++ struct { ++ unsigned int pulldown : 1; /* SEQUENCE_LAYER::PULLDOWN */ ++ unsigned int interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ ++ unsigned int tfcntrflag : 1; /* SEQUENCE_LAYER::TFCNTRFLAG */ ++ unsigned int finterpflag : 1; /* SEQUENCE_LAYER::FINTERPFLAG */ ++ unsigned int psf : 1; /* SEQUENCE_LAYER::PSF */ ++ unsigned int multires : 1; /* METADATA::MULTIRES */ ++ unsigned int overlap : 1; /* METADATA::OVERLAP */ ++ unsigned int syncmarker : 1; /* METADATA::SYNCMARKER */ ++ unsigned int rangered : 1; /* METADATA::RANGERED */ ++ unsigned int max_b_frames : 3; /* METADATA::MAXBFRAMES */ ++ } bits; ++ unsigned int value; ++ } sequence_fields; ++ ++ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ ++ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ ++ union { ++ struct { ++ unsigned int broken_link : 1; /* ENTRY_POINT_LAYER::BROKEN_LINK */ ++ unsigned int closed_entry : 1; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ ++ unsigned int panscan_flag : 1; /* ENTRY_POINT_LAYER::PANSCAN_FLAG */ ++ unsigned int loopfilter : 1; /* ENTRY_POINT_LAYER::LOOPFILTER */ ++ } bits; ++ unsigned int value; ++ } entrypoint_fields; ++ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ ++ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ ++ union { ++ struct { ++ unsigned int luma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ ++ unsigned int luma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ ++ unsigned int chroma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ ++ unsigned int chroma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ ++ } bits; ++ unsigned int value; ++ } range_mapping_fields; ++ ++ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ ++ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ ++ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ ++ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ ++ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ ++ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ ++ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ ++ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ ++ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ ++ union { ++ struct { ++ unsigned int picture_type : 3; /* PICTURE_LAYER::PTYPE */ ++ unsigned int frame_coding_mode : 3; /* PICTURE_LAYER::FCM */ ++ unsigned int top_field_first : 1; /* PICTURE_LAYER::TFF */ ++ unsigned int is_first_field : 1; /* set to 1 if it is the first field */ ++ unsigned int intensity_compensation : 1; /* PICTURE_LAYER::INTCOMP */ ++ } bits; ++ unsigned int value; ++ } picture_fields; ++ union { ++ struct { ++ unsigned int mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned int direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned int skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned int field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned int forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned int ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned int overflags : 1; /* PICTURE::OVERFLAGS */ ++ } flags; ++ unsigned int value; ++ } raw_coding; ++ union { ++ struct { ++ unsigned int bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned int bp_direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned int bp_skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned int bp_field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned int bp_forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned int bp_ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned int bp_overflags : 1; /* PICTURE::OVERFLAGS */ ++ } flags; ++ unsigned int value; ++ } bitplane_present; /* signal what bitplane is being passed via the bitplane buffer */ ++ union { ++ struct { ++ unsigned int reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ ++ unsigned int reference_distance : 5;/* PICTURE_LAYER::REFDIST */ ++ unsigned int num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ ++ unsigned int reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ ++ } bits; ++ unsigned int value; ++ } reference_fields; ++ union { ++ struct { ++ unsigned int mv_mode : 3; /* PICTURE_LAYER::MVMODE */ ++ unsigned int mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ ++ unsigned int mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ ++ unsigned int two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ ++ unsigned int four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ ++ unsigned int four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ ++ unsigned int extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ ++ unsigned int extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ ++ unsigned int extended_dmv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_DMV */ ++ unsigned int extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ ++ } bits; ++ unsigned int value; ++ } mv_fields; ++ union { ++ struct { ++ unsigned int dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ ++ unsigned int quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ ++ unsigned int half_qp : 1; /* PICTURE_LAYER::HALFQP */ ++ unsigned int pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ ++ unsigned int pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ ++ unsigned int dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ ++ unsigned int dq_profile : 2; /* VOPDQUANT::DQPROFILE */ ++ unsigned int dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ ++ unsigned int dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ ++ unsigned int dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ ++ unsigned int alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ ++ } bits; ++ unsigned int value; ++ } pic_quantizer_fields; ++ union { ++ struct { ++ unsigned int variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ ++ unsigned int mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ ++ unsigned int frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ ++ unsigned int transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ ++ unsigned int transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ ++ unsigned int intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ ++ } bits; ++ unsigned int value; ++ } transform_fields; ++} VAPictureParameterBufferVC1; ++ ++/* VC-1 Bitplane Buffer ++There will be at most three bitplanes coded in any picture header. To send ++the bitplane data more efficiently, each byte is divided in two nibbles, with ++each nibble carrying three bitplanes for one macroblock. The following table ++shows the bitplane data arrangement within each nibble based on the picture ++type. ++ ++Picture Type Bit3 Bit2 Bit1 Bit0 ++I or BI OVERFLAGS ACPRED FIELDTX ++P MYTYPEMB SKIPMB DIRECTMB ++B FORWARDMB SKIPMB DIRECTMB ++ ++Within each byte, the lower nibble is for the first MB and the upper nibble is ++for the second MB. E.g. the lower nibble of the first byte in the bitplane ++buffer is for Macroblock #1 and the upper nibble of the first byte is for ++Macroblock #2 in the first row. ++*/ ++ ++/* VC-1 Slice Parameter Buffer */ ++typedef struct _VASliceParameterBufferVC1 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ ++ unsigned int slice_vertical_position; ++} VASliceParameterBufferVC1; ++ ++/* VC-1 Slice Data Buffer */ ++/* ++This is simplely a buffer containing raw bit-stream bytes ++*/ ++ ++/**************************** ++ * H.264/AVC data structures ++ ****************************/ ++ ++typedef struct _VAPictureH264 ++{ ++ VASurfaceID picture_id; ++ unsigned int frame_idx; ++ unsigned int flags; ++ unsigned int TopFieldOrderCnt; ++ unsigned int BottomFieldOrderCnt; ++} VAPictureH264; ++/* flags in VAPictureH264 could be OR of the following */ ++#define VA_PICTURE_H264_INVALID 0x00000001 ++#define VA_PICTURE_H264_TOP_FIELD 0x00000002 ++#define VA_PICTURE_H264_BOTTOM_FIELD 0x00000004 ++#define VA_PICTURE_H264_SHORT_TERM_REFERENCE 0x00000008 ++#define VA_PICTURE_H264_LONG_TERM_REFERENCE 0x00000010 ++ ++/* H.264 Picture Parameter Buffer */ ++/* ++ * For each picture, and before any slice data, a single ++ * picture parameter buffer must be send. ++ */ ++typedef struct _VAPictureParameterBufferH264 ++{ ++ VAPictureH264 CurrPic; ++ VAPictureH264 ReferenceFrames[16]; /* in DPB */ ++ unsigned short picture_width_in_mbs_minus1; ++ unsigned short picture_height_in_mbs_minus1; ++ unsigned char bit_depth_luma_minus8; ++ unsigned char bit_depth_chroma_minus8; ++ unsigned char num_ref_frames; ++ union { ++ struct { ++ unsigned int chroma_format_idc : 2; ++ unsigned int residual_colour_transform_flag : 1; ++ unsigned int gaps_in_frame_num_value_allowed_flag : 1; ++ unsigned int frame_mbs_only_flag : 1; ++ unsigned int mb_adaptive_frame_field_flag : 1; ++ unsigned int direct_8x8_inference_flag : 1; ++ unsigned int MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ ++ unsigned int log2_max_frame_num_minus4 : 4; ++ unsigned int pic_order_cnt_type : 2; ++ unsigned int log2_max_pic_order_cnt_lsb_minus4 : 4; ++ unsigned int delta_pic_order_always_zero_flag : 1; ++ } bits; ++ unsigned int value; ++ } seq_fields; ++ unsigned char num_slice_groups_minus1; ++ unsigned char slice_group_map_type; ++ unsigned short slice_group_change_rate_minus1; ++ signed char pic_init_qp_minus26; ++ signed char pic_init_qs_minus26; ++ signed char chroma_qp_index_offset; ++ signed char second_chroma_qp_index_offset; ++ union { ++ struct { ++ unsigned int entropy_coding_mode_flag : 1; ++ unsigned int weighted_pred_flag : 1; ++ unsigned int weighted_bipred_idc : 2; ++ unsigned int transform_8x8_mode_flag : 1; ++ unsigned int field_pic_flag : 1; ++ unsigned int constrained_intra_pred_flag : 1; ++ unsigned int pic_order_present_flag : 1; ++ unsigned int deblocking_filter_control_present_flag : 1; ++ unsigned int redundant_pic_cnt_present_flag : 1; ++ unsigned int reference_pic_flag : 1; /* nal_ref_idc != 0 */ ++ } bits; ++ unsigned int value; ++ } pic_fields; ++ unsigned short frame_num; ++} VAPictureParameterBufferH264; ++ ++/* H.264 Inverse Quantization Matrix Buffer */ ++typedef struct _VAIQMatrixBufferH264 ++{ ++ unsigned char ScalingList4x4[6][16]; ++ unsigned char ScalingList8x8[2][64]; ++} VAIQMatrixBufferH264; ++ ++/* ++ * H.264 Slice Group Map Buffer ++ * When VAPictureParameterBufferH264::num_slice_group_minus1 is not equal to 0, ++ * A slice group map buffer should be sent for each picture if required. The buffer ++ * is sent only when there is a change in the mapping values. ++ * The slice group map buffer map "map units" to slice groups as specified in ++ * section 8.2.2 of the H.264 spec. The buffer will contain one byte for each macroblock ++ * in raster scan order ++ */ ++ ++/* H.264 Slice Parameter Buffer */ ++typedef struct _VASliceParameterBufferH264 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ ++ unsigned short first_mb_in_slice; ++ unsigned char slice_type; ++ unsigned char direct_spatial_mv_pred_flag; ++ unsigned char num_ref_idx_l0_active_minus1; ++ unsigned char num_ref_idx_l1_active_minus1; ++ unsigned char cabac_init_idc; ++ char slice_qp_delta; ++ unsigned char disable_deblocking_filter_idc; ++ char slice_alpha_c0_offset_div2; ++ char slice_beta_offset_div2; ++ VAPictureH264 RefPicList0[32]; /* See 8.2.4.2 */ ++ VAPictureH264 RefPicList1[32]; /* See 8.2.4.2 */ ++ unsigned char luma_log2_weight_denom; ++ unsigned char chroma_log2_weight_denom; ++ unsigned char luma_weight_l0_flag; ++ short luma_weight_l0[32]; ++ short luma_offset_l0[32]; ++ unsigned char chroma_weight_l0_flag; ++ short chroma_weight_l0[32][2]; ++ short chroma_offset_l0[32][2]; ++ unsigned char luma_weight_l1_flag; ++ short luma_weight_l1[32]; ++ short luma_offset_l1[32]; ++ unsigned char chroma_weight_l1_flag; ++ short chroma_weight_l1[32][2]; ++ short chroma_offset_l1[32][2]; ++} VASliceParameterBufferH264; ++ ++/**************************** ++ * Common encode data structures ++ ****************************/ ++typedef enum ++{ ++ VAEncPictureTypeIntra = 0, ++ VAEncPictureTypePredictive = 1, ++ VAEncPictureTypeBidirectional = 2, ++} VAEncPictureType; ++ ++/* Encode Slice Parameter Buffer */ ++typedef struct _VAEncSliceParameterBuffer ++{ ++ unsigned int start_row_number; /* starting MB row number for this slice */ ++ unsigned int slice_height; /* slice height measured in MB */ ++ union { ++ struct { ++ unsigned int is_intra : 1; ++ unsigned int disable_deblocking_filter_idc : 2; ++ } bits; ++ unsigned int value; ++ } slice_flags; ++} VAEncSliceParameterBuffer; ++ ++/**************************** ++ * H.264 specific encode data structures ++ ****************************/ ++ ++typedef struct _VAEncSequenceParameterBufferH264 ++{ ++ unsigned char seq_parameter_set_id; ++ unsigned char level_idc; ++ unsigned int intra_period; ++ unsigned int picture_width_in_mbs; ++ unsigned int picture_height_in_mbs; ++ unsigned int bits_per_second; ++ unsigned int frame_rate; ++ unsigned int initial_qp; ++ unsigned int min_qp; ++ unsigned int basic_unit_size; ++ unsigned char vui_flag; ++} VAEncSequenceParameterBufferH264; ++ ++typedef struct _VAEncPictureParameterBufferH264 ++{ ++ VASurfaceID reference_picture; ++ VASurfaceID reconstructed_picture; ++ VABufferID coded_buf; ++ unsigned short picture_width; ++ unsigned short picture_height; ++ unsigned char last_picture; /* if set to 1 it indicates the last picture in the sequence */ ++} VAEncPictureParameterBufferH264; ++ ++/**************************** ++ * H.263 specific encode data structures ++ ****************************/ ++ ++typedef struct _VAEncSequenceParameterBufferH263 ++{ ++ unsigned int intra_period; ++ unsigned int bits_per_second; ++ unsigned int frame_rate; ++ unsigned int initial_qp; ++ unsigned int min_qp; ++} VAEncSequenceParameterBufferH263; ++ ++typedef struct _VAEncPictureParameterBufferH263 ++{ ++ VASurfaceID reference_picture; ++ VASurfaceID reconstructed_picture; ++ VABufferID coded_buf; ++ unsigned short picture_width; ++ unsigned short picture_height; ++ VAEncPictureType picture_type; ++} VAEncPictureParameterBufferH263; ++ ++/**************************** ++ * MPEG-4 specific encode data structures ++ ****************************/ ++ ++typedef struct _VAEncSequenceParameterBufferMPEG4 ++{ ++ unsigned char profile_and_level_indication; ++ unsigned int intra_period; ++ unsigned int video_object_layer_width; ++ unsigned int video_object_layer_height; ++ unsigned int vop_time_increment_resolution; ++ unsigned int fixed_vop_rate; ++ unsigned int fixed_vop_time_increment; ++ unsigned int bits_per_second; ++ unsigned int frame_rate; ++ unsigned int initial_qp; ++ unsigned int min_qp; ++} VAEncSequenceParameterBufferMPEG4; ++ ++typedef struct _VAEncPictureParameterBufferMPEG4 ++{ ++ VASurfaceID reference_picture; ++ VASurfaceID reconstructed_picture; ++ VABufferID coded_buf; ++ unsigned short picture_width; ++ unsigned short picture_height; ++ unsigned int modulo_time_base; /* number of 1s */ ++ unsigned int vop_time_increment; ++ VAEncPictureType picture_type; ++} VAEncPictureParameterBufferMPEG4; ++ ++ ++ ++/* Buffer functions */ ++ ++/* ++ * Creates a buffer for "num_elements" elements of "size" bytes and ++ * initalize with "data". ++ * if "data" is null, then the contents of the buffer data store ++ * are undefined. ++ * Basically there are two ways to get buffer data to the server side. One is ++ * to call vaCreateBuffer() with a non-null "data", which results the data being ++ * copied to the data store on the server side. A different method that ++ * eliminates this copy is to pass null as "data" when calling vaCreateBuffer(), ++ * and then use vaMapBuffer() to map the data store from the server side to the ++ * client address space for access. ++ * Note: image buffers are created by the library, not the client. Please see ++ * vaCreateImage on how image buffers are managed. ++ */ ++VAStatus vaCreateBuffer ( ++ VADisplay dpy, ++ VAContextID context, ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++); ++ ++/* ++ * Convey to the server how many valid elements are in the buffer. ++ * e.g. if multiple slice parameters are being held in a single buffer, ++ * this will communicate to the server the number of slice parameters ++ * that are valid in the buffer. ++ */ ++VAStatus vaBufferSetNumElements ( ++ VADisplay dpy, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++); ++ ++/* ++ * Map data store of the buffer into the client's address space ++ * vaCreateBuffer() needs to be called with "data" set to NULL before ++ * calling vaMapBuffer() ++ */ ++VAStatus vaMapBuffer ( ++ VADisplay dpy, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++); ++ ++/* ++ * After client making changes to a mapped data store, it needs to ++ * "Unmap" it to let the server know that the data is ready to be ++ * consumed by the server ++ */ ++VAStatus vaUnmapBuffer ( ++ VADisplay dpy, ++ VABufferID buf_id /* in */ ++); ++ ++/* ++ * After this call, the buffer is deleted and this buffer_id is no longer valid ++ * Only call this if the buffer is not going to be passed to vaRenderBuffer ++ */ ++VAStatus vaDestroyBuffer ( ++ VADisplay dpy, ++ VABufferID buffer_id ++); ++ ++/* ++Render (Decode) Pictures ++ ++A picture represents either a frame or a field. ++ ++The Begin/Render/End sequence sends the decode buffers to the server ++*/ ++ ++/* ++ * Get ready to decode a picture to a target surface ++ */ ++VAStatus vaBeginPicture ( ++ VADisplay dpy, ++ VAContextID context, ++ VASurfaceID render_target ++); ++ ++/* ++ * Send decode buffers to the server. ++ * Buffers are automatically destroyed afterwards ++ */ ++VAStatus vaRenderPicture ( ++ VADisplay dpy, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++); ++ ++/* ++ * Make the end of rendering for a picture. ++ * The server should start processing all pending operations for this ++ * surface. This call is non-blocking. The client can start another ++ * Begin/Render/End sequence on a different render target. ++ */ ++VAStatus vaEndPicture ( ++ VADisplay dpy, ++ VAContextID context ++); ++ ++/* ++ ++Synchronization ++ ++*/ ++ ++/* ++ * This function blocks until all pending operations on the render target ++ * have been completed. Upon return it is safe to use the render target for a ++ * different picture. ++ */ ++VAStatus vaSyncSurface ( ++ VADisplay dpy, ++ VASurfaceID render_target ++); ++ ++typedef enum ++{ ++ VASurfaceRendering = 1, /* Rendering in progress */ ++ VASurfaceDisplaying = 2, /* Displaying in progress (not safe to render into it) */ ++ /* this status is useful if surface is used as the source */ ++ /* of an overlay */ ++ VASurfaceReady = 4, /* not being rendered or displayed */ ++ VASurfaceSkipped = 8 /* Indicate a skipped frame during encode */ ++} VASurfaceStatus; ++ ++/* ++ * Find out any pending ops on the render target ++ */ ++VAStatus vaQuerySurfaceStatus ( ++ VADisplay dpy, ++ VASurfaceID render_target, ++ VASurfaceStatus *status /* out */ ++); ++ ++/* ++ * Images and Subpictures ++ * VAImage is used to either get the surface data to client memory, or ++ * to copy image data in client memory to a surface. ++ * Both images, subpictures and surfaces follow the same 2D coordinate system where origin ++ * is at the upper left corner with positive X to the right and positive Y down ++ */ ++#define VA_FOURCC(ch0, ch1, ch2, ch3) \ ++ ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \ ++ ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 )) ++ ++/* a few common FourCCs */ ++#define VA_FOURCC_NV12 0x3231564E ++#define VA_FOURCC_AI44 0x34344149 ++#define VA_FOURCC_RGBA 0x41424752 ++#define VA_FOURCC_UYVY 0x59565955 ++#define VA_FOURCC_YUY2 0x32595559 ++#define VA_FOURCC_AYUV 0x56555941 ++#define VA_FOURCC_NV11 0x3131564e ++#define VA_FOURCC_YV12 0x32315659 ++#define VA_FOURCC_P208 0x38303250 ++#define VA_FOURCC_IYUV 0x56555949 ++ ++/* byte order */ ++#define VA_LSB_FIRST 1 ++#define VA_MSB_FIRST 2 ++ ++typedef struct _VAImageFormat ++{ ++ unsigned int fourcc; ++ unsigned int byte_order; /* VA_LSB_FIRST, VA_MSB_FIRST */ ++ unsigned int bits_per_pixel; ++ /* for RGB formats */ ++ unsigned int depth; /* significant bits per pixel */ ++ unsigned int red_mask; ++ unsigned int green_mask; ++ unsigned int blue_mask; ++ unsigned int alpha_mask; ++} VAImageFormat; ++ ++typedef VAGenericID VAImageID; ++ ++typedef struct _VAImage ++{ ++ VAImageID image_id; /* uniquely identify this image */ ++ VAImageFormat format; ++ VABufferID buf; /* image data buffer */ ++ /* ++ * Image data will be stored in a buffer of type VAImageBufferType to facilitate ++ * data store on the server side for optimal performance. The buffer will be ++ * created by the CreateImage function, and proper storage allocated based on the image ++ * size and format. This buffer is managed by the library implementation, and ++ * accessed by the client through the buffer Map/Unmap functions. ++ */ ++ unsigned short width; ++ unsigned short height; ++ unsigned int data_size; ++ unsigned int num_planes; /* can not be greater than 3 */ ++ /* ++ * An array indicating the scanline pitch in bytes for each plane. ++ * Each plane may have a different pitch. Maximum 3 planes for planar formats ++ */ ++ unsigned int pitches[3]; ++ /* ++ * An array indicating the byte offset from the beginning of the image data ++ * to the start of each plane. ++ */ ++ unsigned int offsets[3]; ++ ++ /* The following fields are only needed for paletted formats */ ++ int num_palette_entries; /* set to zero for non-palette images */ ++ /* ++ * Each component is one byte and entry_bytes indicates the number of components in ++ * each entry (eg. 3 for YUV palette entries). set to zero for non-palette images ++ */ ++ int entry_bytes; ++ /* ++ * An array of ascii characters describing the order of the components within the bytes. ++ * Only entry_bytes characters of the string are used. ++ */ ++ char component_order[4]; ++} VAImage; ++ ++/* Get maximum number of image formats supported by the implementation */ ++int vaMaxNumImageFormats ( ++ VADisplay dpy ++); ++ ++/* ++ * Query supported image formats ++ * The caller must provide a "format_list" array that can hold at ++ * least vaMaxNumImageFormats() entries. The actual number of formats ++ * returned in "format_list" is returned in "num_formats". ++ */ ++VAStatus vaQueryImageFormats ( ++ VADisplay dpy, ++ VAImageFormat *format_list, /* out */ ++ int *num_formats /* out */ ++); ++ ++/* ++ * Create a VAImage structure ++ * The width and height fields returned in the VAImage structure may get ++ * enlarged for some YUV formats. Upon return from this function, ++ * image->buf has been created and proper storage allocated by the library. ++ * The client can access the image through the Map/Unmap calls. ++ */ ++VAStatus vaCreateImage ( ++ VADisplay dpy, ++ VAImageFormat *format, ++ int width, ++ int height, ++ VAImage *image /* out */ ++); ++ ++/* ++ * Should call DestroyImage before destroying the surface it is bound to ++ */ ++VAStatus vaDestroyImage ( ++ VADisplay dpy, ++ VAImageID image ++); ++ ++VAStatus vaSetImagePalette ( ++ VADisplay dpy, ++ VAImageID image, ++ /* ++ * pointer to an array holding the palette data. The size of the array is ++ * num_palette_entries * entry_bytes in size. The order of the components ++ * in the palette is described by the component_order in VAImage struct ++ */ ++ unsigned char *palette ++); ++ ++/* ++ * Retrive surface data into a VAImage ++ * Image must be in a format supported by the implementation ++ */ ++VAStatus vaGetImage ( ++ VADisplay dpy, ++ VASurfaceID surface, ++ int x, /* coordinates of the upper left source pixel */ ++ int y, ++ unsigned int width, /* width and height of the region */ ++ unsigned int height, ++ VAImageID image ++); ++ ++/* ++ * Copy data from a VAImage to a surface ++ * Image must be in a format supported by the implementation ++ * Returns a VA_STATUS_ERROR_SURFACE_BUSY if the surface ++ * shouldn't be rendered into when this is called ++ */ ++VAStatus vaPutImage ( ++ VADisplay dpy, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height ++); ++ ++/* ++ * Derive an VAImage from an existing surface. ++ * This interface will derive a VAImage and corresponding image buffer from ++ * an existing VA Surface. The image buffer can then be mapped/unmapped for ++ * direct CPU access. This operation is only possible on implementations with ++ * direct rendering capabilities and internal surface formats that can be ++ * represented with a VAImage. When the operation is not possible this interface ++ * will return VA_STATUS_ERROR_OPERATION_FAILED. Clients should then fall back ++ * to using vaCreateImage + vaPutImage to accomplish the same task in an ++ * indirect manner. ++ * ++ * Implementations should only return success when the resulting image buffer ++ * would be useable with vaMap/Unmap. ++ * ++ * When directly accessing a surface special care must be taken to insure ++ * proper synchronization with the graphics hardware. Clients should call ++ * vaQuerySurfaceStatus to insure that a surface is not the target of concurrent ++ * rendering or currently being displayed by an overlay. ++ * ++ * Additionally nothing about the contents of a surface should be assumed ++ * following a vaPutSurface. Implementations are free to modify the surface for ++ * scaling or subpicture blending within a call to vaPutImage. ++ * ++ * Calls to vaPutImage or vaGetImage using the same surface from which the image ++ * has been derived will return VA_STATUS_ERROR_SURFACE_BUSY. vaPutImage or ++ * vaGetImage with other surfaces is supported. ++ * ++ * An image created with vaDeriveImage should be freed with vaDestroyImage. The ++ * image and image buffer structures will be destroyed; however, the underlying ++ * surface will remain unchanged until freed with vaDestroySurfaces. ++ */ ++VAStatus vaDeriveImage ( ++ VADisplay dpy, ++ VASurfaceID surface, ++ VAImage *image /* out */ ++); ++ ++/* ++ * Subpictures ++ * Subpicture is a special type of image that can be blended ++ * with a surface during vaPutSurface(). Subpicture can be used to render ++ * DVD sub-titles or closed captioning text etc. ++ */ ++ ++typedef VAGenericID VASubpictureID; ++ ++/* Get maximum number of subpicture formats supported by the implementation */ ++int vaMaxNumSubpictureFormats ( ++ VADisplay dpy ++); ++ ++/* flags for subpictures */ ++#define VA_SUBPICTURE_CHROMA_KEYING 0x0001 ++#define VA_SUBPICTURE_GLOBAL_ALPHA 0x0002 ++/* ++ * Query supported subpicture formats ++ * The caller must provide a "format_list" array that can hold at ++ * least vaMaxNumSubpictureFormats() entries. The flags arrary holds the flag ++ * for each format to indicate additional capabilities for that format. The actual ++ * number of formats returned in "format_list" is returned in "num_formats". ++ * flags: returned value to indicate addtional capabilities ++ * VA_SUBPICTURE_CHROMA_KEYING - supports chroma-keying ++ * VA_SUBPICTURE_GLOBAL_ALPHA - supports global alpha ++ */ ++VAStatus vaQuerySubpictureFormats ( ++ VADisplay dpy, ++ VAImageFormat *format_list, /* out */ ++ unsigned int *flags, /* out */ ++ unsigned int *num_formats /* out */ ++); ++ ++/* ++ * Subpictures are created with an image associated. ++ */ ++VAStatus vaCreateSubpicture ( ++ VADisplay dpy, ++ VAImageID image, ++ VASubpictureID *subpicture /* out */ ++); ++ ++/* ++ * Destroy the subpicture before destroying the image it is assocated to ++ */ ++VAStatus vaDestroySubpicture ( ++ VADisplay dpy, ++ VASubpictureID subpicture ++); ++ ++/* ++ * Bind an image to the subpicture. This image will now be associated with ++ * the subpicture instead of the one at creation. ++ */ ++VAStatus vaSetSubpictureImage ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VAImageID image ++); ++ ++/* ++ * If chromakey is enabled, then the area where the source value falls within ++ * the chromakey [min, max] range is transparent ++ * The chromakey component format is the following: ++ * For RGB: [0:7] Red [8:15] Blue [16:23] Green ++ * For YUV: [0:7] V [8:15] U [16:23] Y ++ * The chromakey mask can be used to mask out certain components for chromakey ++ * comparision ++ */ ++VAStatus vaSetSubpictureChromakey ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask ++); ++ ++/* ++ * Global alpha value is between 0 and 1. A value of 1 means fully opaque and ++ * a value of 0 means fully transparent. If per-pixel alpha is also specified then ++ * the overall alpha is per-pixel alpha multiplied by the global alpha ++ */ ++VAStatus vaSetSubpictureGlobalAlpha ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ float global_alpha ++); ++ ++/* ++ * vaAssociateSubpicture associates the subpicture with target_surfaces. ++ * It defines the region mapping between the subpicture and the target ++ * surfaces through source and destination rectangles (with the same width and height). ++ * Both will be displayed at the next call to vaPutSurface. Additional ++ * associations before the call to vaPutSurface simply overrides the association. ++ */ ++VAStatus vaAssociateSubpicture ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ unsigned short src_width, ++ unsigned short src_height, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short dest_width, ++ unsigned short dest_height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++); ++ ++/* ++ * vaDeassociateSubpicture removes the association of the subpicture with target_surfaces. ++ */ ++VAStatus vaDeassociateSubpicture ( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces ++); ++ ++typedef struct _VARectangle ++{ ++ short x; ++ short y; ++ unsigned short width; ++ unsigned short height; ++} VARectangle; ++ ++/* ++ * Display attributes ++ * Display attributes are used to control things such as contrast, hue, saturation, ++ * brightness etc. in the rendering process. The application can query what ++ * attributes are supported by the driver, and then set the appropriate attributes ++ * before calling vaPutSurface() ++ */ ++ ++/* Currently defined display attribute types */ ++typedef enum ++{ ++ VADisplayAttribBrightness = 0, ++ VADisplayAttribContrast = 1, ++ VADisplayAttribHue = 2, ++ VADisplayAttribSaturation = 3, ++ /* client can specifiy a background color for the target window */ ++ VADisplayAttribBackgroundColor = 4, ++ /* ++ * this is a gettable only attribute. For some implementations that use the ++ * hardware overlay, after PutSurface is called, the surface can not be ++ * re-used until after the subsequent PutSurface call. If this is the case ++ * then the value for this attribute will be set to 1 so that the client ++ * will not attempt to re-use the surface right after returning from a call ++ * to PutSurface. ++ */ ++ VADisplayAttribDirectSurface = 5, ++} VADisplayAttribType; ++ ++/* flags for VADisplayAttribute */ ++#define VA_DISPLAY_ATTRIB_NOT_SUPPORTED 0x0000 ++#define VA_DISPLAY_ATTRIB_GETTABLE 0x0001 ++#define VA_DISPLAY_ATTRIB_SETTABLE 0x0002 ++ ++typedef struct _VADisplayAttribute ++{ ++ VADisplayAttribType type; ++ int min_value; ++ int max_value; ++ int value; /* used by the set/get attribute functions */ ++/* flags can be VA_DISPLAY_ATTRIB_GETTABLE or VA_DISPLAY_ATTRIB_SETTABLE or OR'd together */ ++ unsigned int flags; ++} VADisplayAttribute; ++ ++/* Get maximum number of display attributs supported by the implementation */ ++int vaMaxNumDisplayAttributes ( ++ VADisplay dpy ++); ++ ++/* ++ * Query display attributes ++ * The caller must provide a "attr_list" array that can hold at ++ * least vaMaxNumDisplayAttributes() entries. The actual number of attributes ++ * returned in "attr_list" is returned in "num_attributes". ++ */ ++VAStatus vaQueryDisplayAttributes ( ++ VADisplay dpy, ++ VADisplayAttribute *attr_list, /* out */ ++ int *num_attributes /* out */ ++); ++ ++/* ++ * Get display attributes ++ * This function returns the current attribute values in "attr_list". ++ * Only attributes returned with VA_DISPLAY_ATTRIB_GETTABLE set in the "flags" field ++ * from vaQueryDisplayAttributes() can have their values retrieved. ++ */ ++VAStatus vaGetDisplayAttributes ( ++ VADisplay dpy, ++ VADisplayAttribute *attr_list, /* in/out */ ++ int num_attributes ++); ++ ++/* ++ * Set display attributes ++ * Only attributes returned with VA_DISPLAY_ATTRIB_SETTABLE set in the "flags" field ++ * from vaQueryDisplayAttributes() can be set. If the attribute is not settable or ++ * the value is out of range, the function returns VA_STATUS_ERROR_ATTR_NOT_SUPPORTED ++ */ ++VAStatus vaSetDisplayAttributes ( ++ VADisplay dpy, ++ VADisplayAttribute *attr_list, ++ int num_attributes ++); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _VA_H_ */ +diff -Naur libva-0.31.0/src/va_version.h.in libva-0.31.0.patch/src/va_version.h.in +--- libva-0.31.0/src/va_version.h.in 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/src/va_version.h.in 2009-10-12 02:43:29.548789444 +0200 +@@ -47,6 +47,13 @@ + #define VA_MICRO_VERSION (@LIBVA_MICRO_VERSION@) + + /** ++ * VA_SDS_VERSION: ++ * ++ * The version of the SDS API extensions to the VA library ++ */ ++#define VA_SDS_VERSION (@LIBVA_SDS_VERSION@) ++ ++/** + * VA_VERSION: + * + * The full version of the VA library, like 1.2.3 +@@ -59,7 +66,7 @@ + * The full version of the VA library, in string form (suited for + * string concatenation) + */ +-#define VA_VERSION_S "@LIBVA_VERSION@" ++#define VA_VERSION_S "@LIBVA_VERSION@-sds@LIBVA_SDS_VERSION@" + + /** + * VA_VERSION_HEX: +diff -Naur libva-0.31.0/src/x11/dri1_util.c libva-0.31.0.patch/src/x11/dri1_util.c +--- libva-0.31.0/src/x11/dri1_util.c 2009-09-22 15:17:03.000000000 +0200 ++++ libva-0.31.0.patch/src/x11/dri1_util.c 2009-10-12 02:43:29.549782886 +0200 +@@ -1,10 +1,12 @@ ++#include "config.h" ++#include + #include + #include + #include + #include + #include + +-#include ++#include "libdrm_glue.h" + + #include "X11/Xlib.h" + #include "va.h" +@@ -21,6 +23,75 @@ + int height; + }; + ++static int ++firegl_drmOpenMinor(int minor) ++{ ++ char buf[64]; ++ int fd; ++ ++ sprintf(buf, "/dev/ati/card%d", minor); ++ if ((fd = open(buf, O_RDWR, 0)) >= 0) ++ return fd; ++ return -1; ++} ++ ++static int ++firegl_drmOpenByBusID(const char *busid) ++{ ++ int i, fd; ++ drmSetVersion sv; ++ const char *buf; ++ ++ for (i = 0; i < DRM_MAX_MINOR; i++) { ++ if ((fd = firegl_drmOpenMinor(i)) < 0) ++ continue; ++ sv.drm_di_major = 1; ++ sv.drm_di_minor = 1; ++ sv.drm_dd_major = -1; ++ sv.drm_dd_minor = -1; ++ libdrm_drmSetInterfaceVersion(fd, &sv); ++ buf = libdrm_drmGetBusid(fd); ++ if (buf && strcasecmp(buf, busid) == 0) { /* XXX: drmMatchBusID() */ ++ libdrm_drmFreeBusid(buf); ++ return fd; ++ } ++ if (buf) ++ libdrm_drmFreeBusid(buf); ++ close(fd); ++ } ++ return -1; ++} ++ ++static int ++drm_open_once(struct dri_state *dri_state, const char *BusID, int *newlyopened) ++{ ++ dri_state->driConnectedFlag = VA_NONE; ++ dri_state->fd = libdrm_drmOpenOnce(NULL, BusID, newlyopened); ++ if (dri_state->fd < 0) { ++ dri_state->fd = firegl_drmOpenByBusID(BusID); ++ if (dri_state->fd >= 0) { ++ *newlyopened = 1; ++ dri_state->driConnectedFlag |= VA_DRI_AMD; ++ } ++ } ++ return dri_state->fd; ++} ++ ++static void ++drm_close_once(struct dri_state *dri_state) ++{ ++ /* XXX: dri_state->close() doesn't seem to be called, thus this ++ function is never called either */ ++ if (dri_state->fd < 0) ++ return; ++ if (dri_state->driConnectedFlag & VA_DRI_AMD) ++ close(dri_state->fd); ++ else ++ libdrm_drmCloseOnce(dri_state->fd); ++ dri_state->fd = -1; ++ dri_state->driConnectedFlag = VA_NONE; ++} ++ + static struct dri_drawable * + dri1CreateDrawable(VADriverContextP ctx, XID x_drawable) + { +@@ -64,9 +135,9 @@ + free_drawable_hashtable(ctx); + VA_DRIDestroyContext(ctx->x11_dpy, ctx->x11_screen, dri_state->hwContextID); + assert(dri_state->pSAREA != MAP_FAILED); +- drmUnmap(dri_state->pSAREA, SAREA_MAX); ++ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); + assert(dri_state->fd >= 0); +- drmCloseOnce(dri_state->fd); ++ drm_close_once(dri_state); + VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); + } + +@@ -104,21 +175,20 @@ + &dri_state->hSAREA, &BusID)) + goto err_out0; + +- +- dri_state->fd = drmOpenOnce(NULL, BusID, &newlyopened); ++ drm_open_once(dri_state, BusID, &newlyopened); + XFree(BusID); + + if (dri_state->fd < 0) + goto err_out1; + + +- if (drmGetMagic(dri_state->fd, &magic)) ++ if (libdrm_drmGetMagic(dri_state->fd, &magic)) + goto err_out1; + + if (newlyopened && !VA_DRIAuthConnection(ctx->x11_dpy, ctx->x11_screen, magic)) + goto err_out1; + +- if (drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) ++ if (libdrm_drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) + goto err_out1; + + if (!VA_DRICreateContext(ctx->x11_dpy, ctx->x11_screen, +@@ -126,7 +196,8 @@ + &dri_state->hwContextID, &dri_state->hwContext)) + goto err_out1; + +- dri_state->driConnectedFlag = VA_DRI1; ++ dri_state->driConnectedFlag &= VA_DRI_AMD; /* clear flags but AMD bit */ ++ dri_state->driConnectedFlag |= VA_DRI1; + dri_state->createDrawable = dri1CreateDrawable; + dri_state->destroyDrawable = dri1DestroyDrawable; + dri_state->swapBuffer = dri1SwapBuffer; +@@ -137,10 +208,10 @@ + + err_out1: + if (dri_state->pSAREA != MAP_FAILED) +- drmUnmap(dri_state->pSAREA, SAREA_MAX); ++ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); + + if (dri_state->fd >= 0) +- drmCloseOnce(dri_state->fd); ++ drm_close_once(dri_state); + + VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); + +diff -Naur libva-0.31.0/src/x11/dri2_util.c libva-0.31.0.patch/src/x11/dri2_util.c +--- libva-0.31.0/src/x11/dri2_util.c 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/src/x11/dri2_util.c 2009-10-12 02:43:29.550782824 +0200 +@@ -3,7 +3,7 @@ + #include + #include + +-#include ++#include "libdrm_glue.h" + + #include + #include +@@ -166,7 +166,7 @@ + if (dri_state->fd < 0) + goto err_out; + +- if (drmGetMagic(dri_state->fd, &magic)) ++ if (libdrm_drmGetMagic(dri_state->fd, &magic)) + goto err_out; + + if (!VA_DRI2Authenticate(ctx->x11_dpy, RootWindow(ctx->x11_dpy, ctx->x11_screen), +diff -Naur libva-0.31.0/src/x11/libdrm_glue.c libva-0.31.0.patch/src/x11/libdrm_glue.c +--- libva-0.31.0/src/x11/libdrm_glue.c 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/x11/libdrm_glue.c 2009-10-12 02:43:29.599658394 +0200 +@@ -0,0 +1,208 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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 _GNU_SOURCE 1 ++#include "libdrm_glue.h" ++#include ++#include ++#include ++#include ++ ++#define LOAD_FUNC_(NAME, RET, ARGS, FALLBACK) \ ++ static RET (*lib_##NAME) ARGS; \ ++ if (lib_##NAME == NULL) { \ ++ lib_##NAME = libdrm_symbol(#NAME); \ ++ if (!lib_##NAME) \ ++ lib_##NAME = FALLBACK; \ ++ } \ ++ assert(lib_##NAME != NULL) ++ ++#define LOAD_FUNC(NAME, RET, ARGS) \ ++ LOAD_FUNC_(NAME, RET, ARGS, NULL) ++ ++static void *libdrm_handle; ++static int libdrm_handle_ok = -1; ++ ++static inline void *libdrm_symbol(const char *name) ++{ ++ if (!libdrm_open()) ++ return NULL; ++ return dlsym(libdrm_handle, name); ++} ++ ++int libdrm_open(void) ++{ ++ if (libdrm_handle_ok < 0) { ++ libdrm_handle = dlopen("libdrm.so.2", RTLD_LOCAL|RTLD_LAZY); ++ libdrm_handle_ok = libdrm_handle != NULL; ++ } ++ assert(libdrm_handle); ++ return libdrm_handle_ok; ++} ++ ++void libdrm_close(void) ++{ ++ if (libdrm_handle) ++ dlclose(libdrm_handle); ++} ++ ++// Default drmOpenOnce() and drmCloseOnce() implementations based on current GIT ++#define DRM_MAX_FDS 16 ++static struct { ++ char *BusID; ++ int fd; ++ int refcount; ++} connection[DRM_MAX_FDS]; ++ ++static int nr_fds = 0; ++ ++// Default implementation for drmOpenOnce() if none exists in the library ++static int ++libdrm_default_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) ++{ ++ int i; ++ int fd; ++ ++ for (i = 0; i < nr_fds; i++) ++ if (strcmp(BusID, connection[i].BusID) == 0) { ++ connection[i].refcount++; ++ *newlyopened = 0; ++ return connection[i].fd; ++ } ++ ++ fd = libdrm_drmOpen(unused, BusID); ++ if (fd <= 0 || nr_fds == DRM_MAX_FDS) ++ return fd; ++ ++ connection[nr_fds].BusID = strdup(BusID); ++ connection[nr_fds].fd = fd; ++ connection[nr_fds].refcount = 1; ++ *newlyopened = 1; ++ ++ if (0) ++ fprintf(stderr, "saved connection %d for %s %d\n", ++ nr_fds, connection[nr_fds].BusID, ++ strcmp(BusID, connection[nr_fds].BusID)); ++ nr_fds++; ++ return fd; ++} ++ ++// Default implementation for drmCloseOnce() if none exists in the library ++static void libdrm_default_drmCloseOnce(int fd) ++{ ++ int i; ++ ++ for (i = 0; i < nr_fds; i++) { ++ if (fd == connection[i].fd) { ++ if (--connection[i].refcount == 0) { ++ libdrm_drmClose(connection[i].fd); ++ free(connection[i].BusID); ++ if (i < --nr_fds) ++ connection[i] = connection[nr_fds]; ++ return; ++ } ++ } ++ } ++} ++ ++// Determine whether the DRM kernel driver has been loaded ++int libdrm_drmAvailable(void) ++{ ++ LOAD_FUNC(drmAvailable, int, (void)); ++ return lib_drmAvailable(); ++} ++ ++// Open the DRM device ++int libdrm_drmOpen(const char *name, const char *busid) ++{ ++ LOAD_FUNC(drmOpen, int, (const char *, const char *)); ++ return lib_drmOpen(name, busid); ++} ++ ++// Close the device ++int libdrm_drmClose(int fd) ++{ ++ LOAD_FUNC(drmClose, int, (int)); ++ return lib_drmClose(fd); ++} ++ ++// Open the DRM device (re-use an existing connection) ++int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) ++{ ++ LOAD_FUNC_(drmOpenOnce, int, (void *, const char *, int *), ++ libdrm_default_drmOpenOnce); ++ return lib_drmOpenOnce(unused, BusID, newlyopened); ++} ++ ++// Close the device (unref an existing connection prior to actually closing it) ++void libdrm_drmCloseOnce(int fd) ++{ ++ LOAD_FUNC_(drmCloseOnce, void, (int), libdrm_default_drmCloseOnce); ++ lib_drmCloseOnce(fd); ++} ++ ++// DRM connection cookie ++int libdrm_drmGetMagic(int fd, drm_magic_t * magic) ++{ ++ LOAD_FUNC(drmGetMagic, int, (int, drm_magic_t *)); ++ return lib_drmGetMagic(fd, magic); ++} ++ ++// Issue a set-version ioctl ++int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) ++{ ++ LOAD_FUNC(drmSetInterfaceVersion, int, (int, drmSetVersion *)); ++ return lib_drmSetInterfaceVersion(fd, version); ++} ++ ++// Get the bus ID of the device ++char *libdrm_drmGetBusid(int fd) ++{ ++ LOAD_FUNC(drmGetBusid, char *, (int)); ++ return lib_drmGetBusid(fd); ++} ++ ++// Free the bus ID information ++void libdrm_drmFreeBusid(const char *busid) ++{ ++ LOAD_FUNC(drmFreeBusid, void, (const char *)); ++ lib_drmFreeBusid(busid); ++} ++ ++// Map a region of memory ++int libdrm_drmMap(int fd, ++ drm_handle_t handle, ++ drmSize size, ++ drmAddressPtr address) ++{ ++ LOAD_FUNC(drmMap, int, (int, drm_handle_t, drmSize, drmAddressPtr)); ++ return lib_drmMap(fd, handle, size, address); ++} ++ ++// Unmap mappings obtained with drmMap() ++int libdrm_drmUnmap(drmAddress address, drmSize size) ++{ ++ LOAD_FUNC(drmUnmap, int, (drmAddress, drmSize)); ++ return lib_drmUnmap(address, size); ++} +diff -Naur libva-0.31.0/src/x11/libdrm_glue.h libva-0.31.0.patch/src/x11/libdrm_glue.h +--- libva-0.31.0/src/x11/libdrm_glue.h 1970-01-01 01:00:00.000000000 +0100 ++++ libva-0.31.0.patch/src/x11/libdrm_glue.h 2009-10-12 02:43:29.599658394 +0200 +@@ -0,0 +1,73 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 (including the ++ * next paragraph) 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 NON-INFRINGEMENT. ++ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. ++ */ ++ ++#ifndef LIBDRM_GLUE_H ++#define LIBDRM_GLUE_H ++ ++#include "config.h" ++#include ++ ++int libdrm_open(void) ++ ATTRIBUTE_HIDDEN; ++ ++void libdrm_close(void) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmAvailable(void) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmOpen(const char *name, const char *busid) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmClose(int fd) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) ++ ATTRIBUTE_HIDDEN; ++ ++void libdrm_drmCloseOnce(int fd) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmGetMagic(int fd, drm_magic_t * magic) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) ++ ATTRIBUTE_HIDDEN; ++ ++char *libdrm_drmGetBusid(int fd) ++ ATTRIBUTE_HIDDEN; ++ ++void libdrm_drmFreeBusid(const char *busid) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmMap(int fd, ++ drm_handle_t handle, ++ drmSize size, ++ drmAddressPtr address) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmUnmap(drmAddress address, drmSize size) ++ ATTRIBUTE_HIDDEN; ++ ++#endif /* LIBDRM_GLUE_H */ +diff -Naur libva-0.31.0/src/x11/Makefile.am libva-0.31.0.patch/src/x11/Makefile.am +--- libva-0.31.0/src/x11/Makefile.am 2009-09-10 17:18:49.000000000 +0200 ++++ libva-0.31.0.patch/src/x11/Makefile.am 2009-10-12 02:43:29.600657773 +0200 +@@ -25,6 +25,6 @@ + libva_x11includedir = ${includedir}/va + libva_x11include_HEADERS = va_x11.h va_dri.h va_dri2.h va_dricommon.h + +-libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c ++libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c libdrm_glue.c + +-EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h ++EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h libdrm_glue.h +diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.patch/src/x11/Makefile.in --- libva-0.31.0/src/x11/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.diff/src/x11/Makefile.in 2009-10-10 23:10:15.320782354 +0200 ++++ libva-0.31.0.patch/src/x11/Makefile.in 2009-10-12 02:44:01.674657630 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -45744,7 +78049,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c -@@ -63,6 +65,7 @@ +@@ -63,14 +65,17 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -45752,7 +78057,10 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i LTLIBRARIES = $(noinst_LTLIBRARIES) libva_x11_la_LIBADD = am_libva_x11_la_OBJECTS = va_x11.lo va_dri.lo va_dri2.lo \ -@@ -71,6 +74,7 @@ +- va_dricommon.lo dri2_util.lo dri1_util.lo va_nvctrl.lo ++ va_dricommon.lo dri2_util.lo dri1_util.lo va_nvctrl.lo \ ++ libdrm_glue.lo + libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -45760,7 +78068,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -87,9 +91,23 @@ +@@ -87,9 +92,23 @@ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; @@ -45786,7 +78094,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i HEADERS = $(libva_x11include_HEADERS) ETAGS = etags CTAGS = ctags -@@ -106,24 +124,19 @@ +@@ -106,38 +125,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -45812,8 +78120,11 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -132,12 +145,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -45827,9 +78138,11 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -146,12 +159,17 @@ +@@ -145,13 +161,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -45845,7 +78158,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -177,8 +195,7 @@ +@@ -177,8 +199,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -45855,7 +78168,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -211,6 +228,7 @@ +@@ -211,6 +232,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -45863,7 +78176,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -224,6 +242,7 @@ +@@ -224,14 +246,15 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -45871,7 +78184,17 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src $(DRM_CFLAGS) -@@ -240,14 +259,14 @@ + noinst_LTLIBRARIES = libva_x11.la + libva_x11includedir = ${includedir}/va + libva_x11include_HEADERS = va_x11.h va_dri.h va_dri2.h va_dricommon.h +-libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c +-EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h ++libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c libdrm_glue.c ++EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h libdrm_glue.h + all: all-am + + .SUFFIXES: +@@ -240,14 +263,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -45891,7 +78214,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -265,6 +284,7 @@ +@@ -265,6 +288,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -45899,7 +78222,15 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) -@@ -293,21 +313,21 @@ +@@ -285,6 +309,7 @@ + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dri1_util.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dri2_util.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_glue.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dri.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dri2.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dricommon.Plo@am__quote@ +@@ -293,21 +318,21 @@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -45924,7 +78255,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -320,34 +340,37 @@ +@@ -320,34 +345,37 @@ install-libva_x11includeHEADERS: $(libva_x11include_HEADERS) @$(NORMAL_INSTALL) test -z "$(libva_x11includedir)" || $(MKDIR_P) "$(DESTDIR)$(libva_x11includedir)" @@ -45973,7 +78304,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ -@@ -355,29 +378,34 @@ +@@ -355,29 +383,34 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -46016,7 +78347,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -398,13 +426,17 @@ +@@ -398,13 +431,17 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -46038,7 +78369,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i || exit 1; \ fi; \ done -@@ -435,6 +467,7 @@ +@@ -435,6 +472,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -46046,7 +78377,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -456,6 +489,8 @@ +@@ -456,6 +494,8 @@ html: html-am @@ -46055,7 +78386,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i info: info-am info-am: -@@ -464,18 +499,28 @@ +@@ -464,18 +504,28 @@ install-dvi: install-dvi-am @@ -46084,7 +78415,7 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i installcheck-am: maintainer-clean: maintainer-clean-am -@@ -514,6 +559,7 @@ +@@ -514,6 +564,7 @@ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libva_x11includeHEADERS @@ -46092,9 +78423,93 @@ diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.diff/src/x11/Makefile.i # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in +diff -Naur libva-0.31.0/src/x11/va_dricommon.h libva-0.31.0.patch/src/x11/va_dricommon.h +--- libva-0.31.0/src/x11/va_dricommon.h 2009-07-06 12:44:10.000000000 +0200 ++++ libva-0.31.0.patch/src/x11/va_dricommon.h 2009-10-12 02:43:29.602657859 +0200 +@@ -13,7 +13,8 @@ + { + VA_NONE = 0, + VA_DRI1 = 1, +- VA_DRI2 = 2 ++ VA_DRI2 = 2, ++ VA_DRI_AMD = 4 /* AMD DRI implementation */ + }; + + union dri_buffer +diff -Naur libva-0.31.0/src/x11/va_x11.c libva-0.31.0.patch/src/x11/va_x11.c +--- libva-0.31.0/src/x11/va_x11.c 2009-09-22 15:17:03.000000000 +0200 ++++ libva-0.31.0.patch/src/x11/va_x11.c 2009-10-12 02:43:29.603657518 +0200 +@@ -31,6 +31,7 @@ + #include "va_dri2.h" + #include "va_dricommon.h" + #include "va_nvctrl.h" ++#include "libdrm_glue.h" + #include + #include + #include +@@ -74,6 +75,8 @@ + } + ctx = &((*ctx)->pNext); + } ++ ++ libdrm_close(); + free(pDisplayContext->pDriverContext->dri_state); + free(pDisplayContext->pDriverContext); + free(pDisplayContext); +@@ -195,6 +198,7 @@ + pDisplayContext->vaIsValid = va_DisplayContextIsValid; + pDisplayContext->vaDestroy = va_DisplayContextDestroy; + pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName; ++ pDisplayContext->opaque = NULL; + pDisplayContexts = pDisplayContext; + pDriverContext->dri_state = dri_state; + dpy = (VADisplay)pDisplayContext; +diff -Naur libva-0.31.0/src/x11/va_x11.h libva-0.31.0.patch/src/x11/va_x11.h +--- libva-0.31.0/src/x11/va_x11.h 2009-07-06 12:44:10.000000000 +0200 ++++ libva-0.31.0.patch/src/x11/va_x11.h 2009-10-12 02:43:29.603657518 +0200 +@@ -27,22 +27,6 @@ + * color space conversion and scaling to the destination + * rectangle + */ +-/* de-interlacing flags for vaPutSurface */ +-#define VA_FRAME_PICTURE 0x00000000 +-#define VA_TOP_FIELD 0x00000001 +-#define VA_BOTTOM_FIELD 0x00000002 +- +-/* +- * clears the drawable with background color. +- * for hardware overlay based implementation this flag +- * can be used to turn off the overlay +- */ +-#define VA_CLEAR_DRAWABLE 0x00000008 +- +-/* color space conversion flags for vaPutSurface */ +-#define VA_SRC_BT601 0x00000010 +-#define VA_SRC_BT709 0x00000020 +- + VAStatus vaPutSurface ( + VADisplay dpy, + VASurfaceID surface, +diff -Naur libva-0.31.0/test/Makefile.am libva-0.31.0.patch/test/Makefile.am +--- libva-0.31.0/test/Makefile.am 2009-09-10 17:18:48.000000000 +0200 ++++ libva-0.31.0.patch/test/Makefile.am 2009-10-12 02:43:29.604657176 +0200 +@@ -31,10 +31,10 @@ + + TESTS = $(check_PROGRAMS) + +-TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib) ++TEST_LIBS = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) + +-vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib) +-vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) ++vainfo_LDADD = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) ++vainfo_DEPENDENCIES = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) + vainfo_SOURCES = vainfo.c + + test_01_LDADD = $(TEST_LIBS) +diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.patch/test/Makefile.in --- libva-0.31.0/test/Makefile.in 2009-09-10 17:18:48.000000000 +0200 -+++ libva-0.31.0.diff/test/Makefile.in 2009-10-10 23:10:15.460783866 +0200 ++++ libva-0.31.0.patch/test/Makefile.in 2009-10-12 02:44:01.796657729 +0200 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. @@ -46145,7 +78560,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ -@@ -146,24 +151,19 @@ +@@ -146,38 +151,35 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -46171,8 +78586,11 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in +FGREP = @FGREP@ GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ GEN4ASM_LIBS = @GEN4ASM_LIBS@ ++GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ ++GL_DEPS_LIBS = @GL_DEPS_LIBS@ GREP = @GREP@ -@@ -172,12 +172,12 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -46186,9 +78604,11 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ LIBVA_LIBS = @LIBVA_LIBS@ LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -186,12 +186,17 @@ +@@ -185,13 +187,19 @@ + LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ ++LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ LIBVA_VERSION = @LIBVA_VERSION@ +LIPO = @LIPO@ LN_S = @LN_S@ @@ -46204,7 +78624,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ -@@ -217,8 +222,7 @@ +@@ -217,8 +225,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ @@ -46214,7 +78634,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ -@@ -251,6 +255,7 @@ +@@ -251,6 +258,7 @@ libvacorelib = @libvacorelib@ localedir = @localedir@ localstatedir = @localstatedir@ @@ -46222,7 +78642,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ -@@ -264,6 +269,7 @@ +@@ -264,14 +272,15 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -46230,7 +78650,18 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ testdir = $(bindir) -@@ -306,14 +312,14 @@ + AM_CFLAGS = -I$(top_srcdir)/../../include/external/ -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA + TESTS = $(check_PROGRAMS) +-TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib) +-vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib) +-vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) ++TEST_LIBS = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) ++vainfo_LDADD = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) ++vainfo_DEPENDENCIES = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) + vainfo_SOURCES = vainfo.c + test_01_LDADD = $(TEST_LIBS) + test_01_SOURCES = test_01.c +@@ -306,14 +315,14 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -46250,7 +78681,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ -@@ -331,41 +337,59 @@ +@@ -331,41 +340,59 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -46335,7 +78766,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in test_01$(EXEEXT): $(test_01_OBJECTS) $(test_01_DEPENDENCIES) @rm -f test_01$(EXEEXT) $(LINK) $(test_01_OBJECTS) $(test_01_LDADD) $(LIBS) -@@ -428,21 +452,21 @@ +@@ -428,21 +455,21 @@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -46360,7 +78791,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -458,14 +482,14 @@ +@@ -458,14 +485,14 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -46377,7 +78808,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ -@@ -473,37 +497,43 @@ +@@ -473,37 +500,43 @@ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ @@ -46430,7 +78861,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ -@@ -512,49 +542,63 @@ +@@ -512,49 +545,63 @@ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ @@ -46506,7 +78937,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ -@@ -565,11 +609,15 @@ +@@ -565,11 +612,15 @@ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ @@ -46524,7 +78955,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in test "$$failed" -eq 0; \ else :; fi -@@ -589,13 +637,17 @@ +@@ -589,13 +640,17 @@ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -46546,7 +78977,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in || exit 1; \ fi; \ done -@@ -628,6 +680,7 @@ +@@ -628,6 +683,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -46554,7 +78985,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in maintainer-clean-generic: @echo "This command is intended for maintainers to use" -@@ -649,6 +702,8 @@ +@@ -649,6 +705,8 @@ html: html-am @@ -46563,7 +78994,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in info: info-am info-am: -@@ -657,18 +712,28 @@ +@@ -657,18 +715,28 @@ install-dvi: install-dvi-am @@ -46592,7 +79023,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in installcheck-am: maintainer-clean: maintainer-clean-am -@@ -691,7 +756,7 @@ +@@ -691,7 +759,7 @@ uninstall-am: uninstall-binPROGRAMS @@ -46601,7 +79032,7 @@ diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.diff/test/Makefile.in .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ -@@ -713,6 +778,7 @@ +@@ -713,6 +781,7 @@ for a in $(check_PROGRAMS); do \ valgrind --leak-check=full --show-reachable=yes .libs/$$a; \ done