diff options
| author | Ross Burton <ross.burton@intel.com> | 2012-12-06 16:34:08 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-01-10 23:43:16 +0000 |
| commit | 909b3bee33eb50d567ed610caca6a4bad7446eb7 (patch) | |
| tree | 89b4d85296a242c1471872ca96e7bb8d3929f19c /meta/recipes-graphics | |
| parent | d5ce76dce394dcfa0a92e6a792c838dc6b530118 (diff) | |
| download | poky-909b3bee33eb50d567ed610caca6a4bad7446eb7.tar.gz | |
mesa: bump to 9.0.1
Upgrade Mesa to 9.01, backporting a patch from master to build without needing
mesa-dri-glsl-native.
Several patches have been merged upstream, so drop them.
License checksums updated as the file was re-formated.
Drop mesa-dri-glsl-native as we don't need it anymore.
Tested with Piglit's "quick" test suite, pass rate remains constant compared to
8.0.5 at 87%.
(From OE-Core rev: f816697c1e76589de7853bd5573cf578e25c7ca7)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics')
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa-8.0.5.inc | 18 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa-9.0.1.inc | 11 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa-common.inc | 3 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa-dri-glsl-native.inc | 7 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa-dri-glsl-native_8.0.5.bb | 22 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa-dri_9.0.1.bb (renamed from meta/recipes-graphics/mesa/mesa-dri_8.0.5.bb) | 0 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch | 52 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa/0003-fix-for-x32.patch | 50 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch | 29 | ||||
| -rw-r--r-- | meta/recipes-graphics/mesa/mesa/cross-glsl.patch | 632 |
10 files changed, 644 insertions, 180 deletions
diff --git a/meta/recipes-graphics/mesa/mesa-8.0.5.inc b/meta/recipes-graphics/mesa/mesa-8.0.5.inc deleted file mode 100644 index b39b011f1e..0000000000 --- a/meta/recipes-graphics/mesa/mesa-8.0.5.inc +++ /dev/null | |||
| @@ -1,18 +0,0 @@ | |||
| 1 | DEPENDS += "mesa-dri-glsl-native" | ||
| 2 | |||
| 3 | SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ | ||
| 4 | file://0001-Compile-with-uclibc.patch \ | ||
| 5 | file://0002-cross-compile.patch \ | ||
| 6 | file://0003-fix-for-x32.patch \ | ||
| 7 | " | ||
| 8 | SRC_URI += "${@base_contains('DISTRO_FEATURES', 'x11', '', 'file://0004-gross-hack-to-prevent-from-install-libgl.patch', d)}" | ||
| 9 | |||
| 10 | S = "${WORKDIR}/Mesa-${PV}" | ||
| 11 | |||
| 12 | SRC_URI[md5sum] = "01305591073a76b65267f69f27d635a3" | ||
| 13 | SRC_URI[sha256sum] = "511b8da34f8e69ed24caf422964fb7ae747f3b1d8093f6b8aa2602164a475a5e" | ||
| 14 | |||
| 15 | do_configure_prepend() { | ||
| 16 | # We need builtin_compiler built for buildhost arch instead of target (is provided by mesa-dri-glsl-native)" | ||
| 17 | sed -i "s#\./builtin_compiler#${STAGING_BINDIR_NATIVE}/glsl/builtin_compiler#g" ${S}/src/glsl/Makefile | ||
| 18 | } | ||
diff --git a/meta/recipes-graphics/mesa/mesa-9.0.1.inc b/meta/recipes-graphics/mesa/mesa-9.0.1.inc new file mode 100644 index 0000000000..9b639da72f --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa-9.0.1.inc | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ | ||
| 2 | file://0002-cross-compile.patch \ | ||
| 3 | file://cross-glsl.patch \ | ||
| 4 | " | ||
| 5 | |||
| 6 | SRC_URI[md5sum] = "97d6554c05ea7449398afe3a0ede7018" | ||
| 7 | SRC_URI[sha256sum] = "57a7ba83bace3f3a7dc0929fe026ef5f0ad454234ec4ad8a3e0d31650a75db6f" | ||
| 8 | |||
| 9 | LIC_FILES_CHKSUM = "file://docs/license.html;md5=012f69938d81b766472fd0d240df38a4" | ||
| 10 | |||
| 11 | S = "${WORKDIR}/Mesa-${PV}" | ||
diff --git a/meta/recipes-graphics/mesa/mesa-common.inc b/meta/recipes-graphics/mesa/mesa-common.inc index 70957eb9b3..838ce11c78 100644 --- a/meta/recipes-graphics/mesa/mesa-common.inc +++ b/meta/recipes-graphics/mesa/mesa-common.inc | |||
| @@ -10,12 +10,11 @@ HOMEPAGE = "http://mesa3d.org" | |||
| 10 | BUGTRACKER = "https://bugs.freedesktop.org" | 10 | BUGTRACKER = "https://bugs.freedesktop.org" |
| 11 | SECTION = "x11" | 11 | SECTION = "x11" |
| 12 | LICENSE = "MIT" | 12 | LICENSE = "MIT" |
| 13 | LIC_FILES_CHKSUM = "file://docs/license.html;md5=03ccdc4c379c4289aecfb8892c546f67" | ||
| 14 | 13 | ||
| 15 | INC_PR = "r9" | 14 | INC_PR = "r9" |
| 16 | PE = "2" | 15 | PE = "2" |
| 17 | 16 | ||
| 18 | DEPENDS = "libxml2-native makedepend-native flex-native bison-native" | 17 | DEPENDS = "expat makedepend-native flex-native bison-native" |
| 19 | 18 | ||
| 20 | PROVIDES = "virtual/libgl virtual/libgles1 virtual/libgles2 virtual/egl" | 19 | PROVIDES = "virtual/libgl virtual/libgles1 virtual/libgles2 virtual/egl" |
| 21 | 20 | ||
diff --git a/meta/recipes-graphics/mesa/mesa-dri-glsl-native.inc b/meta/recipes-graphics/mesa/mesa-dri-glsl-native.inc deleted file mode 100644 index c8b80e88fd..0000000000 --- a/meta/recipes-graphics/mesa/mesa-dri-glsl-native.inc +++ /dev/null | |||
| @@ -1,7 +0,0 @@ | |||
| 1 | DESCRIPTION = "gl shader language specific build from mesa-dri" | ||
| 2 | HOMEPAGE = "http://mesa3d.org" | ||
| 3 | BUGTRACKER = "https://bugs.freedesktop.org" | ||
| 4 | SECTION = "x11" | ||
| 5 | LICENSE = "GPLv3+" | ||
| 6 | |||
| 7 | DEPENDS = "makedepend-native" | ||
diff --git a/meta/recipes-graphics/mesa/mesa-dri-glsl-native_8.0.5.bb b/meta/recipes-graphics/mesa/mesa-dri-glsl-native_8.0.5.bb deleted file mode 100644 index 842d492843..0000000000 --- a/meta/recipes-graphics/mesa/mesa-dri-glsl-native_8.0.5.bb +++ /dev/null | |||
| @@ -1,22 +0,0 @@ | |||
| 1 | require mesa-dri-glsl-native.inc | ||
| 2 | |||
| 3 | LIC_FILES_CHKSUM = "file://glsl_parser.yy;beginline=2;endline=23;md5=a12a9c0208ee64a07ce314dfed4c81eb" | ||
| 4 | |||
| 5 | SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2" | ||
| 6 | SRC_URI[md5sum] = "01305591073a76b65267f69f27d635a3" | ||
| 7 | SRC_URI[sha256sum] = "511b8da34f8e69ed24caf422964fb7ae747f3b1d8093f6b8aa2602164a475a5e" | ||
| 8 | |||
| 9 | S = "${WORKDIR}/Mesa-${PV}/src/glsl/" | ||
| 10 | |||
| 11 | inherit native | ||
| 12 | |||
| 13 | # use default config for native build | ||
| 14 | do_configure_prepend() { | ||
| 15 | ln -sf ${S}/../../configs/default ${S}/../../configs/current | ||
| 16 | } | ||
| 17 | |||
| 18 | do_install() { | ||
| 19 | install -d ${D}/${bindir}/glsl | ||
| 20 | install -m 755 ${S}/builtin_compiler ${D}/${bindir}/glsl/builtin_compiler | ||
| 21 | install -m 755 ${S}/glsl_compiler ${D}/${bindir}/glsl/glsl_compiler | ||
| 22 | } | ||
diff --git a/meta/recipes-graphics/mesa/mesa-dri_8.0.5.bb b/meta/recipes-graphics/mesa/mesa-dri_9.0.1.bb index 26b56e426c..26b56e426c 100644 --- a/meta/recipes-graphics/mesa/mesa-dri_8.0.5.bb +++ b/meta/recipes-graphics/mesa/mesa-dri_9.0.1.bb | |||
diff --git a/meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch b/meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch deleted file mode 100644 index d39270a48b..0000000000 --- a/meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch +++ /dev/null | |||
| @@ -1,52 +0,0 @@ | |||
| 1 | Compile with uclibc | ||
| 2 | |||
| 3 | Upstream-Status: Pending | ||
| 4 | --- | ||
| 5 | configure.ac | 3 +++ | ||
| 6 | src/glsl/strtod.c | 2 +- | ||
| 7 | src/mesa/main/imports.c | 2 +- | ||
| 8 | 3 files changed, 5 insertions(+), 2 deletions(-) | ||
| 9 | |||
| 10 | diff --git a/configure.ac b/configure.ac | ||
| 11 | index fbaa376..454dad2 100644 | ||
| 12 | --- a/configure.ac | ||
| 13 | +++ b/configure.ac | ||
| 14 | @@ -543,6 +543,9 @@ AC_SUBST([DLOPEN_LIBS]) | ||
| 15 | dnl See if posix_memalign is available | ||
| 16 | AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) | ||
| 17 | |||
| 18 | +dnl See if newlocale is available | ||
| 19 | +AC_CHECK_FUNCS_ONCE(newlocale) | ||
| 20 | + | ||
| 21 | dnl SELinux awareness. | ||
| 22 | AC_ARG_ENABLE([selinux], | ||
| 23 | [AS_HELP_STRING([--enable-selinux], | ||
| 24 | diff --git a/src/glsl/strtod.c b/src/glsl/strtod.c | ||
| 25 | index a876e13..9fce7e9 100644 | ||
| 26 | --- a/src/glsl/strtod.c | ||
| 27 | +++ b/src/glsl/strtod.c | ||
| 28 | @@ -45,7 +45,7 @@ double | ||
| 29 | glsl_strtod(const char *s, char **end) | ||
| 30 | { | ||
| 31 | #if defined(_GNU_SOURCE) && !defined(__CYGWIN__) && !defined(__FreeBSD__) && \ | ||
| 32 | - !defined(__HAIKU__) | ||
| 33 | + !defined(__HAIKU__) && defined (HAVE_NEWLOCALE) | ||
| 34 | static locale_t loc = NULL; | ||
| 35 | if (!loc) { | ||
| 36 | loc = newlocale(LC_CTYPE_MASK, "C", NULL); | ||
| 37 | diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c | ||
| 38 | index d3727ef..363bf32 100644 | ||
| 39 | --- a/src/mesa/main/imports.c | ||
| 40 | +++ b/src/mesa/main/imports.c | ||
| 41 | @@ -767,7 +767,7 @@ float | ||
| 42 | _mesa_strtof( const char *s, char **end ) | ||
| 43 | { | ||
| 44 | #if defined(_GNU_SOURCE) && !defined(__CYGWIN__) && !defined(__FreeBSD__) && \ | ||
| 45 | - !defined(ANDROID) && !defined(__HAIKU__) | ||
| 46 | + !defined(ANDROID) && !defined(__HAIKU__) && defined (HAVE_NEWLOCALE) | ||
| 47 | static locale_t loc = NULL; | ||
| 48 | if (!loc) { | ||
| 49 | loc = newlocale(LC_CTYPE_MASK, "C", NULL); | ||
| 50 | -- | ||
| 51 | 1.7.10.4 | ||
| 52 | |||
diff --git a/meta/recipes-graphics/mesa/mesa/0003-fix-for-x32.patch b/meta/recipes-graphics/mesa/mesa/0003-fix-for-x32.patch deleted file mode 100644 index 2d6a150e42..0000000000 --- a/meta/recipes-graphics/mesa/mesa/0003-fix-for-x32.patch +++ /dev/null | |||
| @@ -1,50 +0,0 @@ | |||
| 1 | Upstream-Status: Pending | ||
| 2 | |||
| 3 | Using uname like this when cross compiling is a really bad idea. We | ||
| 4 | provide the correct linker flags, lets just assume we can get this | ||
| 5 | right ourselves. | ||
| 6 | |||
| 7 | RP 2012/04/26 | ||
| 8 | --- | ||
| 9 | bin/mklib | 16 ---------------- | ||
| 10 | 1 file changed, 16 deletions(-) | ||
| 11 | |||
| 12 | diff --git a/bin/mklib b/bin/mklib | ||
| 13 | index b33aa90..16cb017 100755 | ||
| 14 | --- a/bin/mklib | ||
| 15 | +++ b/bin/mklib | ||
| 16 | @@ -330,15 +330,7 @@ case $ARCH in | ||
| 17 | ;; | ||
| 18 | esac | ||
| 19 | |||
| 20 | - # Check if objects are 32-bit and we're running in 64-bit | ||
| 21 | - # environment. If so, pass -m32 flag to linker. | ||
| 22 | set ${OBJECTS} | ||
| 23 | - ABI32=`file $1 | grep 32-bit` | ||
| 24 | - ARM=`file $1 | grep ARM` | ||
| 25 | - # Do not add "-m32" option for arm. | ||
| 26 | - if [ -z "$ARM" -a "${ABI32}" -a `uname -m` = "x86_64" ] ; then | ||
| 27 | - OPTS="-m32 ${OPTS}" | ||
| 28 | - fi | ||
| 29 | |||
| 30 | if [ "${ALTOPTS}" ] ; then | ||
| 31 | OPTS=${ALTOPTS} | ||
| 32 | @@ -389,15 +381,7 @@ case $ARCH in | ||
| 33 | # exptmp is removed below | ||
| 34 | fi | ||
| 35 | |||
| 36 | - # Check if objects are 32-bit and we're running in 64-bit | ||
| 37 | - # environment. If so, pass -m32 flag to linker. | ||
| 38 | set ${OBJECTS} | ||
| 39 | - ABI32=`file $1 | grep 32-bit` | ||
| 40 | - ARM=`file $1 | grep ARM` | ||
| 41 | - # Do not add "-m32" option for arm. | ||
| 42 | - if [ -z "$ARM" -a "${ABI32}" -a `uname -m` = "x86_64" ] ; then | ||
| 43 | - OPTS="-m32 ${OPTS}" | ||
| 44 | - fi | ||
| 45 | if [ "${ALTOPTS}" ] ; then | ||
| 46 | OPTS=${ALTOPTS} | ||
| 47 | fi | ||
| 48 | -- | ||
| 49 | 1.7.10.4 | ||
| 50 | |||
diff --git a/meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch b/meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch deleted file mode 100644 index cf9dee25ee..0000000000 --- a/meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch +++ /dev/null | |||
| @@ -1,29 +0,0 @@ | |||
| 1 | gross hack to prevent from install libgl | ||
| 2 | |||
| 3 | This patch is not suitable for upstream. This is only needed for the 8.0.x | ||
| 4 | branch, master (8.1.x) has a largely different build system (using automake) | ||
| 5 | and does not need it. It is fully expected to drop the patch with the next bump | ||
| 6 | to a stable version based on 8.1.x. | ||
| 7 | |||
| 8 | Upstream-Status: Inappropriate | ||
| 9 | |||
| 10 | --- | ||
| 11 | src/mesa/Makefile | 2 +- | ||
| 12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 13 | |||
| 14 | diff --git a/src/mesa/Makefile b/src/mesa/Makefile | ||
| 15 | index 0e15d61..a0a2cb5 100644 | ||
| 16 | --- a/src/mesa/Makefile | ||
| 17 | +++ b/src/mesa/Makefile | ||
| 18 | @@ -166,7 +166,7 @@ install: default $(DRICORE_INSTALL_TARGET) | ||
| 19 | else \ | ||
| 20 | $(MAKE) install-osmesa || exit 1 ; \ | ||
| 21 | fi ;; \ | ||
| 22 | - dri) $(MAKE) install-libgl install-dri || exit 1 ;; \ | ||
| 23 | + dri) $(MAKE) install-dri || exit 1 ;; \ | ||
| 24 | *) $(MAKE) install-libgl || exit 1 ;; \ | ||
| 25 | esac ; \ | ||
| 26 | done | ||
| 27 | -- | ||
| 28 | 1.7.10.4 | ||
| 29 | |||
diff --git a/meta/recipes-graphics/mesa/mesa/cross-glsl.patch b/meta/recipes-graphics/mesa/mesa/cross-glsl.patch new file mode 100644 index 0000000000..2e7929738d --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa/cross-glsl.patch | |||
| @@ -0,0 +1,632 @@ | |||
| 1 | Respect CC_FOR_BUILD when building glsl_compiler, so we don't need a | ||
| 2 | mesa-dri-glsl-native anymore. | ||
| 3 | |||
| 4 | Upstream-Status: Backport (from master) | ||
| 5 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
| 6 | |||
| 7 | diff --git a/configure.ac b/configure.ac | ||
| 8 | index 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 | ||
| 133 | diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4 | ||
| 134 | new file mode 100644 | ||
| 135 | index 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 | +]) | ||
| 264 | diff --git a/m4/ax_prog_cxx_for_build.m4 b/m4/ax_prog_cxx_for_build.m4 | ||
| 265 | new file mode 100644 | ||
| 266 | index 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 | +]) | ||
| 379 | diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am | ||
| 380 | index 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. | ||
| 469 | diff --git a/src/glsl/builtin_compiler/Makefile.am b/src/glsl/builtin_compiler/Makefile.am | ||
| 470 | new file mode 100644 | ||
| 471 | index 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) | ||
| 543 | diff --git a/src/glsl/builtin_compiler/builtin_stubs.cpp b/src/glsl/builtin_compiler/builtin_stubs.cpp | ||
| 544 | new file mode 100644 | ||
| 545 | index 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 | +} | ||
| 588 | diff --git a/src/glsl/builtin_stubs.cpp b/src/glsl/builtin_stubs.cpp | ||
| 589 | deleted file mode 100644 | ||
| 590 | index 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 | -} | ||
