summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/mesa')
-rw-r--r--meta/recipes-graphics/mesa/mesa-9.0.2.inc13
-rw-r--r--meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch94
-rw-r--r--meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch358
-rw-r--r--meta/recipes-graphics/mesa/mesa/cross-glsl.patch632
-rw-r--r--meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch36
-rw-r--r--meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch32
-rw-r--r--meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch43
-rw-r--r--meta/recipes-graphics/mesa/mesa_9.0.2.bb4
-rw-r--r--meta/recipes-graphics/mesa/mesa_9.1.3.bb14
9 files changed, 415 insertions, 811 deletions
diff --git a/meta/recipes-graphics/mesa/mesa-9.0.2.inc b/meta/recipes-graphics/mesa/mesa-9.0.2.inc
deleted file mode 100644
index b88bc42e05..0000000000
--- a/meta/recipes-graphics/mesa/mesa-9.0.2.inc
+++ /dev/null
@@ -1,13 +0,0 @@
1SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
2 file://0002-cross-compile.patch \
3 file://cross-glsl.patch \
4 file://dont-fail-if-libX11-isnt-installed.patch \
5 file://fix-egl-compilation-without-x11-headers.patch \
6 "
7
8SRC_URI[md5sum] = "dc45d1192203e418163e0017640e1cfc"
9SRC_URI[sha256sum] = "75bf31f26c6e7b5515e610c1005fd1be1f7eeb2c9e6859848dab879c355ad64e"
10
11LIC_FILES_CHKSUM = "file://docs/license.html;md5=012f69938d81b766472fd0d240df38a4"
12
13S = "${WORKDIR}/Mesa-${PV}"
diff --git a/meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch b/meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch
deleted file mode 100644
index dc8e9948a3..0000000000
--- a/meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch
+++ /dev/null
@@ -1,94 +0,0 @@
1cross compile
2
3This patch is ported from WindRiver linux and to fix cross compile
4failure.
5
6And original commits are:
7commit 8d5ccc8113e1b51b0529a00c18a4aba956247e1b
8commit 5c4212084b871a0c0fb7d174280ec9a634637deb
9
10Upstream-Status: Pending
11
12Signed-off-by: Kang Kai <kai.kang@windriver.com>
13---
14 bin/mklib | 24 ++++++++++++------------
15 1 file changed, 12 insertions(+), 12 deletions(-)
16
17diff --git a/bin/mklib b/bin/mklib
18index 9bac29e..b33aa90 100755
19--- a/bin/mklib
20+++ b/bin/mklib
21@@ -49,8 +49,8 @@ expand_archives() {
22 /*) ;;
23 *) FILE="$ORIG_DIR/$FILE" ;;
24 esac
25- MEMBERS=`ar t $FILE`
26- ar x $FILE
27+ MEMBERS=`${AR} t $FILE`
28+ ${AR} x $FILE
29 for MEMBER in $MEMBERS ; do
30 NEWFILES="$NEWFILES $DIR/$MEMBER"
31 done
32@@ -77,7 +77,7 @@ expand_archives() {
33 make_ar_static_lib() {
34 OPTS=$1
35 shift;
36- RANLIB=$1
37+ USE_RANLIB=$1
38 shift;
39 LIBNAME=$1
40 shift;
41@@ -87,11 +87,11 @@ make_ar_static_lib() {
42 rm -f ${LIBNAME}
43
44 # make static lib
45- ar ${OPTS} ${LIBNAME} ${OBJECTS}
46+ ${AR} ${OPTS} ${LIBNAME} ${OBJECTS}
47
48 # run ranlib
49- if [ ${RANLIB} = 1 ] ; then
50- ranlib ${LIBNAME}
51+ if [ ${USE_RANLIB} = 1 ] ; then
52+ ${RANLIB} ${LIBNAME}
53 fi
54
55 echo ${LIBNAME}
56@@ -313,9 +313,9 @@ case $ARCH in
57 if [ "x$LINK" = "x" ] ; then
58 # -linker was not specified so set default link command now
59 if [ $CPLUSPLUS = 1 ] ; then
60- LINK=g++
61+ LINK=$CXX
62 else
63- LINK=gcc
64+ LINK=$CC
65 fi
66 fi
67
68@@ -535,9 +535,9 @@ case $ARCH in
69 if [ "x$LINK" = "x" ] ; then
70 # -linker was not specified so set default link command now
71 if [ $CPLUSPLUS = 1 ] ; then
72- LINK=g++
73+ LINK=$CXX
74 else
75- LINK=gcc
76+ LINK=$CC
77 fi
78 fi
79
80@@ -903,9 +903,9 @@ case $ARCH in
81 if [ "x$LINK" = "x" ] ; then
82 # -linker was not specified so set default link command now
83 if [ $CPLUSPLUS = 1 ] ; then
84- LINK=g++
85+ LINK=${CXX}
86 else
87- LINK=gcc
88+ LINK=${CC}
89 fi
90 fi
91
92--
931.7.10.4
94
diff --git a/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch
new file mode 100644
index 0000000000..47ba1671bc
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch
@@ -0,0 +1,358 @@
1From d52a7ec5dcdf3936bd727b854831efb90acfd2ba Mon Sep 17 00:00:00 2001
2From: Daniel Stone <daniel@fooishbar.org>
3Date: Fri, 24 May 2013 17:20:27 +0100
4Subject: [PATCH] EGL: Mutate NativeDisplayType depending on config
5
6If we go through ./configure without enabling X11 anywhere, then set the
7fallback types for EGL NativeDisplay and friends, rather than assuming
8X11/Xlib.
9
10Signed-off-by: Daniel Stone <daniel@fooishbar.org>
11---
12 configure.ac | 9 +++
13 include/EGL/eglplatform.h | 146 ------------------------------------------
14 include/EGL/eglplatform.h.in | 146 ++++++++++++++++++++++++++++++++++++++++++
15 3 files changed, 155 insertions(+), 146 deletions(-)
16 delete mode 100644 include/EGL/eglplatform.h
17 create mode 100644 include/EGL/eglplatform.h.in
18
19diff --git a/configure.ac b/configure.ac
20index 4a98996..6fa77da 100644
21--- a/configure.ac
22+++ b/configure.ac
23@@ -1576,12 +1576,20 @@ fi
24
25 EGL_PLATFORMS="$egl_platforms"
26
27+if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then
28+ MESA_EGL_NO_X11_HEADERS=0
29+else
30+ MESA_EGL_NO_X11_HEADERS=1
31+fi
32+
33 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
34 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
35 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
36 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
37 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
38
39+AC_SUBST([MESA_EGL_NO_X11_HEADERS])
40+
41 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
42 AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
43
44@@ -2053,6 +2061,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
45
46 dnl Substitute the config
47 AC_CONFIG_FILES([Makefile
48+ include/EGL/eglplatform.h
49 src/Makefile
50 src/egl/Makefile
51 src/egl/drivers/Makefile
52diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h
53deleted file mode 100644
54index 17fdc61..0000000
55--- a/include/EGL/eglplatform.h
56+++ /dev/null
57@@ -1,146 +0,0 @@
58-#ifndef __eglplatform_h_
59-#define __eglplatform_h_
60-
61-/*
62-** Copyright (c) 2007-2009 The Khronos Group Inc.
63-**
64-** Permission is hereby granted, free of charge, to any person obtaining a
65-** copy of this software and/or associated documentation files (the
66-** "Materials"), to deal in the Materials without restriction, including
67-** without limitation the rights to use, copy, modify, merge, publish,
68-** distribute, sublicense, and/or sell copies of the Materials, and to
69-** permit persons to whom the Materials are furnished to do so, subject to
70-** the following conditions:
71-**
72-** The above copyright notice and this permission notice shall be included
73-** in all copies or substantial portions of the Materials.
74-**
75-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
76-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
77-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
78-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
79-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
80-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
81-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
82-*/
83-
84-/* Platform-specific types and definitions for egl.h
85- * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
86- *
87- * Adopters may modify khrplatform.h and this file to suit their platform.
88- * You are encouraged to submit all modifications to the Khronos group so that
89- * they can be included in future versions of this file. Please submit changes
90- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
91- * by filing a bug against product "EGL" component "Registry".
92- */
93-
94-#include <KHR/khrplatform.h>
95-
96-/* Macros used in EGL function prototype declarations.
97- *
98- * EGL functions should be prototyped as:
99- *
100- * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
101- * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
102- *
103- * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
104- */
105-
106-#ifndef EGLAPI
107-#define EGLAPI KHRONOS_APICALL
108-#endif
109-
110-#ifndef EGLAPIENTRY
111-#define EGLAPIENTRY KHRONOS_APIENTRY
112-#endif
113-#define EGLAPIENTRYP EGLAPIENTRY*
114-
115-/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
116- * are aliases of window-system-dependent types, such as X Display * or
117- * Windows Device Context. They must be defined in platform-specific
118- * code below. The EGL-prefixed versions of Native*Type are the same
119- * types, renamed in EGL 1.3 so all types in the API start with "EGL".
120- *
121- * Khronos STRONGLY RECOMMENDS that you use the default definitions
122- * provided below, since these changes affect both binary and source
123- * portability of applications using EGL running on different EGL
124- * implementations.
125- */
126-
127-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
128-#ifndef WIN32_LEAN_AND_MEAN
129-#define WIN32_LEAN_AND_MEAN 1
130-#endif
131-#include <windows.h>
132-
133-typedef HDC EGLNativeDisplayType;
134-typedef HBITMAP EGLNativePixmapType;
135-typedef HWND EGLNativeWindowType;
136-
137-#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
138-
139-typedef int EGLNativeDisplayType;
140-typedef void *EGLNativeWindowType;
141-typedef void *EGLNativePixmapType;
142-
143-#elif defined(WL_EGL_PLATFORM)
144-
145-typedef struct wl_display *EGLNativeDisplayType;
146-typedef struct wl_egl_pixmap *EGLNativePixmapType;
147-typedef struct wl_egl_window *EGLNativeWindowType;
148-
149-#elif defined(__GBM__)
150-
151-typedef struct gbm_device *EGLNativeDisplayType;
152-typedef struct gbm_bo *EGLNativePixmapType;
153-typedef void *EGLNativeWindowType;
154-
155-#elif defined(ANDROID) /* Android */
156-
157-struct ANativeWindow;
158-struct egl_native_pixmap_t;
159-
160-typedef struct ANativeWindow *EGLNativeWindowType;
161-typedef struct egl_native_pixmap_t *EGLNativePixmapType;
162-typedef void *EGLNativeDisplayType;
163-
164-#elif defined(__unix__)
165-
166-#ifdef MESA_EGL_NO_X11_HEADERS
167-
168-typedef void *EGLNativeDisplayType;
169-typedef khronos_uint32_t EGLNativePixmapType;
170-typedef khronos_uint32_t EGLNativeWindowType;
171-
172-#else
173-
174-/* X11 (tentative) */
175-#include <X11/Xlib.h>
176-#include <X11/Xutil.h>
177-
178-typedef Display *EGLNativeDisplayType;
179-typedef Pixmap EGLNativePixmapType;
180-typedef Window EGLNativeWindowType;
181-
182-#endif /* MESA_EGL_NO_X11_HEADERS */
183-
184-#else
185-#error "Platform not recognized"
186-#endif
187-
188-/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
189-typedef EGLNativeDisplayType NativeDisplayType;
190-typedef EGLNativePixmapType NativePixmapType;
191-typedef EGLNativeWindowType NativeWindowType;
192-
193-
194-/* Define EGLint. This must be a signed integral type large enough to contain
195- * all legal attribute names and values passed into and out of EGL, whether
196- * their type is boolean, bitmask, enumerant (symbolic constant), integer,
197- * handle, or other. While in general a 32-bit integer will suffice, if
198- * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
199- * integer type.
200- */
201-typedef khronos_int32_t EGLint;
202-
203-#endif /* __eglplatform_h */
204diff --git a/include/EGL/eglplatform.h.in b/include/EGL/eglplatform.h.in
205new file mode 100644
206index 0000000..5126c92
207--- /dev/null
208+++ b/include/EGL/eglplatform.h.in
209@@ -0,0 +1,146 @@
210+#ifndef __eglplatform_h_
211+#define __eglplatform_h_
212+
213+/*
214+** Copyright (c) 2007-2009 The Khronos Group Inc.
215+**
216+** Permission is hereby granted, free of charge, to any person obtaining a
217+** copy of this software and/or associated documentation files (the
218+** "Materials"), to deal in the Materials without restriction, including
219+** without limitation the rights to use, copy, modify, merge, publish,
220+** distribute, sublicense, and/or sell copies of the Materials, and to
221+** permit persons to whom the Materials are furnished to do so, subject to
222+** the following conditions:
223+**
224+** The above copyright notice and this permission notice shall be included
225+** in all copies or substantial portions of the Materials.
226+**
227+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
228+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
229+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
230+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
231+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
232+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
233+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
234+*/
235+
236+/* Platform-specific types and definitions for egl.h
237+ * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
238+ *
239+ * Adopters may modify khrplatform.h and this file to suit their platform.
240+ * You are encouraged to submit all modifications to the Khronos group so that
241+ * they can be included in future versions of this file. Please submit changes
242+ * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
243+ * by filing a bug against product "EGL" component "Registry".
244+ */
245+
246+#include <KHR/khrplatform.h>
247+
248+/* Macros used in EGL function prototype declarations.
249+ *
250+ * EGL functions should be prototyped as:
251+ *
252+ * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
253+ * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
254+ *
255+ * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
256+ */
257+
258+#ifndef EGLAPI
259+#define EGLAPI KHRONOS_APICALL
260+#endif
261+
262+#ifndef EGLAPIENTRY
263+#define EGLAPIENTRY KHRONOS_APIENTRY
264+#endif
265+#define EGLAPIENTRYP EGLAPIENTRY*
266+
267+/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
268+ * are aliases of window-system-dependent types, such as X Display * or
269+ * Windows Device Context. They must be defined in platform-specific
270+ * code below. The EGL-prefixed versions of Native*Type are the same
271+ * types, renamed in EGL 1.3 so all types in the API start with "EGL".
272+ *
273+ * Khronos STRONGLY RECOMMENDS that you use the default definitions
274+ * provided below, since these changes affect both binary and source
275+ * portability of applications using EGL running on different EGL
276+ * implementations.
277+ */
278+
279+#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
280+#ifndef WIN32_LEAN_AND_MEAN
281+#define WIN32_LEAN_AND_MEAN 1
282+#endif
283+#include <windows.h>
284+
285+typedef HDC EGLNativeDisplayType;
286+typedef HBITMAP EGLNativePixmapType;
287+typedef HWND EGLNativeWindowType;
288+
289+#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
290+
291+typedef int EGLNativeDisplayType;
292+typedef void *EGLNativeWindowType;
293+typedef void *EGLNativePixmapType;
294+
295+#elif defined(WL_EGL_PLATFORM)
296+
297+typedef struct wl_display *EGLNativeDisplayType;
298+typedef struct wl_egl_pixmap *EGLNativePixmapType;
299+typedef struct wl_egl_window *EGLNativeWindowType;
300+
301+#elif defined(__GBM__)
302+
303+typedef struct gbm_device *EGLNativeDisplayType;
304+typedef struct gbm_bo *EGLNativePixmapType;
305+typedef void *EGLNativeWindowType;
306+
307+#elif defined(ANDROID) /* Android */
308+
309+struct ANativeWindow;
310+struct egl_native_pixmap_t;
311+
312+typedef struct ANativeWindow *EGLNativeWindowType;
313+typedef struct egl_native_pixmap_t *EGLNativePixmapType;
314+typedef void *EGLNativeDisplayType;
315+
316+#elif defined(__unix__)
317+
318+#if @MESA_EGL_NO_X11_HEADERS@
319+
320+typedef void *EGLNativeDisplayType;
321+typedef khronos_uint32_t EGLNativePixmapType;
322+typedef khronos_uint32_t EGLNativeWindowType;
323+
324+#else
325+
326+/* X11 (tentative) */
327+#include <X11/Xlib.h>
328+#include <X11/Xutil.h>
329+
330+typedef Display *EGLNativeDisplayType;
331+typedef Pixmap EGLNativePixmapType;
332+typedef Window EGLNativeWindowType;
333+
334+#endif /* MESA_EGL_NO_X11_HEADERS */
335+
336+#else
337+#error "Platform not recognized"
338+#endif
339+
340+/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
341+typedef EGLNativeDisplayType NativeDisplayType;
342+typedef EGLNativePixmapType NativePixmapType;
343+typedef EGLNativeWindowType NativeWindowType;
344+
345+
346+/* Define EGLint. This must be a signed integral type large enough to contain
347+ * all legal attribute names and values passed into and out of EGL, whether
348+ * their type is boolean, bitmask, enumerant (symbolic constant), integer,
349+ * handle, or other. While in general a 32-bit integer will suffice, if
350+ * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
351+ * integer type.
352+ */
353+typedef khronos_int32_t EGLint;
354+
355+#endif /* __eglplatform_h */
356--
3571.7.10.4
358
diff --git a/meta/recipes-graphics/mesa/mesa/cross-glsl.patch b/meta/recipes-graphics/mesa/mesa/cross-glsl.patch
deleted file mode 100644
index 2e7929738d..0000000000
--- a/meta/recipes-graphics/mesa/mesa/cross-glsl.patch
+++ /dev/null
@@ -1,632 +0,0 @@
1Respect CC_FOR_BUILD when building glsl_compiler, so we don't need a
2mesa-dri-glsl-native anymore.
3
4Upstream-Status: Backport (from master)
5Signed-off-by: Ross Burton <ross.burton@intel.com>
6
7diff --git a/configure.ac b/configure.ac
8index b46f897..3765cd3 100644
9--- a/configure.ac
10+++ b/configure.ac
11@@ -10,7 +10,7 @@ AC_INIT([Mesa], [9.0.1],
12 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
13 AC_CONFIG_AUX_DIR([bin])
14 AC_CONFIG_MACRO_DIR([m4])
15-AC_CANONICAL_HOST
16+AC_CANONICAL_SYSTEM
17 AM_INIT_AUTOMAKE([foreign])
18
19 dnl http://people.gnome.org/~walters/docs/build-api.txt
20@@ -24,9 +24,6 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
21
22 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
23
24-LT_PREREQ([2.2])
25-LT_INIT([disable-static])
26-
27 dnl Set internal versions
28 OSMESA_VERSION=8
29 AC_SUBST([OSMESA_VERSION])
30@@ -45,7 +42,9 @@ LIBKMS_XORG_REQUIRED=1.0.0
31 dnl Check for progs
32 AC_PROG_CPP
33 AC_PROG_CC
34+AX_PROG_CC_FOR_BUILD
35 AC_PROG_CXX
36+AX_PROG_CXX_FOR_BUILD
37 AM_PROG_CC_C_O
38 AM_PROG_AS
39 AC_CHECK_PROGS([MAKE], [gmake make])
40@@ -54,6 +53,9 @@ AC_PROG_SED
41 AC_PROG_MKDIR_P
42 AC_PATH_PROG([MKDEP], [makedepend])
43
44+LT_PREREQ([2.2])
45+LT_INIT([disable-static])
46+
47 if test "x$MKDEP" = "x"; then
48 AC_MSG_ERROR([makedepend is required to build Mesa])
49 fi
50@@ -155,6 +157,21 @@ dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
51 _SAVE_LDFLAGS="$LDFLAGS"
52 _SAVE_CPPFLAGS="$CPPFLAGS"
53
54+dnl build host compiler macros
55+DEFINES_FOR_BUILD=""
56+AC_SUBST([DEFINES_FOR_BUILD])
57+case "$build_os" in
58+linux*|*-gnu*|gnu*)
59+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -D_GNU_SOURCE"
60+ ;;
61+solaris*)
62+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -DSVR4"
63+ ;;
64+cygwin*)
65+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD"
66+ ;;
67+esac
68+
69 dnl Compiler macros
70 DEFINES=""
71 AC_SUBST([DEFINES])
72@@ -172,6 +189,7 @@ esac
73
74 dnl Add flags for gcc and g++
75 if test "x$GCC" = xyes; then
76+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -Wall -std=c99"
77 CFLAGS="$CFLAGS -Wall -std=c99"
78
79 # Enable -Werror=implicit-function-declaration and
80@@ -199,13 +217,16 @@ if test "x$GCC" = xyes; then
81 CFLAGS=$save_CFLAGS
82
83 # Work around aliasing bugs - developers should comment this out
84+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -fno-strict-aliasing"
85 CFLAGS="$CFLAGS -fno-strict-aliasing"
86
87 # gcc's builtin memcmp is slower than glibc's
88 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
89+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -fno-builtin-memcmp"
90 CFLAGS="$CFLAGS -fno-builtin-memcmp"
91 fi
92 if test "x$GXX" = xyes; then
93+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -Wall"
94 CXXFLAGS="$CXXFLAGS -Wall"
95
96 # Enable -fvisibility=hidden if using a gcc that supports it
97@@ -222,10 +243,12 @@ if test "x$GXX" = xyes; then
98 CXXFLAGS=$save_CXXFLAGS
99
100 # Work around aliasing bugs - developers should comment this out
101+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -fno-strict-aliasing"
102 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
103
104 # gcc's builtin memcmp is slower than glibc's
105 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
106+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -fno-builtin-memcmp"
107 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
108 fi
109
110@@ -309,6 +332,14 @@ AC_ARG_ENABLE([debug],
111 [enable_debug=no]
112 )
113 if test "x$enable_debug" = xyes; then
114+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -DDEBUG"
115+ if test "x$GCC_FOR_BUILD" = xyes; then
116+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -g"
117+ fi
118+ if test "x$GXX_FOR_BUILD" = xyes; then
119+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -g"
120+ fi
121+
122 DEFINES="$DEFINES -DDEBUG"
123 if test "x$GCC" = xyes; then
124 CFLAGS="$CFLAGS -g"
125@@ -1960,6 +1991,7 @@ AC_CONFIG_FILES([configs/current
126 src/gbm/Makefile
127 src/gbm/main/gbm.pc
128 src/glsl/Makefile
129+ src/glsl/builtin_compiler/Makefile
130 src/glsl/glcpp/Makefile
131 src/glsl/tests/Makefile
132 src/glx/Makefile
133diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4
134new file mode 100644
135index 0000000..6369809
136--- /dev/null
137+++ b/m4/ax_prog_cc_for_build.m4
138@@ -0,0 +1,125 @@
139+# ===========================================================================
140+# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
141+# ===========================================================================
142+#
143+# SYNOPSIS
144+#
145+# AX_PROG_CC_FOR_BUILD
146+#
147+# DESCRIPTION
148+#
149+# This macro searches for a C compiler that generates native executables,
150+# that is a C compiler that surely is not a cross-compiler. This can be
151+# useful if you have to generate source code at compile-time like for
152+# example GCC does.
153+#
154+# The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything
155+# needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD).
156+# The value of these variables can be overridden by the user by specifying
157+# a compiler with an environment variable (like you do for standard CC).
158+#
159+# It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object
160+# file extensions for the build platform, and GCC_FOR_BUILD to `yes' if
161+# the compiler we found is GCC. All these variables but GCC_FOR_BUILD are
162+# substituted in the Makefile.
163+#
164+# LICENSE
165+#
166+# Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
167+#
168+# Copying and distribution of this file, with or without modification, are
169+# permitted in any medium without royalty provided the copyright notice
170+# and this notice are preserved. This file is offered as-is, without any
171+# warranty.
172+
173+#serial 5
174+
175+AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
176+AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
177+AC_REQUIRE([AC_PROG_CC])dnl
178+AC_REQUIRE([AC_PROG_CPP])dnl
179+AC_REQUIRE([AC_EXEEXT])dnl
180+AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl
181+
182+dnl Use the standard macros, but make them use other variable names
183+dnl
184+pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
185+pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
186+pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
187+pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
188+pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
189+pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
190+pushdef([ac_cv_objext], ac_cv_build_objext)dnl
191+pushdef([ac_exeext], ac_build_exeext)dnl
192+pushdef([ac_objext], ac_build_objext)dnl
193+pushdef([CC], CC_FOR_BUILD)dnl
194+pushdef([CPP], CPP_FOR_BUILD)dnl
195+pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
196+pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
197+pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
198+pushdef([host], build)dnl
199+pushdef([host_alias], build_alias)dnl
200+pushdef([host_cpu], build_cpu)dnl
201+pushdef([host_vendor], build_vendor)dnl
202+pushdef([host_os], build_os)dnl
203+pushdef([ac_cv_host], ac_cv_build)dnl
204+pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
205+pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
206+pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
207+pushdef([ac_cv_host_os], ac_cv_build_os)dnl
208+pushdef([ac_cpp], ac_build_cpp)dnl
209+pushdef([ac_compile], ac_build_compile)dnl
210+pushdef([ac_link], ac_build_link)dnl
211+
212+save_cross_compiling=$cross_compiling
213+save_ac_tool_prefix=$ac_tool_prefix
214+cross_compiling=no
215+ac_tool_prefix=
216+
217+AC_PROG_CC
218+AC_PROG_CPP
219+AC_EXEEXT
220+
221+ac_tool_prefix=$save_ac_tool_prefix
222+cross_compiling=$save_cross_compiling
223+
224+dnl Restore the old definitions
225+dnl
226+popdef([ac_link])dnl
227+popdef([ac_compile])dnl
228+popdef([ac_cpp])dnl
229+popdef([ac_cv_host_os])dnl
230+popdef([ac_cv_host_vendor])dnl
231+popdef([ac_cv_host_cpu])dnl
232+popdef([ac_cv_host_alias])dnl
233+popdef([ac_cv_host])dnl
234+popdef([host_os])dnl
235+popdef([host_vendor])dnl
236+popdef([host_cpu])dnl
237+popdef([host_alias])dnl
238+popdef([host])dnl
239+popdef([LDFLAGS])dnl
240+popdef([CPPFLAGS])dnl
241+popdef([CFLAGS])dnl
242+popdef([CPP])dnl
243+popdef([CC])dnl
244+popdef([ac_objext])dnl
245+popdef([ac_exeext])dnl
246+popdef([ac_cv_objext])dnl
247+popdef([ac_cv_exeext])dnl
248+popdef([ac_cv_prog_cc_g])dnl
249+popdef([ac_cv_prog_cc_cross])dnl
250+popdef([ac_cv_prog_cc_works])dnl
251+popdef([ac_cv_prog_gcc])dnl
252+popdef([ac_cv_prog_CPP])dnl
253+
254+dnl Finally, set Makefile variables
255+dnl
256+BUILD_EXEEXT=$ac_build_exeext
257+BUILD_OBJEXT=$ac_build_objext
258+AC_SUBST(BUILD_EXEEXT)dnl
259+AC_SUBST(BUILD_OBJEXT)dnl
260+AC_SUBST([CFLAGS_FOR_BUILD])dnl
261+AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
262+AC_SUBST([LDFLAGS_FOR_BUILD])dnl
263+])
264diff --git a/m4/ax_prog_cxx_for_build.m4 b/m4/ax_prog_cxx_for_build.m4
265new file mode 100644
266index 0000000..ecf8db9
267--- /dev/null
268+++ b/m4/ax_prog_cxx_for_build.m4
269@@ -0,0 +1,109 @@
270+# ===========================================================================
271+# http://www.gnu.org/software/autoconf-archive/ax_prog_cxx_for_build.html
272+# ===========================================================================
273+#
274+# SYNOPSIS
275+#
276+# AX_PROG_CXX_FOR_BUILD
277+#
278+# DESCRIPTION
279+#
280+# This macro searches for a C++ compiler that generates native executables,
281+# that is a C++ compiler that surely is not a cross-compiler. This can be
282+# useful if you have to generate source code at compile-time like for
283+# example GCC does.
284+#
285+# The macro sets the CXX_FOR_BUILD and CXXCPP_FOR_BUILD macros to anything
286+# needed to compile or link (CXX_FOR_BUILD) and preprocess (CXXCPP_FOR_BUILD).
287+# The value of these variables can be overridden by the user by specifying
288+# a compiler with an environment variable (like you do for standard CXX).
289+#
290+# LICENSE
291+#
292+# Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
293+# Copyright (c) 2012 Avionic Design GmbH
294+#
295+# Based on the AX_PROG_CC_FOR_BUILD macro by Paolo Bonzini.
296+#
297+# Copying and distribution of this file, with or without modification, are
298+# permitted in any medium without royalty provided the copyright notice
299+# and this notice are preserved. This file is offered as-is, without any
300+# warranty.
301+
302+#serial 5
303+
304+AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD])
305+AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl
306+AC_REQUIRE([AX_PROG_CC_FOR_BUILD])dnl
307+AC_REQUIRE([AC_PROG_CXX])dnl
308+AC_REQUIRE([AC_PROG_CXXCPP])dnl
309+AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl
310+
311+dnl Use the standard macros, but make them use other variable names
312+dnl
313+pushdef([ac_cv_prog_CXXCPP], ac_cv_build_prog_CXXCPP)dnl
314+pushdef([ac_cv_prog_gxx], ac_cv_build_prog_gxx)dnl
315+pushdef([ac_cv_prog_cxx_works], ac_cv_build_prog_cxx_works)dnl
316+pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl
317+pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl
318+pushdef([CXX], CXX_FOR_BUILD)dnl
319+pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl
320+pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl
321+pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
322+pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl
323+pushdef([host], build)dnl
324+pushdef([host_alias], build_alias)dnl
325+pushdef([host_cpu], build_cpu)dnl
326+pushdef([host_vendor], build_vendor)dnl
327+pushdef([host_os], build_os)dnl
328+pushdef([ac_cv_host], ac_cv_build)dnl
329+pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
330+pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
331+pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
332+pushdef([ac_cv_host_os], ac_cv_build_os)dnl
333+pushdef([ac_cxxcpp], ac_build_cxxcpp)dnl
334+pushdef([ac_compile], ac_build_compile)dnl
335+pushdef([ac_link], ac_build_link)dnl
336+
337+save_cross_compiling=$cross_compiling
338+save_ac_tool_prefix=$ac_tool_prefix
339+cross_compiling=no
340+ac_tool_prefix=
341+
342+AC_PROG_CXX
343+AC_PROG_CXXCPP
344+
345+ac_tool_prefix=$save_ac_tool_prefix
346+cross_compiling=$save_cross_compiling
347+
348+dnl Restore the old definitions
349+dnl
350+popdef([ac_link])dnl
351+popdef([ac_compile])dnl
352+popdef([ac_cxxcpp])dnl
353+popdef([ac_cv_host_os])dnl
354+popdef([ac_cv_host_vendor])dnl
355+popdef([ac_cv_host_cpu])dnl
356+popdef([ac_cv_host_alias])dnl
357+popdef([ac_cv_host])dnl
358+popdef([host_os])dnl
359+popdef([host_vendor])dnl
360+popdef([host_cpu])dnl
361+popdef([host_alias])dnl
362+popdef([host])dnl
363+popdef([CXXCPPFLAGS])dnl
364+popdef([CPPFLAGS])dnl
365+popdef([CXXFLAGS])dnl
366+popdef([CXXCPP])dnl
367+popdef([CXX])dnl
368+popdef([ac_cv_prog_cxx_g])dnl
369+popdef([ac_cv_prog_cxx_cross])dnl
370+popdef([ac_cv_prog_cxx_works])dnl
371+popdef([ac_cv_prog_gxx])dnl
372+popdef([ac_cv_prog_CXXCPP])dnl
373+
374+dnl Finally, set Makefile variables
375+dnl
376+AC_SUBST([CXXFLAGS_FOR_BUILD])dnl
377+AC_SUBST([CXXCPPFLAGS_FOR_BUILD])dnl
378+])
379diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am
380index 1ecc003..6fb3d2d 100644
381--- a/src/glsl/Makefile.am
382+++ b/src/glsl/Makefile.am
383@@ -19,9 +19,7 @@
384 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
385 # IN THE SOFTWARE.
386
387-
388-# builtin_compiler is built before libglsl to generate builtin_function.cpp for libglsl.
389-# For this to work, a dummy version of builtin_function.cpp, builtin_stubs.cpp, is used.
390+SUBDIRS = builtin_compiler glcpp
391
392 AM_CPPFLAGS = \
393 -I$(top_srcdir)/include \
394@@ -38,32 +36,23 @@ AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c
395
396 include Makefile.sources
397
398-noinst_LTLIBRARIES = libglslcommon.la libglsl.la
399-noinst_PROGRAMS = glsl_compiler glsl_test builtin_compiler
400+noinst_LTLIBRARIES = libglsl.la
401+noinst_PROGRAMS = glsl_compiler glsl_test
402
403-# common sources for builtin_compiler and libglsl
404-libglslcommon_la_SOURCES = \
405+libglsl_la_SOURCES = \
406 glsl_lexer.ll \
407 glsl_parser.cc \
408 $(LIBGLSL_FILES) \
409- $(LIBGLSL_CXX_FILES)
410-
411-libglslcommon_la_LIBADD = glcpp/libglcpp.la
412-
413-# common sources for builtin_compiler and glsl_compiler
414-GLSL2_SOURCES = \
415- $(top_srcdir)/src/mesa/program/hash_table.c \
416- $(top_srcdir)/src/mesa/program/symbol_table.c \
417- $(GLSL_COMPILER_CXX_FILES)
418-
419-libglsl_la_SOURCES = \
420+ $(LIBGLSL_CXX_FILES) \
421 builtin_function.cpp
422
423-libglsl_la_LIBADD = libglslcommon.la
424+libglsl_la_LIBADD = glcpp/libglcpp.la
425 libglsl_la_LDFLAGS =
426
427 glsl_compiler_SOURCES = \
428- $(GLSL2_SOURCES)
429+ $(top_srcdir)/src/mesa/program/hash_table.c \
430+ $(top_srcdir)/src/mesa/program/symbol_table.c \
431+ $(GLSL_COMPILER_CXX_FILES)
432
433 glsl_compiler_LDADD = libglsl.la
434
435@@ -76,12 +65,6 @@ glsl_test_SOURCES = \
436
437 glsl_test_LDADD = libglsl.la
438
439-builtin_compiler_SOURCES = \
440- $(GLSL2_SOURCES) \
441- builtin_stubs.cpp
442-
443-builtin_compiler_LDADD = libglslcommon.la
444-
445 # automake <=1.11 and automake >=1.12 have different conventions for naming C++ header files
446 # made by yacc. To work with both, we write our own rule rather than using automake's.
447 # When (if) we require automake >=1.12 in configure.ac, this can be removed, and we can use
448@@ -89,16 +72,11 @@ builtin_compiler_LDADD = libglslcommon.la
449 glsl_parser.cc glsl_parser.h: glsl_parser.yy
450 $(AM_V_GEN) $(YACC) -v -o glsl_parser.cc -p "_mesa_glsl_" --defines=glsl_parser.h $<
451
452-BUILT_SOURCES = glsl_parser.h builtin_function.cpp
453-CLEANFILES = glsl_lexer.cc glsl_parser.cc $(BUILT_SOURCES)
454-
455-builtin_function.cpp: $(srcdir)/builtins/profiles/* $(srcdir)/builtins/ir/* $(srcdir)/builtins/glsl/* $(srcdir)/builtins/tools/generate_builtins.py $(srcdir)/builtins/tools/texture_builtins.py builtin_compiler$(EXEEXT)
456- $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py ./builtin_compiler > builtin_function.cpp || rm -f builtin_function.cpp
457-
458-glcpp/libglcpp.la:
459- cd glcpp ; $(MAKE) $(AM_MAKEFLAGS)
460+BUILT_SOURCES = glsl_parser.h
461+CLEANFILES = glsl_lexer.cc glsl_parser.cc $(BUILT_SOURCES) builtin_function.cpp
462
463-SUBDIRS = glcpp
464+builtin_function.cpp: $(srcdir)/builtins/profiles/* $(srcdir)/builtins/ir/* $(srcdir)/builtins/glsl/* $(srcdir)/builtins/tools/generate_builtins.py $(srcdir)/builtins/tools/texture_builtins.py builtin_compiler/builtin_compiler$(BUILD_EXEEXT)
465+ $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py builtin_compiler/builtin_compiler$(BUILD_EXEEXT) > builtin_function.cpp || rm -f builtin_function.cpp
466
467 # Provide compatibility with scripts for the old Mesa build system for
468 # a while by putting a link to the library in the current directory.
469diff --git a/src/glsl/builtin_compiler/Makefile.am b/src/glsl/builtin_compiler/Makefile.am
470new file mode 100644
471index 0000000..72032b5
472--- /dev/null
473+++ b/src/glsl/builtin_compiler/Makefile.am
474@@ -0,0 +1,68 @@
475+# Copyright © 2012 Jon TURNEY
476+# Copyright © 2012 Thierry Reding
477+#
478+# Permission is hereby granted, free of charge, to any person obtaining a
479+# copy of this software and associated documentation files (the "Software"),
480+# to deal in the Software without restriction, including without limitation
481+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
482+# and/or sell copies of the Software, and to permit persons to whom the
483+# Software is furnished to do so, subject to the following conditions:
484+#
485+# The above copyright notice and this permission notice (including the next
486+# paragraph) shall be included in all copies or substantial portions of the
487+# Software.
488+#
489+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
490+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
491+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
492+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
493+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
494+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
495+# IN THE SOFTWARE.
496+
497+CC = @CC_FOR_BUILD@
498+CFLAGS = @CFLAGS_FOR_BUILD@
499+CPP = @CPP_FOR_BUILD@
500+CPPFLAGS = @CPPFLAGS_FOR_BUILD@
501+CXX = @CXX_FOR_BUILD@
502+CXXFLAGS = @CXXFLAGS_FOR_BUILD@
503+LD = @LD_FOR_BUILD@
504+LDFLAGS = @LDFLAGS_FOR_BUILD@
505+
506+AM_CFLAGS = \
507+ -I $(top_srcdir)/include \
508+ -I $(top_srcdir)/src/mapi \
509+ -I $(top_srcdir)/src/mesa \
510+ -I $(GLSL_SRCDIR) \
511+ -I $(GLSL_SRCDIR)/glcpp \
512+ $(DEFINES_FOR_BUILD)
513+
514+AM_CXXFLAGS = $(AM_CFLAGS)
515+
516+AM_YFLAGS = -v -d -p "glcpp_parser_"
517+AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c
518+
519+include ../Makefile.sources
520+
521+noinst_PROGRAMS = builtin_compiler
522+
523+builtin_compiler_SOURCES = \
524+ $(GLSL_SRCDIR)/glcpp/glcpp-lex.l \
525+ $(GLSL_SRCDIR)/glcpp/glcpp-parse.y \
526+ $(LIBGLCPP_FILES) \
527+ $(GLSL_SRCDIR)/glsl_lexer.ll \
528+ $(GLSL_SRCDIR)/glsl_parser.cc \
529+ $(LIBGLSL_FILES) \
530+ $(LIBGLSL_CXX_FILES) \
531+ $(top_srcdir)/src/mesa/program/hash_table.c \
532+ $(top_srcdir)/src/mesa/program/symbol_table.c \
533+ $(GLSL_COMPILER_CXX_FILES) \
534+ builtin_stubs.cpp
535+
536+BUILT_SOURCES = \
537+ glcpp-lex.c \
538+ glcpp-parse.c \
539+ glcpp-parse.h \
540+ glsl_lexer.cc
541+
542+CLEANFILES = $(BUILT_SOURCES)
543diff --git a/src/glsl/builtin_compiler/builtin_stubs.cpp b/src/glsl/builtin_compiler/builtin_stubs.cpp
544new file mode 100644
545index 0000000..dfa5d32
546--- /dev/null
547+++ b/src/glsl/builtin_compiler/builtin_stubs.cpp
548@@ -0,0 +1,39 @@
549+/*
550+ * Copyright © 2010 Intel Corporation
551+ *
552+ * Permission is hereby granted, free of charge, to any person obtaining a
553+ * copy of this software and associated documentation files (the "Software"),
554+ * to deal in the Software without restriction, including without limitation
555+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
556+ * and/or sell copies of the Software, and to permit persons to whom the
557+ * Software is furnished to do so, subject to the following conditions:
558+ *
559+ * The above copyright notice and this permission notice (including the next
560+ * paragraph) shall be included in all copies or substantial portions of the
561+ * Software.
562+ *
563+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
564+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
565+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
566+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
567+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
568+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
569+ * DEALINGS IN THE SOFTWARE.
570+ */
571+
572+#include <stdio.h>
573+#include "glsl_parser_extras.h"
574+
575+/* A dummy file. When compiling prototypes, we don't care about builtins.
576+ * We really don't want to half-compile builtin_functions.cpp and fail, though.
577+ */
578+void
579+_mesa_glsl_release_functions(void)
580+{
581+}
582+
583+void
584+_mesa_glsl_initialize_functions(_mesa_glsl_parse_state *state)
585+{
586+ (void) state;
587+}
588diff --git a/src/glsl/builtin_stubs.cpp b/src/glsl/builtin_stubs.cpp
589deleted file mode 100644
590index dfa5d32..0000000
591--- a/src/glsl/builtin_stubs.cpp
592+++ /dev/null
593@@ -1,39 +0,0 @@
594-/*
595- * Copyright © 2010 Intel Corporation
596- *
597- * Permission is hereby granted, free of charge, to any person obtaining a
598- * copy of this software and associated documentation files (the "Software"),
599- * to deal in the Software without restriction, including without limitation
600- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
601- * and/or sell copies of the Software, and to permit persons to whom the
602- * Software is furnished to do so, subject to the following conditions:
603- *
604- * The above copyright notice and this permission notice (including the next
605- * paragraph) shall be included in all copies or substantial portions of the
606- * Software.
607- *
608- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
609- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
610- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
611- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
612- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
613- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
614- * DEALINGS IN THE SOFTWARE.
615- */
616-
617-#include <stdio.h>
618-#include "glsl_parser_extras.h"
619-
620-/* A dummy file. When compiling prototypes, we don't care about builtins.
621- * We really don't want to half-compile builtin_functions.cpp and fail, though.
622- */
623-void
624-_mesa_glsl_release_functions(void)
625-{
626-}
627-
628-void
629-_mesa_glsl_initialize_functions(_mesa_glsl_parse_state *state)
630-{
631- (void) state;
632-}
diff --git a/meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch b/meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch
deleted file mode 100644
index 80735a65e9..0000000000
--- a/meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1Upstream-Status: Backport
2
3From d6b06474f69129eb41ecd85d6b3bb0eb7b9dccb3 Mon Sep 17 00:00:00 2001
4From: Daniel Stone <daniel@fooishbar.org>
5Date: Tue, 9 Oct 2012 14:27:06 +1100
6Subject: [PATCH] build: Don't fail if libX11 isn't installed
7
8configure.ac would previously refuse to complete if libX11 wasn't
9installed, even if we'd disabled GLX and weren't building an X11 EGL
10platform. Make the check simply set the no_x variable that's used (but
11never set) immediately below for what looks like this very case.
12
13Signed-off-by: Daniel Stone <daniel@fooishbar.org>
14Reviewed-by: Matt Turner <mattst88@gmail.com>
15Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
16(cherry picked from commit 4004620d34a580c8fdb965d9b640e97453fc8b28)
17---
18 configure.ac | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/configure.ac b/configure.ac
22index eb273b9..b384b44 100644
23--- a/configure.ac
24+++ b/configure.ac
25@@ -836,7 +836,7 @@ if test "x$enable_dri" = xyes; then
26 fi
27
28 dnl Find out if X is available.
29-PKG_CHECK_MODULES([X11], [x11])
30+PKG_CHECK_MODULES([X11], [x11], [no_x=no], [no_x=yes])
31
32 dnl Try to tell the user that the --x-* options are only used when
33 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
34--
351.7.10.4
36
diff --git a/meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch b/meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch
deleted file mode 100644
index 6436b592b4..0000000000
--- a/meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1Upstream-Status: Submitted
2
3Picked from mesa-dev mailing list: http://marc.info/?l=mesa3d-dev&m=133053004130468
4
5From: Benjamin Franzke <benjaminfranzke@googlemail.com>
6Date: Wed, 29 Feb 2012 15:36:23 +0100
7Subject: [PATCH] configure: Fix egl compilation without x11 headers
8
9We dont want eglplatform.h to typedef egl native types
10to x11 types, when x11 headers are not available.
11---
12 configure.ac | 4 ++++
13 1 file changed, 4 insertions(+)
14
15diff --git a/configure.ac b/configure.ac
16index b384b44..8eb8459 100644
17--- a/configure.ac
18+++ b/configure.ac
19@@ -1262,6 +1262,10 @@ if test "x$enable_egl" = xyes; then
20
21 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
22
23+ if test "$have_x" != yes; then
24+ DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
25+ fi
26+
27 if test "$enable_static" != yes; then
28 # build egl_glx when libGL is built
29 if test "x$enable_glx" = xyes; then
30--
311.7.10.4
32
diff --git a/meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch b/meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch
new file mode 100644
index 0000000000..34226ea58b
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch
@@ -0,0 +1,43 @@
1The target libtool is used when building host binaries, which predictably
2doesn't work.
3
4Upstream-Status: Submitted (https://bugs.freedesktop.org/show_bug.cgi?id=44618)
5Signed-off-by: Jonathan Liu <net147@gmail.com>
6Signed-off-by: Ross Burton <ross.burton@intel.com>
7
8diff --git a/src/glsl/builtin_compiler/Makefile.am b/src/glsl/builtin_compiler/Makefile.am
9index e11a17f..8ebe0a2 100644
10--- a/src/glsl/builtin_compiler/Makefile.am
11+++ b/src/glsl/builtin_compiler/Makefile.am
12@@ -64,6 +64,8 @@ AM_CXXFLAGS = $(AM_CFLAGS)
13 include ../Makefile.sources
14
15 noinst_PROGRAMS = builtin_compiler
16+
17+if !CROSS_COMPILING
18 noinst_LTLIBRARIES = libglslcore.la libglcpp.la
19
20 libglcpp_la_SOURCES = \
21@@ -73,6 +75,7 @@ libglcpp_la_SOURCES = \
22 libglslcore_la_SOURCES = \
23 $(BUILTIN_COMPILER_GENERATED_CXX_FILES) \
24 $(LIBGLSL_FILES)
25+endif
26
27 builtin_compiler_SOURCES = \
28 $(top_srcdir)/src/mesa/main/hash_table.c \
29@@ -81,4 +84,14 @@ builtin_compiler_SOURCES = \
30 $(top_srcdir)/src/mesa/program/symbol_table.c \
31 $(BUILTIN_COMPILER_CXX_FILES) \
32 $(GLSL_COMPILER_CXX_FILES)
33+
34+if CROSS_COMPILING
35+builtin_compiler_SOURCES += \
36+ $(LIBGLCPP_GENERATED_FILES) \
37+ $(LIBGLCPP_FILES) \
38+ $(BUILTIN_COMPILER_GENERATED_CXX_FILES) \
39+ $(LIBGLSL_FILES)
40+builtin_compiler_CPPFLAGS = $(AM_CPPFLAGS)
41+else
42 builtin_compiler_LDADD = libglslcore.la libglcpp.la
43+endif
diff --git a/meta/recipes-graphics/mesa/mesa_9.0.2.bb b/meta/recipes-graphics/mesa/mesa_9.0.2.bb
deleted file mode 100644
index 6671f994b0..0000000000
--- a/meta/recipes-graphics/mesa/mesa_9.0.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
1require mesa-common.inc
2require mesa-${PV}.inc
3require mesa.inc
4PR = "${INC_PR}.1"
diff --git a/meta/recipes-graphics/mesa/mesa_9.1.3.bb b/meta/recipes-graphics/mesa/mesa_9.1.3.bb
new file mode 100644
index 0000000000..60a90a3c73
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa_9.1.3.bb
@@ -0,0 +1,14 @@
1SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
2 file://EGL-Mutate-NativeDisplayType-depending-on-config.patch \
3 file://fix-glsl-cross.patch \
4 "
5
6SRC_URI[md5sum] = "952ccd03547ed72333b64e1746cf8ada"
7SRC_URI[sha256sum] = "8d5dac2202d0355bff5cfd183582ec8167d1d1227b7bb7a669acecbeaa52d766"
8
9LIC_FILES_CHKSUM = "file://docs/license.html;md5=42d77d95cba529a3637129be87d6555d"
10
11S = "${WORKDIR}/Mesa-${PV}"
12
13require mesa-common.inc
14require mesa.inc