[Mesa-dev] [PATCH 19/19] dricore: Turn it into a normal library.

Eric Anholt eric at anholt.net
Wed Jun 13 10:31:12 PDT 2012


Our intention is still that it's not abi stable, so make the package
version number get included in the library name.  Now you can parallel
install dricore-using drivers from multiple mesa versions.  We can put
it into lib now that we're following library versioning rules
(assuming that ABIs don't change within a single Mesa point release).

LD_LIBRARY_PATH still doesn't work with a non-/, non-/usr prefix
because libtool uses rpath instead of runpath for nonstandard
prefixes.
---
 configs/current.in              |    4 ----
 configs/default                 |    3 ---
 configure.ac                    |   14 ++------------
 src/mesa/libdricore/Makefile.am |   18 +++++++++---------
 4 files changed, 11 insertions(+), 28 deletions(-)

diff --git a/configs/current.in b/configs/current.in
index 6deedaa..f4858bd 100644
--- a/configs/current.in
+++ b/configs/current.in
@@ -41,8 +41,6 @@ LLVM_LIBS = @LLVM_LIBS@
 LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@
 GLW_CFLAGS = @GLW_CFLAGS@
 GLX_TLS = @GLX_TLS@
-DRI_CFLAGS = @DRI_CFLAGS@
-DRI_CXXFLAGS = @DRI_CXXFLAGS@
 
 # dlopen
 DLOPEN_LIBS = @DLOPEN_LIBS@
@@ -124,8 +122,6 @@ GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drive
 
 # Driver specific build vars
 DRI_DIRS = @DRI_DIRS@
-DRICORE_LIBS = @DRICORE_LIBS@
-DRICORE_LIB_DEPS = @DRICORE_LIB_DEPS@
 EGL_PLATFORMS = @EGL_PLATFORMS@
 EGL_CLIENT_APIS = @EGL_CLIENT_APIS@
 
diff --git a/configs/default b/configs/default
index bf67d34..734b2f6 100644
--- a/configs/default
+++ b/configs/default
@@ -83,9 +83,6 @@ GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)*
 VG_LIB_GLOB = $(VG_LIB_NAME)*
 GLAPI_LIB_GLOB = $(GLAPI_LIB_NAME)*
 
-DRI_CFLAGS = $(CFLAGS)
-DRI_CXXFLAGS = $(CXXFLAGS)
-
 # Optional assembly language optimization files for libGL
 MESA_ASM_FILES =
 
diff --git a/configure.ac b/configure.ac
index 1edee3a..021e397 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1085,25 +1085,15 @@ AC_SUBST([GLAPI_LIB_DEPS])
 
 
 dnl Setup default DRI CFLAGS
-DRI_CFLAGS='$(CFLAGS)'
-DRI_CXXFLAGS='$(CXXFLAGS)'
 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
 
 if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
-    DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
-    DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR)'
-    DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore'
-    DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
-    DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
-    MESA_MODULES='$(DRICORE_LIBS)'
+    DRI_LIB_DEPS="-L\$(TOP)/\$(LIB_DIR) -ldricore$VERSION"
+    MESA_MODULES="\$(TOP)/\$(LIB_DIR)/libdricore$VERSION.so"
     HAVE_DRICORE=yes
 fi
 AM_CONDITIONAL(HAVE_DRICORE, test x$HAVE_DRICORE = xyes)
-AC_SUBST([DRICORE_LIBS])
-AC_SUBST([DRICORE_LIB_DEPS])
-AC_SUBST([DRI_CXXFLAGS])
-AC_SUBST([DRI_CFLAGS])
 AC_SUBST([MESA_MODULES])
 
 AC_SUBST([HAVE_XF86VIDMODE])
diff --git a/src/mesa/libdricore/Makefile.am b/src/mesa/libdricore/Makefile.am
index 866f8f1..26d8a88 100644
--- a/src/mesa/libdricore/Makefile.am
+++ b/src/mesa/libdricore/Makefile.am
@@ -32,13 +32,11 @@ AM_CPPFLAGS = \
 	$(API_DEFINES) \
 	$(DEFINES)
 
-dridir = $(libdir)/dri
-
 AM_CFLAGS = $(CFLAGS_NOVISIBILITY) -DUSE_DRICORE
 AM_CXXFLAGS = $(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE
 AM_CCASFLAGS = $(CFLAGS_NOVISIBILITY) -DUSE_DRICORE
 
-libdricore_la_SOURCES = \
+libdricore at VERSION@_la_SOURCES = \
 	$(MESA_FILES) \
 	$(MESA_CXX_FILES) \
 	$(LIBGLCPP_GENERATED_FILES) \
@@ -47,8 +45,8 @@ libdricore_la_SOURCES = \
 	$(LIBGLSL_CXX_FILES) \
 	$(BUILTIN_COMPILER_GENERATED_CXX_FILES) \
 	$(top_srcdir)/src/glsl/builtin_function.cpp
-libdricore_la_LDFLAGS = -module -avoid-version -shared
-libdricore_la_LIBADD = libdricore-asm.la
+libdricore at VERSION@_la_LDFLAGS = -version-number 1:0
+libdricore at VERSION@_la_LIBADD = libdricore-asm.la
 
 # This is separated from libdricore to avoid conflics in object
 # outputs between main/clip.c and sparc/clip.c.  The documented way to
@@ -72,16 +70,18 @@ endif
 
 if HAVE_DRICORE
 noinst_LTLIBRARIES = libdricore-asm.la
-dri_LTLIBRARIES = libdricore.la
+lib_LTLIBRARIES = libdricore at VERSION@.la
 
 # Provide compatibility with scripts for the old Mesa build system for
 # a while by putting a link to the driver into /lib of the build tree.
-all-local: libdricore.la
+all-local: libdricore at VERSION@.la
 	$(MKDIR_P) $(top_builddir)/$(LIB_DIR);
-	ln -f .libs/libdricore.so $(top_builddir)/$(LIB_DIR)/libdricore.so;
+	ln -f .libs/libdricore at VERSION@.so.1.0.0 $(top_builddir)/$(LIB_DIR)/libdricore at VERSION@.so.1;
+	ln -sf libdricore at VERSION@.so.1 $(top_builddir)/$(LIB_DIR)/libdricore at VERSION@.so
 endif
 
 CLEANFILES = \
-	$(top_builddir)/$(LIB_DIR)/libdricore.so
+	$(top_builddir)/$(LIB_DIR)/libdricore at VERSION@.so.1 \
+	$(top_builddir)/$(LIB_DIR)/libdricore at VERSION@.so
 
 -include $(DEPENDS)
-- 
1.7.10



More information about the mesa-dev mailing list