summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuc Verhaegen <libv@skynet.be>2009-11-18 17:57:07 +0100
committerLuc Verhaegen <libv@skynet.be>2009-11-18 17:57:07 +0100
commit6d7e48f094c66ac11cdd54215f14ee9688843a8c (patch)
treed89c8baba6063fd7435dfb920601263747104bb5
parent2b07ea2cff22add1bf83e8f52da94f430bc9ea6a (diff)
DRI: Prove more complete autotools integration.
use --with-mesa-dir= to trigger building the dri driver.
-rw-r--r--Makefile.am6
-rw-r--r--configure.ac63
-rw-r--r--dri/Makefile.am9
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 \