Hi,This patch tries to standardize library SONAME and files locations a little. It's largely inspired from Clutter.
Since there is no other change, at this time, you can create a "redirect" library as follows, and remain fully compatible with libva 0.29:
echo ".text"|gcc -xassembler - -o libva.so.0.29.0 -shared -Wl,-soname,libva.so.0 $(pkg-config --libs libva-0.29) + an ldconfig will create the necessary links Tested with Helix and MPlayer. Regards, Gwenole.
diff --git a/Makefile.am b/Makefile.am index 5470b69..f14ca99 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,7 +23,16 @@ AUTOMAKE_OPTIONS = foreign SUBDIRS = src dummy_drv_video test +pcfiles = \ + libva-$(LIBVA_API_VERSION).pc + +# libva-<major>.<minor>.pc - for generic dependencies +libva-$(LIBVA_API_VERSION).pc: libva.pc + @cp $< $@ + pkgconfigdir = @pkgconfigdir@ -pkgconfig_DATA = libva.pc +pkgconfig_DATA = $(pcfiles) EXTRA_DIST = libva.pc.in + +CLEANFILES = $(pcfiles) diff --git a/configure.ac b/configure.ac index 1aba565..e23177c 100644 --- a/configure.ac +++ b/configure.ac @@ -20,13 +20,55 @@ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# libva package version number, (as distinct from shared library version) +m4_define([libva_major_version], [0]) +m4_define([libva_minor_version], [29]) +m4_define([libva_micro_version], [0]) + +m4_define([libva_version], + [libva_major_version.libva_minor_version.libva_micro_version]) + +m4_define([libva_api_version], + [libva_major_version.libva_minor_version]) + +# increase the interface age for each release; +# if the API changes, set to 0 +m4_define([libva_interface_age], [0]) +m4_define([libva_binary_age], + [m4_eval(100 * libva_minor_version + libva_micro_version)]) + AC_PREREQ(2.57) -AC_INIT([libva], 0.29, [[email protected]], libva) +AC_INIT([libva], [libva_version], [[email protected]], libva) AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([dist-bzip2]) AM_CONFIG_HEADER([src/config.h]) +LIBVA_MAJOR_VERSION=libva_major_version +LIBVA_MINOR_VERSION=libva_minor_version +LIBVA_MICRO_VERSION=libva_micro_version +LIBVA_VERSION=libva_version +LIBVA_API_VERSION=libva_api_version +LIBVA_MAJORMINOR=libva_api_version +AC_SUBST(LIBVA_MAJOR_VERSION) +AC_SUBST(LIBVA_MINOR_VERSION) +AC_SUBST(LIBVA_MICRO_VERSION) +AC_SUBST(LIBVA_VERSION) +AC_SUBST(LIBVA_API_VERSION) +AC_SUBST(LIBVA_MAJORMINOR) + +m4_define([lt_current], + [m4_eval(100 * libva_minor_version + libva_micro_version - libva_interface_age)]) +m4_define([lt_revision], [libva_interface_age]) +m4_define([lt_age], [m4_eval(libva_binary_age - libva_interface_age)]) +LIBVA_LT_CURRENT=lt_current +LIBVA_LT_REV=lt_revision +LIBVA_LT_AGE=lt_age +LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" +LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" +AC_SUBST(LIBVA_LT_VERSION) +AC_SUBST(LIBVA_LT_LDFLAGS) + AC_DISABLE_STATIC AC_PROG_LIBTOOL AC_PROG_CC @@ -34,9 +76,25 @@ AC_PROG_CC AC_HEADER_STDC AC_SYS_LARGEFILE -PKG_CHECK_MODULES([libva_la], [libdrm]) +LIBVA_REQUIRES="libdrm" +PKG_CHECK_MODULES(LIBVA_DEPS, [$LIBVA_REQUIRES]) +AC_SUBST(LIBVA_REQUIRES) + +LIBVA_CFLAGS="$LIBVA_DEPS_CFLAGS" +LIBVA_LIBS="$LIBVA_DEPS_LIBS" +AC_SUBST(LIBVA_CFLAGS) +AC_SUBST(LIBVA_LIBS) pkgconfigdir=${libdir}/pkgconfig AC_SUBST(pkgconfigdir) -AC_OUTPUT([Makefile src/Makefile dummy_drv_video/Makefile test/Makefile libva.pc]) +libvabackendlib=libva-$LIBVA_API_VERSION.la +AC_SUBST([libvabackendlib]) + +AC_OUTPUT([ + Makefile + src/Makefile + dummy_drv_video/Makefile + test/Makefile + libva.pc +]) diff --git a/dummy_drv_video/Makefile.am b/dummy_drv_video/Makefile.am index 651c8fa..055a475 100644 --- a/dummy_drv_video/Makefile.am +++ b/dummy_drv_video/Makefile.am @@ -23,7 +23,8 @@ dummy_drv_video_la_LTLIBRARIES = dummy_drv_video.la dummy_drv_video_ladir = /usr/lib/xorg/modules/drivers dummy_drv_video_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,--no-undefined -dummy_drv_video_la_LIBADD = ../src/libva.la +dummy_drv_video_la_LIBADD = $(top_srcdir)/src/$(libvabackendlib) +dummy_drv_video_la_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/../../include/external/ -I$(top_srcdir)/../../include/kmd dummy_drv_video_la_SOURCES = dummy_drv_video.c object_heap.c diff --git a/libva.pc.in b/libva.pc.in index d46f53c..cb2b281 100644 --- a/libva.pc.in +++ b/libva.pc.in @@ -2,9 +2,10 @@ pref...@prefix@ exec_pref...@exec_prefix@ libd...@libdir@ included...@includedir@ +apiversi...@libva_api_version@ Name: libva Description: Userspace Video Acceleration (VA) interface Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lva -Cflags: -I${includedir} +Libs: -L${libdir} -lva-${apiversion} +Cflags: -I${includedir}/va-${apiversion} diff --git a/src/Makefile.am b/src/Makefile.am index e0a24ab..d96382a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -20,12 +20,18 @@ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -libva_la_LTLIBRARIES = libva.la -libva_ladir = $(libdir) -libva_la_LDFLAGS = -version-number 0:29:0 -no-undefined -libva_la_LIBADD = -ldl -lX11 -lXext -lXfixes -lXdamage +INCLUDES = \ + $(LIBVA_CFLAGS) -libva_la_SOURCES = va_dri.c va.c va_dristr.h +LDADD = \ + $(LIBVA_LT_LDFLAGS) -libvaincludedir = ${includedir} +lib_LTLIBRARIES = \ + lib...@[email protected] + +lib...@libva_api_version@_la_SOURCES = va.c va_dri.c va_dristr.h +lib...@libva_api_version@_la_LIBADD = $(LIBVA_LIBS) -ldl -lX11 -lXext +lib...@libva_api_version@_la_LDFLAGS = $(LDADD) + +libvaincludedir = ${includedir}/va-$(LIBVA_API_VERSION) libvainclude_HEADERS = va.h va_x11.h va_dri.h va_backend.h diff --git a/test/Makefile.am b/test/Makefile.am index aeb89fe..da0fce0 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -31,9 +31,10 @@ AM_CFLAGS = -I$(top_srcdir)/../../include/external/ -I$(top_srcdir)/src TESTS = $(check_PROGRAMS) -TEST_LIBS = ../src/libva.la +TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib) -vainfo_LDADD = ../src/libva.la +vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib) +vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) vainfo_SOURCES = vainfo.c test_01_LDADD = $(TEST_LIBS)
_______________________________________________ Moblin dev Mailing List [email protected] To manage or unsubscribe from this mailing list visit: https://lists.moblin.org/mailman/listinfo/dev or your user account on http://moblin.org once logged in. For more information on the Moblin Developer Mailing lists visit: http://moblin.org/community/mailing-lists
