From eefb212caca31d46f1d36ce272d4bc6842c039f0 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 13 Aug 2014 21:50:07 +0300
Subject: Add chrome ports patches for build manaplus on nacl.

---
 packaging/nacl/ports/jpeg8d/build.sh    |   36 +
 packaging/nacl/ports/jpeg8d/pkg_info    |    6 +
 packaging/nacl/ports/manaplus/build.sh  |   42 +
 packaging/nacl/ports/manaplus/pkg_info  |    6 +
 packaging/nacl/ports/openssl/build.sh   |   75 +
 packaging/nacl/ports/openssl/nacl.patch |   61 +
 packaging/nacl/ports/openssl/pkg_info   |    7 +
 packaging/nacl/ports/regal/build.sh     |   29 +
 packaging/nacl/ports/regal/nacl.patch   |  319 ++
 packaging/nacl/ports/regal/pkg_info     |    8 +
 packaging/nacl/ports/sdl-gfx/build.sh   |   36 +
 packaging/nacl/ports/sdl-gfx/nacl.patch |   14 +
 packaging/nacl/ports/sdl-gfx/pkg_info   |    7 +
 packaging/nacl/ports/sdl-net/nacl.patch |  251 ++
 packaging/nacl/ports/sdl-net/pkg_info   |    9 +
 packaging/nacl/ports/sdl/build.sh       |   40 +
 packaging/nacl/ports/sdl/nacl.patch     | 6362 +++++++++++++++++++++++++++++++
 packaging/nacl/ports/sdl/pkg_info       |    9 +
 packaging/nacl/ports/zlib/build.sh      |   76 +
 packaging/nacl/ports/zlib/nacl.patch    |   17 +
 packaging/nacl/ports/zlib/pkg_info      |    5 +
 21 files changed, 7415 insertions(+)
 create mode 100644 packaging/nacl/ports/jpeg8d/build.sh
 create mode 100644 packaging/nacl/ports/jpeg8d/pkg_info
 create mode 100755 packaging/nacl/ports/manaplus/build.sh
 create mode 100644 packaging/nacl/ports/manaplus/pkg_info
 create mode 100644 packaging/nacl/ports/openssl/build.sh
 create mode 100644 packaging/nacl/ports/openssl/nacl.patch
 create mode 100644 packaging/nacl/ports/openssl/pkg_info
 create mode 100644 packaging/nacl/ports/regal/build.sh
 create mode 100644 packaging/nacl/ports/regal/nacl.patch
 create mode 100644 packaging/nacl/ports/regal/pkg_info
 create mode 100755 packaging/nacl/ports/sdl-gfx/build.sh
 create mode 100644 packaging/nacl/ports/sdl-gfx/nacl.patch
 create mode 100644 packaging/nacl/ports/sdl-gfx/pkg_info
 create mode 100644 packaging/nacl/ports/sdl-net/nacl.patch
 create mode 100644 packaging/nacl/ports/sdl-net/pkg_info
 create mode 100644 packaging/nacl/ports/sdl/build.sh
 create mode 100644 packaging/nacl/ports/sdl/nacl.patch
 create mode 100644 packaging/nacl/ports/sdl/pkg_info
 create mode 100644 packaging/nacl/ports/zlib/build.sh
 create mode 100644 packaging/nacl/ports/zlib/nacl.patch
 create mode 100644 packaging/nacl/ports/zlib/pkg_info

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
-- 
cgit v1.2.3-70-g09d2