summaryrefslogtreecommitdiff
path: root/packaging/nacl
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/nacl')
-rw-r--r--packaging/nacl/ports/jpeg8d/build.sh36
-rw-r--r--packaging/nacl/ports/jpeg8d/pkg_info6
-rwxr-xr-xpackaging/nacl/ports/manaplus/build.sh42
-rw-r--r--packaging/nacl/ports/manaplus/pkg_info6
-rw-r--r--packaging/nacl/ports/openssl/build.sh75
-rw-r--r--packaging/nacl/ports/openssl/nacl.patch61
-rw-r--r--packaging/nacl/ports/openssl/pkg_info7
-rw-r--r--packaging/nacl/ports/regal/build.sh29
-rw-r--r--packaging/nacl/ports/regal/nacl.patch319
-rw-r--r--packaging/nacl/ports/regal/pkg_info8
-rwxr-xr-xpackaging/nacl/ports/sdl-gfx/build.sh36
-rw-r--r--packaging/nacl/ports/sdl-gfx/nacl.patch14
-rw-r--r--packaging/nacl/ports/sdl-gfx/pkg_info7
-rw-r--r--packaging/nacl/ports/sdl-net/nacl.patch251
-rw-r--r--packaging/nacl/ports/sdl-net/pkg_info9
-rw-r--r--packaging/nacl/ports/sdl/build.sh40
-rw-r--r--packaging/nacl/ports/sdl/nacl.patch6362
-rw-r--r--packaging/nacl/ports/sdl/pkg_info9
-rw-r--r--packaging/nacl/ports/zlib/build.sh76
-rw-r--r--packaging/nacl/ports/zlib/nacl.patch17
-rw-r--r--packaging/nacl/ports/zlib/pkg_info5
21 files changed, 7415 insertions, 0 deletions
diff --git a/packaging/nacl/ports/jpeg8d/build.sh b/packaging/nacl/ports/jpeg8d/build.sh
new file mode 100644
index 000000000..f37218c8d
--- /dev/null
+++ b/packaging/nacl/ports/jpeg8d/build.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+# Copyright (c) 2011 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+if [ "${NACL_SHARED}" = "1" ]; then
+ EXECUTABLES="rdjpgcom${NACL_EXEEXT} wrjpgcom${NACL_EXEEXT} \
+ .libs/cjpeg${NACL_EXEEXT} .libs/djpeg${NACL_EXEEXT} \
+ .libs/jpegtran${NACL_EXEEXT}"
+else
+ EXECUTABLES="rdjpgcom${NACL_EXEEXT} wrjpgcom${NACL_EXEEXT} \
+ cjpeg${NACL_EXEEXT} djpeg${NACL_EXEEXT} jpegtran${NACL_EXEEXT}"
+fi
+
+TestStep() {
+# export SEL_LDR_LIB_PATH=$PWD/.libs
+# if [ "${NACL_ARCH}" = "pnacl" ]; then
+# for arch in x86-32 x86-64; do
+# for exe in ${EXECUTABLES}; do
+# local exe_noext=${exe%.*}
+# WriteSelLdrScriptForPNaCl ${exe_noext} ${exe_noext}.${arch}.nexe ${arch}
+# done
+# make test
+# done
+# else
+# if [ "${NACL_SHARED}" = "1" ]; then
+# for exe in ${EXECUTABLES}; do
+# local script=$(basename ${exe%.*})
+# WriteSelLdrScript ${script} ${exe}
+# done
+# fi
+# make test
+# fi
+ return 0
+}
diff --git a/packaging/nacl/ports/jpeg8d/pkg_info b/packaging/nacl/ports/jpeg8d/pkg_info
new file mode 100644
index 000000000..2a452b202
--- /dev/null
+++ b/packaging/nacl/ports/jpeg8d/pkg_info
@@ -0,0 +1,6 @@
+NAME=jpeg8d
+VERSION=8d
+ARCHIVE_ROOT=jpeg-8d
+URL=http://www.ijg.org/files/jpegsrc.v8d.tar.gz
+LICENSE=CUSTOM:README
+SHA1=f080b2fffc7581f7d19b968092ba9ebc234556ff
diff --git a/packaging/nacl/ports/manaplus/build.sh b/packaging/nacl/ports/manaplus/build.sh
new file mode 100755
index 000000000..5947f3b53
--- /dev/null
+++ b/packaging/nacl/ports/manaplus/build.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+# Copyright (c) 2011 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+GitCloneStep() {
+ if CheckKeyStamp clone "$URL" ; then
+ Banner "Skipping git clone step"
+ return
+ fi
+
+ local GIT_URL=${URL%@*}
+ rm -rf ${SRC_DIR}
+ mkdir ${SRC_DIR}
+ git clone ${GIT_URL} ${SRC_DIR}
+
+ TouchKeyStamp clone "$URL"
+}
+
+ConfigureStep() {
+ Banner "Configuring ${PACKAGE_NAME}"
+
+ SetupCrossEnvironment
+ export PKG_CONFIG_PATH=${NACLPORTS_LIBDIR}/pkgconfig
+ export PKG_CONFIG_LIBDIR=${NACLPORTS_LIBDIR}
+ export SDL_CONFIG=${NACLPORTS_LIBDIR}/../bin/sdl-config
+ SDL_CFLAGS=`$SDL_CONFIG --cflags`
+ SDL_LIBS="-lSDL_image -lSDL_ttf -lSDL_mixer -lSDL_gfx -lSDL_net `$SDL_CONFIG --libs` -lfreetype -ljpeg -lpng16 -lwebp -lvorbisfile -lvorbis -logg -lmikmod -lz -lbz2"
+ export LIBS="-L${NACLPORTS_LIBDIR} ${SDL_LIBS} -lnacl_io -lppapi_cpp -lppapi -lpthread -lstdc++ -lRegal -lm -lc"
+ autoreconf -i ${SRC_DIR}
+ ${SRC_DIR}/configure \
+ --enable-naclbuild \
+ --disable-nls \
+ --without-opengl \
+ --without-librt \
+ --without-mumble \
+ --host=nacl \
+ --prefix=${PREFIX}
+}
+
+DefaultPackageInstall
+exit 0
diff --git a/packaging/nacl/ports/manaplus/pkg_info b/packaging/nacl/ports/manaplus/pkg_info
new file mode 100644
index 000000000..4b1f44ec2
--- /dev/null
+++ b/packaging/nacl/ports/manaplus/pkg_info
@@ -0,0 +1,6 @@
+NAME=manaplus
+VERSION=1
+URL=git://gitorious.org/manaplus/manaplus.git
+LICENSE=GPL
+DEPENDS=(sdl sdl-gfx sdl-mixer sdl-ttf sdl-image sdl-net physfs curl libxml2 libwebp)
+SHA1=ed2fe0e228a3d367017839a0cc4c548d526e516f
diff --git a/packaging/nacl/ports/openssl/build.sh b/packaging/nacl/ports/openssl/build.sh
new file mode 100644
index 000000000..3e0d973de
--- /dev/null
+++ b/packaging/nacl/ports/openssl/build.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+# Copyright (c) 2012 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# The openssl build can fail when build with -jN.
+# TODO(sbc): Remove this if/when openssl is upgraded to a version that supports
+# parallel make.
+OS_JOBS=1
+BUILD_DIR=${SRC_DIR}
+INSTALL_TARGETS="install_sw INSTALL_PREFIX=${DESTDIR}"
+
+ConfigureStep() {
+ if [ "${NACL_SHARED}" = "1" ] ; then
+ local EXTRA_ARGS="shared"
+ else
+ local EXTRA_ARGS="no-dso"
+ fi
+
+ if [ "${NACL_LIBC}" = "newlib" ] ; then
+ EXTRA_ARGS+=" -I${NACLPORTS_INCLUDE}/glibc-compat"
+ # The default from MACHINE=i686 is linux-elf, which links things
+ # with -ldl. However, newlib does not have -ldl. In that case,
+ # make a fake machine where the build rule does not use -ldl.
+ local machine="le32newlib"
+ else
+ local machine="i686"
+ fi
+
+ MACHINE=${machine} CC=${NACLCC} AR=${NACLAR} RANLIB=${NACLRANLIB} \
+ LogExecute ./config \
+ --prefix=${PREFIX} no-asm no-hw no-krb5 ${EXTRA_ARGS} -D_GNU_SOURCE
+
+ HackStepForNewlib
+}
+
+
+HackStepForNewlib() {
+ if [ "${NACL_SHARED}" = "1" ]; then
+ git checkout apps/Makefile
+ git checkout test/Makefile
+ return
+ fi
+
+ # apps/Makefile links programs that require socket(), etc.
+ # Stub it out until we link against nacl_io or something.
+ echo "all clean install: " > apps/Makefile
+ # test/Makefile is similar -- stub out, but keep the original for testing.
+ git checkout test/Makefile
+ mv test/Makefile test/Makefile.orig
+ echo "all clean install: " > test/Makefile
+}
+
+
+BuildStep() {
+ LogExecute make clean
+ DefaultBuildStep
+}
+
+
+InstallStep() {
+ DefaultInstallStep
+ # openssl (for some reason) installs shared libraries with 555 (i.e.
+ # not writable. This causes issues when create_nmf copies the libraries
+ # and then tries to overwrite them later.
+ if [ "${NACL_SHARED}" = "1" ] ; then
+ LogExecute chmod 644 ${DESTDIR_LIB}/libssl.so.*
+ LogExecute chmod 644 ${DESTDIR_LIB}/libcrypto.so.*
+ fi
+}
+
+
+TestStep() {
+ return 0
+}
diff --git a/packaging/nacl/ports/openssl/nacl.patch b/packaging/nacl/ports/openssl/nacl.patch
new file mode 100644
index 000000000..46b257ca4
--- /dev/null
+++ b/packaging/nacl/ports/openssl/nacl.patch
@@ -0,0 +1,61 @@
+diff -Naur openssl-1.0.1e_old/config openssl-1.0.1e/config
+--- openssl-1.0.1e_old/config 2013-02-11 07:26:04.000000000 -0800
++++ openssl-1.0.1e/config 2013-10-23 13:04:35.247827139 -0700
+@@ -660,6 +660,7 @@
+ #fi
+ OUT="linux64-s390x"
+ ;;
++ le32newlib-*-linux?) OUT="linux-le32newlib" ;;
+ x86_64-*-linux?) OUT="linux-x86_64" ;;
+ *86-*-linux2) OUT="linux-elf"
+ if [ "$GCCVER" -gt 28 ]; then
+diff -Naur openssl-1.0.1e_old/Configure openssl-1.0.1e/Configure
+--- openssl-1.0.1e_old/Configure 2013-02-11 07:26:04.000000000 -0800
++++ openssl-1.0.1e/Configure 2013-10-23 15:18:50.833411949 -0700
+@@ -362,6 +362,11 @@
+ "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
+ "linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
++
++#### NaCl Newlib version (much like linux-elf, which NaCl Glibc uses)
++#### Use linux-aout instead of linux-elf, since it's statically linked.
++"linux-le32newlib", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out",
++
+ #### So called "highgprs" target for z/Architecture CPUs
+ # "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
+ # /proc/cpuinfo. The idea is to preserve most significant bits of
+diff -Naur openssl-1.0.1e_old/crypto/rand/rand_unix.c openssl-1.0.1e/crypto/rand/rand_unix.c
+--- openssl-1.0.1e_old/crypto/rand/rand_unix.c 2013-02-11 07:26:04.000000000 -0800
++++ openssl-1.0.1e/crypto/rand/rand_unix.c 2013-10-23 13:00:36.981427165 -0700
+@@ -133,7 +133,30 @@
+ # define FD_SETSIZE (8*sizeof(fd_set))
+ #endif
+
+-#if defined(OPENSSL_SYS_VOS)
++#if defined(__native_client__)
++#include <stdlib.h>
++#include <irt.h>
++/* TODO(sehr): remove this patch when nacl_io can handle /dev/urandom. */
++int RAND_poll(void)
++{
++ unsigned char buf[ENTROPY_NEEDED];
++ size_t n = 0;
++ struct nacl_irt_random rand_intf;
++ if (nacl_interface_query(NACL_IRT_RANDOM_v0_1, &rand_intf, sizeof(rand_intf))
++ != sizeof(rand_intf))
++ abort();
++ while (n < sizeof(buf)) {
++ size_t nread;
++ if (rand_intf.get_random_bytes((unsigned char *)buf+n,
++ ENTROPY_NEEDED-n, &nread) != 0)
++ abort();
++ n += nread;
++ }
++ RAND_add(buf, sizeof(buf), ENTROPY_NEEDED);
++ memset(buf, 0, sizeof(buf));
++ return 1;
++}
++#elif defined(OPENSSL_SYS_VOS)
+
+ /* The following algorithm repeatedly samples the real-time clock
+ (RTC) to generate a sequence of unpredictable data. The algorithm
diff --git a/packaging/nacl/ports/openssl/pkg_info b/packaging/nacl/ports/openssl/pkg_info
new file mode 100644
index 000000000..b76b8a2ca
--- /dev/null
+++ b/packaging/nacl/ports/openssl/pkg_info
@@ -0,0 +1,7 @@
+NAME=openssl
+VERSION=1.0.1g
+URL=http://www.openssl.org/source/openssl-1.0.1g.tar.gz
+LICENSE=CUSTOM:LICENSE
+BUILD_OS=linux
+DEPENDS=(glibc-compat)
+SHA1=b28b3bcb1dc3ee7b55024c9f795be60eb3183e3c
diff --git a/packaging/nacl/ports/regal/build.sh b/packaging/nacl/ports/regal/build.sh
new file mode 100644
index 000000000..5ba6bd0bf
--- /dev/null
+++ b/packaging/nacl/ports/regal/build.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# Copyright (c) 2013 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+BUILD_DIR=${SRC_DIR}
+
+MAKE_ARGS="SYSTEM=nacl-${NACL_ARCH} NACL_LIBC=${NACL_LIBC} -j${OS_JOBS}"
+
+BuildStep() {
+ LogExecute make ${MAKE_ARGS} clobber
+ LogExecute make ${MAKE_ARGS} regal.lib
+}
+
+TestStep() {
+# LogExecute make ${MAKE_ARGS} test
+ return 0
+}
+
+InstallStep() {
+ MakeDir ${DESTDIR_LIB}
+ MakeDir ${DESTDIR_INCLUDE}
+ LogExecute cp -a lib/nacl-${NACL_ARCH}/libRegal*.a ${DESTDIR_LIB}/
+ LogExecute cp -a lib/nacl-${NACL_ARCH}/libglslopt.a ${DESTDIR_LIB}/
+ if [ "${NACL_SHARED}" = 1 ]; then
+ LogExecute cp -a lib/nacl-${NACL_ARCH}/libRegal*.so* ${DESTDIR_LIB}/
+ fi
+ LogExecute cp -r include/GL ${DESTDIR_INCLUDE}/
+}
diff --git a/packaging/nacl/ports/regal/nacl.patch b/packaging/nacl/ports/regal/nacl.patch
new file mode 100644
index 000000000..be592b3a7
--- /dev/null
+++ b/packaging/nacl/ports/regal/nacl.patch
@@ -0,0 +1,319 @@
+diff --git a/Makefile b/Makefile
+index 911a3c6..e45d3c4 100644
+--- a/Makefile
++++ b/Makefile
+@@ -39,6 +39,7 @@ include Makefile.dreamtorus
+ include Makefile.dreamtorus_static
+ include Makefile.alphatorus
+ include Makefile.tiger
++include Makefile.nacl
+
+ # Testing
+
+diff --git a/Makefile.glu b/Makefile.glu
+index 9df0418..3043f07 100644
+--- a/Makefile.glu
++++ b/Makefile.glu
+@@ -36,7 +36,6 @@ GLU.OBJS := $(GLU.OBJS:.c=.o) $(GLU.OBJS:.cc=.o)
+ GLU.OBJS := $(filter %.o,$(GLU.OBJS))
+ GLU.DEPS := $(GLU.OBJS:.o=.d)
+ GLU.LIBS := -Llib/$(SYSTEM) -lRegal
+-GLU.LIBS += -lstdc++
+ GLU.LIBS += -pthread -lm
+
+ -include $(GLU.DEPS)
+diff --git a/Makefile.nacl b/Makefile.nacl
+index e5fa8f8..6a6cb90 100644
+--- a/Makefile.nacl
++++ b/Makefile.nacl
+@@ -36,8 +36,8 @@ NACL.SRCS.NAMES := $(notdir $(NACL.SRCS))
+ NACL.OBJS := $(addprefix tmp/$(SYSTEM)/nacl/static/,$(NACL.SRCS.NAMES))
+ NACL.OBJS := $(NACL.OBJS:.c=.o)
+ NACL.CFLAGS := -Iinclude
+-NACL.LIBS += -Llib/$(SYSTEM) -lRegal
+-NACL.LIBS += -lpng -lz -lm -pthread -lppapi -lppapi_gles2 -lstdc++
++NACL.LIBS += -Llib/$(SYSTEM) -lRegal -lglslopt
++NACL.LIBS += -lpng -lz -lm -pthread -lppapi -lppapi_gles2
+
+ -include $(NACL.DEPS)
+
+diff --git a/Makefile.regal b/Makefile.regal
+index 04a1c88..147a391 100644
+--- a/Makefile.regal
++++ b/Makefile.regal
+@@ -18,9 +18,9 @@ include build/regal.inc
+ export:
+ python scripts/Export.py --api gl 4.4 --api wgl 4.4 --api glx 4.4 --api cgl 1.4 --api egl 1.0 --outdir .
+
+-# Shared library target not currently supported for NaCL or emscripten
++# Shared library target not currently supported for emscripten
+
+-ifneq ($(filter nacl% emscripten%,$(SYSTEM)),)
++ifneq ($(filter emscripten%,$(SYSTEM)),)
+ REGAL.SHARED :=
+ endif
+
+@@ -35,7 +35,7 @@ all:: regal.lib
+
+ clean:: regal.clean
+
+-REGAL.LDFLAGS := -lstdc++ -pthread -lm
++REGAL.LDFLAGS := -pthread -lm
+ REGAL.LIBS :=
+
+ ifeq ($(filter nacl%,$(SYSTEM)),)
+@@ -105,7 +105,7 @@ endif
+
+ # Emscripten options
+
+-ifneq ($(filter nacl% emscripten%,$(SYSTEM)),)
++ifneq ($(filter emscripten%,$(SYSTEM)),)
+ REGAL.CFLAGS += -DREGAL_SYS_EMSCRIPTEN=1 -DREGAL_SYS_EGL=1 -DREGAL_SYS_ES2=1
+ REGAL.CFLAGS += -DREGAL_HTTP=0
+ REGAL.CFLAGS += -DREGAL_STATISTICS=0
+@@ -196,12 +196,16 @@ REGAL.SDEPS := $(LIBS.SOBJS:.o=.d)
+
+ REGAL.LIBS += $(LDFLAGS.X11)
+
+-ifneq ($(filter linux%,$(SYSTEM)),)
++ifneq ($(filter nacl% linux%,$(SYSTEM)),)
++ifeq ($(NACL_LIBC),newlib)
++REGAL.SHARED :=
++else
+ REGAL.SONAME := lib$(NAME).so.$(SO_MAJOR)
+ REGAL.DEVLNK := lib$(NAME).so
+ REGAL.SHARED := lib$(NAME).so.$(SO_VERSION)
+ REGAL.LDFLAGS.SO := $(LDFLAGS.SO) $(LDFLAGS.DYNAMIC) -Wl,-soname=$(REGAL.SONAME)
+ endif
++endif
+
+ ifneq ($(filter darwin%,$(SYSTEM)),)
+ REGAL.SONAME := lib$(NAME).$(SO_MAJOR).dylib
+@@ -235,12 +239,6 @@ ifdef APITRACE.STATIC
+ lib/$(SYSTEM)/$(REGAL.STATIC): lib/$(SYSTEM)/$(APITRACE.STATIC) lib/$(SYSTEM)/$(SNAPPY.STATIC)
+ endif
+
+-ifneq ($(filter nacl%,$(SYSTEM)),)
+-ifeq ($(NACL_LIBC),glibc)
+-regal.lib: lib/$(SYSTEM)/$(REGAL.SHARED)
+-endif
+-endif
+-
+ lib/$(SYSTEM)/$(REGAL.STATIC): lib/$(SYSTEM)/$(GLSLOPT.STATIC) lib/$(SYSTEM)/$(PCRE.STATIC) lib/$(SYSTEM)/$(LIBPNG.STATIC) lib/$(SYSTEM)/$(ZLIB.STATIC) $(REGAL.OBJS)
+ @mkdir -p $(dir $@)
+ $(LOG_AR)$(CCACHE) $(AR) cr $@ $(REGAL.OBJS)
+diff --git a/Makefile.regaltest b/Makefile.regaltest
+index fdebf3a..98a419f 100644
+--- a/Makefile.regaltest
++++ b/Makefile.regaltest
+@@ -7,7 +7,7 @@ include build/common.inc
+
+ # Not supported for NaCL - Revisit
+
+-ifeq ($(filter nacl% emscripten%,$(SYSTEM)),)
++ifeq ($(filter emscripten%,$(SYSTEM)),)
+
+ include build/regaltest.inc
+
+@@ -75,7 +75,7 @@ test: bin/$(SYSTEM)/regaltest$(BIN_EXTENSION)
+ ifeq ($(filter nacl%,$(SYSTEM)),)
+ $^
+ else
+- "$(NACL_SEL_LDR)" -a -B "$(NACL_IRT)" -- $^
++ "$(NACL_SDK_ROOT)/tools/sel_ldr.py" $^
+ endif
+ endif
+
+diff --git a/Makefile.regalw b/Makefile.regalw
+index 3577769..012938e 100644
+--- a/Makefile.regalw
++++ b/Makefile.regalw
+@@ -18,9 +18,9 @@ REGALW.SHARED ?= libRegal.so
+
+ REGALW.STATIC :=
+
+-# Shared library target not currently supported for NaCL or emscripten
++# Shared library target not currently supported for emscripten
+
+-ifneq ($(filter nacl% emscripten%,$(SYSTEM)),)
++ifneq ($(filter emscripten%,$(SYSTEM)),)
+ REGALW.SHARED :=
+ endif
+
+@@ -31,7 +31,7 @@ all:: regalw.lib
+
+ clean:: regalw.clean
+
+-REGALW.LDFLAGS := -lstdc++ -pthread -lm
++REGALW.LDFLAGS := -pthread -lm
+ REGALW.LIBS :=
+
+ REGALW.SRCS := $(REGAL.CXX)
+diff --git a/README.rst b/README.rst
+index a8d5d84..600c336 100644
+--- a/README.rst
++++ b/README.rst
+@@ -380,9 +380,7 @@ PPAPI and NaCl
+
+ * NACL_SDK_ROOT needs to be set
+
+-* NACL_LIBC=newlib is the default, specify NACL_LIBC=glibc as an alternative
+-
+-* regaltest requires pepper_26 or newer
++* NACL_LIBC=newlib is the default, specify glibc or pnacl as alternatives
+
+ Questions and Answers
+ =====================
+diff --git a/build/common.inc b/build/common.inc
+index 6049b68..5ae16e0 100644
+--- a/build/common.inc
++++ b/build/common.inc
+@@ -51,12 +51,12 @@ OPT ?= $(CFLAGS.RELEASE)
+ endif
+
+ ifndef V
+-LOG_CXX ?= @echo " [CXX] $@";
+-LOG_CC ?= @echo " [CC] $@";
+-LOG_LD ?= @echo " [LD] $@";
+-LOG_AR ?= @echo " [AR] $@";
++LOG_CXX ?= @echo " [CXX] $@";
++LOG_CC ?= @echo " [CC] $@";
++LOG_LD ?= @echo " [LD] $@";
++LOG_AR ?= @echo " [AR] $@";
+ LOG_RANLIB ?= @echo " [RANLIB] $@";
+-LOG_STRIP ?= @echo " [STRIP] $@";
++LOG_STRIP ?= @echo " [STRIP] $@";
+ endif
+
+ INCLUDE ?= -Iinclude
+diff --git a/build/glu.inc b/build/glu.inc
+index 3788977..f4dd54f 100644
+--- a/build/glu.inc
++++ b/build/glu.inc
+@@ -102,9 +102,10 @@ GLU.CXX += src/glu/libnurbs/nurbtess/searchTree.cc
+ GLU.CFLAGS := -Isrc/glu/include -Isrc/glu/libnurbs/interface -Isrc/glu/libnurbs/internals -Isrc/glu/libnurbs/nurbtess
+ GLU.CFLAGS += -DLIBRARYBUILD
+
+-GLU.SHARED := libRegalGLU.so
+-GLU.STATIC := libRegalGLUlib.a
++GLU.STATIC := libRegalGLU.a
+
+ ifneq ($(filter darwin%,$(SYSTEM)),)
+ GLU.SHARED := libRegalGLU.dylib
++else
++GLU.SHARED := libRegalGLU.so
+ endif
+diff --git a/build/pcre.inc b/build/pcre.inc
+index d253c38..7a941c6 100644
+--- a/build/pcre.inc
++++ b/build/pcre.inc
+@@ -65,7 +65,7 @@ PCRE.C += src/pcre/pcre_get.c
+ PCRE.C += src/pcre/pcre_globals.c
+ #PCRE.C += src/pcre/pcregrep.c
+ PCRE.C += src/pcre/pcre_jit_compile.c
+-PCRE.C += src/pcre/pcre_jit_test.c
++#PCRE.C += src/pcre/pcre_jit_test.c
+ PCRE.C += src/pcre/pcre_maketables.c
+ PCRE.C += src/pcre/pcre_newline.c
+ PCRE.C += src/pcre/pcre_ord2utf8.c
+diff --git a/build/regal.inc b/build/regal.inc
+index 32e7933..71ec2a6 100644
+--- a/build/regal.inc
++++ b/build/regal.inc
+@@ -153,5 +153,5 @@ ifeq ($(PROFILE_OS),Windows)
+ REGAL.INCLUDE += -Isrc/glsl/include/c99
+ endif
+
+-REGAL.STATIC ?= libRegallib.a
++REGAL.STATIC ?= libRegal.a
+ REGAL.SHARED ?= libRegal.so
+diff --git a/config/Makefile.nacl-pnacl b/config/Makefile.nacl-pnacl
+index a0ee95c..9bfbe1d 100644
+--- a/config/Makefile.nacl-pnacl
++++ b/config/Makefile.nacl-pnacl
+@@ -2,7 +2,7 @@ NACL_ARCH := pnacl
+
+ include config/nacl.inc
+
+-NACL_TOOLCHAIN := $(NACL_SDK_ROOT)/toolchain/$(NACL_OS)_x86_pnacl/$(NACL_LIBC)
++NACL_TOOLCHAIN := $(NACL_SDK_ROOT)/toolchain/$(NACL_OS)_pnacl
+
+ CC := $(NACL_TOOLCHAIN)/bin/pnacl-clang
+ CXX := $(NACL_TOOLCHAIN)/bin/pnacl-clang++
+@@ -13,7 +13,6 @@ STRIP ?=
+
+ BIN_EXTENSION = .pexe
+ EXT.DYNAMIC = so
+-LDFLAGS.EXTRA =
+ LIBDIR =
+ CFLAGS.EXTRA +=
+ LDFLAGS.EXTRA +=
+diff --git a/config/nacl.inc b/config/nacl.inc
+index d86d4e7..66a9b05 100644
+--- a/config/nacl.inc
++++ b/config/nacl.inc
+@@ -48,8 +48,12 @@ export CCACHE_COMPILERCHECK=echo $(SYSTEM)$(NACL_LIBC)$(NACL_SDK_ROOT)
+ ifeq ($(NACL_ARCH),i686)
+ NACL_LIBTYPE=$(NACL_LIBC)_x86_32
+ else
++ifeq ($(NACL_ARCH),pnacl)
++NACL_LIBTYPE=$(NACL_ARCH)
++else
+ NACL_LIBTYPE=$(NACL_LIBC)_$(NACL_ARCH)
+ endif
++endif
+
+ ifeq ($(MODE),debug)
+ LDFLAGS.EXTRA += -L$(NACL_SDK_ROOT)/ports/lib/$(NACL_LIBTYPE)/Debug
+diff --git a/src/apitrace/common/os_posix.cpp b/src/apitrace/common/os_posix.cpp
+index 28abb97..b49fd40 100644
+--- a/src/apitrace/common/os_posix.cpp
++++ b/src/apitrace/common/os_posix.cpp
+@@ -123,7 +123,7 @@ getCurrentDir(void)
+ size_t size = PATH_MAX;
+ char *buf = path.buf(size);
+
+- getcwd(buf, size);
++ buf = getcwd(buf, size);
+ buf[size - 1] = 0;
+
+ path.truncate();
+diff --git a/src/boost/boost/print/detail.hpp b/src/boost/boost/print/detail.hpp
+index 9cb3643..49aa043 100644
+--- a/src/boost/boost/print/detail.hpp
++++ b/src/boost/boost/print/detail.hpp
+@@ -325,7 +325,7 @@ inline size_t unsigned_length(const unsigned long val) { return unsigned_length(
+ inline size_t unsigned_length(const unsigned long val) { return unsigned_length(static_cast<boost::uint32_t>(val)); }
+ #endif
+
+-#if defined(__native_client__) && (defined(__i386) || defined(__x86_64) || defined(__arm__))
++#if defined(__native_client__)
+ inline size_t unsigned_length(const unsigned long val) { return unsigned_length(static_cast<boost::uint32_t>(val)); }
+ #endif
+
+diff --git a/src/regal/RegalShader.cpp b/src/regal/RegalShader.cpp
+index d59249f..65cceeb 100644
+--- a/src/regal/RegalShader.cpp
++++ b/src/regal/RegalShader.cpp
+@@ -233,7 +233,7 @@ namespace Shader {
+ bool status;
+ };
+
+- static inline void debug_print_ir (const char* name, exec_list* ir, _mesa_glsl_parse_state* state, void* memctx)
++ static inline void REGAL_UNUSED debug_print_ir (const char* name, exec_list* ir, _mesa_glsl_parse_state* state, void* memctx)
+ {
+ //_mesa_print_ir (ir, state);
+ Error( "GLSLOptimize debug **** ", name, ":",
+diff --git a/src/regal/RegalUtil.h b/src/regal/RegalUtil.h
+index 4bf9e75..0df4078 100644
+--- a/src/regal/RegalUtil.h
++++ b/src/regal/RegalUtil.h
+@@ -56,7 +56,7 @@
+ #endif
+
+ #ifndef REGAL_UNUSED
+-#if defined(__GNUC__) && !defined(__clang__)
++#if defined(__GNUC__)
+ #define REGAL_UNUSED __attribute__((unused))
+ #else
+ #define REGAL_UNUSED
diff --git a/packaging/nacl/ports/regal/pkg_info b/packaging/nacl/ports/regal/pkg_info
new file mode 100644
index 000000000..a76111b2f
--- /dev/null
+++ b/packaging/nacl/ports/regal/pkg_info
@@ -0,0 +1,8 @@
+NAME=regal
+VERSION=f106e4cd
+URL=https://github.com/p3/regal/archive/f106e4cd/Regal-f106e4cd.tar.gz
+ARCHIVE_ROOT=regal-f106e4cd0e780b0995a26498365dceb0ed025832
+DEPENDS=(libpng)
+DISABLED_ARCH=(pnacl)
+DISABLED_LIBC=(bionic)
+SHA1=6e8cd18c44a83e7eb17d123b5e0ec8cdceff9ea2
diff --git a/packaging/nacl/ports/sdl-gfx/build.sh b/packaging/nacl/ports/sdl-gfx/build.sh
new file mode 100755
index 000000000..e1572c9a1
--- /dev/null
+++ b/packaging/nacl/ports/sdl-gfx/build.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+# Copyright (c) 2011 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+#source pkg_info
+#source ../../build_tools/common.sh
+
+ConfigureStep() {
+ Banner "Configuring ${PACKAGE_NAME}"
+
+ export SDL_CONFIG=${NACLPORTS_LIBDIR}/../bin/sdl-config
+ SDL_CFLAGS=`$SDL_CONFIG --cflags`
+ SDL_LIBS=`$SDL_CONFIG --libs`
+
+ # export the nacl tools
+ export CC=${NACLCC}
+ export CXX=${NACLCXX}
+ export AR=${NACLAR}
+ export RANLIB=${NACLRANLIB}
+ export PKG_CONFIG_PATH=${NACLPORTS_LIBDIR}/pkgconfig
+ export PKG_CONFIG_LIBDIR=${NACLPORTS_LIBDIR}
+ export CFLAGS="${NACLPORTS_CFLAGS} $SDL_CFLAGS"
+ export CXXFLAGS="${NACLPORTS_CXXFLAGS} $SDL_CFLAGS"
+ export LDFLAGS=${NACLPORTS_LDFLAGS}
+ export PATH=${NACL_BIN_PATH}:${PATH};
+ export LIBS="-L${NACLPORTS_LIBDIR} -lppapi -lppapi_gles2 -lppapi_cpp -lnacl_io -lpthread -lstdc++ -lm -lnosys $SDL_LIBS"
+ ${SRC_DIR}/autogen.sh
+ ${SRC_DIR}/configure \
+ --enable-mmx=no \
+ --host=nacl \
+ --prefix=${PREFIX}
+}
+
+PackageInstall
+exit 0
diff --git a/packaging/nacl/ports/sdl-gfx/nacl.patch b/packaging/nacl/ports/sdl-gfx/nacl.patch
new file mode 100644
index 000000000..e01d8e85c
--- /dev/null
+++ b/packaging/nacl/ports/sdl-gfx/nacl.patch
@@ -0,0 +1,14 @@
+--- SDL_gfx-2.0.24/configure.in 2012-08-05 20:25:55.000000000 +0400
++++ SDL_gfx-2.0.24-nacl/configure.in 2013-10-29 22:58:03.825301123 +0400
+@@ -117,10 +117,7 @@
+ fi
+
+ dnl Check for SDL
+-AM_PATH_SDL($SDL_VERSION,
+- :,
+- AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
+-)
++
+ CFLAGS="$CFLAGS $SDL_CFLAGS"
+ # Remove dependencies from 'sdl-config' not meant for us libraries:
+ SDL_LIBS=$(echo "$SDL_LIBS" | sed -e 's/-lmingw32//' -e 's/-lSDLmain//')
diff --git a/packaging/nacl/ports/sdl-gfx/pkg_info b/packaging/nacl/ports/sdl-gfx/pkg_info
new file mode 100644
index 000000000..a32b0f393
--- /dev/null
+++ b/packaging/nacl/ports/sdl-gfx/pkg_info
@@ -0,0 +1,7 @@
+NAME=sdl-gfx
+VERSION=2.0.24
+ARCHIVE_ROOT=SDL_gfx-2.0.24
+URL=http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-2.0.24.tar.gz
+LICENSE=LGPL2
+DEPENDS=(sdl)
+SHA1=34e8963188e4845557468a496066a8fa60d5f563
diff --git a/packaging/nacl/ports/sdl-net/nacl.patch b/packaging/nacl/ports/sdl-net/nacl.patch
new file mode 100644
index 000000000..8d7fd7e52
--- /dev/null
+++ b/packaging/nacl/ports/sdl-net/nacl.patch
@@ -0,0 +1,251 @@
+diff -urN SDL_net-1.2.7/SDL_net.h SDL_net-1.2.7-nacl/SDL_net.h
+--- SDL_net-1.2.7/SDL_net.h 2007-07-15 09:59:03.000000000 +0400
++++ SDL_net-1.2.7-nacl/SDL_net.h 2013-11-03 00:01:10.871933000 +0400
+@@ -30,7 +30,7 @@
+ #include "SDL_version.h"
+ #include "begin_code.h"
+
+-
++#define u_int32_t uint32_t
+
+ /* Set up for C function definitions, even when using C++ */
+ #ifdef __cplusplus
+
+diff -urN /dev/null SDL_net-1.2.7-nacl/inet_addr.c
+--- /dev/null 2013-11-02 22:47:51.150226312 +0400
++++ SDL_net-1.2.7-nacl/inet_addr.c 2013-11-02 23:59:09.523930000 +0400
+@@ -0,0 +1,201 @@
++/* $KAME: inet_addr.c,v 1.5 2001/08/20 02:32:40 itojun Exp $ */
++
++/*
++ * ++Copyright++ 1983, 1990, 1993
++ * -
++ * Copyright (c) 1983, 1990, 1993
++ * The Regents of the University of California. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ * -
++ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies, and that
++ * the name of Digital Equipment Corporation not be used in advertising or
++ * publicity pertaining to distribution of the document or software without
++ * specific, written prior permission.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
++ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
++ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ * -
++ * --Copyright--
++ */
++
++#if defined(LIBC_SCCS) && !defined(lint)
++static char sccsid[] = "@(#)inet_addr.c 8.1 (Berkeley) 6/17/93";
++#endif /* LIBC_SCCS and not lint */
++#include <sys/cdefs.h>
++#include <sys/types.h>
++#include <machine/endian.h>
++
++#include <sys/param.h>
++
++#include <netinet/in.h>
++#include <arpa/inet.h>
++
++#include <ctype.h>
++#include <errno.h>
++#include <string.h>
++#include <stdlib.h>
++
++/*
++ * ASCII internet address interpretation routine.
++ * The value returned is in network order.
++ */
++in_addr_t /* XXX should be struct in_addr :( */
++inet_addr(cp)
++ const char *cp;
++{
++ struct in_addr val;
++
++ if (inet_aton(cp, &val))
++ return (val.s_addr);
++ return (INADDR_NONE);
++}
++
++/*
++ * Check whether "cp" is a valid ASCII representation
++ * of an Internet address and convert to a binary address.
++ * Returns 1 if the address is valid, 0 if not.
++ * This replaces inet_addr, the return value from which
++ * cannot distinguish between failure and a local broadcast address.
++ */
++int
++inet_aton(cp, addr)
++ const char *cp;
++ struct in_addr *addr;
++{
++ u_long parts[4];
++ in_addr_t val;
++ char *c;
++ char *endptr;
++ int gotend, n;
++
++ c = (char *)cp;
++ n = 0;
++ /*
++ * Run through the string, grabbing numbers until
++ * the end of the string, or some error
++ */
++ gotend = 0;
++ while (!gotend) {
++ errno = 0;
++ val = strtoul(c, &endptr, 0);
++
++ if (errno == ERANGE) /* Fail completely if it overflowed. */
++ return (0);
++
++ /*
++ * If the whole string is invalid, endptr will equal
++ * c.. this way we can make sure someone hasn't
++ * gone '.12' or something which would get past
++ * the next check.
++ */
++ if (endptr == c)
++ return (0);
++ parts[n] = val;
++ c = endptr;
++
++ /* Check the next character past the previous number's end */
++ switch (*c) {
++ case '.' :
++ /* Make sure we only do 3 dots .. */
++ if (n == 3) /* Whoops. Quit. */
++ return (0);
++ n++;
++ c++;
++ break;
++
++ case '\0':
++ gotend = 1;
++ break;
++
++ default:
++ if (isspace((unsigned char)*c)) {
++ gotend = 1;
++ break;
++ } else
++ return (0); /* Invalid character, so fail */
++ }
++
++ }
++
++ /*
++ * Concoct the address according to
++ * the number of parts specified.
++ */
++
++ switch (n) {
++ case 0: /* a -- 32 bits */
++ /*
++ * Nothing is necessary here. Overflow checking was
++ * already done in strtoul().
++ */
++ break;
++ case 1: /* a.b -- 8.24 bits */
++ if (val > 0xffffff || parts[0] > 0xff)
++ return (0);
++ val |= parts[0] << 24;
++ break;
++
++ case 2: /* a.b.c -- 8.8.16 bits */
++ if (val > 0xffff || parts[0] > 0xff || parts[1] > 0xff)
++ return (0);
++ val |= (parts[0] << 24) | (parts[1] << 16);
++ break;
++
++ case 3: /* a.b.c.d -- 8.8.8.8 bits */
++ if (val > 0xff || parts[0] > 0xff || parts[1] > 0xff ||
++ parts[2] > 0xff)
++ return (0);
++ val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
++ break;
++ }
++
++ if (addr != NULL)
++ addr->s_addr = htonl(val);
++ return (1);
++}
++
++/*
++ * Weak aliases for applications that use certain private entry points,
++ * and fail to include <arpa/inet.h>.
++ */
++#undef inet_addr
++__weak_reference(__inet_addr, inet_addr);
++#undef inet_aton
++__weak_reference(__inet_aton, inet_aton);
+
+diff -urN SDL_net-1.2.7/SDLnet.c SDL_net-1.2.7-nacl/SDLnet.c
+--- SDL_net-1.2.7/SDLnet.c 2007-07-02 06:04:03.000000000 +0400
++++ SDL_net-1.2.7-nacl/SDLnet.c 2013-11-03 00:43:36.859998000 +0400
+@@ -29,6 +29,8 @@
+ #include "SDLnetsys.h"
+ #include "SDL_net.h"
+
++#include "inet_addr.c"
++
+
+ const SDL_version *SDLNet_Linked_Version(void)
+ {
+@@ -344,7 +346,7 @@
+
+ hp = gethostbyname(host);
+ if ( hp ) {
+- memcpy(&address->host,hp->h_addr,hp->h_length);
++ memcpy(&address->host,hp->h_addr_list[0],hp->h_length);
+ } else {
+ retval = -1;
+ }
+@@ -368,8 +370,7 @@
+ const char *SDLNet_ResolveIP(IPaddress *ip)
+ {
+ struct hostent *hp;
+-
+- hp = gethostbyaddr((char *)&ip->host, 4, AF_INET);
++ hp = NULL;
+ if ( hp != NULL ) {
+ return hp->h_name;
+ }
+
diff --git a/packaging/nacl/ports/sdl-net/pkg_info b/packaging/nacl/ports/sdl-net/pkg_info
new file mode 100644
index 000000000..2c64c8642
--- /dev/null
+++ b/packaging/nacl/ports/sdl-net/pkg_info
@@ -0,0 +1,9 @@
+NAME=sdl-net
+VERSION=1.2.7
+ARCHIVE_ROOT=SDL_net-1.2.7
+URL=http://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.7.tar.gz
+LICENSE=LGPL2
+DEPENDS=(sdl)
+# Disabled for bionic due to sdl.
+DISABLED_LIBC=(bionic)
+SHA1=b46c7e3221621cc34fec1238f1b5f0ce8972274d
diff --git a/packaging/nacl/ports/sdl/build.sh b/packaging/nacl/ports/sdl/build.sh
new file mode 100644
index 000000000..036ec8ee6
--- /dev/null
+++ b/packaging/nacl/ports/sdl/build.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+# Copyright (c) 2011 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+CONFIG_SUB=build-scripts/config.sub
+
+AutogenStep() {
+ ChangeDir ${SRC_DIR}
+ # For some reason if we don't remove configure before running
+ # autoconf it doesn't always get updates correctly. About half
+ # the time the old configure script (with no reference to nacl)
+ # will remain after ./autogen.sh
+ rm -f configure
+ ./autogen.sh
+ PatchConfigure
+ PatchConfigSub
+ cd -
+}
+
+
+ConfigureStep() {
+ AutogenStep
+ SetupCrossEnvironment
+
+ local conf_host=${NACL_CROSS_PREFIX}
+ if [ ${NACL_ARCH} = "pnacl" ]; then
+ # The PNaCl tools use "pnacl-" as the prefix, but config.sub
+ # does not know about "pnacl". It only knows about "le32-nacl".
+ # Unfortunately, most of the config.subs here are so old that
+ # it doesn't know about that "le32" either. So we just say "nacl".
+ conf_host="nacl-pnacl"
+ fi
+
+ LogExecute ${SRC_DIR}/configure \
+ --host=${conf_host} \
+ --prefix=${PREFIX} \
+ --disable-assembly \
+ --disable-pthread-sem
+}
diff --git a/packaging/nacl/ports/sdl/nacl.patch b/packaging/nacl/ports/sdl/nacl.patch
new file mode 100644
index 000000000..ddbb24d30
--- /dev/null
+++ b/packaging/nacl/ports/sdl/nacl.patch
@@ -0,0 +1,6362 @@
+diff --git a/Makefile.in b/Makefile.in
+index e29dc6d..bb485dd 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -36,13 +36,13 @@ TARGET = libSDL.la
+ SOURCES = @SOURCES@
+ OBJECTS = @OBJECTS@
+
+-SDLMAIN_TARGET = libSDLmain.a
++SDLMAIN_TARGET = libSDLmain.la
+ SDLMAIN_SOURCES = @SDLMAIN_SOURCES@
+ SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@
+
+ DIST = acinclude autogen.sh Borland.html Borland.zip BUGS build-scripts configure configure.in COPYING CREDITS CWprojects.sea.bin docs docs.html include INSTALL Makefile.dc Makefile.minimal Makefile.in MPWmake.sea.bin README* sdl-config.in sdl.m4 sdl.pc.in SDL.qpg.in SDL.spec SDL.spec.in src test TODO VisualCE.zip VisualC.html VisualC.zip Watcom-OS2.zip Watcom-Win32.zip symbian.zip WhatsNew Xcode.tar.gz
+
+-HDRS = SDL.h SDL_active.h SDL_audio.h SDL_byteorder.h SDL_cdrom.h SDL_cpuinfo.h SDL_endian.h SDL_error.h SDL_events.h SDL_getenv.h SDL_joystick.h SDL_keyboard.h SDL_keysym.h SDL_loadso.h SDL_main.h SDL_mouse.h SDL_mutex.h SDL_name.h SDL_opengl.h SDL_platform.h SDL_quit.h SDL_rwops.h SDL_stdinc.h SDL_syswm.h SDL_thread.h SDL_timer.h SDL_types.h SDL_version.h SDL_video.h begin_code.h close_code.h
++HDRS = SDL.h SDL_active.h SDL_audio.h SDL_byteorder.h SDL_cdrom.h SDL_cpuinfo.h SDL_endian.h SDL_error.h SDL_events.h SDL_getenv.h SDL_joystick.h SDL_keyboard.h SDL_keysym.h SDL_loadso.h SDL_main.h SDL_mouse.h SDL_mutex.h SDL_name.h SDL_nacl.h SDL_opengl.h SDL_platform.h SDL_quit.h SDL_rwops.h SDL_stdinc.h SDL_syswm.h SDL_thread.h SDL_timer.h SDL_types.h SDL_version.h SDL_video.h begin_code.h close_code.h
+
+ LT_AGE = @LT_AGE@
+ LT_CURRENT = @LT_CURRENT@
+@@ -68,9 +68,9 @@ depend:
+ @SOURCES="$(SOURCES)" INCLUDE="$(INCLUDE)" output="$(depend)" \
+ $(SHELL) $(auxdir)/makedep.sh
+ @for src in $(SDLMAIN_SOURCES); do \
+- obj=`echo $$src | sed -e 's|.*/||' -e 's|\.[^\.]*$$|.o|'`; \
++ obj=`echo $$src | sed -e 's|.*/||' -e 's|\.[^\.]*$$|.lo|'`; \
+ echo "\$$(objects)/$$obj: $$src" >>$(depend); \
+- echo " \$$(CC) \$$(CFLAGS) \$$(EXTRA_CFLAGS) -c $$src -o \$$@" >>$(depend); \
++ echo " \$$(LIBTOOL) --mode=compile \$$(CC) \$$(CFLAGS) \$$(EXTRA_CFLAGS) -c $$src -o \$$@" >>$(depend); \
+ done
+
+ include $(depend)
+@@ -79,8 +79,7 @@ $(objects)/$(TARGET): $(OBJECTS)
+ $(LIBTOOL) --mode=link $(CC) -o $@ $(OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
+
+ $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS)
+- $(AR) cru $@ $(SDLMAIN_OBJECTS)
+- $(RANLIB) $@
++ $(LIBTOOL) --mode=link $(CC) -o $@ $(SDLMAIN_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
+
+ install: all install-bin install-hdrs install-lib install-data install-man
+ install-bin:
+@@ -95,8 +94,7 @@ install-hdrs:
+ install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET)
+ $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)
+ $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
+- $(INSTALL) -m 644 $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
+- $(RANLIB) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
++ $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
+ install-data:
+ $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
+ $(INSTALL) -m 644 $(srcdir)/sdl.m4 $(DESTDIR)$(datadir)/aclocal/sdl.m4
+@@ -120,7 +118,7 @@ uninstall-hdrs:
+ -rmdir $(DESTDIR)$(includedir)/SDL
+ uninstall-lib:
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET)
+- rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
++ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
+ uninstall-data:
+ rm -f $(DESTDIR)$(datadir)/aclocal/sdl.m4
+ rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl.pc
+diff --git a/configure.in b/configure.in
+index a7e9b18..ea62977 100644
+--- a/configure.in
++++ b/configure.in
+@@ -181,7 +181,8 @@ if test x$enable_libc = xyes; then
+ AC_DEFINE(HAVE_MPROTECT)
+ ]),
+ )
+- AC_CHECK_FUNCS(malloc calloc realloc free getenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp sscanf snprintf vsnprintf iconv sigaction setjmp nanosleep)
++ # TODO(bradnelson): Add back in iconv once it builds on pnacl mac.
++ AC_CHECK_FUNCS(malloc calloc realloc free getenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp sscanf snprintf vsnprintf sigaction setjmp nanosleep)
+
+ AC_CHECK_LIB(iconv, libiconv_open, [EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
+ AC_CHECK_LIB(m, pow, [EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
+@@ -885,6 +886,50 @@ CheckVisibilityHidden()
+ fi
+ }
+
++dnl Check for Native Client stuff
++CheckNativeClient()
++{
++ AC_ARG_ENABLE(naclvideo,
++AC_HELP_STRING([--enable-naclvideo], [enable the nacl video driver [[default=yes]]]),
++ , enable_naclvideo=yes)
++ if test x$enable_video = xyes -a x$enable_naclvideo = xyes; then
++ AC_DEFINE(SDL_VIDEO_DRIVER_NACL)
++ SOURCES="$SOURCES $srcdir/src/video/nacl/*.cc"
++ EXTRA_LDFLAGS="-lnacl_io -l${NACL_CPP_LIB:-stdc++} $EXTRA_LDFLAGS"
++ SDL_LIBS="$SDL_LIBS -lppapi -lSDLmain -ltar"
++ fi
++
++ AC_ARG_ENABLE(naclaudio,
++AC_HELP_STRING([--enable-naclaudio], [enable the nacl audio driver [[default=yes]]]),
++ , enable_naclaudio=yes)
++ if test x$enable_audio = xyes -a x$enable_naclaudio = xyes; then
++ AC_DEFINE(SDL_AUDIO_DRIVER_NACL)
++ SOURCES="$SOURCES $srcdir/src/audio/nacl/*.cc"
++ fi
++}
++
++dnl Find Regal OpenGL library
++CheckOpenGLRegal()
++{
++ if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
++ AC_MSG_CHECKING(for OpenGL (Regal) support)
++ video_opengl=no
++ AC_TRY_COMPILE([
++ #include <GL/Regal.h>
++ ],[
++ ],[
++ video_opengl=yes
++ ])
++ AC_MSG_RESULT($video_opengl)
++ if test x$video_opengl = xyes; then
++ AC_DEFINE(SDL_VIDEO_OPENGL)
++ AC_DEFINE(SDL_VIDEO_OPENGL_REGAL)
++ EXTRA_LDFLAGS="-lRegal -lglslopt -lppapi_gles2 ${EXTRA_LDFLAGS}"
++ SDL_LIBS="-lRegal -lglslopt -lppapi_gles2 ${SDL_LIBS}"
++ fi
++ fi
++}
++
+
+ dnl Do the iPod thing
+ CheckIPod()
+@@ -2284,6 +2329,22 @@ case "$host" in
+ have_timers=yes
+ fi
+ ;;
++ *-nacl)
++ ARCH=nacl
++ CheckNativeClient
++ CheckOpenGLRegal
++ CheckDummyAudio
++ CheckDummyVideo
++ CheckInputEvents
++ # Set up files for the timer library
++ if test x$enable_timers = xyes; then
++ AC_DEFINE(SDL_TIMER_UNIX)
++ SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
++ have_timers=yes
++ fi
++ CheckPTHREAD
++ SDLMAIN_SOURCES="$srcdir/src/main/nacl/*.c"
++ ;;
+ *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-irix*|*-*-aix*|*-*-osf*)
+ case "$host" in
+ *-*-linux*) ARCH=linux ;;
+@@ -2838,9 +2899,9 @@ OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
+ OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.S,$(objects)/\1.lo,g'`
+ OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
+
+-SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.o,g'`
+-SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.o,g'`
+-SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
++SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.lo,g'`
++SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.lo,g'`
++SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
+
+ # Set runtime shared library paths as needed
+
+@@ -2866,6 +2927,9 @@ case "$ARCH" in
+ # Evil hack to allow static linking on Mac OS X
+ SDL_STATIC_LIBS="\${libdir}/libSDLmain.a \${libdir}/libSDL.a $EXTRA_LDFLAGS"
+ ;;
++ nacl)
++ SDL_STATIC_LIBS="-Wl,--start-group -lSDLmain $SDL_LIBS $EXTRA_LDFLAGS -lSDLmain -ltar -Wl,--end-group"
++ ;;
+ *)
+ SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
+ ;;
+diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
+index 58593ca..150097d 100644
+--- a/include/SDL_config.h.in
++++ b/include/SDL_config.h.in
+@@ -174,6 +174,7 @@
+ #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC
+ #undef SDL_AUDIO_DRIVER_MINT
+ #undef SDL_AUDIO_DRIVER_MMEAUDIO
++#undef SDL_AUDIO_DRIVER_NACL
+ #undef SDL_AUDIO_DRIVER_NAS
+ #undef SDL_AUDIO_DRIVER_NAS_DYNAMIC
+ #undef SDL_AUDIO_DRIVER_OSS
+@@ -265,6 +266,7 @@
+ #undef SDL_VIDEO_DRIVER_GEM
+ #undef SDL_VIDEO_DRIVER_GGI
+ #undef SDL_VIDEO_DRIVER_IPOD
++#undef SDL_VIDEO_DRIVER_NACL
+ #undef SDL_VIDEO_DRIVER_NANOX
+ #undef SDL_VIDEO_DRIVER_OS2FS
+ #undef SDL_VIDEO_DRIVER_PHOTON
+@@ -295,6 +297,7 @@
+ /* Enable OpenGL support */
+ #undef SDL_VIDEO_OPENGL
+ #undef SDL_VIDEO_OPENGL_GLX
++#undef SDL_VIDEO_OPENGL_REGAL
+ #undef SDL_VIDEO_OPENGL_WGL
+ #undef SDL_VIDEO_OPENGL_OSMESA
+ #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC
+diff --git a/include/SDL_main.h b/include/SDL_main.h
+index b7f6b2c..cdde128 100644
+--- a/include/SDL_main.h
++++ b/include/SDL_main.h
+@@ -32,7 +32,7 @@
+ #if defined(__WIN32__) || \
+ (defined(__MWERKS__) && !defined(__BEOS__)) || \
+ defined(__MACOS__) || defined(__MACOSX__) || \
+- defined(__SYMBIAN32__) || defined(QWS)
++ defined(__SYMBIAN32__) || defined(QWS) || defined(__native_client__)
+
+ #ifdef __cplusplus
+ #define C_LINKAGE "C"
+diff --git a/include/SDL_nacl.h b/include/SDL_nacl.h
+new file mode 100644
+index 0000000..7bb5683
+--- /dev/null
++++ b/include/SDL_nacl.h
+@@ -0,0 +1,26 @@
++#ifndef _SDL_nacl_h
++#define _SDL_nacl_h
++
++#include "begin_code.h"
++#include <ppapi/c/pp_instance.h>
++#include <ppapi/c/pp_resource.h>
++#include <ppapi/c/ppb.h>
++
++/* Set up for C function definitions, even when using C++ */
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void SDL_NACL_SetInstance(PP_Instance instance, PPB_GetInterface get_interface,
++ int width, int height);
++void SDL_NACL_PushEvent(PP_Resource input_event);
++void SDL_NACL_SetHasFocus(int has_focus);
++void SDL_NACL_SetPageVisible(int is_visible);
++
++/* Ends C function definitions when using C++ */
++#ifdef __cplusplus
++}
++#endif
++#include "close_code.h"
++
++#endif /* _SDL_nacl_h */
+diff --git a/include/SDL_opengl.h b/include/SDL_opengl.h
+index c479a3a..a0f4962 100644
+--- a/include/SDL_opengl.h
++++ b/include/SDL_opengl.h
+@@ -33,7 +33,7 @@
+ #endif
+ #include <windows.h>
+ #endif
+-#ifndef NO_SDL_GLEXT
++#if !defined(NO_SDL_GLEXT) && !defined(__native_client__)
+ #define __glext_h_ /* Don't let gl.h include glext.h */
+ #endif
+ #if defined(__MACOSX__)
+@@ -42,6 +42,10 @@
+ #elif defined(__MACOS__)
+ #include <gl.h> /* Header File For The OpenGL Library */
+ #include <glu.h> /* Header File For The GLU Library */
++#elif defined(__native_client__)
++#include <GL/Regal.h>
++#define APIENTRY
++#define APIENTRYP APIENTRY *
+ #else
+ #include <GL/gl.h> /* Header File For The OpenGL Library */
+ #include <GL/glu.h> /* Header File For The GLU Library */
+diff --git a/include/SDL_platform.h b/include/SDL_platform.h
+index 11d8673..dd99403 100644
+--- a/include/SDL_platform.h
++++ b/include/SDL_platform.h
+@@ -63,10 +63,14 @@
+ #undef __IRIX__
+ #define __IRIX__ 1
+ #endif
+-#if defined(linux) || defined(__linux) || defined(__linux__)
++#if defined(linux) || defined(__linux) || defined(__linux__) && !defined(__native_client__)
+ #undef __LINUX__
+ #define __LINUX__ 1
+ #endif
++#if defined(__native_client__)
++#undef __NACL__
++#define __NACL__ 1
++#endif
+ #if defined(__APPLE__)
+ #undef __MACOSX__
+ #define __MACOSX__ 1
+diff --git a/src/SDL_fatal.c b/src/SDL_fatal.c
+index 15c0be7..82ceeef 100644
+--- a/src/SDL_fatal.c
++++ b/src/SDL_fatal.c
+@@ -39,7 +39,11 @@ static void SDL_Parachute(int sig)
+ {
+ signal(sig, SIG_DFL);
+ SDL_Quit();
++#ifdef __native_client__
++ exit(sig);
++#else
+ raise(sig);
++#endif
+ }
+
+ static int SDL_fatal_signals[] = {
+diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c
+index bdeacdc..ac43356 100644
+--- a/src/audio/SDL_audio.c
++++ b/src/audio/SDL_audio.c
+@@ -36,6 +36,9 @@
+
+ /* Available audio drivers */
+ static AudioBootStrap *bootstrap[] = {
++#if SDL_AUDIO_DRIVER_NACL
++ &NACLAUD_bootstrap,
++#endif
+ #if SDL_AUDIO_DRIVER_BSD
+ &BSD_AUDIO_bootstrap,
+ #endif
+diff --git a/src/audio/SDL_sysaudio.h b/src/audio/SDL_sysaudio.h
+index 50cf179..7b9a0a7 100644
+--- a/src/audio/SDL_sysaudio.h
++++ b/src/audio/SDL_sysaudio.h
+@@ -156,6 +156,9 @@ extern AudioBootStrap MINTAUDIO_STFA_bootstrap;
+ extern AudioBootStrap MINTAUDIO_XBIOS_bootstrap;
+ extern AudioBootStrap MINTAUDIO_DMA8_bootstrap;
+ #endif
++#if SDL_AUDIO_DRIVER_NACL
++extern AudioBootStrap NACLAUD_bootstrap;
++#endif
+ #if SDL_AUDIO_DRIVER_DISK
+ extern AudioBootStrap DISKAUD_bootstrap;
+ #endif
+diff --git a/src/audio/nacl/SDL_naclaudio.cc b/src/audio/nacl/SDL_naclaudio.cc
+new file mode 100644
+index 0000000..7a02156
+--- /dev/null
++++ b/src/audio/nacl/SDL_naclaudio.cc
+@@ -0,0 +1,140 @@
++#include "SDL_config.h"
++#include "SDL_naclaudio.h"
++
++#include <assert.h>
++
++#include <ppapi/c/pp_instance.h>
++#include <ppapi/c/ppb.h>
++#include <ppapi/c/ppb_audio.h>
++#include <ppapi/c/ppb_audio_config.h>
++#include <ppapi/c/ppb_core.h>
++
++extern PP_Instance g_nacl_pp_instance;
++extern PPB_GetInterface g_nacl_get_interface;
++extern const PPB_Core_1_0* g_nacl_core_interface;
++
++const PPB_Audio_1_1* g_nacl_audio_interface;
++const PPB_AudioConfig_1_1* g_nacl_audio_config_interface;
++
++extern "C" {
++
++#include "SDL_rwops.h"
++#include "SDL_timer.h"
++#include "SDL_audio.h"
++#include "SDL_mutex.h"
++#include "../SDL_audiomem.h"
++#include "../SDL_audio_c.h"
++#include "../SDL_audiodev_c.h"
++
++/* The tag name used by NACL audio */
++#define NACLAUD_DRIVER_NAME "nacl"
++
++const uint32_t kSampleFrameCount = 4096u;
++
++/* Audio driver functions */
++static int NACLAUD_OpenAudio(_THIS, SDL_AudioSpec* spec);
++static void NACLAUD_CloseAudio(_THIS);
++
++static void AudioCallback(void* samples, uint32_t buffer_size, PP_TimeDelta,
++ void* data);
++
++/* Audio driver bootstrap functions */
++static int NACLAUD_Available(void) {
++ return g_nacl_pp_instance && g_nacl_get_interface;
++}
++
++static void NACLAUD_DeleteDevice(SDL_AudioDevice* device) {
++ if (device->hidden->audio) {
++ g_nacl_audio_interface->StopPlayback(device->hidden->audio);
++ g_nacl_core_interface->ReleaseResource(device->hidden->audio);
++ device->hidden->audio = 0;
++ }
++}
++
++static SDL_AudioDevice* NACLAUD_CreateDevice(int devindex) {
++ SDL_AudioDevice* _this;
++
++ /* Initialize all variables that we clean on shutdown */
++ _this = (SDL_AudioDevice*)SDL_malloc(sizeof(SDL_AudioDevice));
++ if (_this) {
++ SDL_memset(_this, 0, (sizeof *_this));
++ _this->hidden =
++ (struct SDL_PrivateAudioData*)SDL_malloc((sizeof *_this->hidden));
++ }
++ if ((_this == NULL) || (_this->hidden == NULL)) {
++ SDL_OutOfMemory();
++ if (_this) {
++ SDL_free(_this);
++ }
++ return (0);
++ }
++ SDL_memset(_this->hidden, 0, (sizeof *_this->hidden));
++
++ _this->hidden->mutex = SDL_CreateMutex();
++
++ // TODO: Move audio device creation to NACLAUD_OpenAudio.
++ g_nacl_audio_interface =
++ (const PPB_Audio_1_1*)g_nacl_get_interface(PPB_AUDIO_INTERFACE_1_1);
++ g_nacl_audio_config_interface =
++ (const PPB_AudioConfig_1_1*)g_nacl_get_interface(
++ PPB_AUDIO_CONFIG_INTERFACE_1_1);
++
++ _this->hidden->sample_frame_count =
++ g_nacl_audio_config_interface->RecommendSampleFrameCount(
++ g_nacl_pp_instance, PP_AUDIOSAMPLERATE_44100, kSampleFrameCount);
++
++ PP_Resource audio_config = g_nacl_audio_config_interface->CreateStereo16Bit(
++ g_nacl_pp_instance, PP_AUDIOSAMPLERATE_44100,
++ _this->hidden->sample_frame_count);
++ _this->hidden->audio = g_nacl_audio_interface->Create(
++ g_nacl_pp_instance, audio_config, AudioCallback, _this);
++
++ // Start audio playback while we are still on the main thread.
++ g_nacl_audio_interface->StartPlayback(_this->hidden->audio);
++
++ /* Set the function pointers */
++ _this->OpenAudio = NACLAUD_OpenAudio;
++ _this->CloseAudio = NACLAUD_CloseAudio;
++
++ _this->free = NACLAUD_DeleteDevice;
++
++ return _this;
++}
++
++AudioBootStrap NACLAUD_bootstrap = {
++ NACLAUD_DRIVER_NAME, "SDL nacl audio driver",
++ NACLAUD_Available, NACLAUD_CreateDevice
++};
++
++static void NACLAUD_CloseAudio(_THIS) {
++}
++
++static void AudioCallback(void* samples, uint32_t buffer_size, PP_TimeDelta,
++ void* data) {
++ SDL_AudioDevice* _this = reinterpret_cast<SDL_AudioDevice*>(data);
++
++ SDL_LockMutex(_this->hidden->mutex);
++ /* Only do anything if audio is enabled and not paused */
++ if (_this->enabled && !_this->paused) {
++ SDL_memset(samples, _this->spec.silence, buffer_size);
++ SDL_LockMutex(_this->mixer_lock);
++ (*_this->spec.callback)(_this->spec.userdata, (Uint8*)samples, buffer_size);
++ SDL_UnlockMutex(_this->mixer_lock);
++ } else {
++ SDL_memset(samples, 0, buffer_size);
++ }
++ SDL_UnlockMutex(_this->hidden->mutex);
++
++ return;
++}
++
++static int NACLAUD_OpenAudio(_THIS, SDL_AudioSpec* spec) {
++ // We don't care what the user wants.
++ spec->freq = 44100;
++ spec->format = AUDIO_S16LSB;
++ spec->channels = 2;
++ spec->samples = _this->hidden->sample_frame_count;
++ return 1;
++}
++
++} // extern "C"
+diff --git a/src/audio/nacl/SDL_naclaudio.h b/src/audio/nacl/SDL_naclaudio.h
+new file mode 100644
+index 0000000..ab52848
+--- /dev/null
++++ b/src/audio/nacl/SDL_naclaudio.h
+@@ -0,0 +1,23 @@
++#include "SDL_config.h"
++
++#ifndef _SDL_naclaudio_h
++#define _SDL_naclaudio_h
++
++extern "C" {
++#include "SDL_audio.h"
++#include "../SDL_sysaudio.h"
++#include "SDL_mutex.h"
++}
++
++#include <ppapi/c/ppb_audio.h>
++
++/* Hidden "this" pointer for the video functions */
++#define _THIS SDL_AudioDevice *_this
++
++struct SDL_PrivateAudioData {
++ SDL_mutex* mutex;
++ int sample_frame_count;
++ PP_Resource audio;
++};
++
++#endif /* _SDL_naclaudio_h */
+diff --git a/src/cpuinfo/SDL_cpuinfo.c b/src/cpuinfo/SDL_cpuinfo.c
+index 5c2d81f..7a757a3 100644
+--- a/src/cpuinfo/SDL_cpuinfo.c
++++ b/src/cpuinfo/SDL_cpuinfo.c
+@@ -53,6 +53,8 @@ static void illegal_instruction(int sig)
+ }
+ #endif /* HAVE_SETJMP */
+
++
++#if SDL_ASSEMBLY_ROUTINES
+ static __inline__ int CPU_haveCPUID(void)
+ {
+ int has_CPUID = 0;
+@@ -280,6 +282,15 @@ done:
+ return features;
+ }
+
++#else // SDL_ASSEMBLY_ROUTINES
++
++static __inline__ int CPU_haveCPUID(void) { return 0; }
++static __inline__ int CPU_getCPUIDFeaturesExt(void) { return 0; }
++static __inline__ int CPU_getCPUIDFeatures(void) { return 0; }
++
++#endif // SDL_ASSEMBLY_ROUTINES
++
++
+ static __inline__ int CPU_haveRDTSC(void)
+ {
+ if ( CPU_haveCPUID() ) {
+diff --git a/src/main/nacl/pepper_instance.c b/src/main/nacl/pepper_instance.c
+new file mode 100644
+index 0000000..7604d37
+--- /dev/null
++++ b/src/main/nacl/pepper_instance.c
+@@ -0,0 +1,355 @@
++/*
++ * Copyright (c) 2011 The Native Client Authors. All rights reserved.
++ * Use of this source code is governed by a BSD-style license that can be
++ * found in the LICENSE file.
++ */
++#include <assert.h>
++#include <errno.h>
++#include <fcntl.h>
++#include <libtar.h>
++#include <pthread.h>
++#include <stdio.h>
++#include <string.h>
++#include <sys/mount.h>
++#include <unistd.h>
++
++#include <SDL.h>
++#include <SDL_nacl.h>
++#include <SDL_video.h>
++#include <SDL_main.h>
++
++#include <ppapi/c/pp_errors.h>
++#include <ppapi/c/pp_instance.h>
++#include <ppapi/c/ppb.h>
++#include <ppapi/c/ppb_input_event.h>
++#include <ppapi/c/ppb_messaging.h>
++#include <ppapi/c/ppb_var.h>
++#include <ppapi/c/ppb_view.h>
++#include <ppapi/c/ppp.h>
++#include <ppapi/c/ppp_input_event.h>
++#include <ppapi/c/ppp_instance.h>
++#include <ppapi/c/pp_rect.h>
++
++#include "nacl_io/nacl_io.h"
++#include "nacl_io/ioctl.h"
++#include "nacl_io/log.h"
++
++static PP_Instance g_instance;
++static PPB_GetInterface g_get_browser_interface;
++static struct PPB_Messaging_1_0* g_messaging_interface;
++static struct PPB_Var_1_1* g_var_interface;
++static struct PPB_InputEvent_1_0* g_input_event_interface;
++static struct PPB_View_1_1* g_view_interface;
++static int g_width = 0;
++static int g_height = 0;
++static int g_argc;
++static const char** g_argn;
++static const char** g_argv;
++static const char* g_tty_prefix;
++static pthread_t g_sdl_thread;
++
++static void* sdl_thread_start(void*);
++static void ProcessArgs();
++
++static PP_Bool Instance_DidCreate(PP_Instance instance, uint32_t argc,
++ const char* argn[], const char* argv[]) {
++ int i;
++
++ g_instance = instance;
++ g_input_event_interface->RequestInputEvents(instance,
++ PP_INPUTEVENT_CLASS_MOUSE);
++ g_input_event_interface->RequestFilteringInputEvents(
++ instance, PP_INPUTEVENT_CLASS_KEYBOARD);
++
++ nacl_io_init_ppapi(instance, g_get_browser_interface);
++
++ // Copy args so they can be processed later by the SDL thread.
++ g_argc = argc;
++ g_argn = (const char**)malloc(argc * sizeof(char*));
++ g_argv = (const char**)malloc(argc * sizeof(char*));
++ memset(g_argn, 0, argc * sizeof(char*));
++ memset(g_argv, 0, argc * sizeof(char*));
++
++ for (i = 0; i < argc; i++) {
++ if (argn[i]) g_argn[i] = strdup(argn[i]);
++ if (argv[i]) g_argv[i] = strdup(argv[i]);
++ }
++
++ return PP_TRUE;
++}
++
++static void Instance_DidDestroy(PP_Instance instance) {}
++
++static void Instance_DidChangeView(PP_Instance instance,
++ PP_Resource view_resource) {
++ struct PP_Rect view_rect;
++ if (g_width && g_height) return;
++
++ if (g_view_interface->GetRect(view_resource, &view_rect) == PP_FALSE) {
++ fprintf(stderr, "SDL: Unable to get view rect!\n");
++ return;
++ }
++
++ if (view_rect.size.width == g_width && view_rect.size.height == g_height)
++ return; // Size didn't change, no need to update anything.
++
++ g_width = view_rect.size.width;
++ g_height = view_rect.size.height;
++
++ SDL_NACL_SetInstance(g_instance, g_get_browser_interface, g_width, g_height);
++ pthread_create(&g_sdl_thread, NULL, sdl_thread_start, NULL);
++}
++
++/*
++ * Entry point for the main SDL thread. The job of this thread is to
++ * run SDL_main, which in most cases is the application's main() function
++ * re-defined by the pre-processor in SDL_main.h.
++ */
++static void* sdl_thread_start(void* arg) {
++ char* argv[2];
++ int rtn;
++
++ ProcessArgs();
++ fprintf(stderr, "SDL: calling SDL_main\n");
++ argv[0] = (char*)"SDL applicaiton";
++ argv[1] = NULL;
++ rtn = SDL_main(1, argv);
++ fprintf(stderr, "SDL: SDL_main returned: %d\n", rtn);
++ exit(rtn);
++ return NULL;
++}
++
++static ssize_t TtyOutputHandler(const char* buf, size_t count, void* user_data) {
++ // We prepend the prefix_ to the data in buf, then package it up
++ // and post it as a message to javascript.
++ char* message = (char*)malloc(count + strlen(g_tty_prefix));
++ strcpy(message, g_tty_prefix);
++ memcpy(message + strlen(g_tty_prefix), buf, count);
++ struct PP_Var var = g_var_interface->VarFromUtf8(message, count + strlen(g_tty_prefix));
++ g_messaging_interface->PostMessage(g_instance, var);
++ g_var_interface->Release(var);
++ free(message);
++ return count;
++}
++
++static void ProcessArgs() {
++ int i;
++ int rtn;
++ int mount_default = 1;
++ nacl_io_log("SDL: ProcessArgs %d\n", g_argc);
++
++ // This could fail if the sdl_mount_http attributes
++ // above created a mount on "/".
++ fprintf(stderr, "SDL: creating memfs on root\n");
++
++ rtn = umount("/");
++ if (rtn != 0)
++ fprintf(stderr, "SDL: umount failed: %s\n", strerror(errno));
++
++ rtn = mount("", "/", "memfs", 0, "");
++ if (rtn != 0)
++ fprintf(stderr, "SDL: mount failed: %s\n", strerror(errno));
++
++ rtn = mkdir("/tmp", S_IRWXU | S_IRWXG);
++ if (rtn != 0)
++ fprintf(stderr, "SDL: mkdir /tmp failed: %s\n", strerror(errno));
++
++ rtn = mkdir("/home", S_IRWXU | S_IRWXG);
++ if (rtn != 0)
++ fprintf(stderr, "SDL: mkdir /home failed: %s\n", strerror(errno));
++
++ rtn = mount("", "/tmp", "html5fs", 0, "type=TEMPORARY");
++ if (rtn != 0)
++ fprintf(stderr, "SDL: mount /tmp failed: %s\n", strerror(errno));
++
++ for (i = 0; i < g_argc; i++) {
++ if (!strcmp(g_argn[i], "ps_stdout")) {
++ int fd1 = open(g_argv[i], O_WRONLY);
++ dup2(fd1, 1);
++ } else if (!strcmp(g_argn[i], "ps_stderr")) {
++ int fd2 = open(g_argv[i], O_WRONLY);
++ dup2(fd2, 2);
++ } else if (!strcmp(g_argn[i], "ps_tty_prefix")) {
++ g_tty_prefix = g_argv[i];
++ struct tioc_nacl_output handler;
++ handler.handler = TtyOutputHandler;
++ handler.user_data = NULL;
++ int tty_fd = open("/dev/tty", O_WRONLY);
++ if (tty_fd != -1) {
++ ioctl(tty_fd, TIOCNACLOUTPUT, &handler);
++ close(tty_fd);
++ }
++ } else if (!strcmp(g_argn[i], "fs_pers")) {
++ mount_default = 0;
++ char *ptr;
++ long sz = strtol(g_argv[i], &ptr, 10);
++ fprintf(stderr, "SDL: adding html5fs mount size: %ld\n", sz);
++ if (sz > 0) {
++ char params[255];
++ sprintf(params, "type=PERSISTENT,expected_size=%ld", sz);
++ if (mount("", "/persistent", "html5fs", 0, params))
++ fprintf (stderr, "mount failed");
++ } else {
++ fprintf (stderr, "zero fs size");
++ }
++ }
++ else if (!strcmp(g_argn[i], "fs_http")) {
++ mount_default = 0;
++ mount(g_argv[i], "/http", "httpfs", 0, "");
++ } else if (!strcmp(g_argn[i], "sdl_mount_http")) {
++ const char* source;
++ const char* target = "/";
++ char* sep;
++ char buf[64];
++ int n;
++
++ const char* q, *p = g_argv[i];
++ while (*p) {
++ while (*p && isspace(*p)) ++p;
++ if (!*p) break;
++ q = p;
++ while (*p && !isspace(*p)) ++p;
++
++ n = sizeof(buf) - 1;
++ if (p - q < n) n = p - q;
++ strncpy(buf, q, n);
++ buf[n] = '\0';
++
++ sep = strchr(buf, ':');
++ source = buf;
++ if (sep) {
++ target = sep + 1;
++ *sep = '\0';
++ }
++
++ mount_default = 0;
++ fprintf(stderr, "SDL: adding http mount '%s' -> '%s'\n", source,
++ target);
++ rtn = mount(source, target, "httpfs", 0, "");
++ if (rtn != 0)
++ fprintf(stderr, "SDL: mount failed: %s\n", strerror(errno));
++ }
++ }
++ }
++
++ if (mount_default) {
++ // Create an http mount by default
++ fprintf(stderr, "SDL: creating default http mount 1\n");
++ rtn = chdir("/home");
++ if (rtn != 0)
++ fprintf(stderr, "SDL: chdir failed: %s\n", strerror(errno));
++ rtn = mount(".", "/home", "httpfs", 0, "");
++ if (rtn != 0)
++ fprintf(stderr, "SDL: mount failed: %s\n", strerror(errno));
++ }
++
++ for (i = 0; i < g_argc; i++) {
++ nacl_io_log("SDL: arg=%s\n", g_argn[i]);
++ if (!strcasecmp(g_argn[i], "PWD")) {
++ int rtn = chdir(g_argv[i]);
++ if (rtn != 0)
++ nacl_io_log("SDL: chdir(%s) failed\n", g_argv[i]);
++ else
++ nacl_io_log("SDL: chdir(%s)\n", g_argv[i]);
++ } else if (!strcmp(g_argn[i], "sdl_tar_extract")) {
++ const char* source;
++ const char* target = "/";
++ char* sep;
++ char buf[64];
++ int n;
++
++ const char* q, *p = g_argv[i];
++ while (*p) {
++ while (*p && isspace(*p)) ++p;
++ if (!*p) break;
++ q = p;
++ while (*p && !isspace(*p)) ++p;
++
++ n = sizeof(buf) - 1;
++ if (p - q < n) n = p - q;
++ strncpy(buf, q, n);
++ buf[n] = '\0';
++
++ sep = strchr(buf, ':');
++ source = buf;
++ if (sep) {
++ target = sep + 1;
++ *sep = '\0';
++ }
++
++ fprintf(stderr, "SDL: extracting tar file '%s' -> '%s'\n", source,
++ target);
++
++ TAR* tar;
++ rtn = tar_open(&tar, (char*)source, NULL, O_RDONLY, 0, 0);
++ if (rtn != 0) {
++ fprintf(stderr, "SDL: tar_open failed\n");
++ assert(0);
++ continue;
++ }
++
++ rtn = mkdir(target, S_IRWXU | S_IRWXG);
++ if (rtn != 0)
++ fprintf(stderr, "SDL: mkdir failed: %s\n", strerror(errno));
++
++ rtn = tar_extract_all(tar, (char*)target);
++ if (rtn != 0) {
++ fprintf(stderr, "SDL: tar_extract_all failed\n");
++ assert(0);
++ }
++
++ rtn = tar_close(tar);
++ if (rtn != 0) {
++ fprintf(stderr, "SDL: tar_clone failed\n");
++ assert(0);
++ }
++ }
++ }
++ }
++}
++
++static void Instance_DidChangeFocus(PP_Instance instance, PP_Bool has_focus) {}
++
++static PP_Bool Instance_HandleDocumentLoad(PP_Instance instance,
++ PP_Resource url_loader) {
++ return PP_FALSE;
++}
++
++static PP_Bool InputEvent_HandleInputEvent(PP_Instance instance,
++ PP_Resource input_event) {
++ SDL_NACL_PushEvent(input_event);
++ return PP_TRUE;
++}
++
++PP_EXPORT int32_t
++PPP_InitializeModule(PP_Module module, PPB_GetInterface get_browser) {
++ g_get_browser_interface = get_browser;
++ g_input_event_interface =
++ (struct PPB_InputEvent_1_0*)get_browser(PPB_INPUT_EVENT_INTERFACE_1_0);
++ g_messaging_interface =
++ (struct PPB_InputEvent_1_0*)get_browser(PPB_MESSAGING_INTERFACE_1_0);
++ g_var_interface = (struct PPB_Var_1_1*)get_browser(PPB_VAR_INTERFACE_1_1);
++ g_view_interface = (struct PPB_View_1_1*)get_browser(PPB_VIEW_INTERFACE_1_1);
++ return PP_OK;
++}
++
++PP_EXPORT const void* PPP_GetInterface(const char* interface_name) {
++ if (strcmp(interface_name, PPP_INSTANCE_INTERFACE) == 0) {
++ static struct PPP_Instance_1_1 instance_interface = {
++ &Instance_DidCreate,
++ &Instance_DidDestroy,
++ &Instance_DidChangeView,
++ &Instance_DidChangeFocus,
++ &Instance_HandleDocumentLoad,
++ };
++ return &instance_interface;
++ } else if (strcmp(interface_name, PPP_INPUT_EVENT_INTERFACE_0_1) == 0) {
++ static struct PPP_InputEvent_0_1 input_event_interface = {
++ &InputEvent_HandleInputEvent,
++ };
++ return &input_event_interface;
++ }
++ return NULL;
++}
++
++PP_EXPORT void PPP_ShutdownModule() {}
+diff --git a/src/thread/pthread/SDL_systhread.c b/src/thread/pthread/SDL_systhread.c
+index 479bf34..a3b9119 100644
+--- a/src/thread/pthread/SDL_systhread.c
++++ b/src/thread/pthread/SDL_systhread.c
+@@ -81,12 +81,15 @@ void SDL_SYS_SetupThread(void)
+ int i;
+ sigset_t mask;
+
++ // NativeClient does not yet support signals.
++#ifndef __NACL__
+ /* Mask asynchronous signals for this thread */
+ sigemptyset(&mask);
+ for ( i=0; sig_list[i]; ++i ) {
+ sigaddset(&mask, sig_list[i]);
+ }
+ pthread_sigmask(SIG_BLOCK, &mask, 0);
++#endif
+
+ #ifdef PTHREAD_CANCEL_ASYNCHRONOUS
+ /* Allow ourselves to be asynchronously cancelled */
+diff --git a/src/video/SDL_sysvideo.h b/src/video/SDL_sysvideo.h
+index 1c72e09..9fc1a85 100644
+--- a/src/video/SDL_sysvideo.h
++++ b/src/video/SDL_sysvideo.h
+@@ -317,6 +317,9 @@ typedef struct VideoBootStrap {
+ SDL_VideoDevice *(*create)(int devindex);
+ } VideoBootStrap;
+
++#if SDL_VIDEO_DRIVER_NACL
++extern VideoBootStrap NACL_bootstrap;
++#endif
+ #if SDL_VIDEO_DRIVER_QUARTZ
+ extern VideoBootStrap QZ_bootstrap;
+ #endif
+diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
+index e84ef35..f8a5090 100644
+--- a/src/video/SDL_video.c
++++ b/src/video/SDL_video.c
+@@ -33,6 +33,9 @@
+
+ /* Available video drivers */
+ static VideoBootStrap *bootstrap[] = {
++#if SDL_VIDEO_DRIVER_NACL
++ &NACL_bootstrap,
++#endif
+ #if SDL_VIDEO_DRIVER_QUARTZ
+ &QZ_bootstrap,
+ #endif
+@@ -764,6 +767,8 @@ SDL_Surface * SDL_SetVideoMode (int width, int height, int bpp, Uint32 flags)
+ #define __SDL_NOGETPROCADDR__
+ #elif defined(__MINT__)
+ #define __SDL_NOGETPROCADDR__
++#elif defined(__native_client__)
++#define __SDL_NOGETPROCADDR__
+ #endif
+ #ifdef __SDL_NOGETPROCADDR__
+ #define SDL_PROC(ret,func,params) video->func=func;
+diff --git a/src/video/nacl/SDL_naclevents.cc b/src/video/nacl/SDL_naclevents.cc
+new file mode 100644
+index 0000000..c9eaea8
+--- /dev/null
++++ b/src/video/nacl/SDL_naclevents.cc
+@@ -0,0 +1,320 @@
++#include "SDL_config.h"
++
++#include "SDL_nacl.h"
++
++extern "C" {
++#include "SDL.h"
++#include "../../events/SDL_sysevents.h"
++#include "../../events/SDL_events_c.h"
++}
++
++#include "SDL_naclevents_c.h"
++#include "eventqueue.h"
++#include <ppapi/c/pp_point.h>
++#include <ppapi/c/pp_var.h>
++#include <ppapi/c/ppb_input_event.h>
++#include <ppapi/c/ppb_var.h>
++
++#include <math.h>
++
++extern const PPB_InputEvent_1_0 *g_nacl_input_event_interface;
++extern const PPB_MouseInputEvent_1_1 *g_nacl_mouse_input_event_interface;
++extern const PPB_WheelInputEvent_1_0 *g_nacl_wheel_input_event_interface;
++extern const PPB_KeyboardInputEvent_1_0 *g_nacl_keyboard_input_event_interface;
++extern const PPB_Var_1_1 *g_nacl_var_interface;
++
++static EventQueue event_queue;
++
++static Uint8 translateButton(int32_t button) {
++ switch (button) {
++ case PP_INPUTEVENT_MOUSEBUTTON_LEFT:
++ return SDL_BUTTON_LEFT;
++ case PP_INPUTEVENT_MOUSEBUTTON_MIDDLE:
++ return SDL_BUTTON_MIDDLE;
++ case PP_INPUTEVENT_MOUSEBUTTON_RIGHT:
++ return SDL_BUTTON_RIGHT;
++ case PP_INPUTEVENT_MOUSEBUTTON_NONE:
++ default:
++ return 0;
++ }
++}
++
++// Translate ASCII code to browser keycode
++static uint8_t translateAscii(uint8_t ascii) {
++ if ('A' <= ascii && ascii <= 'Z') {
++ return ascii;
++ } else if ('a' <= ascii && ascii <= 'z') {
++ return toupper(ascii);
++ } else if ('0' <= ascii && ascii <= '9') {
++ return ascii;
++ } else if (' ' == ascii || '\r' == ascii || '\t' == ascii ||
++ '\x1b' == ascii || '\b' == ascii) {
++ return ascii;
++ } else {
++ switch (ascii) {
++ case '!': return '1';
++ case '@': return '2';
++ case '#': return '3';
++ case '$': return '4';
++ case '%': return '5';
++ case '^': return '6';
++ case '&': return '7';
++ case '*': return '8';
++ case '(': return '9';
++ case ')': return '0';
++ case ';': case ':': return 186;
++ case '=': case '+': return 187;
++ case ',': case '<': return 188;
++ case '-': case '_': return 189;
++ case '.': case '>': return 190;
++ case '/': case '?': return 191;
++ case '`': case '~': return 192;
++ case '[': case '{': return 219;
++ case '\\': case '|': return 220;
++ case ']': case '}': return 221;
++ case '\'': case '"': return 222;
++ default:
++ break;
++ }
++ }
++ return 0;
++}
++
++// Translate browser keycode to SDLKey
++static SDLKey translateKey(uint32_t code) {
++ if (code >= 'A' && code <= 'Z')
++ return (SDLKey)(code - 'A' + SDLK_a);
++ if (code >= SDLK_0 && code <= SDLK_9)
++ return (SDLKey)code;
++ const uint32_t f1_code = 112;
++ if (code >= f1_code && code < f1_code + 12)
++ return (SDLKey)(code - f1_code + SDLK_F1);
++ const uint32_t kp0_code = 96;
++ if (code >= kp0_code && code < kp0_code + 10)
++ return (SDLKey)(code - kp0_code + SDLK_KP0);
++ switch (code) {
++ case SDLK_BACKSPACE:
++ return SDLK_BACKSPACE;
++ case SDLK_TAB:
++ return SDLK_TAB;
++ case SDLK_RETURN:
++ return SDLK_RETURN;
++ case SDLK_PAUSE:
++ return SDLK_PAUSE;
++ case SDLK_ESCAPE:
++ return SDLK_ESCAPE;
++ case 16:
++ return SDLK_LSHIFT;
++ case 17:
++ return SDLK_LCTRL;
++ case 18:
++ return SDLK_LALT;
++ case 32:
++ return SDLK_SPACE;
++ case 37:
++ return SDLK_LEFT;
++ case 38:
++ return SDLK_UP;
++ case 39:
++ return SDLK_RIGHT;
++ case 40:
++ return SDLK_DOWN;
++ case 106:
++ return SDLK_KP_MULTIPLY;
++ case 107:
++ return SDLK_KP_PLUS;
++ case 109:
++ return SDLK_KP_MINUS;
++ case 110:
++ return SDLK_KP_PERIOD;
++ case 111:
++ return SDLK_KP_DIVIDE;
++ case 45:
++ return SDLK_INSERT;
++ case 46:
++ return SDLK_DELETE;
++ case 36:
++ return SDLK_HOME;
++ case 35:
++ return SDLK_END;
++ case 33:
++ return SDLK_PAGEUP;
++ case 34:
++ return SDLK_PAGEDOWN;
++ case 189:
++ return SDLK_MINUS;
++ case 187:
++ return SDLK_EQUALS;
++ case 219:
++ return SDLK_LEFTBRACKET;
++ case 221:
++ return SDLK_RIGHTBRACKET;
++ case 186:
++ return SDLK_SEMICOLON;
++ case 222:
++ return SDLK_QUOTE;
++ case 220:
++ return SDLK_BACKSLASH;
++ case 188:
++ return SDLK_COMMA;
++ case 190:
++ return SDLK_PERIOD;
++ case 191:
++ return SDLK_SLASH;
++ case 192:
++ return SDLK_BACKQUOTE;
++ default:
++ return SDLK_UNKNOWN;
++ }
++}
++
++static SDL_Event *copyEvent(SDL_Event *event) {
++ SDL_Event *event_copy = (SDL_Event*)malloc(sizeof(SDL_Event));
++ *event_copy = *event;
++ return event_copy;
++}
++
++void SDL_NACL_PushEvent(PP_Resource input_event) {
++ static Uint8 last_scancode = 0;
++ SDL_keysym keysym;
++ static double wheel_clicks_x;
++ static double wheel_clicks_y;
++ SDL_Event event;
++ PP_InputEvent_Type type = g_nacl_input_event_interface->GetType(input_event);
++
++ if (type == PP_INPUTEVENT_TYPE_MOUSEDOWN ||
++ type == PP_INPUTEVENT_TYPE_MOUSEUP) {
++ event.type = (type == PP_INPUTEVENT_TYPE_MOUSEUP) ? SDL_MOUSEBUTTONUP
++ : SDL_MOUSEBUTTONDOWN;
++ event.button.button = translateButton(
++ g_nacl_mouse_input_event_interface->GetButton(input_event));
++ PP_Point point =
++ g_nacl_mouse_input_event_interface->GetPosition(input_event);
++ event.button.x = point.x;
++ event.button.y = point.y;
++ event_queue.PushEvent(copyEvent(&event));
++ } else if (type == PP_INPUTEVENT_TYPE_WHEEL) {
++ PP_FloatPoint ticks =
++ g_nacl_wheel_input_event_interface->GetTicks(input_event);
++ wheel_clicks_x += ticks.x;
++ wheel_clicks_y += ticks.y;
++ int sdl_wheel_clicks_x = trunc(wheel_clicks_x);
++ int sdl_wheel_clicks_y = trunc(wheel_clicks_y);
++ event.button.x = event.button.y = 0;
++ event.button.button =
++ (sdl_wheel_clicks_x > 0) ? SDL_BUTTON_X1 : SDL_BUTTON_X2;
++ for (int i = 0; i < abs(sdl_wheel_clicks_x); i++) {
++ event.type = SDL_MOUSEBUTTONDOWN;
++ event_queue.PushEvent(copyEvent(&event));
++ event.type = SDL_MOUSEBUTTONUP;
++ event_queue.PushEvent(copyEvent(&event));
++ }
++ event.button.button =
++ (sdl_wheel_clicks_y > 0) ? SDL_BUTTON_WHEELUP : SDL_BUTTON_WHEELDOWN;
++ for (int i = 0; i < abs(sdl_wheel_clicks_y); i++) {
++ event.type = SDL_MOUSEBUTTONDOWN;
++ event_queue.PushEvent(copyEvent(&event));
++ event.type = SDL_MOUSEBUTTONUP;
++ event_queue.PushEvent(copyEvent(&event));
++ }
++ wheel_clicks_x -= sdl_wheel_clicks_x;
++ wheel_clicks_y -= sdl_wheel_clicks_y;
++ } else if (type == PP_INPUTEVENT_TYPE_MOUSEMOVE) {
++ event.type = SDL_MOUSEMOTION;
++ PP_Point point =
++ g_nacl_mouse_input_event_interface->GetPosition(input_event);
++ event.motion.x = point.x;
++ event.motion.y = point.y;
++ event_queue.PushEvent(copyEvent(&event));
++ } else if (type == PP_INPUTEVENT_TYPE_KEYDOWN ||
++ type == PP_INPUTEVENT_TYPE_KEYUP ||
++ type == PP_INPUTEVENT_TYPE_CHAR) {
++ // PPAPI sends us separate events for KEYDOWN and CHAR; the first one
++ // contains only the keycode, the second one - only the unicode text.
++ // SDL wants both in SDL_PRESSED event :(
++ // For now, ignore the keydown event for printable ascii (32-126) as we
++ // know we'll get a char event and can set sym directly. For everything
++ // else, risk sending an extra SDL_PRESSED with unicode text and zero
++ // keycode for scancode / sym.
++ // It seems that SDL 1.3 is better in this regard.
++ keysym.scancode =
++ g_nacl_keyboard_input_event_interface->GetKeyCode(input_event);
++ PP_Var unicode_var =
++ g_nacl_keyboard_input_event_interface->GetCharacterText(input_event);
++ uint32_t unicode_var_len;
++ keysym.unicode =
++ g_nacl_var_interface->VarToUtf8(unicode_var, &unicode_var_len)[0];
++ g_nacl_var_interface->Release(unicode_var);
++ keysym.sym = translateKey(keysym.scancode);
++ if (type == PP_INPUTEVENT_TYPE_KEYDOWN) {
++ event.type = SDL_KEYDOWN;
++ last_scancode = keysym.scancode;
++ if (keysym.sym >= ' ' && keysym.sym <= 126) {
++ return;
++ }
++ } else if (type == PP_INPUTEVENT_TYPE_CHAR) {
++ event.type = SDL_KEYDOWN;
++ if (keysym.sym >= ' ' && keysym.sym <= 126) {
++ keysym.scancode = translateAscii(keysym.unicode);
++ keysym.sym = translateKey(keysym.scancode);
++ } else if (last_scancode) {
++ keysym.scancode = last_scancode;
++ keysym.sym = translateKey(keysym.scancode);
++ }
++ } else { // event->type == PP_INPUTEVENT_TYPE_KEYUP
++ event.type = SDL_KEYUP;
++ last_scancode = 0;
++ }
++ keysym.mod = KMOD_NONE;
++ event.key.keysym = keysym;
++ event_queue.PushEvent(copyEvent(&event));
++ } else if (type == PP_INPUTEVENT_TYPE_MOUSEENTER ||
++ type == PP_INPUTEVENT_TYPE_MOUSELEAVE) {
++ event.type = SDL_ACTIVEEVENT;
++ event.active.gain = (type == PP_INPUTEVENT_TYPE_MOUSEENTER) ? 1 : 0;
++ event.active.state = SDL_APPMOUSEFOCUS;
++ event_queue.PushEvent(copyEvent(&event));
++ }
++}
++
++void SDL_NACL_SetHasFocus(int has_focus) {
++ SDL_Event event;
++ event.type = SDL_ACTIVEEVENT;
++ event.active.gain = has_focus ? 1 : 0;
++ event.active.state = SDL_APPINPUTFOCUS;
++ event_queue.PushEvent(copyEvent(&event));
++}
++
++void SDL_NACL_SetPageVisible(int is_visible) {
++ SDL_Event event;
++ event.type = SDL_ACTIVEEVENT;
++ event.active.gain = is_visible ? 1 : 0;
++ event.active.state = SDL_APPACTIVE;
++ event_queue.PushEvent(copyEvent(&event));
++}
++
++void NACL_PumpEvents(_THIS) {
++ SDL_Event* event;
++ while (event = event_queue.PopEvent()) {
++ if (event->type == SDL_MOUSEBUTTONDOWN) {
++ SDL_PrivateMouseButton(SDL_PRESSED, event->button.button,
++ event->button.x, event->button.y);
++ } else if (event->type == SDL_MOUSEBUTTONUP) {
++ SDL_PrivateMouseButton(SDL_RELEASED, event->button.button,
++ event->button.x, event->button.y);
++ } else if (event->type == SDL_MOUSEMOTION) {
++ SDL_PrivateMouseMotion(0, 0, event->motion.x, event->motion.y);
++ } else if (event->type == SDL_KEYDOWN) {
++ SDL_PrivateKeyboard(SDL_PRESSED, &event->key.keysym);
++ } else if (event->type == SDL_KEYUP) {
++ SDL_PrivateKeyboard(SDL_RELEASED, &event->key.keysym);
++ } else if (event->type == SDL_ACTIVEEVENT) {
++ SDL_PrivateAppActive(event->active.gain, event->active.state);
++ }
++ free(event);
++ }
++}
++
++void NACL_InitOSKeymap(_THIS) {
++ /* do nothing. */
++}
+diff --git a/src/video/nacl/SDL_naclevents_c.h b/src/video/nacl/SDL_naclevents_c.h
+new file mode 100644
+index 0000000..71ae309
+--- /dev/null
++++ b/src/video/nacl/SDL_naclevents_c.h
+@@ -0,0 +1,7 @@
++#include "SDL_config.h"
++
++#include "SDL_naclvideo.h"
++#include "SDL_nacl.h"
++
++extern void NACL_InitOSKeymap(_THIS);
++extern void NACL_PumpEvents(_THIS);
+diff --git a/src/video/nacl/SDL_naclvideo.cc b/src/video/nacl/SDL_naclvideo.cc
+new file mode 100644
+index 0000000..f1ababa
+--- /dev/null
++++ b/src/video/nacl/SDL_naclvideo.cc
+@@ -0,0 +1,465 @@
++#include "SDL_config.h"
++
++#include <assert.h>
++
++#include "SDL_naclvideo.h"
++#include "SDL_naclevents_c.h"
++
++#include <ppapi/c/pp_completion_callback.h>
++#include <ppapi/c/pp_errors.h>
++#include <ppapi/c/pp_instance.h>
++#include <ppapi/c/pp_point.h>
++#include <ppapi/c/pp_rect.h>
++#include <ppapi/c/pp_size.h>
++#include <ppapi/c/pp_var.h>
++#include <ppapi/c/ppb_core.h>
++#include <ppapi/c/ppb_graphics_2d.h>
++#include <ppapi/c/ppb_graphics_3d.h>
++#include <ppapi/c/ppb_image_data.h>
++#include <ppapi/c/ppb_input_event.h>
++#include <ppapi/c/ppb_instance.h>
++#include <ppapi/c/ppb_opengles2.h>
++#include <ppapi/c/ppb_var.h>
++#include <ppapi/gles2/gl2ext_ppapi.h>
++
++PP_Instance g_nacl_pp_instance;
++PPB_GetInterface g_nacl_get_interface;
++const PPB_Core_1_0 *g_nacl_core_interface;
++const PPB_Instance_1_0 *g_nacl_instance_interface;
++const PPB_ImageData_1_0 *g_nacl_image_data_interface;
++const PPB_Graphics2D_1_1 *g_nacl_graphics2d_interface;
++const PPB_Graphics3D_1_0 *g_nacl_graphics3d_interface;
++const PPB_OpenGLES2 *g_nacl_opengles2_interface;
++
++const PPB_InputEvent_1_0 *g_nacl_input_event_interface;
++const PPB_MouseInputEvent_1_1 *g_nacl_mouse_input_event_interface;
++const PPB_WheelInputEvent_1_0 *g_nacl_wheel_input_event_interface;
++const PPB_KeyboardInputEvent_1_0 *g_nacl_keyboard_input_event_interface;
++const PPB_Var_1_1 *g_nacl_var_interface;
++
++static int g_nacl_video_width;
++static int g_nacl_video_height;
++
++static int kNaClFlushDelayMs = 20;
++
++#include "SDL_nacl.h"
++
++extern "C" {
++
++#ifdef SDL_VIDEO_OPENGL_REGAL
++#include "SDL_opengl.h"
++#endif
++#include "SDL_video.h"
++#include "SDL_mouse.h"
++#include "../SDL_sysvideo.h"
++#include "../SDL_pixels_c.h"
++#include "../../events/SDL_events_c.h"
++
++#define NACLVID_DRIVER_NAME "nacl"
++
++void SDL_NACL_SetInstance(PP_Instance instance, PPB_GetInterface get_interface,
++ int width, int height) {
++ bool is_resize = g_nacl_pp_instance && (width != g_nacl_video_width ||
++ height != g_nacl_video_height);
++
++ g_nacl_pp_instance = instance;
++ g_nacl_get_interface = get_interface;
++ g_nacl_core_interface =
++ (const PPB_Core_1_0 *)get_interface(PPB_CORE_INTERFACE_1_0);
++ g_nacl_instance_interface =
++ (const PPB_Instance_1_0 *)get_interface(PPB_INSTANCE_INTERFACE_1_0);
++ g_nacl_image_data_interface =
++ (const PPB_ImageData_1_0 *)get_interface(PPB_IMAGEDATA_INTERFACE_1_0);
++ g_nacl_graphics2d_interface =
++ (const PPB_Graphics2D_1_1 *)get_interface(PPB_GRAPHICS_2D_INTERFACE_1_1);
++ g_nacl_graphics3d_interface =
++ (const PPB_Graphics3D_1_0 *)get_interface(PPB_GRAPHICS_3D_INTERFACE_1_0);
++ g_nacl_opengles2_interface =
++ (const PPB_OpenGLES2 *)get_interface(PPB_OPENGLES2_INTERFACE_1_0);
++ g_nacl_input_event_interface =
++ (const PPB_InputEvent_1_0 *)get_interface(PPB_INPUT_EVENT_INTERFACE_1_0);
++ g_nacl_mouse_input_event_interface =
++ (const PPB_MouseInputEvent_1_1 *)get_interface(
++ PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1);
++ g_nacl_wheel_input_event_interface =
++ (const PPB_WheelInputEvent_1_0 *)get_interface(
++ PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0);
++ g_nacl_keyboard_input_event_interface =
++ (const PPB_KeyboardInputEvent_1_0 *)get_interface(
++ PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0);
++ g_nacl_var_interface =
++ (const PPB_Var_1_1 *)get_interface(PPB_VAR_INTERFACE_1_1);
++ g_nacl_video_width = width;
++ g_nacl_video_height = height;
++ if (is_resize && current_video) {
++ current_video->hidden->ow = width;
++ current_video->hidden->oh = height;
++ SDL_PrivateResize(width, height);
++ }
++}
++
++static void flush(void *data, int32_t unused);
++
++/* Initialization/Query functions */
++static int NACL_VideoInit(_THIS, SDL_PixelFormat *vformat);
++static SDL_Rect **NACL_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags);
++static SDL_Surface *NACL_SetVideoMode(_THIS, SDL_Surface *current, int width,
++ int height, int bpp, Uint32 flags);
++static void NACL_VideoQuit(_THIS);
++static void NACL_UpdateRects(_THIS, int numrects, SDL_Rect *rects);
++
++#ifdef SDL_VIDEO_OPENGL_REGAL
++static int NACL_GL_GetAttribute(_THIS, SDL_GLattr attrib, int *value);
++static int NACL_GL_MakeCurrent(_THIS);
++static void NACL_GL_SwapBuffers(_THIS);
++#endif
++
++/* The implementation dependent data for the window manager cursor */
++struct WMcursor {
++ // Fake cursor data to fool SDL into not using its broken (as it seems)
++ // software cursor emulation.
++};
++
++static void NACL_FreeWMCursor(_THIS, WMcursor *cursor);
++static WMcursor *NACL_CreateWMCursor(_THIS, Uint8 *data, Uint8 *mask, int w,
++ int h, int hot_x, int hot_y);
++static int NACL_ShowWMCursor(_THIS, WMcursor *cursor);
++static void NACL_WarpWMCursor(_THIS, Uint16 x, Uint16 y);
++
++static int NACL_Available(void) {
++ return g_nacl_pp_instance != 0;
++}
++
++static void NACL_DeleteDevice(SDL_VideoDevice *device) {
++ SDL_free(device->hidden);
++ SDL_free(device);
++}
++
++static SDL_VideoDevice *NACL_CreateDevice(int devindex) {
++ SDL_VideoDevice *device;
++
++ assert(g_nacl_pp_instance);
++
++ /* Initialize all variables that we clean on shutdown */
++ device = (SDL_VideoDevice *)SDL_malloc(sizeof(SDL_VideoDevice));
++ if (device) {
++ SDL_memset(device, 0, (sizeof *device));
++ device->hidden =
++ (struct SDL_PrivateVideoData *)SDL_malloc((sizeof *device->hidden));
++ }
++ if (device == NULL || device->hidden == NULL) {
++ SDL_OutOfMemory();
++ if (device) {
++ SDL_free(device);
++ }
++ return 0;
++ }
++ SDL_memset(device->hidden, 0, (sizeof *device->hidden));
++
++ device->hidden->ow = g_nacl_video_width;
++ device->hidden->oh = g_nacl_video_height;
++
++ // TODO: query the fullscreen size
++
++ /* Set the function pointers */
++ device->VideoInit = NACL_VideoInit;
++ device->ListModes = NACL_ListModes;
++ device->SetVideoMode = NACL_SetVideoMode;
++ device->UpdateRects = NACL_UpdateRects;
++ device->VideoQuit = NACL_VideoQuit;
++ device->InitOSKeymap = NACL_InitOSKeymap;
++ device->PumpEvents = NACL_PumpEvents;
++
++ device->FreeWMCursor = NACL_FreeWMCursor;
++ device->CreateWMCursor = NACL_CreateWMCursor;
++ device->ShowWMCursor = NACL_ShowWMCursor;
++ device->WarpWMCursor = NACL_WarpWMCursor;
++
++#ifdef SDL_VIDEO_OPENGL_REGAL
++ device->GL_GetAttribute = NACL_GL_GetAttribute;
++ device->GL_MakeCurrent = NACL_GL_MakeCurrent;
++ device->GL_SwapBuffers = NACL_GL_SwapBuffers;
++#endif
++
++ device->free = NACL_DeleteDevice;
++
++ return device;
++}
++
++VideoBootStrap NACL_bootstrap = {
++ NACLVID_DRIVER_NAME, "SDL Native Client video driver",
++ NACL_Available, NACL_CreateDevice
++};
++
++int NACL_VideoInit(_THIS, SDL_PixelFormat *vformat) {
++ fprintf(stderr,
++ "SDL: Congratulations you are using the SDL nacl video driver!\n");
++
++ /* Determine the screen depth (use default 8-bit depth) */
++ /* we change this during the SDL_SetVideoMode implementation... */
++ vformat->BitsPerPixel = 32;
++ vformat->BytesPerPixel = 4;
++
++ _this->info.current_w = g_nacl_video_width;
++ _this->info.current_h = g_nacl_video_height;
++
++ /* We're done! */
++ return 0;
++}
++
++SDL_Rect **NACL_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags) {
++ // TODO: list modes
++ return (SDL_Rect **)-1;
++}
++
++SDL_Surface *NACL_SetVideoMode(_THIS, SDL_Surface *current, int width,
++ int height, int bpp, Uint32 flags) {
++
++ fprintf(stderr, "SDL: setvideomode %dx%d bpp=%d opengl=%d flags=%u\n", width,
++ height, bpp, flags & SDL_OPENGL ? 1 : 0, flags);
++ fflush(stderr);
++
++ if (width > _this->hidden->ow || height > _this->hidden->oh) return NULL;
++ _this->hidden->bpp = bpp = 32; // Let SDL handle pixel format conversion.
++ _this->hidden->w = width;
++ _this->hidden->h = height;
++
++ if (_this->hidden->context2d) {
++ g_nacl_core_interface->ReleaseResource(_this->hidden->context2d);
++ _this->hidden->context2d = 0;
++ }
++
++ if (_this->hidden->context3d) {
++ g_nacl_core_interface->ReleaseResource(_this->hidden->context3d);
++ _this->hidden->context3d = 0;
++ }
++
++ if (flags & SDL_OPENGL) {
++ int32_t attribs[] = {
++ PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 8,
++ PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 24,
++ PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 8,
++ PP_GRAPHICS3DATTRIB_SAMPLES, 0,
++ PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
++ PP_GRAPHICS3DATTRIB_WIDTH, width,
++ PP_GRAPHICS3DATTRIB_HEIGHT, height,
++ PP_GRAPHICS3DATTRIB_NONE
++ };
++ _this->hidden->context3d =
++ g_nacl_graphics3d_interface->Create(g_nacl_pp_instance, 0, attribs);
++
++ if (!g_nacl_instance_interface->BindGraphics(g_nacl_pp_instance,
++ _this->hidden->context3d)) {
++ fprintf(stderr, "***** Couldn't bind the graphic3d context *****\n");
++ return NULL;
++ }
++ } else {
++ PP_Size size = PP_MakeSize(width, height);
++ _this->hidden->context2d = g_nacl_graphics2d_interface->Create(
++ g_nacl_pp_instance, &size, PP_FALSE /* is_always_opaque */);
++ assert(_this->hidden->context2d != 0);
++
++ if (!g_nacl_instance_interface->BindGraphics(g_nacl_pp_instance,
++ _this->hidden->context2d)) {
++ fprintf(stderr, "***** Couldn't bind the graphic2d context *****\n");
++ return NULL;
++ }
++
++ if (_this->hidden->image_data) {
++ g_nacl_core_interface->ReleaseResource(_this->hidden->image_data);
++ }
++
++ _this->hidden->image_data = g_nacl_image_data_interface->Create(
++ g_nacl_pp_instance, PP_IMAGEDATAFORMAT_BGRA_PREMUL, &size,
++ PP_FALSE /* init_to_zero */);
++ assert(_this->hidden->image_data != 0);
++
++ current->pixels =
++ g_nacl_image_data_interface->Map(_this->hidden->image_data);
++ }
++
++ /* Allocate the new pixel format for the screen */
++ if (!SDL_ReallocFormat(current, bpp, 0xFF0000, 0xFF00, 0xFF, 0)) {
++ SDL_SetError("Couldn't allocate new pixel format for requested mode");
++ return NULL;
++ }
++
++ /* Set up the new mode framebuffer */
++ current->flags = flags & (SDL_FULLSCREEN | SDL_OPENGL);
++ _this->hidden->bpp = bpp;
++ _this->hidden->w = current->w = width;
++ _this->hidden->h = current->h = height;
++ current->pitch = current->w * (bpp / 8);
++
++ /* We're done */
++ return current;
++}
++
++static void NACL_UpdateRects(_THIS, int numrects, SDL_Rect *rects) {
++ if (_this->hidden->context2d == 0) // not initialized
++ return;
++
++ assert(_this->hidden->image_data);
++ assert(_this->hidden->w > 0);
++ assert(_this->hidden->h > 0);
++
++ // Clear alpha channel in the ImageData.
++ unsigned char *start = (unsigned char*)_this->screen->pixels;
++ unsigned char *end =
++ start + (_this->hidden->w * _this->hidden->h * _this->hidden->bpp / 8);
++ for (unsigned char *p = start + 3; p < end; p += 4) *p = 0xFF;
++
++ // Flush on the main thread.
++ for (int i = 0; i < numrects; ++i) {
++ SDL_Rect &r = rects[i];
++ PP_Point top_left = PP_MakePoint(0, 0);
++ PP_Rect src_rect = PP_MakeRectFromXYWH(r.x, r.y, r.w, r.h);
++ g_nacl_graphics2d_interface->PaintImageData(_this->hidden->context2d,
++ _this->hidden->image_data,
++ &top_left, &src_rect);
++ }
++
++ g_nacl_graphics2d_interface->Flush(_this->hidden->context2d,
++ PP_BlockUntilComplete());
++}
++
++static void NACL_FreeWMCursor(_THIS, WMcursor *cursor) {
++ delete cursor;
++}
++
++static WMcursor *NACL_CreateWMCursor(_THIS, Uint8 *data, Uint8 *mask, int w,
++ int h, int hot_x, int hot_y) {
++ return new WMcursor();
++}
++
++static int NACL_ShowWMCursor(_THIS, WMcursor *cursor) {
++ return 1; // Success!
++}
++
++static void NACL_WarpWMCursor(_THIS, Uint16 x, Uint16 y) {}
++
++/* Note: If we are terminated, this could be called in the middle of
++ another SDL video routine -- notably UpdateRects.
++*/
++void NACL_VideoQuit(_THIS) {
++ if (_this->hidden->context2d) {
++ g_nacl_core_interface->ReleaseResource(_this->hidden->context2d);
++ _this->hidden->context2d = 0;
++ }
++
++ if (_this->hidden->context3d) {
++ g_nacl_core_interface->ReleaseResource(_this->hidden->context3d);
++ _this->hidden->context3d = 0;
++ }
++
++ if (_this->hidden->image_data) {
++ g_nacl_image_data_interface->Unmap(_this->hidden->image_data);
++ g_nacl_core_interface->ReleaseResource(_this->hidden->image_data);
++ _this->hidden->image_data = 0;
++ }
++
++ // No need to free pixels as this is a pointer directly to
++ // the pixel data within the image_data.
++ _this->screen->pixels = NULL;
++}
++
++#ifdef SDL_VIDEO_OPENGL_REGAL
++static void regalLogCallback(GLenum stream, GLsizei length,
++ const GLchar *message, GLvoid *context) {
++ fprintf(stderr, "regal: %s\n", message);
++}
++
++static int NACL_GL_GetAttribute(_THIS, SDL_GLattr attrib, int *value) {
++ int unsupported = 0;
++ int nacl_attrib = 0;
++
++ switch (attrib) {
++ case SDL_GL_RED_SIZE:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_RED_SIZE;
++ break;
++ case SDL_GL_GREEN_SIZE:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_GREEN_SIZE;
++ break;
++ case SDL_GL_BLUE_SIZE:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_BLUE_SIZE;
++ break;
++ case SDL_GL_ALPHA_SIZE:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_ALPHA_SIZE;
++ break;
++ case SDL_GL_DEPTH_SIZE:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_DEPTH_SIZE;
++ break;
++ case SDL_GL_STENCIL_SIZE:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_STENCIL_SIZE;
++ break;
++ case SDL_GL_MULTISAMPLEBUFFERS:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS;
++ break;
++ case SDL_GL_MULTISAMPLESAMPLES:
++ nacl_attrib = PP_GRAPHICS3DATTRIB_SAMPLES;
++ break;
++ // The rest of the these attributes are not part of PPAPI
++ case SDL_GL_DOUBLEBUFFER:
++ case SDL_GL_BUFFER_SIZE:
++ case SDL_GL_ACCUM_RED_SIZE:
++ case SDL_GL_ACCUM_GREEN_SIZE:
++ case SDL_GL_ACCUM_BLUE_SIZE:
++ case SDL_GL_ACCUM_ALPHA_SIZE:
++ case SDL_GL_STEREO:
++ case SDL_GL_ACCELERATED_VISUAL:
++ case SDL_GL_SWAP_CONTROL:
++ default:
++ unsupported = 1;
++ break;
++ }
++
++ if (unsupported) {
++ SDL_SetError("OpenGL attribute is unsupported by NaCl: %d", attrib);
++ return -1;
++ }
++
++ int32_t attribs[] = {nacl_attrib, 0, PP_GRAPHICS3DATTRIB_NONE, };
++
++ int retval = g_nacl_graphics3d_interface->GetAttribs(_this->hidden->context3d,
++ attribs);
++ if (retval != PP_OK) {
++ // TODO(sbc): GetAttribs seems to always return PP_ERROR_FAILED(-2).
++ // fprintf(stderr, "SDL: GetAttribs failed %#x -> %d\n", nacl_attrib,
++ // retval);
++ SDL_SetError("Error getting OpenGL attribute (%d) from NaCl: %d", attrib,
++ retval);
++ return -1;
++ }
++
++ *value = attribs[1];
++ return 0;
++}
++
++static int NACL_GL_MakeCurrent(_THIS) {
++ if (!_this->hidden->context3d) {
++ assert(_this->hidden->context3d);
++ SDL_SetError("GL_MakeCurrent called without an OpenGL video mode set");
++ return -1;
++ }
++ fprintf(stderr, "SDL: making GL context current\n");
++ glSetCurrentContextPPAPI(_this->hidden->context3d);
++
++ RegalMakeCurrent(_this->hidden->context3d,
++ (PPB_OpenGLES2 *)g_nacl_opengles2_interface);
++ glLogMessageCallbackREGAL(regalLogCallback);
++ return 0;
++}
++
++static void NACL_GL_SwapBuffers(_THIS) {
++ if (!_this->hidden->context3d) {
++ assert(_this->hidden->context3d);
++ fprintf(stderr,
++ "SDL: GL_SwapBuffers called without an OpenGL video mode set\n");
++ return;
++ }
++ g_nacl_graphics3d_interface->SwapBuffers(_this->hidden->context3d,
++ PP_BlockUntilComplete());
++}
++#endif
++
++} // extern "C"
+diff --git a/src/video/nacl/SDL_naclvideo.h b/src/video/nacl/SDL_naclvideo.h
+new file mode 100644
+index 0000000..7dde7dd
+--- /dev/null
++++ b/src/video/nacl/SDL_naclvideo.h
+@@ -0,0 +1,36 @@
++#include "SDL_config.h"
++
++#ifndef _SDL_naclvideo_h
++#define _SDL_naclvideo_h
++
++extern "C" {
++#include "../SDL_sysvideo.h"
++#include "SDL_mutex.h"
++}
++
++#include <ppapi/cpp/instance.h>
++#include <ppapi/cpp/graphics_2d.h>
++#include <ppapi/cpp/graphics_3d.h>
++#include <vector>
++
++
++/* Hidden "this" pointer for the video functions */
++#define _THIS SDL_VideoDevice *_this
++
++
++/* Private display data */
++
++struct SDL_PrivateVideoData {
++ int bpp;
++ int w, h;
++ void *buffer;
++
++ int ow, oh; // plugin output dimensions
++ int fsw, fsh; // fullscreen dimensions
++
++ PP_Resource image_data;
++ PP_Resource context2d; // The PPAPI 2D drawing context.
++ PP_Resource context3d; // The PPAPI 3D drawing context.
++};
++
++#endif /* _SDL_naclvideo_h */
+diff --git a/src/video/nacl/eventqueue.h b/src/video/nacl/eventqueue.h
+new file mode 100644
+index 0000000..0a6a0cd
+--- /dev/null
++++ b/src/video/nacl/eventqueue.h
+@@ -0,0 +1,40 @@
++#ifndef _SDL_nacl_eventqueue_h
++#define _SDL_nacl_eventqueue_h
++
++#include "SDL_mutex.h"
++
++#include <queue>
++
++class EventQueue {
++public:
++ EventQueue() {
++ mu_ = SDL_CreateMutex();
++ }
++
++ ~EventQueue() {
++ SDL_DestroyMutex(mu_);
++ }
++
++ SDL_Event* PopEvent() {
++ SDL_LockMutex(mu_);
++ SDL_Event* event = NULL;
++ if (!queue_.empty()) {
++ event = queue_.front();
++ queue_.pop();
++ }
++ SDL_UnlockMutex(mu_);
++ return event;
++ }
++
++ void PushEvent(SDL_Event* event) {
++ SDL_LockMutex(mu_);
++ queue_.push(event);
++ SDL_UnlockMutex(mu_);
++ }
++
++private:
++ std::queue<SDL_Event*> queue_;
++ SDL_mutex* mu_;
++};
++
++#endif // _SDL_nacl_eventqueue_h
+diff --git a/test/configure b/test/configure
+index 30b56b6..10046ec 100755
+--- a/test/configure
++++ b/test/configure
+@@ -1,18 +1,20 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.63.
++# Generated by GNU Autoconf 2.69.
++#
++#
++# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
++#
+ #
+-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+-## --------------------- ##
+-## M4sh Initialization. ##
+-## --------------------- ##
++## -------------------- ##
++## M4sh Initialization. ##
++## -------------------- ##
+
+ # Be more Bourne compatible
+ DUALCASE=1; export DUALCASE # for MKS sh
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+@@ -20,23 +22,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+ else
+- case `(set -o) 2>/dev/null` in
+- *posix*) set -o posix ;;
++ case `(set -o) 2>/dev/null` in #(
++ *posix*) :
++ set -o posix ;; #(
++ *) :
++ ;;
+ esac
+-
+ fi
+
+
+-
+-
+-# PATH needs CR
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+ as_nl='
+ '
+ export as_nl
+@@ -44,7 +38,13 @@ export as_nl
+ as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
++# Prefer a ksh shell builtin over an external printf program on Solaris,
++# but without wasting forks for bash or zsh.
++if test -z "$BASH_VERSION$ZSH_VERSION" \
++ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
++ as_echo='print -r --'
++ as_echo_n='print -rn --'
++elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+ else
+@@ -55,7 +55,7 @@ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+- case $arg in
++ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+@@ -78,13 +78,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
+ }
+ fi
+
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+- as_unset=unset
+-else
+- as_unset=false
+-fi
+-
+
+ # IFS
+ # We need space, tab and new line, in precisely that order. Quoting is
+@@ -94,15 +87,16 @@ fi
+ IFS=" "" $as_nl"
+
+ # Find who we are. Look in the path if we contain no directory separator.
+-case $0 in
++as_myself=
++case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++ done
+ IFS=$as_save_IFS
+
+ ;;
+@@ -114,12 +108,16 @@ if test "x$as_myself" = x; then
+ fi
+ if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+- { (exit 1); exit 1; }
++ exit 1
+ fi
+
+-# Work around bugs in pre-3.0 UWIN ksh.
+-for as_var in ENV MAIL MAILPATH
+-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
++# Unset variables that we do not need and which cause bugs (e.g. in
++# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
++# suppresses any "Segmentation fault" message there. '((' could
++# trigger a bug in pdksh 5.2.14.
++for as_var in BASH_ENV ENV MAIL MAILPATH
++do eval test x\${$as_var+set} = xset \
++ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+ done
+ PS1='$ '
+ PS2='> '
+@@ -131,330 +129,343 @@ export LC_ALL
+ LANGUAGE=C
+ export LANGUAGE
+
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1 &&
+- test "X`expr 00001 : '.*\(...\)'`" = X001; then
+- as_expr=expr
+-else
+- as_expr=false
+-fi
+-
+-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+- as_basename=basename
+-else
+- as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename -- "$0" ||
+-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+- X"$0" : 'X\(//\)$' \| \
+- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+-$as_echo X/"$0" |
+- sed '/^.*\/\([^/][^/]*\)\/*$/{
+- s//\1/
+- q
+- }
+- /^X\/\(\/\/\)$/{
+- s//\1/
+- q
+- }
+- /^X\/\(\/\).*/{
+- s//\1/
+- q
+- }
+- s/.*/./; q'`
+-
+ # CDPATH.
+-$as_unset CDPATH
+-
+-
++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
++
++# Use a proper internal environment variable to ensure we don't fall
++ # into an infinite loop, continuously re-executing ourselves.
++ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
++ _as_can_reexec=no; export _as_can_reexec;
++ # We cannot yet assume a decent shell, so we have to provide a
++# neutralization value for shells without unset; and this also
++# works around shells that cannot unset nonexistent variables.
++# Preserve -v and -x to the replacement shell.
++BASH_ENV=/dev/null
++ENV=/dev/null
++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
++case $- in # ((((
++ *v*x* | *x*v* ) as_opts=-vx ;;
++ *v* ) as_opts=-v ;;
++ *x* ) as_opts=-x ;;
++ * ) as_opts= ;;
++esac
++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++# Admittedly, this is quite paranoid, since all the known shells bail
++# out after a failed `exec'.
++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
++as_fn_exit 255
++ fi
++ # We don't want this to propagate to other subprocesses.
++ { _as_can_reexec=; unset _as_can_reexec;}
+ if test "x$CONFIG_SHELL" = x; then
+- if (eval ":") 2>/dev/null; then
+- as_have_required=yes
++ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
++ emulate sh
++ NULLCMD=:
++ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
++ # is contrary to our usage. Disable this feature.
++ alias -g '\${1+\"\$@\"}'='\"\$@\"'
++ setopt NO_GLOB_SUBST
+ else
+- as_have_required=no
++ case \`(set -o) 2>/dev/null\` in #(
++ *posix*) :
++ set -o posix ;; #(
++ *) :
++ ;;
++esac
+ fi
+-
+- if test $as_have_required = yes && (eval ":
+-(as_func_return () {
+- (exit \$1)
+-}
+-as_func_success () {
+- as_func_return 0
+-}
+-as_func_failure () {
+- as_func_return 1
+-}
+-as_func_ret_success () {
+- return 0
+-}
+-as_func_ret_failure () {
+- return 1
+-}
++"
++ as_required="as_fn_return () { (exit \$1); }
++as_fn_success () { as_fn_return 0; }
++as_fn_failure () { as_fn_return 1; }
++as_fn_ret_success () { return 0; }
++as_fn_ret_failure () { return 1; }
+
+ exitcode=0
+-if as_func_success; then
+- :
+-else
+- exitcode=1
+- echo as_func_success failed.
+-fi
++as_fn_success || { exitcode=1; echo as_fn_success failed.; }
++as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
++as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
++as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
++if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+-if as_func_failure; then
+- exitcode=1
+- echo as_func_failure succeeded.
+-fi
+-
+-if as_func_ret_success; then
+- :
+ else
+- exitcode=1
+- echo as_func_ret_success failed.
+-fi
+-
+-if as_func_ret_failure; then
+- exitcode=1
+- echo as_func_ret_failure succeeded.
+-fi
+-
+-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+- :
++ exitcode=1; echo positional parameters were not saved.
++fi
++test x\$exitcode = x0 || exit 1
++test -x / || exit 1"
++ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
++ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
++ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
++ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
++ if (eval "$as_required") 2>/dev/null; then :
++ as_have_required=yes
+ else
+- exitcode=1
+- echo positional parameters were not saved.
++ as_have_required=no
+ fi
++ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+-test \$exitcode = 0) || { (exit 1); exit 1; }
+-
+-(
+- as_lineno_1=\$LINENO
+- as_lineno_2=\$LINENO
+- test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+- test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+-") 2> /dev/null; then
+- :
+ else
+- as_candidate_shells=
+- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++as_found=false
+ for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- case $as_dir in
++ as_found=:
++ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
++ # Try only shells that exist, to save several forks.
++ as_shell=$as_dir/$as_base
++ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
++ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
++ CONFIG_SHELL=$as_shell as_have_required=yes
++ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
++ break 2
++fi
++fi
+ done;;
+ esac
++ as_found=false
+ done
++$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
++ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
++ CONFIG_SHELL=$SHELL as_have_required=yes
++fi; }
+ IFS=$as_save_IFS
+
+
+- for as_shell in $as_candidate_shells $SHELL; do
+- # Try only shells that exist, to save several forks.
+- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+- { ("$as_shell") 2> /dev/null <<\_ASEOF
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+- emulate sh
+- NULLCMD=:
+- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+- # is contrary to our usage. Disable this feature.
+- alias -g '${1+"$@"}'='"$@"'
+- setopt NO_GLOB_SUBST
+-else
+- case `(set -o) 2>/dev/null` in
+- *posix*) set -o posix ;;
+-esac
+-
+-fi
+-
+-
+-:
+-_ASEOF
+-}; then
+- CONFIG_SHELL=$as_shell
+- as_have_required=yes
+- if { "$as_shell" 2> /dev/null <<\_ASEOF
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+- emulate sh
+- NULLCMD=:
+- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+- # is contrary to our usage. Disable this feature.
+- alias -g '${1+"$@"}'='"$@"'
+- setopt NO_GLOB_SUBST
+-else
+- case `(set -o) 2>/dev/null` in
+- *posix*) set -o posix ;;
++ if test "x$CONFIG_SHELL" != x; then :
++ export CONFIG_SHELL
++ # We cannot yet assume a decent shell, so we have to provide a
++# neutralization value for shells without unset; and this also
++# works around shells that cannot unset nonexistent variables.
++# Preserve -v and -x to the replacement shell.
++BASH_ENV=/dev/null
++ENV=/dev/null
++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
++case $- in # ((((
++ *v*x* | *x*v* ) as_opts=-vx ;;
++ *v* ) as_opts=-v ;;
++ *x* ) as_opts=-x ;;
++ * ) as_opts= ;;
+ esac
+-
+-fi
+-
+-
+-:
+-(as_func_return () {
+- (exit $1)
+-}
+-as_func_success () {
+- as_func_return 0
+-}
+-as_func_failure () {
+- as_func_return 1
+-}
+-as_func_ret_success () {
+- return 0
+-}
+-as_func_ret_failure () {
+- return 1
+-}
+-
+-exitcode=0
+-if as_func_success; then
+- :
+-else
+- exitcode=1
+- echo as_func_success failed.
+-fi
+-
+-if as_func_failure; then
+- exitcode=1
+- echo as_func_failure succeeded.
+-fi
+-
+-if as_func_ret_success; then
+- :
+-else
+- exitcode=1
+- echo as_func_ret_success failed.
+-fi
+-
+-if as_func_ret_failure; then
+- exitcode=1
+- echo as_func_ret_failure succeeded.
+-fi
+-
+-if ( set x; as_func_ret_success y && test x = "$1" ); then
+- :
+-else
+- exitcode=1
+- echo positional parameters were not saved.
++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++# Admittedly, this is quite paranoid, since all the known shells bail
++# out after a failed `exec'.
++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
++exit 255
++fi
++
++ if test x$as_have_required = xno; then :
++ $as_echo "$0: This script requires a shell more modern than all"
++ $as_echo "$0: the shells that I found on your system."
++ if test x${ZSH_VERSION+set} = xset ; then
++ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
++ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
++ else
++ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
++$0: including any error possibly output before this
++$0: message. Then install a modern shell, or manually run
++$0: the script under such a shell if you do have one."
++ fi
++ exit 1
+ fi
+-
+-test $exitcode = 0) || { (exit 1); exit 1; }
+-
+-(
+- as_lineno_1=$LINENO
+- as_lineno_2=$LINENO
+- test "x$as_lineno_1" != "x$as_lineno_2" &&
+- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+-
+-_ASEOF
+-}; then
+- break
+ fi
+-
+ fi
++SHELL=${CONFIG_SHELL-/bin/sh}
++export SHELL
++# Unset more variables known to interfere with behavior of common tools.
++CLICOLOR_FORCE= GREP_OPTIONS=
++unset CLICOLOR_FORCE GREP_OPTIONS
+
+- done
+-
+- if test "x$CONFIG_SHELL" != x; then
+- for as_var in BASH_ENV ENV
+- do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+- done
+- export CONFIG_SHELL
+- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+-fi
++## --------------------- ##
++## M4sh Shell Functions. ##
++## --------------------- ##
++# as_fn_unset VAR
++# ---------------
++# Portably unset VAR.
++as_fn_unset ()
++{
++ { eval $1=; unset $1;}
++}
++as_unset=as_fn_unset
+
++# as_fn_set_status STATUS
++# -----------------------
++# Set $? to STATUS, without forking.
++as_fn_set_status ()
++{
++ return $1
++} # as_fn_set_status
+
+- if test $as_have_required = no; then
+- echo This script requires a shell more modern than all the
+- echo shells that I found on your system. Please install a
+- echo modern shell, or manually run the script under such a
+- echo shell if you do have one.
+- { (exit 1); exit 1; }
+-fi
++# as_fn_exit STATUS
++# -----------------
++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
++as_fn_exit ()
++{
++ set +e
++ as_fn_set_status $1
++ exit $1
++} # as_fn_exit
++
++# as_fn_mkdir_p
++# -------------
++# Create "$as_dir" as a directory, including parents if necessary.
++as_fn_mkdir_p ()
++{
+
++ case $as_dir in #(
++ -*) as_dir=./$as_dir;;
++ esac
++ test -d "$as_dir" || eval $as_mkdir_p || {
++ as_dirs=
++ while :; do
++ case $as_dir in #(
++ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
++ *) as_qdir=$as_dir;;
++ esac
++ as_dirs="'$as_qdir' $as_dirs"
++ as_dir=`$as_dirname -- "$as_dir" ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$as_dir" : 'X\(//\)[^/]' \| \
++ X"$as_dir" : 'X\(//\)$' \| \
++ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X"$as_dir" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
++ s//\1/
++ q
++ }
++ /^X\(\/\/\)[^/].*/{
++ s//\1/
++ q
++ }
++ /^X\(\/\/\)$/{
++ s//\1/
++ q
++ }
++ /^X\(\/\).*/{
++ s//\1/
++ q
++ }
++ s/.*/./; q'`
++ test -d "$as_dir" && break
++ done
++ test -z "$as_dirs" || eval "mkdir $as_dirs"
++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+-fi
+
+-fi
++} # as_fn_mkdir_p
+
++# as_fn_executable_p FILE
++# -----------------------
++# Test if FILE is an executable regular file.
++as_fn_executable_p ()
++{
++ test -f "$1" && test -x "$1"
++} # as_fn_executable_p
++# as_fn_append VAR VALUE
++# ----------------------
++# Append the text in VALUE to the end of the definition contained in VAR. Take
++# advantage of any shell optimizations that allow amortized linear growth over
++# repeated appends, instead of the typical quadratic growth present in naive
++# implementations.
++if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
++ eval 'as_fn_append ()
++ {
++ eval $1+=\$2
++ }'
++else
++ as_fn_append ()
++ {
++ eval $1=\$$1\$2
++ }
++fi # as_fn_append
++
++# as_fn_arith ARG...
++# ------------------
++# Perform arithmetic evaluation on the ARGs, and store the result in the
++# global $as_val. Take advantage of shells that can avoid forks. The arguments
++# must be portable across $(()) and expr.
++if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
++ eval 'as_fn_arith ()
++ {
++ as_val=$(( $* ))
++ }'
++else
++ as_fn_arith ()
++ {
++ as_val=`expr "$@" || test $? -eq 1`
++ }
++fi # as_fn_arith
+
+
+-(eval "as_func_return () {
+- (exit \$1)
+-}
+-as_func_success () {
+- as_func_return 0
+-}
+-as_func_failure () {
+- as_func_return 1
+-}
+-as_func_ret_success () {
+- return 0
+-}
+-as_func_ret_failure () {
+- return 1
+-}
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
++# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
++# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
++# script with STATUS, using 1 if that was 0.
++as_fn_error ()
++{
++ as_status=$1; test $as_status -eq 0 && as_status=1
++ if test "$4"; then
++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
++ fi
++ $as_echo "$as_me: error: $2" >&2
++ as_fn_exit $as_status
++} # as_fn_error
+
+-exitcode=0
+-if as_func_success; then
+- :
++if expr a : '\(a\)' >/dev/null 2>&1 &&
++ test "X`expr 00001 : '.*\(...\)'`" = X001; then
++ as_expr=expr
+ else
+- exitcode=1
+- echo as_func_success failed.
+-fi
+-
+-if as_func_failure; then
+- exitcode=1
+- echo as_func_failure succeeded.
++ as_expr=false
+ fi
+
+-if as_func_ret_success; then
+- :
++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
++ as_basename=basename
+ else
+- exitcode=1
+- echo as_func_ret_success failed.
+-fi
+-
+-if as_func_ret_failure; then
+- exitcode=1
+- echo as_func_ret_failure succeeded.
++ as_basename=false
+ fi
+
+-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+- :
++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
++ as_dirname=dirname
+ else
+- exitcode=1
+- echo positional parameters were not saved.
++ as_dirname=false
+ fi
+
+-test \$exitcode = 0") || {
+- echo No shell found that supports shell functions.
+- echo Please tell bug-autoconf@gnu.org about your system,
+- echo including any error possibly output before this message.
+- echo This can help us improve future autoconf versions.
+- echo Configuration will now proceed without shell functions.
+-}
+-
++as_me=`$as_basename -- "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X/"$0" |
++ sed '/^.*\/\([^/][^/]*\)\/*$/{
++ s//\1/
++ q
++ }
++ /^X\/\(\/\/\)$/{
++ s//\1/
++ q
++ }
++ /^X\/\(\/\).*/{
++ s//\1/
++ q
++ }
++ s/.*/./; q'`
+
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+- as_lineno_1=$LINENO
+- as_lineno_2=$LINENO
+- test "x$as_lineno_1" != "x$as_lineno_2" &&
+- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+- # uniformly replaced by the line number. The first 'sed' inserts a
+- # line-number line after each line using $LINENO; the second 'sed'
+- # does the real work. The second script uses 'N' to pair each
+- # line-number line with the line containing $LINENO, and appends
+- # trailing '-' during substitution so that $LINENO is not a special
+- # case at line end.
+- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+- # scripts with optimization help from Paolo Bonzini. Blame Lee
+- # E. McMahon (1931-1989) for sed's syntax. :-)
++ as_lineno_1=$LINENO as_lineno_1a=$LINENO
++ as_lineno_2=$LINENO as_lineno_2a=$LINENO
++ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
++ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
++ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+@@ -471,9 +482,12 @@ test \$exitcode = 0") || {
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+- { (exit 1); exit 1; }; }
++ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
++ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
++ # already done that, so ensure we don't try to do so again and fall
++ # in an infinite loop. This has already happened in practice.
++ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+@@ -482,29 +496,18 @@ test \$exitcode = 0") || {
+ exit
+ }
+
+-
+-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+- as_dirname=dirname
+-else
+- as_dirname=false
+-fi
+-
+ ECHO_C= ECHO_N= ECHO_T=
+-case `echo -n x` in
++case `echo -n x` in #(((((
+ -n*)
+- case `echo 'x\c'` in
++ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+- *) ECHO_C='\c';;
++ xy) ECHO_C='\c';;
++ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
++ ECHO_T=' ';;
+ esac;;
+ *)
+ ECHO_N='-n';;
+ esac
+-if expr a : '\(a\)' >/dev/null 2>&1 &&
+- test "X`expr 00001 : '.*\(...\)'`" = X001; then
+- as_expr=expr
+-else
+- as_expr=false
+-fi
+
+ rm -f conf$$ conf$$.exe conf$$.file
+ if test -d conf$$.dir; then
+@@ -519,49 +522,29 @@ if (echo >conf$$.file) 2>/dev/null; then
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+- # In both cases, we have to default to `cp -p'.
++ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+ rmdir conf$$.dir 2>/dev/null
+
+ if mkdir -p . 2>/dev/null; then
+- as_mkdir_p=:
++ as_mkdir_p='mkdir -p "$as_dir"'
+ else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+ fi
+
+-if test -x / >/dev/null 2>&1; then
+- as_test_x='test -x'
+-else
+- if ls -dL / >/dev/null 2>&1; then
+- as_ls_L_option=L
+- else
+- as_ls_L_option=
+- fi
+- as_test_x='
+- eval sh -c '\''
+- if test -d "$1"; then
+- test -d "$1/.";
+- else
+- case $1 in
+- -*)set "./$1";;
+- esac;
+- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+- ???[sx]*):;;*)false;;esac;fi
+- '\'' sh
+- '
+-fi
+-as_executable_p=$as_test_x
++as_test_x='test -x'
++as_executable_p=as_fn_executable_p
+
+ # Sed expression to map a string onto a valid CPP name.
+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+@@ -570,11 +553,11 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+-
+-exec 7<&0 </dev/null 6>&1
++test -n "$DJDIR" || exec 7<&0 </dev/null
++exec 6>&1
+
+ # Name of the host.
+-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
++# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+ # so uname gets run too.
+ ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+@@ -589,7 +572,6 @@ cross_compiling=no
+ subdirs=
+ MFLAGS=
+ MAKEFLAGS=
+-SHELL=${CONFIG_SHELL-/bin/sh}
+
+ # Identity of this package.
+ PACKAGE_NAME=
+@@ -597,6 +579,7 @@ PACKAGE_TARNAME=
+ PACKAGE_VERSION=
+ PACKAGE_STRING=
+ PACKAGE_BUGREPORT=
++PACKAGE_URL=
+
+ ac_unique_file="README"
+ ac_subst_vars='LTLIBOBJS
+@@ -655,6 +638,7 @@ bindir
+ program_transform_name
+ prefix
+ exec_prefix
++PACKAGE_URL
+ PACKAGE_BUGREPORT
+ PACKAGE_STRING
+ PACKAGE_VERSION
+@@ -742,8 +726,9 @@ do
+ fi
+
+ case $ac_option in
+- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+- *) ac_optarg=yes ;;
++ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
++ *=) ac_optarg= ;;
++ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+@@ -788,8 +773,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -815,8 +799,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -1020,8 +1003,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -1037,8 +1019,7 @@ do
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+@@ -1068,17 +1049,17 @@ do
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+- -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
+-Try \`$0 --help' for more information." >&2
+- { (exit 1); exit 1; }; }
++ -*) as_fn_error $? "unrecognized option: \`$ac_option'
++Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+- { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+- { (exit 1); exit 1; }; }
++ case $ac_envvar in #(
++ '' | [0-9]* | *[!_$as_cr_alnum]* )
++ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
++ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+@@ -1087,7 +1068,7 @@ Try \`$0 --help' for more information." >&2
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
++ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+@@ -1095,15 +1076,13 @@ done
+
+ if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+- { $as_echo "$as_me: error: missing argument to $ac_option" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "missing argument to $ac_option"
+ fi
+
+ if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+- fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+- { (exit 1); exit 1; }; } ;;
++ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+ fi
+@@ -1126,8 +1105,7 @@ do
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+- { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+ done
+
+ # There might be people who depend on the old broken behavior: `$host'
+@@ -1141,8 +1119,6 @@ target=$target_alias
+ if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+- If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+@@ -1157,11 +1133,9 @@ test "$silent" = yes && exec 6>/dev/null
+ ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ ac_ls_di=`ls -di .` &&
+ ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+- { $as_echo "$as_me: error: working directory cannot be determined" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "working directory cannot be determined"
+ test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+- { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "pwd does not report name of working directory"
+
+
+ # Find the source files, if location was not specified.
+@@ -1200,13 +1174,11 @@ else
+ fi
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+- { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+ fi
+ ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ ac_abs_confdir=`(
+- cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
+- { (exit 1); exit 1; }; }
++ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+ # When building in place, set srcdir=.
+ if test "$ac_abs_confdir" = "$ac_pwd"; then
+@@ -1246,7 +1218,7 @@ Configuration:
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+- -q, --quiet, --silent do not print \`checking...' messages
++ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+@@ -1322,7 +1294,7 @@ Some influential environment variables:
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
++ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ XMKMF Path to xmkmf, Makefile generator for X Window System
+ CPP C preprocessor
+@@ -1330,6 +1302,7 @@ Some influential environment variables:
+ Use these variables to override the choices made by `configure' or to help
+ it to find libraries and programs with nonstandard names/locations.
+
++Report bugs to the package provider.
+ _ACEOF
+ ac_status=$?
+ fi
+@@ -1393,21 +1366,187 @@ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+ configure
+-generated by GNU Autoconf 2.63
++generated by GNU Autoconf 2.69
+
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++Copyright (C) 2012 Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+ _ACEOF
+ exit
+ fi
++
++## ------------------------ ##
++## Autoconf initialization. ##
++## ------------------------ ##
++
++# ac_fn_c_try_compile LINENO
++# --------------------------
++# Try to compile conftest.$ac_ext, and return whether this succeeded.
++ac_fn_c_try_compile ()
++{
++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ rm -f conftest.$ac_objext
++ if { { ac_try="$ac_compile"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_compile") 2>conftest.err
++ ac_status=$?
++ if test -s conftest.err; then
++ grep -v '^ *+' conftest.err >conftest.er1
++ cat conftest.er1 >&5
++ mv -f conftest.er1 conftest.err
++ fi
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest.$ac_objext; then :
++ ac_retval=0
++else
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_retval=1
++fi
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++ as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_compile
++
++# ac_fn_c_try_run LINENO
++# ----------------------
++# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
++# that executables *can* be run.
++ac_fn_c_try_run ()
++{
++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ if { { ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_link") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
++ { { case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_try") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; }; then :
++ ac_retval=0
++else
++ $as_echo "$as_me: program exited with status $ac_status" >&5
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_retval=$ac_status
++fi
++ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++ as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_run
++
++# ac_fn_c_try_link LINENO
++# -----------------------
++# Try to link conftest.$ac_ext, and return whether this succeeded.
++ac_fn_c_try_link ()
++{
++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ rm -f conftest.$ac_objext conftest$ac_exeext
++ if { { ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_link") 2>conftest.err
++ ac_status=$?
++ if test -s conftest.err; then
++ grep -v '^ *+' conftest.err >conftest.er1
++ cat conftest.er1 >&5
++ mv -f conftest.er1 conftest.err
++ fi
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest$ac_exeext && {
++ test "$cross_compiling" = yes ||
++ test -x conftest$ac_exeext
++ }; then :
++ ac_retval=0
++else
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_retval=1
++fi
++ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
++ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
++ # interfere with the next link command; also delete a directory that is
++ # left behind by Apple's compiler. We do this before executing the actions.
++ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++ as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_link
++
++# ac_fn_c_try_cpp LINENO
++# ----------------------
++# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
++ac_fn_c_try_cpp ()
++{
++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ if { { ac_try="$ac_cpp conftest.$ac_ext"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
++ ac_status=$?
++ if test -s conftest.err; then
++ grep -v '^ *+' conftest.err >conftest.er1
++ cat conftest.er1 >&5
++ mv -f conftest.er1 conftest.err
++ fi
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; } > conftest.i && {
++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ }; then :
++ ac_retval=0
++else
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_retval=1
++fi
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++ as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_cpp
+ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by $as_me, which was
+-generated by GNU Autoconf 2.63. Invocation command line was
++generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+@@ -1443,8 +1582,8 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- $as_echo "PATH: $as_dir"
+-done
++ $as_echo "PATH: $as_dir"
++ done
+ IFS=$as_save_IFS
+
+ } >&5
+@@ -1481,9 +1620,9 @@ do
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
++ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
++ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+@@ -1499,13 +1638,13 @@ do
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+- ac_configure_args="$ac_configure_args '$ac_arg'"
++ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+ done
+-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
++{ ac_configure_args0=; unset ac_configure_args0;}
++{ ac_configure_args1=; unset ac_configure_args1;}
+
+ # When interrupted or exit'd, cleanup temporary files, and complete
+ # config.log. We remove comments because anyway the quotes in there
+@@ -1517,11 +1656,9 @@ trap 'exit_status=$?
+ {
+ echo
+
+- cat <<\_ASBOX
+-## ---------------- ##
++ $as_echo "## ---------------- ##
+ ## Cache variables. ##
+-## ---------------- ##
+-_ASBOX
++## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+ (
+@@ -1530,13 +1667,13 @@ _ASBOX
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+- *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
++ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+- *) $as_unset $ac_var ;;
++ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+@@ -1555,11 +1692,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ )
+ echo
+
+- cat <<\_ASBOX
+-## ----------------- ##
++ $as_echo "## ----------------- ##
+ ## Output variables. ##
+-## ----------------- ##
+-_ASBOX
++## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+@@ -1572,11 +1707,9 @@ _ASBOX
+ echo
+
+ if test -n "$ac_subst_files"; then
+- cat <<\_ASBOX
+-## ------------------- ##
++ $as_echo "## ------------------- ##
+ ## File substitutions. ##
+-## ------------------- ##
+-_ASBOX
++## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+@@ -1590,11 +1723,9 @@ _ASBOX
+ fi
+
+ if test -s confdefs.h; then
+- cat <<\_ASBOX
+-## ----------- ##
++ $as_echo "## ----------- ##
+ ## confdefs.h. ##
+-## ----------- ##
+-_ASBOX
++## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+@@ -1608,46 +1739,53 @@ _ASBOX
+ exit $exit_status
+ ' 0
+ for ac_signal in 1 2 13 15; do
+- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
++ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+ done
+ ac_signal=0
+
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -f -r conftest* confdefs.h
+
++$as_echo "/* confdefs.h */" > confdefs.h
++
+ # Predefined preprocessor variables.
+
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_NAME "$PACKAGE_NAME"
+ _ACEOF
+
+-
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+ _ACEOF
+
+-
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_VERSION "$PACKAGE_VERSION"
+ _ACEOF
+
+-
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_STRING "$PACKAGE_STRING"
+ _ACEOF
+
+-
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+ _ACEOF
+
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_URL "$PACKAGE_URL"
++_ACEOF
++
+
+ # Let the site file select an alternate cache file if it wants to.
+ # Prefer an explicitly selected file to automatically selected ones.
+ ac_site_file1=NONE
+ ac_site_file2=NONE
+ if test -n "$CONFIG_SITE"; then
+- ac_site_file1=$CONFIG_SITE
++ # We do not want a PATH search for config.site.
++ case $CONFIG_SITE in #((
++ -*) ac_site_file1=./$CONFIG_SITE;;
++ */*) ac_site_file1=$CONFIG_SITE;;
++ *) ac_site_file1=./$CONFIG_SITE;;
++ esac
+ elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+@@ -1658,19 +1796,23 @@ fi
+ for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+ do
+ test "x$ac_site_file" = xNONE && continue
+- if test -r "$ac_site_file"; then
+- { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
++ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+- . "$ac_site_file"
++ . "$ac_site_file" \
++ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "failed to load site script $ac_site_file
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ done
+
+ if test -r "$cache_file"; then
+- # Some versions of bash will fail to source /dev/null (special
+- # files actually), so we avoid doing that.
+- if test -f "$cache_file"; then
+- { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
++ # Some versions of bash will fail to source /dev/null (special files
++ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
++ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+ $as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+@@ -1678,7 +1820,7 @@ $as_echo "$as_me: loading cache $cache_file" >&6;}
+ esac
+ fi
+ else
+- { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+ $as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+ fi
+@@ -1693,11 +1835,11 @@ for ac_var in $ac_precious_vars; do
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+@@ -1707,17 +1849,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+- { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+ $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+- { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+ $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+- { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+ $as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+- { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+@@ -1729,35 +1871,20 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
++ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+ done
+ if $ac_cache_corrupted; then
+- { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+- { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+ $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+- { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ fi
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++## -------------------- ##
++## Main body of script. ##
++## -------------------- ##
+
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+@@ -1784,9 +1911,7 @@ for ac_dir in $srcdir/../build-scripts; do
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+- { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir/../build-scripts" >&5
+-$as_echo "$as_me: error: cannot find install-sh or install.sh in $srcdir/../build-scripts" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "cannot find install-sh, install.sh, or shtool in $srcdir/../build-scripts" "$LINENO" 5
+ fi
+
+ # These three variables are undocumented and unsupported,
+@@ -1800,35 +1925,27 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+ # Make sure we can run config.sub.
+ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+- { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+ $as_echo_n "checking build system type... " >&6; }
+-if test "${ac_cv_build+set}" = set; then
++if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ ac_build_alias=$build_alias
+ test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ test "x$ac_build_alias" = x &&
+- { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+- { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+ $as_echo "$ac_cv_build" >&6; }
+ case $ac_cv_build in
+ *-*-*) ;;
+-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
+- { (exit 1); exit 1; }; };;
++*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+ esac
+ build=$ac_cv_build
+ ac_save_IFS=$IFS; IFS='-'
+@@ -1844,28 +1961,24 @@ IFS=$ac_save_IFS
+ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+ $as_echo_n "checking host system type... " >&6; }
+-if test "${ac_cv_host+set}" = set; then
++if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+ else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+- { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ fi
+
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+ $as_echo "$ac_cv_host" >&6; }
+ case $ac_cv_host in
+ *-*-*) ;;
+-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
+- { (exit 1); exit 1; }; };;
++*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+ esac
+ host=$ac_cv_host
+ ac_save_IFS=$IFS; IFS='-'
+@@ -1891,9 +2004,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then
++if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ if test -n "$CC"; then
+@@ -1904,24 +2017,24 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- { $as_echo "$as_me:$LINENO: result: $CC" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+@@ -1931,9 +2044,9 @@ if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
++if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ if test -n "$ac_ct_CC"; then
+@@ -1944,24 +2057,24 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ fi
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+ $as_echo "$ac_ct_CC" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+@@ -1970,7 +2083,7 @@ fi
+ else
+ case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+@@ -1984,9 +2097,9 @@ if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then
++if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ if test -n "$CC"; then
+@@ -1997,24 +2110,24 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- { $as_echo "$as_me:$LINENO: result: $CC" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+@@ -2024,9 +2137,9 @@ fi
+ if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then
++if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ if test -n "$CC"; then
+@@ -2038,18 +2151,18 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ if test $ac_prog_rejected = yes; then
+@@ -2068,10 +2181,10 @@ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- { $as_echo "$as_me:$LINENO: result: $CC" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+@@ -2083,9 +2196,9 @@ if test -z "$CC"; then
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then
++if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ if test -n "$CC"; then
+@@ -2096,24 +2209,24 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- { $as_echo "$as_me:$LINENO: result: $CC" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+@@ -2127,9 +2240,9 @@ if test -z "$CC"; then
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
++if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ if test -n "$ac_ct_CC"; then
+@@ -2140,24 +2253,24 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ fi
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+ $as_echo "$ac_ct_CC" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+@@ -2170,7 +2283,7 @@ done
+ else
+ case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+@@ -2181,57 +2294,37 @@ fi
+ fi
+
+
+-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&5
+-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }; }
++as_fn_error $? "no acceptable C compiler found in \$PATH
++See \`config.log' for more details" "$LINENO" 5; }
+
+ # Provide some information about the compiler.
+-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
++$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+ set X $ac_compile
+ ac_compiler=$2
+-{ (ac_try="$ac_compiler --version >&5"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compiler --version >&5") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-{ (ac_try="$ac_compiler -v >&5"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compiler -v >&5") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
+-{ (ac_try="$ac_compiler -V >&5"
++for ac_option in --version -v -V -qversion; do
++ { { ac_try="$ac_compiler $ac_option >&5"
+ case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+ esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compiler -V >&5") 2>&5
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }
++ if test -s conftest.err; then
++ sed '10a\
++... rest of stderr output deleted ...
++ 10q' conftest.err >conftest.er1
++ cat conftest.er1 >&5
++ fi
++ rm -f conftest.er1 conftest.err
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++done
+
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -2247,8 +2340,8 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+-$as_echo_n "checking for C compiler default output file name... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
++$as_echo_n "checking whether the C compiler works... " >&6; }
+ ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+ # The possible output files:
+@@ -2264,17 +2357,17 @@ do
+ done
+ rm -f $ac_rmfiles
+
+-if { (ac_try="$ac_link_default"
++if { { ac_try="$ac_link_default"
+ case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+ esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+ # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+ # in a Makefile. We should not override ac_cv_exeext if it was cached,
+@@ -2291,7 +2384,7 @@ do
+ # certainly right.
+ break;;
+ *.* )
+- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
++ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+@@ -2310,84 +2403,41 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
+ else
+ ac_file=''
+ fi
+-
+-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+-$as_echo "$ac_file" >&6; }
+-if test -z "$ac_file"; then
+- $as_echo "$as_me: failed program was:" >&5
++if test -z "$ac_file"; then :
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++$as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
+-See \`config.log' for more details." >&5
+-$as_echo "$as_me: error: C compiler cannot create executables
+-See \`config.log' for more details." >&2;}
+- { (exit 77); exit 77; }; }; }
++as_fn_error 77 "C compiler cannot create executables
++See \`config.log' for more details" "$LINENO" 5; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
+ fi
+-
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
++$as_echo_n "checking for C compiler default output file name... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
++$as_echo "$ac_file" >&6; }
+ ac_exeext=$ac_cv_exeext
+
+-# Check that the compiler produces executables we can run. If not, either
+-# the compiler is broken, or we cross compile.
+-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+-$as_echo_n "checking whether the C compiler works... " >&6; }
+-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+-# If not cross compiling, check that we can run a simple program.
+-if test "$cross_compiling" != yes; then
+- if { ac_try='./$ac_file'
+- { (case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_try") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cross_compiling=no
+- else
+- if test "$cross_compiling" = maybe; then
+- cross_compiling=yes
+- else
+- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&5
+-$as_echo "$as_me: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }; }
+- fi
+- fi
+-fi
+-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+-$as_echo "yes" >&6; }
+-
+ rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ ac_clean_files=$ac_clean_files_save
+-# Check that the compiler produces executables we can run. If not, either
+-# the compiler is broken, or we cross compile.
+-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+-$as_echo_n "checking whether we are cross compiling... " >&6; }
+-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+-$as_echo "$cross_compiling" >&6; }
+-
+-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+ $as_echo_n "checking for suffix of executables... " >&6; }
+-if { (ac_try="$ac_link"
++if { { ac_try="$ac_link"
+ case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+ esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+ # work properly (i.e., refer to `conftest.exe'), while it won't with
+@@ -2402,32 +2452,83 @@ for ac_file in conftest.exe conftest conftest.*; do
+ esac
+ done
+ else
+- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&5
+-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }; }
++as_fn_error $? "cannot compute suffix of executables: cannot compile and link
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+-
+-rm -f conftest$ac_cv_exeext
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
++rm -f conftest conftest$ac_cv_exeext
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+ $as_echo "$ac_cv_exeext" >&6; }
+
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <stdio.h>
++int
++main ()
++{
++FILE *f = fopen ("conftest.out", "w");
++ return ferror (f) || fclose (f) != 0;
++
++ ;
++ return 0;
++}
++_ACEOF
++ac_clean_files="$ac_clean_files conftest.out"
++# Check that the compiler produces executables we can run. If not, either
++# the compiler is broken, or we cross compile.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
++$as_echo_n "checking whether we are cross compiling... " >&6; }
++if test "$cross_compiling" != yes; then
++ { { ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_link") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if { ac_try='./conftest$ac_cv_exeext'
++ { { case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_try") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; }; then
++ cross_compiling=no
++ else
++ if test "$cross_compiling" = maybe; then
++ cross_compiling=yes
++ else
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "cannot run C compiled programs.
++If you meant to cross compile, use \`--host'.
++See \`config.log' for more details" "$LINENO" 5; }
++ fi
++ fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
++$as_echo "$cross_compiling" >&6; }
++
++rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
++ac_clean_files=$ac_clean_files_save
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+ $as_echo_n "checking for suffix of object files... " >&6; }
+-if test "${ac_cv_objext+set}" = set; then
++if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -2439,17 +2540,17 @@ main ()
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (ac_try="$ac_compile"
++if { { ac_try="$ac_compile"
+ case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+ esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+@@ -2462,31 +2563,23 @@ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&5
+-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }; }
++as_fn_error $? "cannot compute suffix of object files: cannot compile
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+-
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+ $as_echo "$ac_cv_objext" >&6; }
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+ $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+-if test "${ac_cv_c_compiler_gnu+set}" = set; then
++if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -2500,37 +2593,16 @@ main ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
++if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- ac_compiler_gnu=no
++ ac_compiler_gnu=no
+ fi
+-
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+ $as_echo "$ac_cv_c_compiler_gnu" >&6; }
+ if test $ac_compiler_gnu = yes; then
+ GCC=yes
+@@ -2539,20 +2611,16 @@ else
+ fi
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+ $as_echo_n "checking whether $CC accepts -g... " >&6; }
+-if test "${ac_cv_prog_cc_g+set}" = set; then
++if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -2563,35 +2631,11 @@ main ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
++if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- CFLAGS=""
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ CFLAGS=""
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -2602,36 +2646,12 @@ main ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
+- :
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
++if ac_fn_c_try_compile "$LINENO"; then :
+
+- ac_c_werror_flag=$ac_save_c_werror_flag
++else
++ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -2642,42 +2662,17 @@ main ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
++if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-
+ fi
+-
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+-
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+-
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+ $as_echo "$ac_cv_prog_cc_g" >&6; }
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+@@ -2694,23 +2689,18 @@ else
+ CFLAGS=
+ fi
+ fi
+-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+ $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+-if test "${ac_cv_prog_cc_c89+set}" = set; then
++if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ ac_cv_prog_cc_c89=no
+ ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <stdarg.h>
+ #include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
++struct stat;
+ /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+ struct buf { int x; };
+ FILE * (*rcsopen) (struct buf *, struct stat *, int);
+@@ -2762,32 +2752,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+ do
+ CC="$ac_save_CC $ac_arg"
+- rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
++ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-
+ fi
+-
+ rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+ done
+@@ -2798,17 +2765,19 @@ fi
+ # AC_CACHE_VAL
+ case "x$ac_cv_prog_cc_c89" in
+ x)
+- { $as_echo "$as_me:$LINENO: result: none needed" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+ $as_echo "none needed" >&6; } ;;
+ xno)
+- { $as_echo "$as_me:$LINENO: result: unsupported" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+ $as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+- { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+ $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+ esac
++if test "x$ac_cv_prog_cc_c89" != xno; then :
+
++fi
+
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+@@ -2819,26 +2788,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+-{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+ $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+-if test "${ac_cv_c_const+set}" = set; then
++if ${ac_cv_c_const+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+ main ()
+ {
+-/* FIXME: Include the comments suggested by Paul. */
++
+ #ifndef __cplusplus
+- /* Ultrix mips cc rejects this. */
++ /* Ultrix mips cc rejects this sort of thing. */
+ typedef int charset[2];
+- const charset cs;
++ const charset cs = { 0, 0 };
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+@@ -2855,8 +2820,9 @@ main ()
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+- { /* SCO 3.2v4 cc rejects this. */
+- char *t;
++ { /* SCO 3.2v4 cc rejects this sort of thing. */
++ char tx;
++ char *t = &tx;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+@@ -2872,10 +2838,10 @@ main ()
+ iptr p = 0;
+ ++p;
+ }
+- { /* AIX XL C 1.02.0.0 rejects this saying
++ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+- struct s { int j; const int *ap[3]; };
+- struct s *b; b->j = 5;
++ struct s { int j; const int *ap[3]; } bx;
++ struct s *b = &bx; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+@@ -2888,41 +2854,18 @@ main ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
++if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- ac_cv_c_const=no
++ ac_cv_c_const=no
+ fi
+-
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+ $as_echo "$ac_cv_c_const" >&6; }
+ if test $ac_cv_c_const = no; then
+
+-cat >>confdefs.h <<\_ACEOF
+-#define const /**/
+-_ACEOF
++$as_echo "#define const /**/" >>confdefs.h
+
+ fi
+
+@@ -2955,9 +2898,9 @@ case "$host" in
+ MATHLIB=""
+ # Extract the first word of "osmesa-config", so it can be a program name with args.
+ set dummy osmesa-config; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_path_OSMESA_CONFIG+set}" = set; then
++if ${ac_cv_path_OSMESA_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ case $OSMESA_CONFIG in
+@@ -2970,14 +2913,14 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_OSMESA_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_OSMESA_CONFIG" && ac_cv_path_OSMESA_CONFIG="no"
+@@ -2986,10 +2929,10 @@ esac
+ fi
+ OSMESA_CONFIG=$ac_cv_path_OSMESA_CONFIG
+ if test -n "$OSMESA_CONFIG"; then
+- { $as_echo "$as_me:$LINENO: result: $OSMESA_CONFIG" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OSMESA_CONFIG" >&5
+ $as_echo "$OSMESA_CONFIG" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+@@ -3015,7 +2958,7 @@ esac
+ SDL_VERSION=1.2.10
+
+ # Check whether --with-sdl-prefix was given.
+-if test "${with_sdl_prefix+set}" = set; then
++if test "${with_sdl_prefix+set}" = set; then :
+ withval=$with_sdl_prefix; sdl_prefix="$withval"
+ else
+ sdl_prefix=""
+@@ -3023,14 +2966,14 @@ fi
+
+
+ # Check whether --with-sdl-exec-prefix was given.
+-if test "${with_sdl_exec_prefix+set}" = set; then
++if test "${with_sdl_exec_prefix+set}" = set; then :
+ withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval"
+ else
+ sdl_exec_prefix=""
+ fi
+
+ # Check whether --enable-sdltest was given.
+-if test "${enable_sdltest+set}" = set; then
++if test "${enable_sdltest+set}" = set; then :
+ enableval=$enable_sdltest;
+ else
+ enable_sdltest=yes
+@@ -3055,9 +2998,9 @@ fi
+ fi
+ # Extract the first word of "sdl-config", so it can be a program name with args.
+ set dummy sdl-config; ac_word=$2
+-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_path_SDL_CONFIG+set}" = set; then
++if ${ac_cv_path_SDL_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ case $SDL_CONFIG in
+@@ -3070,14 +3013,14 @@ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+ done
+-done
++ done
+ IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no"
+@@ -3086,16 +3029,16 @@ esac
+ fi
+ SDL_CONFIG=$ac_cv_path_SDL_CONFIG
+ if test -n "$SDL_CONFIG"; then
+- { $as_echo "$as_me:$LINENO: result: $SDL_CONFIG" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDL_CONFIG" >&5
+ $as_echo "$SDL_CONFIG" >&6; }
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+
+
+ min_sdl_version=$SDL_VERSION
+- { $as_echo "$as_me:$LINENO: checking for SDL - version >= $min_sdl_version" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL - version >= $min_sdl_version" >&5
+ $as_echo_n "checking for SDL - version >= $min_sdl_version... " >&6; }
+ no_sdl=""
+ if test "$SDL_CONFIG" = "no" ; then
+@@ -3118,14 +3061,10 @@ $as_echo_n "checking for SDL - version >= $min_sdl_version... " >&6; }
+ CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
+ LIBS="$LIBS $SDL_LIBS"
+ rm -f conf.sdltest
+- if test "$cross_compiling" = yes; then
++ if test "$cross_compiling" = yes; then :
+ echo $ac_n "cross compiling; assumed OK... $ac_c"
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ #include <stdio.h>
+@@ -3186,53 +3125,26 @@ int main (int argc, char *argv[])
+
+
+ _ACEOF
+-rm -f conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_link") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_try") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- :
+-else
+- $as_echo "$as_me: program exited with status $ac_status" >&5
+-$as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
++if ac_fn_c_try_run "$LINENO"; then :
+
+-( exit $ac_status )
+-no_sdl=yes
++else
++ no_sdl=yes
+ fi
+-rm -rf conftest.dSYM
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
++ conftest.$ac_objext conftest.beam conftest.$ac_ext
+ fi
+
+-
+ CFLAGS="$ac_save_CFLAGS"
+ CXXFLAGS="$ac_save_CXXFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_sdl" = x ; then
+- { $as_echo "$as_me:$LINENO: result: yes" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ :
+ else
+- { $as_echo "$as_me:$LINENO: result: no" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ if test "$SDL_CONFIG" = "no" ; then
+ echo "*** The sdl-config script installed by SDL could not be found"
+@@ -3247,11 +3159,7 @@ $as_echo "no" >&6; }
+ CFLAGS="$CFLAGS $SDL_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
+ LIBS="$LIBS $SDL_LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ #include <stdio.h>
+@@ -3270,27 +3178,7 @@ main ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_link") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest$ac_exeext && {
+- test "$cross_compiling" = yes ||
+- $as_test_x conftest$ac_exeext
+- }; then
++if ac_fn_c_try_link "$LINENO"; then :
+ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding SDL or finding the wrong"
+ echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
+@@ -3301,18 +3189,13 @@ $as_echo "$ac_try_echo") >&5
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- echo "*** The test program failed to compile or link. See the file config.log for the"
++ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means SDL was incorrectly installed"
+ echo "*** or that you have moved SDL since it was installed. In the latter case, you"
+ echo "*** may want to edit the sdl-config script: $SDL_CONFIG"
+ fi
+-
+-rm -rf conftest.dSYM
+-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+- conftest$ac_exeext conftest.$ac_ext
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$ac_save_CFLAGS"
+ CXXFLAGS="$ac_save_CXXFLAGS"
+ LIBS="$ac_save_LIBS"
+@@ -3320,9 +3203,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ fi
+ SDL_CFLAGS=""
+ SDL_LIBS=""
+- { { $as_echo "$as_me:$LINENO: error: *** SDL version $SDL_VERSION not found!" >&5
+-$as_echo "$as_me: error: *** SDL version $SDL_VERSION not found!" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "*** SDL version $SDL_VERSION not found!" "$LINENO" 5
+
+ fi
+
+@@ -3337,14 +3218,14 @@ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+ $as_echo_n "checking how to run the C preprocessor... " >&6; }
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+ fi
+ if test -z "$CPP"; then
+- if test "${ac_cv_prog_CPP+set}" = set; then
++ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ # Double quotes because CPP needs to be expanded
+@@ -3359,11 +3240,7 @@ do
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #ifdef __STDC__
+ # include <limits.h>
+@@ -3372,78 +3249,34 @@ cat >>conftest.$ac_ext <<_ACEOF
+ #endif
+ Syntax error
+ _ACEOF
+-if { (ac_try="$ac_cpp conftest.$ac_ext"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null && {
+- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- }; then
+- :
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
++if ac_fn_c_try_cpp "$LINENO"; then :
+
++else
+ # Broken: fails on valid input.
+ continue
+ fi
+-
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (ac_try="$ac_cpp conftest.$ac_ext"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null && {
+- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- }; then
++if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+ continue
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+ # Passes both tests.
+ ac_preproc_ok=:
+ break
+ fi
+-
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+
+ done
+ # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
++rm -f conftest.i conftest.err conftest.$ac_ext
++if $ac_preproc_ok; then :
+ break
+ fi
+
+@@ -3455,7 +3288,7 @@ fi
+ else
+ ac_cv_prog_CPP=$CPP
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+ $as_echo "$CPP" >&6; }
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -3466,100 +3299,49 @@ do
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+-#endif
+- Syntax error
+-_ACEOF
+-if { (ac_try="$ac_cpp conftest.$ac_ext"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null && {
+- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- }; then
+- :
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
++#endif
++ Syntax error
++_ACEOF
++if ac_fn_c_try_cpp "$LINENO"; then :
+
++else
+ # Broken: fails on valid input.
+ continue
+ fi
+-
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (ac_try="$ac_cpp conftest.$ac_ext"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null && {
+- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- }; then
++if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+ continue
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+ # Passes both tests.
+ ac_preproc_ok=:
+ break
+ fi
+-
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+
+ done
+ # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
+- :
++rm -f conftest.i conftest.err conftest.$ac_ext
++if $ac_preproc_ok; then :
++
+ else
+- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&5
+-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }; }
++as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+
+ ac_ext=c
+@@ -3569,12 +3351,12 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+-{ $as_echo "$as_me:$LINENO: checking for X" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+ $as_echo_n "checking for X... " >&6; }
+
+
+ # Check whether --with-x was given.
+-if test "${with_x+set}" = set; then
++if test "${with_x+set}" = set; then :
+ withval=$with_x;
+ fi
+
+@@ -3584,10 +3366,8 @@ if test "x$with_x" = xno; then
+ have_x=disabled
+ else
+ case $x_includes,$x_libraries in #(
+- *\'*) { { $as_echo "$as_me:$LINENO: error: cannot use X directory names containing '" >&5
+-$as_echo "$as_me: error: cannot use X directory names containing '" >&2;}
+- { (exit 1); exit 1; }; };; #(
+- *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then
++ *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
++ *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ # One or both of the vars are not set, and there is no cached value.
+@@ -3604,7 +3384,7 @@ libdir:
+ @echo libdir='${LIBDIR}'
+ _ACEOF
+ if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
+- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++ # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+ for ac_var in incroot usrlibdir libdir; do
+ eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
+ done
+@@ -3635,21 +3415,25 @@ fi
+ # Check X11 before X11Rn because it is often a symlink to the current release.
+ ac_x_header_dirs='
+ /usr/X11/include
++/usr/X11R7/include
+ /usr/X11R6/include
+ /usr/X11R5/include
+ /usr/X11R4/include
+
+ /usr/include/X11
++/usr/include/X11R7
+ /usr/include/X11R6
+ /usr/include/X11R5
+ /usr/include/X11R4
+
+ /usr/local/X11/include
++/usr/local/X11R7/include
+ /usr/local/X11R6/include
+ /usr/local/X11R5/include
+ /usr/local/X11R4/include
+
+ /usr/local/include/X11
++/usr/local/include/X11R7
+ /usr/local/include/X11R6
+ /usr/local/include/X11R5
+ /usr/local/include/X11R4
+@@ -3671,37 +3455,14 @@ ac_x_header_dirs='
+ if test "$ac_x_includes" = no; then
+ # Guess where to find include files, by looking for Xlib.h.
+ # First, try using that file with no special directory specified.
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <X11/Xlib.h>
+ _ACEOF
+-if { (ac_try="$ac_cpp conftest.$ac_ext"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null && {
+- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- }; then
++if ac_fn_c_try_cpp "$LINENO"; then :
+ # We can compile using X headers with no special include directory.
+ ac_x_includes=
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+ for ac_dir in $ac_x_header_dirs; do
+ if test -r "$ac_dir/X11/Xlib.h"; then
+ ac_x_includes=$ac_dir
+@@ -3709,8 +3470,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
+ fi
+ done
+ fi
+-
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+ fi # $ac_x_includes = no
+
+ if test "$ac_x_libraries" = no; then
+@@ -3719,11 +3479,7 @@ if test "$ac_x_libraries" = no; then
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS=$LIBS
+ LIBS="-lX11 $LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <X11/Xlib.h>
+ int
+@@ -3734,35 +3490,12 @@ XrmInitialize ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_link") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest$ac_exeext && {
+- test "$cross_compiling" = yes ||
+- $as_test_x conftest$ac_exeext
+- }; then
++if ac_fn_c_try_link "$LINENO"; then :
+ LIBS=$ac_save_LIBS
+ # We can link X programs with no special library path.
+ ac_x_libraries=
+ else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- LIBS=$ac_save_LIBS
++ LIBS=$ac_save_LIBS
+ for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+ do
+ # Don't even attempt the hair of trying to link an X program!
+@@ -3774,10 +3507,8 @@ do
+ done
+ done
+ fi
+-
+-rm -rf conftest.dSYM
+-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+- conftest$ac_exeext conftest.$ac_ext
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
+ fi # $ac_x_libraries = no
+
+ case $ac_x_includes,$ac_x_libraries in #(
+@@ -3798,7 +3529,7 @@ fi
+ fi # $with_x != no
+
+ if test "$have_x" != yes; then
+- { $as_echo "$as_me:$LINENO: result: $have_x" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
+ $as_echo "$have_x" >&6; }
+ no_x=yes
+ else
+@@ -3809,7 +3540,7 @@ else
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$x_includes'\
+ ac_x_libraries='$x_libraries'"
+- { $as_echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
+ $as_echo "libraries $x_libraries, headers $x_includes" >&6; }
+ fi
+
+@@ -3826,14 +3557,10 @@ if test x$have_x = xyes; then
+ fi
+ fi
+
+-{ $as_echo "$as_me:$LINENO: checking for OpenGL support" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL support" >&5
+ $as_echo_n "checking for OpenGL support... " >&6; }
+ have_opengl=no
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ #include "SDL_opengl.h"
+@@ -3847,36 +3574,13 @@ main ()
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
++if ac_fn_c_try_compile "$LINENO"; then :
+
+ have_opengl=yes
+
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-
+ fi
+-
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+-{ $as_echo "$as_me:$LINENO: result: $have_opengl" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_opengl" >&5
+ $as_echo "$have_opengl" >&6; }
+ if test x$have_opengl = xyes; then
+ CFLAGS="$CFLAGS -DHAVE_OPENGL"
+@@ -3915,13 +3619,13 @@ _ACEOF
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+- *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
++ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+- *) $as_unset $ac_var ;;
++ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+@@ -3929,8 +3633,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+- # `set' does not quote correctly, so add quotes (double-quote
+- # substitution turns \\\\ into \\, and sed turns \\ into \).
++ # `set' does not quote correctly, so add quotes: double-quote
++ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+@@ -3952,12 +3656,23 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ :end' >>confcache
+ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+- test "x$cache_file" != "x/dev/null" &&
+- { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
++ if test "x$cache_file" != "x/dev/null"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+ $as_echo "$as_me: updating cache $cache_file" >&6;}
+- cat confcache >$cache_file
++ if test ! -f "$cache_file" || test -h "$cache_file"; then
++ cat confcache >"$cache_file"
++ else
++ case $cache_file in #(
++ */* | ?:*)
++ mv -f confcache "$cache_file"$$ &&
++ mv -f "$cache_file"$$ "$cache_file" ;; #(
++ *)
++ mv -f confcache "$cache_file" ;;
++ esac
++ fi
++ fi
+ else
+- { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+ fi
+@@ -4007,14 +3722,15 @@ DEFS=`sed -n "$ac_script" confdefs.h`
+
+ ac_libobjs=
+ ac_ltlibobjs=
++U=
+ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+- ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+- ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
++ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
++ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+ done
+ LIBOBJS=$ac_libobjs
+
+@@ -4022,13 +3738,14 @@ LTLIBOBJS=$ac_ltlibobjs
+
+
+
+-: ${CONFIG_STATUS=./config.status}
++: "${CONFIG_STATUS=./config.status}"
+ ac_write_fail=0
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+ $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++as_write_fail=0
++cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+ #! $SHELL
+ # Generated by $as_me.
+ # Run this file to recreate the current configuration.
+@@ -4038,17 +3755,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ debug=false
+ ac_cs_recheck=false
+ ac_cs_silent=false
+-SHELL=\${CONFIG_SHELL-$SHELL}
+-_ACEOF
+
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+-## --------------------- ##
+-## M4sh Initialization. ##
+-## --------------------- ##
++SHELL=\${CONFIG_SHELL-$SHELL}
++export SHELL
++_ASEOF
++cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
++## -------------------- ##
++## M4sh Initialization. ##
++## -------------------- ##
+
+ # Be more Bourne compatible
+ DUALCASE=1; export DUALCASE # for MKS sh
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+@@ -4056,23 +3774,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+ else
+- case `(set -o) 2>/dev/null` in
+- *posix*) set -o posix ;;
++ case `(set -o) 2>/dev/null` in #(
++ *posix*) :
++ set -o posix ;; #(
++ *) :
++ ;;
+ esac
+-
+ fi
+
+
+-
+-
+-# PATH needs CR
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+ as_nl='
+ '
+ export as_nl
+@@ -4080,7 +3790,13 @@ export as_nl
+ as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
++# Prefer a ksh shell builtin over an external printf program on Solaris,
++# but without wasting forks for bash or zsh.
++if test -z "$BASH_VERSION$ZSH_VERSION" \
++ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
++ as_echo='print -r --'
++ as_echo_n='print -rn --'
++elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+ else
+@@ -4091,7 +3807,7 @@ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+- case $arg in
++ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+@@ -4114,13 +3830,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
+ }
+ fi
+
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+- as_unset=unset
+-else
+- as_unset=false
+-fi
+-
+
+ # IFS
+ # We need space, tab and new line, in precisely that order. Quoting is
+@@ -4130,15 +3839,16 @@ fi
+ IFS=" "" $as_nl"
+
+ # Find who we are. Look in the path if we contain no directory separator.
+-case $0 in
++as_myself=
++case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++ done
+ IFS=$as_save_IFS
+
+ ;;
+@@ -4150,12 +3860,16 @@ if test "x$as_myself" = x; then
+ fi
+ if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+- { (exit 1); exit 1; }
++ exit 1
+ fi
+
+-# Work around bugs in pre-3.0 UWIN ksh.
+-for as_var in ENV MAIL MAILPATH
+-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
++# Unset variables that we do not need and which cause bugs (e.g. in
++# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
++# suppresses any "Segmentation fault" message there. '((' could
++# trigger a bug in pdksh 5.2.14.
++for as_var in BASH_ENV ENV MAIL MAILPATH
++do eval test x\${$as_var+set} = xset \
++ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+ done
+ PS1='$ '
+ PS2='> '
+@@ -4167,7 +3881,89 @@ export LC_ALL
+ LANGUAGE=C
+ export LANGUAGE
+
+-# Required to use basename.
++# CDPATH.
++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
++
++
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
++# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
++# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
++# script with STATUS, using 1 if that was 0.
++as_fn_error ()
++{
++ as_status=$1; test $as_status -eq 0 && as_status=1
++ if test "$4"; then
++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
++ fi
++ $as_echo "$as_me: error: $2" >&2
++ as_fn_exit $as_status
++} # as_fn_error
++
++
++# as_fn_set_status STATUS
++# -----------------------
++# Set $? to STATUS, without forking.
++as_fn_set_status ()
++{
++ return $1
++} # as_fn_set_status
++
++# as_fn_exit STATUS
++# -----------------
++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
++as_fn_exit ()
++{
++ set +e
++ as_fn_set_status $1
++ exit $1
++} # as_fn_exit
++
++# as_fn_unset VAR
++# ---------------
++# Portably unset VAR.
++as_fn_unset ()
++{
++ { eval $1=; unset $1;}
++}
++as_unset=as_fn_unset
++# as_fn_append VAR VALUE
++# ----------------------
++# Append the text in VALUE to the end of the definition contained in VAR. Take
++# advantage of any shell optimizations that allow amortized linear growth over
++# repeated appends, instead of the typical quadratic growth present in naive
++# implementations.
++if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
++ eval 'as_fn_append ()
++ {
++ eval $1+=\$2
++ }'
++else
++ as_fn_append ()
++ {
++ eval $1=\$$1\$2
++ }
++fi # as_fn_append
++
++# as_fn_arith ARG...
++# ------------------
++# Perform arithmetic evaluation on the ARGs, and store the result in the
++# global $as_val. Take advantage of shells that can avoid forks. The arguments
++# must be portable across $(()) and expr.
++if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
++ eval 'as_fn_arith ()
++ {
++ as_val=$(( $* ))
++ }'
++else
++ as_fn_arith ()
++ {
++ as_val=`expr "$@" || test $? -eq 1`
++ }
++fi # as_fn_arith
++
++
+ if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+@@ -4181,8 +3977,12 @@ else
+ as_basename=false
+ fi
+
++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
++ as_dirname=dirname
++else
++ as_dirname=false
++fi
+
+-# Name of the executable.
+ as_me=`$as_basename -- "$0" ||
+ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+@@ -4202,76 +4002,25 @@ $as_echo X/"$0" |
+ }
+ s/.*/./; q'`
+
+-# CDPATH.
+-$as_unset CDPATH
+-
+-
+-
+- as_lineno_1=$LINENO
+- as_lineno_2=$LINENO
+- test "x$as_lineno_1" != "x$as_lineno_2" &&
+- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+-
+- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+- # uniformly replaced by the line number. The first 'sed' inserts a
+- # line-number line after each line using $LINENO; the second 'sed'
+- # does the real work. The second script uses 'N' to pair each
+- # line-number line with the line containing $LINENO, and appends
+- # trailing '-' during substitution so that $LINENO is not a special
+- # case at line end.
+- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+- # scripts with optimization help from Paolo Bonzini. Blame Lee
+- # E. McMahon (1931-1989) for sed's syntax. :-)
+- sed -n '
+- p
+- /[$]LINENO/=
+- ' <$as_myself |
+- sed '
+- s/[$]LINENO.*/&-/
+- t lineno
+- b
+- :lineno
+- N
+- :loop
+- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+- t loop
+- s/-\n.*//
+- ' >$as_me.lineno &&
+- chmod +x "$as_me.lineno" ||
+- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+- { (exit 1); exit 1; }; }
+-
+- # Don't try to exec as it changes $[0], causing all sort of problems
+- # (the dirname of $[0] is not the place where we might find the
+- # original and so on. Autoconf is especially sensitive to this).
+- . "./$as_me.lineno"
+- # Exit status is that of the last command.
+- exit
+-}
+-
+-
+-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+- as_dirname=dirname
+-else
+- as_dirname=false
+-fi
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ ECHO_C= ECHO_N= ECHO_T=
+-case `echo -n x` in
++case `echo -n x` in #(((((
+ -n*)
+- case `echo 'x\c'` in
++ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+- *) ECHO_C='\c';;
++ xy) ECHO_C='\c';;
++ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
++ ECHO_T=' ';;
+ esac;;
+ *)
+ ECHO_N='-n';;
+ esac
+-if expr a : '\(a\)' >/dev/null 2>&1 &&
+- test "X`expr 00001 : '.*\(...\)'`" = X001; then
+- as_expr=expr
+-else
+- as_expr=false
+-fi
+
+ rm -f conf$$ conf$$.exe conf$$.file
+ if test -d conf$$.dir; then
+@@ -4286,49 +4035,85 @@ if (echo >conf$$.file) 2>/dev/null; then
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+- # In both cases, we have to default to `cp -p'.
++ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ else
+- as_ln_s='cp -p'
++ as_ln_s='cp -pR'
+ fi
+ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+ rmdir conf$$.dir 2>/dev/null
+
++
++# as_fn_mkdir_p
++# -------------
++# Create "$as_dir" as a directory, including parents if necessary.
++as_fn_mkdir_p ()
++{
++
++ case $as_dir in #(
++ -*) as_dir=./$as_dir;;
++ esac
++ test -d "$as_dir" || eval $as_mkdir_p || {
++ as_dirs=
++ while :; do
++ case $as_dir in #(
++ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
++ *) as_qdir=$as_dir;;
++ esac
++ as_dirs="'$as_qdir' $as_dirs"
++ as_dir=`$as_dirname -- "$as_dir" ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$as_dir" : 'X\(//\)[^/]' \| \
++ X"$as_dir" : 'X\(//\)$' \| \
++ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X"$as_dir" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
++ s//\1/
++ q
++ }
++ /^X\(\/\/\)[^/].*/{
++ s//\1/
++ q
++ }
++ /^X\(\/\/\)$/{
++ s//\1/
++ q
++ }
++ /^X\(\/\).*/{
++ s//\1/
++ q
++ }
++ s/.*/./; q'`
++ test -d "$as_dir" && break
++ done
++ test -z "$as_dirs" || eval "mkdir $as_dirs"
++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
++
++
++} # as_fn_mkdir_p
+ if mkdir -p . 2>/dev/null; then
+- as_mkdir_p=:
++ as_mkdir_p='mkdir -p "$as_dir"'
+ else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+ fi
+
+-if test -x / >/dev/null 2>&1; then
+- as_test_x='test -x'
+-else
+- if ls -dL / >/dev/null 2>&1; then
+- as_ls_L_option=L
+- else
+- as_ls_L_option=
+- fi
+- as_test_x='
+- eval sh -c '\''
+- if test -d "$1"; then
+- test -d "$1/.";
+- else
+- case $1 in
+- -*)set "./$1";;
+- esac;
+- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+- ???[sx]*):;;*)false;;esac;fi
+- '\'' sh
+- '
+-fi
+-as_executable_p=$as_test_x
++
++# as_fn_executable_p FILE
++# -----------------------
++# Test if FILE is an executable regular file.
++as_fn_executable_p ()
++{
++ test -f "$1" && test -x "$1"
++} # as_fn_executable_p
++as_test_x='test -x'
++as_executable_p=as_fn_executable_p
+
+ # Sed expression to map a string onto a valid CPP name.
+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+@@ -4338,13 +4123,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+ exec 6>&1
++## ----------------------------------- ##
++## Main body of $CONFIG_STATUS script. ##
++## ----------------------------------- ##
++_ASEOF
++test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+-# Save the log message, to keep $[0] and so on meaningful, and to
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++# Save the log message, to keep $0 and so on meaningful, and to
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+ This file was extended by $as_me, which was
+-generated by GNU Autoconf 2.63. Invocation command line was
++generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+@@ -4371,13 +4162,15 @@ _ACEOF
+
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ ac_cs_usage="\
+-\`$as_me' instantiates files from templates according to the
+-current configuration.
++\`$as_me' instantiates files and other configuration actions
++from templates according to the current configuration. Unless the files
++and actions are specified as TAGs, all are instantiated by default.
+
+-Usage: $0 [OPTION]... [FILE]...
++Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
++ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+@@ -4388,16 +4181,17 @@ Usage: $0 [OPTION]... [FILE]...
+ Configuration files:
+ $config_files
+
+-Report bugs to <bug-autoconf@gnu.org>."
++Report bugs to the package provider."
+
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+ config.status
+-configured by $0, generated by GNU Autoconf 2.63,
+- with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
++configured by $0, generated by GNU Autoconf 2.69,
++ with options \\"\$ac_cs_config\\"
+
+-Copyright (C) 2008 Free Software Foundation, Inc.
++Copyright (C) 2012 Free Software Foundation, Inc.
+ This config.status script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it."
+
+@@ -4412,11 +4206,16 @@ ac_need_defaults=:
+ while test $# != 0
+ do
+ case $1 in
+- --*=*)
++ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
++ --*=)
++ ac_option=`expr "X$1" : 'X\([^=]*\)='`
++ ac_optarg=
++ ac_shift=:
++ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+@@ -4430,14 +4229,17 @@ do
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
++ --config | --confi | --conf | --con | --co | --c )
++ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
++ '') as_fn_error $? "missing file argument" ;;
+ esac
+- CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
++ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+@@ -4446,11 +4248,10 @@ do
+ ac_cs_silent=: ;;
+
+ # This is an error.
+- -*) { $as_echo "$as_me: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&2
+- { (exit 1); exit 1; }; } ;;
++ -*) as_fn_error $? "unrecognized option: \`$1'
++Try \`$0 --help' for more information." ;;
+
+- *) ac_config_targets="$ac_config_targets $1"
++ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+@@ -4467,7 +4268,7 @@ fi
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ if \$ac_cs_recheck; then
+- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
++ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+@@ -4498,9 +4299,7 @@ do
+ case $ac_config_target in
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+- *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+- { (exit 1); exit 1; }; };;
++ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+ done
+
+@@ -4521,26 +4320,24 @@ fi
+ # after its creation but before its name has been assigned to `$tmp'.
+ $debug ||
+ {
+- tmp=
++ tmp= ac_tmp=
+ trap 'exit_status=$?
+- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
++ : "${ac_tmp:=$tmp}"
++ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+ ' 0
+- trap '{ (exit 1); exit 1; }' 1 2 13 15
++ trap 'as_fn_exit 1' 1 2 13 15
+ }
+ # Create a (secure) tmp directory for tmp files.
+
+ {
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+- test -n "$tmp" && test -d "$tmp"
++ test -d "$tmp"
+ } ||
+ {
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+-} ||
+-{
+- $as_echo "$as_me: cannot create a temporary directory in ." >&2
+- { (exit 1); exit 1; }
+-}
++} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
++ac_tmp=$tmp
+
+ # Set up the scripts for CONFIG_FILES section.
+ # No need to generate them if there are no CONFIG_FILES.
+@@ -4548,7 +4345,13 @@ $debug ||
+ if test -n "$CONFIG_FILES"; then
+
+
+-ac_cr=' '
++ac_cr=`echo X | tr X '\015'`
++# On cygwin, bash can eat \r inside `` if the user requested igncr.
++# But we know of no other shell where ac_cr would be empty at this
++# point, so we can use a bashism as a fallback.
++if test "x$ac_cr" = x; then
++ eval ac_cr=\$\'\\r\'
++fi
+ ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+ if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+@@ -4556,7 +4359,7 @@ else
+ ac_cs_awk_cr=$ac_cr
+ fi
+
+-echo 'BEGIN {' >"$tmp/subs1.awk" &&
++echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+ _ACEOF
+
+
+@@ -4565,24 +4368,18 @@ _ACEOF
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+ } >conf$$subs.sh ||
+- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+- { (exit 1); exit 1; }; }
+-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
++ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ ac_delim='%!_!# '
+ for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+- { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+@@ -4590,7 +4387,7 @@ done
+ rm -f conf$$subs.sh
+
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
++cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+ _ACEOF
+ sed -n '
+ h
+@@ -4604,7 +4401,7 @@ s/'"$ac_delim"'$//
+ t delim
+ :nl
+ h
+-s/\(.\{148\}\).*/\1/
++s/\(.\{148\}\)..*/\1/
+ t more1
+ s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+ p
+@@ -4618,7 +4415,7 @@ s/.\{148\}//
+ t nl
+ :delim
+ h
+-s/\(.\{148\}\).*/\1/
++s/\(.\{148\}\)..*/\1/
+ t more2
+ s/["\\]/\\&/g; s/^/"/; s/$/"/
+ p
+@@ -4638,7 +4435,7 @@ t delim
+ rm -f conf$$subs.awk
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ _ACAWK
+-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
++cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+@@ -4670,23 +4467,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+ else
+ cat
+-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+- || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
+- { (exit 1); exit 1; }; }
++fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
++ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+ _ACEOF
+
+-# VPATH may cause trouble with some makes, so we remove $(srcdir),
+-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
++# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
++# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+ # trailing colons and then remove the whole line if VPATH becomes empty
+ # (actually we leave an empty line to preserve line numbers).
+ if test "x$srcdir" = x.; then
+- ac_vpsub='/^[ ]*VPATH[ ]*=/{
+-s/:*\$(srcdir):*/:/
+-s/:*\${srcdir}:*/:/
+-s/:*@srcdir@:*/:/
+-s/^\([^=]*=[ ]*\):*/\1/
++ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
++h
++s///
++s/^/:/
++s/[ ]*$/:/
++s/:\$(srcdir):/:/g
++s/:\${srcdir}:/:/g
++s/:@srcdir@:/:/g
++s/^:*//
+ s/:*$//
++x
++s/\(=[ ]*\).*/\1/
++G
++s/\n//
+ s/^[^=]*=[ ]*$//
+ }'
+ fi
+@@ -4704,9 +4507,7 @@ do
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+- :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+- { (exit 1); exit 1; }; };;
++ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+@@ -4725,7 +4526,7 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+ for ac_f
+ do
+ case $ac_f in
+- -) ac_f="$tmp/stdin";;
++ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+@@ -4734,12 +4535,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+- { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+- { (exit 1); exit 1; }; };;
++ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+- ac_file_inputs="$ac_file_inputs '$ac_f'"
++ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+@@ -4750,7 +4549,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+- { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+ $as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+@@ -4762,10 +4561,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
+ esac
+
+ case $ac_tag in
+- *:-:* | *:-) cat >"$tmp/stdin" \
+- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+-$as_echo "$as_me: error: could not create $ac_file" >&2;}
+- { (exit 1); exit 1; }; } ;;
++ *:-:* | *:-) cat >"$ac_tmp/stdin" \
++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+@@ -4793,47 +4590,7 @@ $as_echo X"$ac_file" |
+ q
+ }
+ s/.*/./; q'`
+- { as_dir="$ac_dir"
+- case $as_dir in #(
+- -*) as_dir=./$as_dir;;
+- esac
+- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+- as_dirs=
+- while :; do
+- case $as_dir in #(
+- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+- *) as_qdir=$as_dir;;
+- esac
+- as_dirs="'$as_qdir' $as_dirs"
+- as_dir=`$as_dirname -- "$as_dir" ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+- X"$as_dir" : 'X\(//\)[^/]' \| \
+- X"$as_dir" : 'X\(//\)$' \| \
+- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+-$as_echo X"$as_dir" |
+- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+- s//\1/
+- q
+- }
+- /^X\(\/\/\)[^/].*/{
+- s//\1/
+- q
+- }
+- /^X\(\/\/\)$/{
+- s//\1/
+- q
+- }
+- /^X\(\/\).*/{
+- s//\1/
+- q
+- }
+- s/.*/./; q'`
+- test -d "$as_dir" && break
+- done
+- test -z "$as_dirs" || eval "mkdir $as_dirs"
+- } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+- { (exit 1); exit 1; }; }; }
++ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+ case "$ac_dir" in
+@@ -4881,7 +4638,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ # If the template does not know about datarootdir, expand it.
+ # FIXME: This hack should be removed a few years after 2.60.
+ ac_datarootdir_hack=; ac_datarootdir_seen=
+-
+ ac_sed_dataroot='
+ /datarootdir/ {
+ p
+@@ -4891,12 +4647,11 @@ ac_sed_dataroot='
+ /@docdir@/p
+ /@infodir@/p
+ /@localedir@/p
+-/@mandir@/p
+-'
++/@mandir@/p'
+ case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+ *datarootdir*) ac_datarootdir_seen=yes;;
+ *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+- { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+ $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+@@ -4906,7 +4661,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+- s&\\\${datarootdir}&$datarootdir&g' ;;
++ s&\\\${datarootdir}&$datarootdir&g' ;;
+ esac
+ _ACEOF
+
+@@ -4932,27 +4687,24 @@ s&@abs_builddir@&$ac_abs_builddir&;t t
+ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+ $ac_datarootdir_hack
+ "
+-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+-$as_echo "$as_me: error: could not create $ac_file" >&2;}
+- { (exit 1); exit 1; }; }
++eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
++ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+- { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+-which seems to be undefined. Please make sure it is defined." >&5
++ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
++ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
++ "$ac_tmp/out"`; test -z "$ac_out"; } &&
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
++which seems to be undefined. Please make sure it is defined" >&5
+ $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+-which seems to be undefined. Please make sure it is defined." >&2;}
++which seems to be undefined. Please make sure it is defined" >&2;}
+
+- rm -f "$tmp/stdin"
++ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+- -) cat "$tmp/out" && rm -f "$tmp/out";;
+- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
++ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
++ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+- || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+-$as_echo "$as_me: error: could not create $ac_file" >&2;}
+- { (exit 1); exit 1; }; }
++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+@@ -4962,15 +4714,12 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;}
+ done # for ac_tag
+
+
+-{ (exit 0); exit 0; }
++as_fn_exit 0
+ _ACEOF
+-chmod +x $CONFIG_STATUS
+ ac_clean_files=$ac_clean_files_save
+
+ test $ac_write_fail = 0 ||
+- { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+- { (exit 1); exit 1; }; }
++ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+ # configure is writing to config.log, and then calls config.status.
+@@ -4991,10 +4740,10 @@ if test "$no_create" != yes; then
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+- $ac_cs_success || { (exit 1); exit 1; }
++ $ac_cs_success || as_fn_exit 1
+ fi
+ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+- { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ fi
+
diff --git a/packaging/nacl/ports/sdl/pkg_info b/packaging/nacl/ports/sdl/pkg_info
new file mode 100644
index 000000000..2be6d94ee
--- /dev/null
+++ b/packaging/nacl/ports/sdl/pkg_info
@@ -0,0 +1,9 @@
+NAME=sdl
+VERSION=1.2.14
+ARCHIVE_ROOT=SDL-1.2.14
+URL=http://www.libsdl.org/release/SDL-1.2.14.tar.gz
+LICENSE=LGPL2
+DEPENDS=(libtar regal)
+# Disabled on bionic due to regal.
+DISABLED_LIBC=(bionic)
+SHA1=ba625b4b404589b97e92d7acd165992debe576dd
diff --git a/packaging/nacl/ports/zlib/build.sh b/packaging/nacl/ports/zlib/build.sh
new file mode 100644
index 000000000..96c860fd0
--- /dev/null
+++ b/packaging/nacl/ports/zlib/build.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+# Copyright (c) 2011 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# zlib doesn't support custom build directories so we have
+# to build directly in the source dir.
+BUILD_DIR=${SRC_DIR}
+EXECUTABLES="minigzip${NACL_EXEEXT} example${NACL_EXEEXT}"
+if [ "${NACL_SHARED}" = "1" ]; then
+ EXECUTABLES+=" libz.so.1"
+fi
+
+ConfigureStep() {
+ LogExecute rm -f libz.*
+ SetupCrossEnvironment
+ CHOST=${NACL_CROSS_PREFIX} LogExecute ./configure --prefix=${PREFIX}
+}
+
+
+RunMinigzip() {
+# export LD_LIBRARY_PATH=.
+# if echo "hello world" | ./minigzip | ./minigzip -d; then
+# echo ' *** minigzip test OK ***'
+# else
+# echo ' *** minigzip test FAILED ***'
+# exit 1
+# fi
+# unset LD_LIBRARY_PATH
+ return 0
+}
+
+
+RunExample() {
+ export LD_LIBRARY_PATH=.
+ # This second test does not yet work on nacl (gzopen fails)
+ #if ./example; then \
+ #echo ' *** zlib test OK ***'; \
+ #else \
+ #echo ' *** zlib test FAILED ***'; \
+ #exit 1
+ #fi
+ unset LD_LIBRARY_PATH
+}
+
+
+TestStep() {
+ if [ "${NACL_LIBC}" = "glibc" ]; then
+ # Tests do not currently run on GLIBC due to fdopen() not working
+ # TODO(sbc): Remove this once glibc is fixed:
+ # https://code.google.com/p/nativeclient/issues/detail?id=3362
+ return
+ fi
+
+ if [ "${NACL_ARCH}" = "pnacl" ]; then
+ local minigzip_pexe="minigzip${NACL_EXEEXT}"
+ local example_pexe="example${NACL_EXEEXT}"
+ local minigzip_script="minigzip"
+ local example_script="example"
+ TranslateAndWriteSelLdrScript ${minigzip_pexe} x86-32 \
+ minigzip.x86-32.nexe ${minigzip_script}
+ RunMinigzip
+ TranslateAndWriteSelLdrScript ${minigzip_pexe} x86-64 \
+ minigzip.x86-64.nexe ${minigzip_script}
+ RunMinigzip
+ TranslateAndWriteSelLdrScript ${example_pexe} x86-32 \
+ example.x86-32.nexe ${example_script}
+ RunExample
+ TranslateAndWriteSelLdrScript ${example_pexe} x86-64 \
+ example.x86-64.nexe ${example_script}
+ RunExample
+ else
+ RunMinigzip
+ RunExample
+ fi
+}
diff --git a/packaging/nacl/ports/zlib/nacl.patch b/packaging/nacl/ports/zlib/nacl.patch
new file mode 100644
index 000000000..176552330
--- /dev/null
+++ b/packaging/nacl/ports/zlib/nacl.patch
@@ -0,0 +1,17 @@
+diff --git a/configure b/configure
+index b77a8a8..e52609f 100755
+--- a/configure
++++ b/configure
+@@ -188,6 +188,12 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
+ *BSD | *bsd* | DragonFly)
+ LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"}
+ LDCONFIG="ldconfig -m" ;;
++ pnacl)
++ LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"}
++ EXE='.pexe' ;;
++ nacl)
++ LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"}
++ EXE='.nexe' ;;
+ CYGWIN* | Cygwin* | cygwin* | OS/2*)
+ EXE='.exe' ;;
+ MINGW* | mingw*)
diff --git a/packaging/nacl/ports/zlib/pkg_info b/packaging/nacl/ports/zlib/pkg_info
new file mode 100644
index 000000000..22f1701e5
--- /dev/null
+++ b/packaging/nacl/ports/zlib/pkg_info
@@ -0,0 +1,5 @@
+NAME=zlib
+VERSION=1.2.8
+URL=http://www.zlib.net/zlib-1.2.8.tar.gz
+LICENSE=CUSTOM:README
+SHA1=a4d316c404ff54ca545ea71a27af7dbc29817088