diff options
author | Luc Verhaegen <libv@skynet.be> | 2009-11-18 17:57:07 +0100 |
---|---|---|
committer | Luc Verhaegen <libv@skynet.be> | 2009-11-18 17:57:07 +0100 |
commit | 6d7e48f094c66ac11cdd54215f14ee9688843a8c (patch) | |
tree | d89c8baba6063fd7435dfb920601263747104bb5 | |
parent | 2b07ea2cff22add1bf83e8f52da94f430bc9ea6a (diff) |
DRI: Prove more complete autotools integration.
use --with-mesa-dir= to trigger building the dri driver.
-rw-r--r-- | Makefile.am | 6 | ||||
-rw-r--r-- | configure.ac | 63 | ||||
-rw-r--r-- | dri/Makefile.am | 9 |
3 files changed, 70 insertions, 8 deletions
diff --git a/Makefile.am b/Makefile.am index 93f170a..cb03dde 100644 --- a/Makefile.am +++ b/Makefile.am @@ -12,7 +12,11 @@ if BUILD_DRM DRM_DIR = drm endif -SUBDIRS = src dri man $(LIB_DIR) $(WRAPPER_DIR) $(DRM_DIR) +if BUILD_DRI + DRI_DIR = dri +endif + +SUBDIRS = src man $(LIB_DIR) $(WRAPPER_DIR) $(DRM_DIR) $(DRI_DIR) EXTRA_DIST = git_version.sh BUILT_SOURCES = git_version.h diff --git a/configure.ac b/configure.ac index ec97067..454e742 100644 --- a/configure.ac +++ b/configure.ac @@ -68,6 +68,12 @@ AC_ARG_ENABLE(drm_driver, [build_drm_driver="$enableval"], [build_drm_driver=auto]) +AC_ARG_WITH(mesa-dir, + AC_HELP_STRING([--with-mesa-dir=DIR], + [Mesa directory to build DRI driver against. [[default=none]]]), + [mesa_build_dir="$withval"], + [mesa_build_dir=""]) + # Checks for extensions XORG_DRIVER_CHECK_EXT(RANDR, randrproto) XORG_DRIVER_CHECK_EXT(RENDER, renderproto) @@ -330,6 +336,62 @@ if test "x$build_drm_driver" = xyes; then AC_SUBST([DRM_KBUILD_DIR]) fi +# +# Figure out whether we can build the DRI driver. +# +# +AC_MSG_CHECKING([MESA DRI directory to build against]) +if test "x$mesa_build_dir" != x; then + AC_MSG_RESULT([$mesa_build_dir]) + build_dri_driver="yes" +else + AC_MSG_RESULT([none]) + build_dri_driver="no" +fi + +# check version +if test "x$build_dri_driver" = xyes; then + AC_CHECK_FILE([${mesa_build_dir}/configs/default], + , [build_dri_driver="no"]) + + AC_MSG_CHECKING([MESA version]) + + if test "x$build_dri_driver" = xyes; then + mesa_major=`grep "MESA_MAJOR=" ${mesa_build_dir}/configs/default | sed s/MESA_MAJOR=//` + mesa_minor=`grep "MESA_MINOR=" ${mesa_build_dir}/configs/default | sed s/MESA_MINOR=//` + mesa_tiny=`grep "MESA_TINY=" ${mesa_build_dir}/configs/default | sed s/MESA_TINY=//` + if test "x$mesa_major" != x -a \ + "x$mesa_minor" != x -a \ + "x$mesa_tiny" != x; then + build_dri_driver="yes" + else + build_dri_driver="no" + fi + fi + + if test "x$build_dri_driver" = xyes; then + AC_MSG_RESULT([$mesa_major.$mesa_minor.$mesa_tiny]) + else + AC_MSG_RESULT([failed]) + fi +fi + +# due to mesa's unique structure, we need to link statically to libmesa.a +if test "x$build_dri_driver" = xyes; then + AC_CHECK_FILE([${mesa_build_dir}/src/mesa/libmesa.a], + , [build_dri_driver="no"]) +fi + +AC_MSG_CHECKING([whether we build the MESA DRI driver]) +AC_MSG_RESULT([$build_dri_driver]) + +AM_CONDITIONAL(BUILD_DRI, test "x$build_dri_driver" = xyes) +if test "x$build_dri_driver" = xyes; then + AC_OUTPUT([dri/Makefile]) + MESA_DIR=$mesa_build_dir + AC_SUBST([MESA_DIR]) +fi + AC_SUBST([DRI_CFLAGS]) AC_SUBST([XORG_CFLAGS]) AC_SUBST([moduledir]) @@ -340,6 +402,5 @@ XORG_RELEASE_VERSION AC_OUTPUT([ Makefile src/Makefile - dri/Makefile man/Makefile ]) diff --git a/dri/Makefile.am b/dri/Makefile.am index 2b6c246..0a8138e 100644 --- a/dri/Makefile.am +++ b/dri/Makefile.am @@ -1,7 +1,4 @@ -MESA_DIR = /root/debian/mesa-7.6/ -#MESA_DIR = /usr/src/packages/BUILD/Mesa-7.2/ - -MESA_DRI_DIR = $(MESA_DIR)/src/mesa/drivers/dri +MESA_DRI_DIR = @MESA_DIR@/src/mesa/drivers/dri AM_CFLAGS = -DIN_DRI_DRIVER -D_GNU_SOURCE -g -O0 AM_CFLAGS += -DUSE_X86_64_ASM -DPTHREADS -DHAVE_POSIX_MEMALIGN @@ -9,7 +6,7 @@ AM_CFLAGS += -DUSE_EXTERNAL_DXTN_LIB=1 -DGLX_DIRECT_RENDERING AM_CFLAGS += -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS # -DREWORKED_TEXFORMAT -AM_CFLAGS += -I/usr/include/drm -I$(MESA_DIR)/src/mesa -I$(MESA_DIR)/include/ +AM_CFLAGS += -I/usr/include/drm -I@MESA_DIR@/src/mesa -I@MESA_DIR@/include/ # convenience library noinst_LTLIBRARIES = libdricommon.la @@ -27,7 +24,7 @@ libdricommon_la_SOURCES = \ unichrome_dri_la_LTLIBRARIES = unichrome_dri.la unichrome_dri_la_CFLAGS = $(AM_CFLAGS) -I$(MESA_DRI_DIR) unichrome_dri_la_LDFLAGS = -module -noprefix -ldrm -lexpat -lm -lpthread -ldl -unichrome_dri_la_LIBADD = $(MESA_DIR)/src/mesa/libmesa.a libdricommon.la +unichrome_dri_la_LIBADD = @MESA_DIR@/src/mesa/libmesa.a libdricommon.la unichrome_dri_ladir = @libdir@/dri unichrome_dri_la_SOURCES = \ via_context.c \ |