diff --git a/src/mesa/drivers/x11/Makefile.am b/src/mesa/drivers/x11/Makefile.am
index 263c441..459b76b 100644
--- a/src/mesa/drivers/x11/Makefile.am
+++ b/src/mesa/drivers/x11/Makefile.am
@@ -50,22 +50,25 @@ lib@GL_LIB@_la_SOURCES = \
 	xm_line.c \
 	xm_tri.c
 
+# Force usage of a C++ linker
+nodist_EXTRA_lib@GL_LIB@_la_SOURCES = dummy.cpp
+
 GL_MAJOR = 1
 GL_MINOR = 6
 GL_PATCH = 0
 
-lib@GL_LIB@_la_LIBADD = \
-	$(top_builddir)/src/mesa/libmesa.la \
-	$(top_builddir)/src/mapi/glapi/libglapi.la
+lib@GL_LIB@_la_LIBADD = $(top_builddir)/src/mesa/libmesa.la
+if HAVE_SHARED_GLAPI
+lib@GL_LIB@_la_LIBADD += $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+else
+lib@GL_LIB@_la_LIBADD += $(top_builddir)/src/mapi/glapi/libglapi.la
+endif
+
 lib@GL_LIB@_la_LDFLAGS = \
 	-version-number $(GL_MAJOR):$(GL_MINOR):$(GL_PATCH) \
 	-no-undefined \
 	$(GL_LIB_DEPS)
 
-if HAVE_SHARED_GLAPI
-lib@GL_LIB@_la_LDFLAGS += -L$(top_builddir)/$(LIB_DIR) -l$(GLAPI_LIB)
-endif
-
 # 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: lib@GL_LIB@.la
