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

Reply via email to