Add more package metadata to the pkg-config files
authorDan Nicholson <dbn.lists@gmail.com>
Mon, 24 Nov 2008 19:01:57 +0000 (11:01 -0800)
committerDan Nicholson <dbn.lists@gmail.com>
Sun, 14 Dec 2008 16:47:03 +0000 (08:47 -0800)
The pkg-config files have been filled in more thoroughly to allow users
to use mesa more effectively. By adding metadata to Requires.private,
Libs.private and Cflags, we can ensure that all the libraries and
headers will be found in all situations. However, the full substitutions
are only done when using the configure script.

This also fixes the glu pkg-config file to account for using GL or
OSMesa.

Fixes bug 18161.

15 files changed:
configs/autoconf.in
configs/default
configure.ac
src/glu/Makefile
src/glu/glu.pc.in
src/glut/glx/Makefile
src/glut/glx/glut.pc.in
src/glut/mini/Makefile
src/glut/mini/glut.pc.in
src/glw/Makefile
src/glw/glw.pc.in
src/mesa/Makefile
src/mesa/drivers/dri/Makefile
src/mesa/drivers/dri/dri.pc.in
src/mesa/gl.pc.in

index a3eaed5c9d0e8b328f1ababa9910ef2d2c0afdc2..afd9f6a0c743f95322b65057d48490283513f3c2 100644 (file)
@@ -105,3 +105,20 @@ DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@
 
 # Where libGL will look for DRI hardware drivers
 DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
+
+# pkg-config substitutions
+GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
+GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@
+GL_PC_CFLAGS = @GL_PC_CFLAGS@
+DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@
+GLU_PC_REQ = @GLU_PC_REQ@
+GLU_PC_REQ_PRIV = @GLU_PC_REQ_PRIV@
+GLU_PC_LIB = @GLU_PC_LIB@
+GLU_PC_LIB_PRIV = @GLU_PC_LIB_PRIV@
+GLU_PC_CFLAGS = @GLU_PC_CFLAGS@
+GLUT_PC_REQ_PRIV = @GLUT_PC_REQ_PRIV@
+GLUT_PC_LIB_PRIV = @GLUT_PC_LIB_PRIV@
+GLUT_PC_CFLAGS = @GLUT_PC_CFLAGS@
+GLW_PC_REQ_PRIV = @GLW_PC_REQ_PRIV@
+GLW_PC_LIB_PRIV = @GLW_PC_LIB_PRIV@
+GLW_PC_CFLAGS = @GLW_PC_CFLAGS@
index 21fa0d7f9acd8f1968622bb75086ecb51d2fa886..52ad61cb92b6172d1ce5cfb8e20a9a5a8c7b912a 100644 (file)
@@ -100,3 +100,19 @@ DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri
 # Where libGL will look for DRI hardware drivers
 DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 
+# pkg-config substitutions
+GL_PC_REQ_PRIV =
+GL_PC_LIB_PRIV =
+GL_PC_CFLAGS =
+DRI_PC_REQ_PRIV =
+GLU_PC_REQ = gl
+GLU_PC_REQ_PRIV =
+GLU_PC_LIB =
+GLU_PC_LIB_PRIV =
+GLU_PC_CFLAGS =
+GLUT_PC_REQ_PRIV =
+GLUT_PC_LIB_PRIV =
+GLUT_PC_CFLAGS =
+GLW_PC_REQ_PRIV =
+GLW_PC_LIB_PRIV =
+GLW_PC_CFLAGS =
index 66e080eb8e3cf4c004be2d740c56fc036d23c259..8026d9dca19afc5672a3e5884deead0d43a1ec13 100644 (file)
@@ -507,14 +507,18 @@ case "$mesa_driver" in
 xlib)
     if test "$x11_pkgconfig" = yes; then
         PKG_CHECK_MODULES([XLIBGL], [x11 xext])
+        GL_PC_REQ_PRIV="x11 xext"
         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
         GL_LIB_DEPS="$XLIBGL_LIBS"
     else
         # should check these...
         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
+        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
+        GL_PC_CFLAGS="$X11_INCLUDES"
     fi
     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $OS_LIBS"
+    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $OS_LIBS"
 
     # if static, move the external libraries to the programs
     # and empty the libraries for libGL
@@ -532,6 +536,8 @@ dri)
     # Check for libdrm
     PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
     PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
+    GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
+    DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
 
     # find the DRI deps for libGL
     if test "$x11_pkgconfig" = yes; then
@@ -542,16 +548,20 @@ dri)
         fi
 
         PKG_CHECK_MODULES([DRIGL], [$dri_modules])
+        GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
         GL_LIB_DEPS="$DRIGL_LIBS"
     else
         # should check these...
         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
         GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
+        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
+        GL_PC_CFLAGS="$X11_INCLUDES"
 
         # XCB can only be used from pkg-config
         if test "$enable_xcb" = yes; then
             PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
+            GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
             X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
             GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
         fi
@@ -559,6 +569,7 @@ dri)
 
     # need DRM libs, -lpthread, etc.
     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS $OS_LIBS"
+    GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS $OS_LIBS"
     ;;
 osmesa)
     # No libGL for osmesa
@@ -566,6 +577,10 @@ osmesa)
     ;;
 esac
 AC_SUBST([GL_LIB_DEPS])
+AC_SUBST([GL_PC_REQ_PRIV])
+AC_SUBST([GL_PC_LIB_PRIV])
+AC_SUBST([GL_PC_CFLAGS])
+AC_SUBST([DRI_PC_REQ_PRIV])
 
 dnl
 dnl More X11 setup
@@ -825,6 +840,8 @@ if test "x$enable_glu" = xyes; then
 
         # Link libGLU to libOSMesa instead of libGL
         GLU_LIB_DEPS=""
+        GLU_PC_LIB='-L$(INSTALL_LIB_DIR) -l$(OSMESA_LIB)'
+        GLU_PC_CFLAGS='-I$(INSTALL_INC_DIR)'
         if test "$enable_static" = no; then
             GLU_MESA_DEPS='-l$(OSMESA_LIB)'
         else
@@ -833,6 +850,8 @@ if test "x$enable_glu" = xyes; then
         ;;
     *)
         # If static, empty GLU_LIB_DEPS and add libs for programs to link
+        GLU_PC_REQ="gl"
+        GLU_PC_LIB_PRIV="-lm"
         if test "$enable_static" = no; then
             GLU_LIB_DEPS="-lm"
             GLU_MESA_DEPS='-l$(GL_LIB)'
@@ -847,8 +866,14 @@ fi
 if test "$enable_static" = no; then
     GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
 fi
+GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
 AC_SUBST([GLU_LIB_DEPS])
 AC_SUBST([GLU_MESA_DEPS])
+AC_SUBST([GLU_PC_REQ])
+AC_SUBST([GLU_PC_REQ_PRIV])
+AC_SUBST([GLU_PC_LIB])
+AC_SUBST([GLU_PC_LIB_PRIV])
+AC_SUBST([GLU_PC_CFLAGS])
 
 dnl
 dnl GLw configuration
@@ -873,10 +898,13 @@ if test "x$enable_glw" = xyes; then
     SRC_DIRS="$SRC_DIRS glw"
     if test "$x11_pkgconfig" = yes; then
         PKG_CHECK_MODULES([GLW],[x11 xt])
+        GLW_PC_REQ_PRIV="x11 xt"
         GLW_LIB_DEPS="$GLW_LIBS"
     else
         # should check these...
         GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
+        GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
+        GLW_PC_CFLAGS="$X11_INCLUDES"
     fi
 
     GLW_SOURCES="GLwDrawA.c"
@@ -895,9 +923,12 @@ if test "x$enable_glw" = xyes; then
         fi
         # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
         GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
+        GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
+        GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
     fi
 
     # If static, empty GLW_LIB_DEPS and add libs for programs to link
+    GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV $OS_LIBS"
     if test "$enable_static" = no; then
         GLW_MESA_DEPS='-l$(GL_LIB)'
         GLW_LIB_DEPS="$GLW_LIB_DEPS $OS_LIBS"
@@ -911,6 +942,9 @@ AC_SUBST([GLW_LIB_DEPS])
 AC_SUBST([GLW_MESA_DEPS])
 AC_SUBST([GLW_SOURCES])
 AC_SUBST([MOTIF_CFLAGS])
+AC_SUBST([GLW_PC_REQ_PRIV])
+AC_SUBST([GLW_PC_LIB_PRIV])
+AC_SUBST([GLW_PC_CFLAGS])
 
 dnl
 dnl GLUT configuration
@@ -945,12 +979,16 @@ if test "x$enable_glut" = xyes; then
     fi
     if test "$x11_pkgconfig" = yes; then
         PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
+        GLUT_PC_REQ_PRIV="x11 xmu xi"
         GLUT_LIB_DEPS="$GLUT_LIBS"
     else
         # should check these...
         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
+        GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
+        GLUT_PC_CFLAGS="$X11_INCLUDES"
     fi
     GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm $OS_LIBS"
+    GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm $OS_LIBS"
 
     # If glut is available, we can build most programs
     if test "$with_demos" = yes; then
@@ -969,6 +1007,9 @@ fi
 AC_SUBST([GLUT_LIB_DEPS])
 AC_SUBST([GLUT_MESA_DEPS])
 AC_SUBST([GLUT_CFLAGS])
+AC_SUBST([GLUT_PC_REQ_PRIV])
+AC_SUBST([GLUT_PC_LIB_PRIV])
+AC_SUBST([GLUT_PC_CFLAGS])
 
 dnl
 dnl Program library dependencies
index b025a90b675760ce1e44fd5ad8e51b1fbe52c93d..4351d23599619238d397c9d4cb168f471aa6de00 100644 (file)
@@ -18,7 +18,12 @@ pcedit = sed \
        -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
        -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
        -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
-       -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),'
+       -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
+       -e 's,@GLU_PC_REQ@,$(GLU_PC_REQ),' \
+       -e 's,@GLU_PC_REQ_PRIV@,$(GLU_PC_REQ_PRIV),' \
+       -e 's,@GLU_PC_LIB@,$(GLU_PC_LIB),' \
+       -e 's,@GLU_PC_LIB_PRIV@,$(GLU_PC_LIB_PRIV),' \
+       -e 's,@GLU_PC_CFLAGS@,$(GLU_PC_CFLAGS),'
 glu.pc: glu.pc.in
        $(pcedit) $< > $@
 
index 8606b9b222c4bcee64d1cd5fae5610f136ef5e14..2c9bd955b810708f6cdb76b15e2e466ee2fe7a3d 100644 (file)
@@ -5,7 +5,9 @@ includedir=@INSTALL_INC_DIR@
 
 Name: glu
 Description: Mesa OpenGL Utility library
-Requires: gl
+Requires: @GLU_PC_REQ@
+Requires.private: @GLU_PC_REQ_PRIV@
 Version: @VERSION@
-Libs: -L${libdir} -lGLU
-Cflags: -I${includedir}
+Libs: -L${libdir} -lGLU @GLU_PC_LIB@
+Libs.private: @GLU_PC_LIB_PRIV@
+Cflags: -I${includedir} @GLU_PC_CFLAGS@
index 7f886f775abfedc8a9382d28a25a8fec848940bf..c8f0097ebe48c9d6495771cccaec6e5c348009ca 100644 (file)
@@ -103,7 +103,10 @@ pcedit = sed \
        -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
        -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
        -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
-       -e 's,@VERSION@,$(GLUT_MAJOR).$(GLUT_MINOR).$(GLUT_TINY),'
+       -e 's,@VERSION@,$(GLUT_MAJOR).$(GLUT_MINOR).$(GLUT_TINY),' \
+       -e 's,@GLUT_PC_REQ_PRIV@,$(GLUT_PC_REQ_PRIV),' \
+       -e 's,@GLUT_PC_LIB_PRIV@,$(GLUT_PC_LIB_PRIV),' \
+       -e 's,@GLUT_PC_CFLAGS@,$(GLUT_PC_CFLAGS),'
 glut.pc: glut.pc.in
        $(pcedit) $< > $@
 
index e8638fe1488e0667d9336f02249161d6168d3180..ae0689d7e8165ef4940c41e671b8bc1c10be7244 100644 (file)
@@ -6,6 +6,8 @@ includedir=@INSTALL_INC_DIR@
 Name: glut
 Description: Mesa OpenGL Utility Toolkit library
 Requires: gl glu
+Requires.private: @GLUT_PC_REQ_PRIV@
 Version: @VERSION@
 Libs: -L${libdir} -lglut
-Cflags: -I${includedir}
+Libs.private: @GLUT_PC_LIB_PRIV@
+Cflags: -I${includedir} @GLUT_PC_CFLAGS@
index e47d09edb7153085c06779fe5e455d84fe969c52..112a250bbd82bfee10715acbeff5702e2d33dd04 100644 (file)
@@ -77,7 +77,10 @@ pcedit = sed \
        -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
        -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
        -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
-       -e 's,@VERSION@,$(GLUT_MAJOR).$(GLUT_MINOR).$(GLUT_TINY),'
+       -e 's,@VERSION@,$(GLUT_MAJOR).$(GLUT_MINOR).$(GLUT_TINY),' \
+       -e 's,@GLUT_PC_REQ_PRIV@,$(GLUT_PC_REQ_PRIV),' \
+       -e 's,@GLUT_PC_LIB_PRIV@,$(GLUT_PC_LIB_PRIV),' \
+       -e 's,@GLUT_PC_CFLAGS@,$(GLUT_PC_CFLAGS),'
 glut.pc: glut.pc.in
        $(pcedit) $< > $@
 
index e8638fe1488e0667d9336f02249161d6168d3180..ae0689d7e8165ef4940c41e671b8bc1c10be7244 100644 (file)
@@ -6,6 +6,8 @@ includedir=@INSTALL_INC_DIR@
 Name: glut
 Description: Mesa OpenGL Utility Toolkit library
 Requires: gl glu
+Requires.private: @GLUT_PC_REQ_PRIV@
 Version: @VERSION@
 Libs: -L${libdir} -lglut
-Cflags: -I${includedir}
+Libs.private: @GLUT_PC_LIB_PRIV@
+Cflags: -I${includedir} @GLUT_PC_CFLAGS@
index 753c4b74d4a65158311a9ca2dbfed6cbcc04214e..cf412b225ebf299684ef2b5a454c962585ae3f11 100644 (file)
@@ -30,7 +30,10 @@ pcedit = sed \
        -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
        -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
        -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
-       -e 's,@VERSION@,$(MAJOR).$(MINOR).$(TINY),'
+       -e 's,@VERSION@,$(MAJOR).$(MINOR).$(TINY),' \
+       -e 's,@GLW_PC_REQ_PRIV@,$(GLW_PC_REQ_PRIV),' \
+       -e 's,@GLW_PC_LIB_PRIV@,$(GLW_PC_LIB_PRIV),' \
+       -e 's,@GLW_PC_CFLAGS@,$(GLW_PC_CFLAGS),'
 glw.pc: glw.pc.in
        $(pcedit) $< > $@
 
index 25f3f73b8c6734ce2acd58f3e20cc6d05e4b4c9c..5493093be19a134a2506a46a3a2bc1d6fd8e3898 100644 (file)
@@ -6,6 +6,8 @@ includedir=@INSTALL_INC_DIR@
 Name: glw
 Description: Mesa OpenGL widget library
 Requires: gl
+Requires.private: @GLW_PC_REQ_PRIV@
 Version: @VERSION@
 Libs: -L${libdir} -lGLw
-Cflags: -I${includedir}
+Libs.private: @GLW_PC_LIB_PRIV@
+Cflags: -I${includedir} @GLW_PC_CFLAGS@
index ba65ce695fbf39f853463b556260cbe60b1ecede..42a8673f4db883d61f839cf40b4b155bc2b2a049 100644 (file)
@@ -92,7 +92,10 @@ pcedit = sed \
        -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
        -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
        -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
-       -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),'
+       -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
+       -e 's,@GL_PC_REQ_PRIV@,$(GL_PC_REQ_PRIV),' \
+       -e 's,@GL_PC_LIB_PRIV@,$(GL_PC_LIB_PRIV),' \
+       -e 's,@GL_PC_CFLAGS@,$(GL_PC_CFLAGS),'
 
 gl.pc: gl.pc.in
        $(pcedit) $< > $@
index eef68825bc97b3d8b2e873b05b2382437aa9064e..9e49fb16f53bc6fa787b216d465e9c0ea90b1e8d 100644 (file)
@@ -25,7 +25,8 @@ pcedit = sed \
        -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
        -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
        -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
-       -e 's,@DRI_DRIVER_DIR@,$(DRI_DRIVER_SEARCH_DIR),'
+       -e 's,@DRI_DRIVER_DIR@,$(DRI_DRIVER_SEARCH_DIR),' \
+       -e 's,@DRI_PC_REQ_PRIV@,$(DRI_PC_REQ_PRIV),'
 
 dri.pc: dri.pc.in
        $(pcedit) $< > $@
index c47ee9c7e7dca766578256307a14c091312cb60d..695aa6cfd662cb69ffece1031f3d159e258024c3 100644 (file)
@@ -7,4 +7,5 @@ dridriverdir=@DRI_DRIVER_DIR@
 Name: dri
 Description: Direct Rendering Infrastructure
 Version: @VERSION@
+Requires.private: @DRI_PC_REQ_PRIV@
 Cflags: -I${includedir}
index 1927880d5f9233499f50dedf428878a7b679149c..0462b9fca2b8572acd033d5fbeaf95a6dce6a2df 100644 (file)
@@ -5,7 +5,8 @@ includedir=@INSTALL_INC_DIR@
 
 Name: gl
 Description: Mesa OpenGL library
-Requires:
+Requires.private: @GL_PC_REQ_PRIV@
 Version: @VERSION@
 Libs: -L${libdir} -lGL
-Cflags: -I${includedir}
+Libs.private: @GL_PC_LIB_PRIV@
+Cflags: -I${includedir} @GL_PC_CFLAGS@