Upgrade libepoxy to 1.5.10 am: a01a87cee9

Original change: https://android-review.googlesource.com/c/platform/external/libepoxy/+/2319292

Change-Id: Ib8bce3bdd120fa6e112e1df01a0d422d4bb2b1d0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 8e0cae2..0000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-version: 1.0.{build}
-
-image: Visual Studio 2015
-
-configuration: Release
-
-# Configure both 32-bit and 64-bit builds
-environment:
-  matrix:
-  - platform: x86
-    config: Win32
-    pout: x86
-  - platform: x64
-    config: x64
-    pout: x64
-
-shallow_clone: true
-
-# Download Meson and Ninja, create install directory
-before_build:
-- mkdir build
-- mkdir libepoxy-shared-%pout%
-- cd build
-- curl -LsSO https://github.com/mesonbuild/meson/releases/download/0.47.1/meson-0.47.1.tar.gz
-- 7z x meson-0.47.1.tar.gz
-- move dist\meson-0.47.1.tar .
-- 7z x meson-0.47.1.tar
-- rmdir dist
-- del meson-0.47.1.tar meson-0.47.1.tar.gz
-- curl -LsSO https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-win.zip
-- 7z x ninja-win.zip
-- del ninja-win.zip
-- cd ..
-
-# Build and install
-build_script:
-- cd build
-- call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM%
-- C:\Python36\python.exe meson-0.47.1\meson.py .. . --backend=ninja --prefix=%APPVEYOR_BUILD_FOLDER%\libepoxy-shared-%pout%
-- ninja
-- ninja install
-- cd ..
-
-# Copy license into install directory and create .zip file
-after_build:
-- copy COPYING libepoxy-shared-%pout%
-- dir libepoxy-shared-%pout% /s /b
-- 7z a -tzip libepoxy-shared-%pout%.zip libepoxy-shared-%pout%
-
-artifacts:
-  - path: libepoxy-shared-%pout%.zip
-    name: libepoxy-shared-%pout%
-
-test: off
-
-# Upload .zip file to GitHub release
-deploy:
-  release: $(APPVEYOR_REPO_TAG_NAME)
-  description: "Epoxy $(APPVEYOR_REPO_TAG_NAME)"
-  provider: GitHub
-  auth_token:
-    secure: X7Ro8Y2RWYo/M1AAn93f9X0dEQFvu7gPb6li2eKRtzPYLGj/JKm7MNWRw2cCcjm6
-  artifact: libepoxy-shared-$(pout)
-  draft: false
-  prerelease: false
-  on:
-    appveyor_repo_tag: true # deploy on tag push only
diff --git a/.editorconfig b/.editorconfig
index ce6000d..3473806 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -10,14 +10,6 @@
 trim_trailing_whitespace = true
 insert_final_newline = true
 
-[configure.ac]
-indent_style = tab
-indent_size = 8
-
-[Makefile.am]
-indent_style = tab
-indent_size = 8
-
 [.travis.yml]
 indent_style = space
 indent_size = 2
diff --git a/.travis/epoxy-ci-linux.sh b/.github/scripts/epoxy-ci-linux.sh
similarity index 100%
rename from .travis/epoxy-ci-linux.sh
rename to .github/scripts/epoxy-ci-linux.sh
diff --git a/.travis/epoxy-ci-osx.sh b/.github/scripts/epoxy-ci-osx.sh
similarity index 100%
rename from .travis/epoxy-ci-osx.sh
rename to .github/scripts/epoxy-ci-osx.sh
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
new file mode 100644
index 0000000..3d71e7f
--- /dev/null
+++ b/.github/workflows/linux.yml
@@ -0,0 +1,38 @@
+name: Ubuntu
+on:
+  push:
+    branches-ignore:
+      - debian
+      - khronos-registry
+jobs:
+  build:
+    strategy:
+      matrix:
+        os: 
+          - ubuntu-18.04
+        compiler:
+          - gcc
+          - clang
+        build-opts:
+          - ''
+          - '-Dglx=no'
+          - '-Degl=no'
+          - '-Dx11=false'
+    runs-on: ${{ matrix.os }}
+    steps:
+      - uses: actions/checkout@v2
+      - run: >
+          sudo apt-get update &&
+          sudo apt-get install --no-install-recommends
+          libgl1-mesa-dev
+          libegl1-mesa-dev
+          libgles2-mesa-dev
+          libgl1-mesa-dri
+          ninja-build
+      - uses: actions/setup-python@v2
+        with:
+          python-version: 3.x
+      - run: |
+          python -m pip install --upgrade pip
+          pip3 install meson
+          /bin/sh -c "CC=${{ matrix.compiler }} .github/scripts/epoxy-ci-linux.sh ${{ matrix.build-opts }}"
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
new file mode 100644
index 0000000..c725ef1
--- /dev/null
+++ b/.github/workflows/macos.yml
@@ -0,0 +1,26 @@
+name: macOS
+on:
+  push:
+    branches-ignore:
+      - debian
+      - khronos-registry
+jobs:
+  build:
+    strategy:
+      matrix:
+        build-opts:
+          - ''
+          - '-Dglx=no'
+          - '-Degl=no'
+          - '-Dx11=false'
+    runs-on: macos-10.15
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/setup-python@v2
+        with:
+          python-version: 3.x
+      - run: |
+          brew install ninja
+          python -m pip install --upgrade pip
+          pip3 install meson
+          /bin/sh -c "CC=clang .github/scripts/epoxy-ci-osx.sh ${{ matrix.build-opts }}"
diff --git a/.github/workflows/msvc-env.yml b/.github/workflows/msvc-env.yml
new file mode 100644
index 0000000..a4e69c8
--- /dev/null
+++ b/.github/workflows/msvc-env.yml
@@ -0,0 +1,23 @@
+name: MSVC Build
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  build:
+    runs-on: windows-latest
+    env:
+      PYTHONIOENCODING: "utf-8"
+    steps:
+    - uses: actions/checkout@master
+    - uses: actions/setup-python@v1
+    - uses: seanmiddleditch/gha-setup-vsdevenv@master
+    - uses: BSFishy/meson-build@v1.0.1
+      with:
+        action: test
+        directory: _build
+        options: --verbose --fatal-meson-warnings
+        meson-version: 0.54.3
diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml
new file mode 100644
index 0000000..0f90a2b
--- /dev/null
+++ b/.github/workflows/msys2.yml
@@ -0,0 +1,27 @@
+name: MSYS2 Build
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  build:
+    runs-on: windows-latest
+    defaults:
+      run:
+        shell: msys2 {0}
+    env:
+      PYTHONIOENCODING: "utf-8"
+    steps:
+    - uses: actions/checkout@master
+    - uses: msys2/setup-msys2@v2
+      with:
+        msystem: MINGW64
+        update: true
+        install: base-devel git mingw-w64-x86_64-meson mingw-w64-x86_64-ninja mingw-w64-x86_64-pkg-config mingw-w64-x86_64-python3 mingw-w64-x86_64-python3-pip mingw-w64-x86_64-toolchain
+    - name: Build
+      run: |
+        meson setup _build
+        meson compile -C _build
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 52c043e..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-sudo: false
-
-branches:
-  except:
-    - debian
-    - khronos-registry
-
-os:
-  - linux
-  - osx
-
-compiler:
-  - gcc
-  - clang
-
-language:
-  - c
-
-services:
-  - docker
-
-matrix:
-  exclude:
-  - os: osx
-    compiler: gcc
-
-before_install:
-  - |
-    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
-      brew update
-      brew install python@3 meson
-      # Use a Ninja with QuLogic's patch: https://github.com/ninja-build/ninja/issues/1219
-      mkdir -p $HOME/tools; curl -L http://nirbheek.in/files/binaries/ninja/macos/ninja -o $HOME/tools/ninja; chmod +x $HOME/tools/ninja
-    fi
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker pull ebassi/epoxyci ; fi
-
-before_script:
-  - |
-    if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
-      echo FROM ebassi/epoxyci > Dockerfile
-      echo ADD . /root >> Dockerfile
-      echo WORKDIR /root >> Dockerfile
-      docker build -t withgit .
-    fi
-
-env:
-  - BUILD_OPTS=""
-  - BUILD_OPTS="-Dglx=no"
-  - BUILD_OPTS="-Degl=no"
-  - BUILD_OPTS="-Dx11=false"
-
-script:
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker run withgit /bin/sh -c "CC=$CC .travis/epoxy-ci-linux.sh $BUILD_OPTS" ; fi
-  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then /bin/sh -c "CC=$CC .travis/epoxy-ci-osx.sh $BUILD_OPTS" ; fi
diff --git a/.travis/Dockerfile b/.travis/Dockerfile
deleted file mode 100644
index bd9b40a..0000000
--- a/.travis/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-FROM debian:stretch-slim
-MAINTAINER Emmanuele Bassi <ebassi@gmail.com>
-
-RUN apt-get update -qq && \
-    apt-get install --no-install-recommends -qq -y \
-        ca-certificates \
-        clang \
-        gcc \
-        libgl1-mesa-dev \
-        libegl1-mesa-dev \
-        libgles1-mesa-dev \
-        libgles2-mesa-dev \
-        libgl1-mesa-dri \
-        locales \
-        ninja-build \
-        pkg-config \
-        python3 \
-        python3-pip \
-        python3-setuptools \
-        python3-wheel \
-        xvfb && \
-        rm -rf /usr/share/doc/* /usr/share/man/*
-
-RUN locale-gen C.UTF-8 && /usr/sbin/update-locale LANG=C.UTF-8
-ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
-
-RUN pip3 install meson
-
-WORKDIR /root
diff --git a/.travis/run-docker.sh b/.travis/run-docker.sh
deleted file mode 100755
index 4b3ecc7..0000000
--- a/.travis/run-docker.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-set -xe
-
-srcdir="$(pwd)/.."
-
-sudo docker build \
-        --tag "epoxyci" \
-        --file "Dockerfile" .
-sudo docker run --rm \
-        --volume "${srcdir}:/root/epoxy" \
-        --tty --interactive "epoxyci" bash
diff --git a/METADATA b/METADATA
index 4a8f3d8..f6c32f4 100644
--- a/METADATA
+++ b/METADATA
@@ -1,3 +1,7 @@
+# This project was upgraded with external_updater.
+# Usage: tools/external_updater/updater.sh update libepoxy
+# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
+
 name: "libepoxy"
 description: "Epoxy is a library for handling OpenGL function pointers"
 third_party {
@@ -5,11 +9,11 @@
     type: GIT
     value: "https://github.com/anholt/libepoxy.git"
   }
-  version: "1.5.4"
+  version: "1.5.10"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2020
-    month: 4
-    day: 9
+    year: 2022
+    month: 11
+    day: 28
   }
 }
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 8fead48..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,68 +0,0 @@
-
-# Copyright © 2013 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-ACLOCAL_AMFLAGS = -I m4
-
-SUBDIRS = include/epoxy src
-
-SUBDIRS += test
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = epoxy.pc
-
-registry_files = \
-	registry/egl.xml \
-	registry/gl.xml \
-	registry/glx.xml \
-	registry/wgl.xml \
-	$()
-
-meson_build_files = \
-	meson_options.txt \
-	meson.build \
-	include/epoxy/meson.build \
-	src/meson.build \
-	test/meson.build \
-	doc/meson.build \
-	doc/Doxyfile.in \
-	cross/fedora-mingw64.txt \
-	$()
-
-EXTRA_DIST = \
-	.dir-locals.el \
-	README.md \
-	autogen.sh \
-	epoxy.pc.in \
-	$(registry_files) \
-	$(meson_build_files) \
-	$()
-
-dist-hook:
-	@if test -d "$(top_srcdir)/.git"; then \
-	  echo Generating ChangeLog... ; \
-	  ( $(top_srcdir)/missing --run git log --stat ) > "$(top_srcdir)/ChangeLog.tmp" \
-	  && mv -f "$(top_srcdir)/ChangeLog.tmp" "$(top_distdir)/ChangeLog" \
-	  || ( rm -f "$(top_srcdir)/ChangeLog.tmp"; \
-	       echo Failed to generate ChangeLog >&2 ); \
-	else \
-	  echo A git checkout is required to generate a ChangeLog >&2; \
-	fi
diff --git a/README.md b/README.md
index 56b6a65..9d83ed9 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
-[![Build Status](https://travis-ci.org/anholt/libepoxy.svg?branch=master)](https://travis-ci.org/anholt/libepoxy)
-[![Build status](https://ci.appveyor.com/api/projects/status/xv6y5jurt5v5ngjx/branch/master?svg=true)](https://ci.appveyor.com/project/ebassi/libepoxy/branch/master)
+![Ubuntu](https://github.com/anholt/libepoxy/workflows/Ubuntu/badge.svg)
+![macOS](https://github.com/anholt/libepoxy/workflows/macOS/badge.svg)
+![MSVC Build](https://github.com/anholt/libepoxy/workflows/MSVC%20Build/badge.svg)
+![MSYS2 Build](https://github.com/anholt/libepoxy/workflows/MSYS2%20Build/badge.svg)
+[![License: MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)
 
 Epoxy is a library for handling OpenGL function pointer management for
 you.
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index 02b81ef..0000000
--- a/autogen.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /bin/sh
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-ORIGDIR=`pwd`
-cd "$srcdir"
-
-mkdir m4 || exit 1
-
-autoreconf -v --install || exit $?
-cd "$ORIGDIR" || exit $?
-
-if test -z "$NOCONFIGURE"; then
-    exec "$srcdir/configure" "$@"
-fi
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index b0bb452..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,275 +0,0 @@
-# Copyright © 2013 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-# Initialize Autoconf
-AC_PREREQ([2.60])
-AC_INIT([libepoxy],
-        [1.5.4],
-        [https://github.com/anholt/libepoxy],
-        [libepoxy])
-AC_CONFIG_SRCDIR([Makefile.am])
-AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_MACRO_DIR([m4])
-
-# Initialize Automake
-AM_INIT_AUTOMAKE([foreign -Wno-portability dist-xz no-dist-gzip tar-ustar subdir-objects])
-
-# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
-m4_ifndef([XORG_MACROS_VERSION],
-          [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen.
-  Hint: either install from source, git://anongit.freedesktop.org/xorg/util/macros or,
-  depending on you distribution, try package 'xutils-dev' or 'xorg-x11-util-macros'])])
-
-XORG_MACROS_VERSION(1.8)
-XORG_DEFAULT_OPTIONS
-
-AC_CHECK_PROGS([PYTHON], [python3 python2 python])
-
-# Initialize libtool
-AC_DISABLE_STATIC
-AC_LIBTOOL_WIN32_DLL
-AC_PROG_LIBTOOL
-AC_SYS_LARGEFILE
-
-AC_CHECK_HEADER([KHR/khrplatform.h],
-                [AC_DEFINE([HAVE_KHRPLATFORM_H], [1],
-                           [Define to 1 if you have <KHR/khrplatform.h> (used for tests)]
-                           )]
-               )
-
-# OS X defaults to having -Wint-conversion ("warn when passing
-# uintptr_t to a void *") by default.  Kill that.
-XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion])
-
-AC_ARG_ENABLE([x11],
-              [AC_HELP_STRING([--enable-x11=@<:@yes,no@:>@], [Enable X11 support @<:@default=yes@:>@])],
-              [enable_x11=$enableval],
-              [enable_x11=yes])
-
-AC_ARG_ENABLE([glx],
-              [AC_HELP_STRING([--enable-glx=@<:@auto,yes,no@:>@], [Enable GLX support @<:@default=auto@:>@])],
-              [enable_glx=$enableval],
-              [enable_glx=auto])
-
-# GLX can be used on different platforms, so we expose a
-# configure time switch to enable or disable it; in case
-# the "auto" default value is set, we only enable GLX
-# support on Linux and Unix
-AS_CASE([$enable_glx],
-  [auto], [
-    AS_CASE([$host_os],
-            [mingw*], [build_glx=no],
-            [darwin*], [build_glx=no],
-            [android*], [build_glx=no],
-            [build_glx=yes])
-  ],
-
-  [yes], [
-    build_glx=yes
-  ],
-
-  [no], [
-    build_glx=no
-  ],
-
-  [AC_MSG_ERROR([Invalid value "$enable_glx" for option "--enable-glx"])]
-])
-
-AC_ARG_ENABLE([egl],
-              [AC_HELP_STRING([--enable-egl=@<:@auto,yes,no@:>@], [Enable EGL support @<:@default=auto@:>@])],
-              [enable_egl=$enableval],
-              [enable_egl=auto])
-
-AS_CASE([$enable_egl],
-  [auto], [
-    AS_CASE([$host_os],
-            [mingw*], [build_egl=no],
-            [darwin*], [build_egl=no],
-            [build_egl=yes])
-  ],
-
-  [yes], [
-    build_egl=yes
-  ],
-
-  [no], [
-    build_egl=no
-  ],
-
-  [AC_MSG_ERROR([Invalid value "$enable_egl" for option "--enable-egl"])]
-])
-
-# The remaining platform specific API are enabled depending on the
-# platform we're building for
-AS_CASE([$host_os],
-  [mingw*], [
-    build_wgl=yes
-    has_znow=yes
-    # On windows, the DLL has to have all of its functions
-    # resolved at link time, so we have to link directly against
-    # opengl32.dll.  But that's the only GL provider, anyway.
-    EPOXY_LINK_LIBS="-lopengl32"
-
-    # Testing our built windows binaries requires that they be run
-    # under wine.  Yeah, we should be nice and autodetect, but
-    # there's lots of missing autodetection for the testsuite
-    # (like checking for EGL and GLX libs in non-windows.).
-    AC_SUBST([LOG_COMPILER], [wine])
-  ],
-
-  [darwin*], [
-    build_wgl=no
-    has_znow=no
-    EPOXY_LINK_LIBS=""
-  ],
-
-  [
-    build_wgl=no
-    has_znow=yes
-    # On platforms with dlopen, we load everything dynamically and
-    # don't link against a specific window system or GL implementation.
-    EPOXY_LINK_LIBS=""
-   ]
-)
-
-AC_SUBST(EPOXY_LINK_LIBS)
-
-if test x$enable_x11 = xno; then
-    if test x$enable_glx = xyes; then
-        AC_MSG_ERROR([GLX support is explicitly enabled, but X11 was disabled])
-    fi
-    build_glx=no
-else
-    AC_DEFINE([ENABLE_X11], [1], [Whether X11 support is enabled])
-fi
-
-AM_CONDITIONAL(BUILD_EGL, test x$build_egl = xyes)
-if test x$build_egl = xyes; then
-    PKG_CHECK_MODULES(EGL, [egl])
-    AC_DEFINE([BUILD_EGL], [1], [build EGL tests])
-    AC_DEFINE(ENABLE_EGL, [1], [Whether EGL support is enabled])
-fi
-
-AM_CONDITIONAL(BUILD_GLX, test x$build_glx = xyes)
-if test x$build_glx = xyes; then
-    AC_DEFINE([BUILD_GLX], [1], [build GLX tests])
-fi
-
-AM_CONDITIONAL(BUILD_WGL, test x$build_wgl = xyes)
-if test x$build_wgl = xyes; then
-    AC_DEFINE([BUILD_WGL], [1], [build WGL tests])
-fi
-
-AM_CONDITIONAL(HAS_ZNOW, test x$has_znow = xyes)
-
-AC_CHECK_LIB([GLESv1_CM], [glFlush], [has_gles1=yes], [has_gles1=no])
-AM_CONDITIONAL(HAS_GLES1, test x$has_gles1 = xyes)
-
-AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])
-AC_SUBST([DLOPEN_LIBS])
-
-savelibs=$LIBS
-LIBS=$DLOPEN_LIBS
-AC_CHECK_FUNCS([dlvsym], [have_dlvsym=1], [have_dlvsym=0])
-AM_CONDITIONAL(HAVE_DLVSYM, test $have_dlvsym = 1)
-LIBS=$savelibs
-
-VISIBILITY_CFLAGS=""
-AS_CASE(["$host"],
-
-  [*-*-mingw*], [
-    dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport)
-    AC_DEFINE([EPOXY_PUBLIC],
-              [__attribute__((visibility("default"))) __declspec(dllexport) extern],
-              [defines how to decorate public symbols while building])
-    VISIBILITY_CFLAGS="-fvisibility=hidden"
-  ],
-
-  [
-    dnl on other compilers, check if we can do -fvisibility=hidden
-    SAVED_CFLAGS="${CFLAGS}"
-    CFLAGS="-fvisibility=hidden"
-    AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
-    AC_TRY_COMPILE([], [int main (void) { return 0; }], [
-      AC_MSG_RESULT(yes)
-      enable_fvisibility_hidden=yes
-    ], [
-      AC_MSG_RESULT(no)
-      enable_fvisibility_hidden=no
-    ])
-    CFLAGS="${SAVED_CFLAGS}"
-
-    AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [
-      AC_DEFINE([EPOXY_PUBLIC],
-                [__attribute__((visibility("default"))) extern],
-                [defines how to decorate public symbols while building])
-      VISIBILITY_CFLAGS="-fvisibility=hidden"
-    ])
-  ]
-)
-
-AC_SUBST([VISIBILITY_CFLAGS])
-
-if test x$enable_x11 = xyes; then
-    PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no])
-    if test x$x11 = xno -a x$build_glx = xyes; then
-        AC_MSG_ERROR([libX11 headers (libx11-dev) are required to build with GLX support])
-    fi
-else
-    x11=no
-fi
-
-if test x$build_glx = xyes; then
-  AC_DEFINE(ENABLE_GLX, [1], [Whether GLX support is enabled])
-fi
-
-AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes)
-
-PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no])
-PKG_CHECK_MODULES(EGL, [egl], [egl=yes], [egl=no])
-
-GL_REQS=""
-AS_IF([test x$gl = xyes], [GL_REQS="$GL_REQS gl"])
-AS_IF([test x$build_egl = xyes && test x$egl = xyes], [GL_REQS="$GL_REQS egl"])
-AC_SUBST(GL_REQS)
-
-# Variables for the pkg-config file; AC_SUBST does not do `test` substitutions,
-# so we need to specify the boolean values here
-AS_IF([test x$build_glx = xyes], [epoxy_has_glx=1], [epoxy_has_glx=0])
-AS_IF([test x$build_egl = xyes], [epoxy_has_egl=1], [epoxy_has_egl=0])
-AS_IF([test x$build_wgl = xyes], [epoxy_has_wgl=1], [epoxy_has_wgl=0])
-AC_SUBST(epoxy_has_glx)
-AC_SUBST(epoxy_has_egl)
-AC_SUBST(epoxy_has_wgl)
-
-AC_CONFIG_FILES([
-                epoxy.pc
-                Makefile
-                include/epoxy/Makefile
-                src/Makefile
-                test/Makefile
-])
-AC_OUTPUT
-
-echo "           EGL:         $build_egl"
-echo "           GLX:         $build_glx"
-echo "           WGL:         $build_wgl"
-echo "        PYTHON:         $PYTHON"
diff --git a/epoxy.pc.in b/epoxy.pc.in
deleted file mode 100644
index cdda8d9..0000000
--- a/epoxy.pc.in
+++ /dev/null
@@ -1,16 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-epoxy_has_glx=@epoxy_has_glx@
-epoxy_has_egl=@epoxy_has_egl@
-epoxy_has_wgl=@epoxy_has_wgl@
-
-Name: epoxy
-Description: epoxy GL dispatch Library
-Version: @PACKAGE_VERSION@
-Cflags: -I${includedir}
-Libs: -L${libdir} -lepoxy
-Libs.private: @DLOPEN_LIBS@
-Requires.private: @GL_REQS@
diff --git a/include/epoxy/Makefile.am b/include/epoxy/Makefile.am
deleted file mode 100644
index 494c96e..0000000
--- a/include/epoxy/Makefile.am
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright © 2013 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-epoxyincludedir = $(includedir)/epoxy
-
-epoxyinclude_HEADERS = \
-	common.h \
-	gl.h \
-        $(EGL_INCLUDES) \
-        $(GLX_INCLUDES) \
-        $(WGL_INCLUDES) \
-	$()
-
-if BUILD_EGL
-EGL_INCLUDES = egl.h
-endif
-
-if BUILD_GLX
-GLX_INCLUDES = glx.h
-endif
-
-if BUILD_WGL
-WGL_INCLUDES = wgl.h
-endif
diff --git a/include/epoxy/meson.build b/include/epoxy/meson.build
index 65f83be..c679efe 100644
--- a/include/epoxy/meson.build
+++ b/include/epoxy/meson.build
@@ -25,7 +25,6 @@
                             input: registry,
                             output: [ gen_header ],
                             command: [
-                              python,
                               gen_dispatch_py,
                               '--header',
                               '--no-source',
diff --git a/meson.build b/meson.build
index 91d9792..e1d8d8b 100644
--- a/meson.build
+++ b/meson.build
@@ -1,11 +1,11 @@
-project('libepoxy', 'c', version: '1.5.4',
+project('libepoxy', 'c', version: '1.5.10',
         default_options: [
           'buildtype=debugoptimized',
           'c_std=gnu99',
           'warning_level=1',
         ],
         license: 'MIT',
-        meson_version: '>= 0.47.0')
+        meson_version: '>= 0.54.0')
 
 epoxy_version = meson.project_version().split('.')
 epoxy_major_version = epoxy_version[0].to_int()
@@ -95,6 +95,7 @@
     '-we4053', # an expression of type void was used as an operand
     '-we4071', # no function prototype given
     '-we4819', # the file contains a character that cannot be represented in the current code page
+    '/utf-8', # Set the input and exec encoding to utf-8, like is the default with GCC
   ]
 elif cc.get_id() == 'gcc' or cc.get_id() == 'clang'
   test_cflags = [
@@ -165,9 +166,11 @@
 dl_dep = cc.find_library('dl', required: false)
 gl_dep = dependency('gl', required: false)
 egl_dep = dependency('egl', required: false)
+elg_headers_dep = egl_dep.partial_dependency(compile_args: true, includes: true)
 
 # Optional dependencies for tests
 x11_dep = dependency('x11', required: false)
+x11_headers_dep = x11_dep.partial_dependency(compile_args: true, includes: true)
 
 # GLES v2 and v1 may have pkg-config files, courtesy of downstream
 # packagers; let's check those first, and fall back to find_library()
@@ -196,14 +199,8 @@
   gdi32_dep = cc.find_library('gdi32', required: true)
 endif
 
-# Python
-python = import('python3').find_python()
-if not python.found()
-  python = find_program('python', required: true)
-endif
-
 # Generates the dispatch tables
-gen_dispatch_py = files('src/gen_dispatch.py')
+gen_dispatch_py = find_program('src/gen_dispatch.py')
 
 gl_registry = files('registry/gl.xml')
 egl_registry = files('registry/egl.xml')
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 73f7435..0000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,184 +0,0 @@
-# Copyright © 2013 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-AM_CPPFLAGS = \
-	-I$(top_srcdir)/include \
-	-I$(top_builddir)/include \
-	$()
-
-AM_CFLAGS = \
-	$(CWARNFLAGS) \
-	$(VISIBILITY_CFLAGS) \
-	$(X11_CFLAGS) \
-	$(EGL_CFLAGS) \
-	$()
-
-epoxyincludedir = $(includedir)/epoxy
-lib_LTLIBRARIES = libepoxy.la
-
-epoxyinclude_DATA = \
-	$(GENERATED_GL_INCLUDES) \
-	$(INSTALL_GLX_INCLUDES) \
-	$(INSTALL_EGL_INCLUDES) \
-	$(INSTALL_WGL_INCLUDES) \
-	$()
-
-if BUILD_EGL
-INSTALL_EGL_INCLUDES = $(GENERATED_EGL_INCLUDES)
-endif
-
-if BUILD_GLX
-INSTALL_GLX_INCLUDES = $(GENERATED_GLX_INCLUDES)
-endif
-
-if BUILD_WGL
-INSTALL_WGL_INCLUDES = $(GENERATED_WGL_INCLUDES)
-endif
-
-GENERATED_GL_INCLUDES = \
-	$(builddir)/../include/epoxy/gl_generated.h \
-	$()
-
-GENERATED_GLX_INCLUDES = \
-	$(builddir)/../include/epoxy/glx_generated.h \
-	$()
-
-GENERATED_EGL_INCLUDES = \
-	$(builddir)/../include/epoxy/egl_generated.h \
-	$()
-
-GENERATED_WGL_INCLUDES = \
-	$(builddir)/../include/epoxy/wgl_generated.h \
-	$()
-
-GENERATED_GL_SOURCE = gl_generated_dispatch.c
-
-GENERATED_GL = \
-	$(GENERATED_GL_SOURCE) \
-	$(GENERATED_GL_INCLUDES) \
-	$()
-
-GENERATED_GLX_SOURCE = glx_generated_dispatch.c
-
-GENERATED_GLX = \
-	$(GENERATED_GLX_SOURCE) \
-	$(GENERATED_GLX_INCLUDES) \
-	$()
-
-GENERATED_EGL_SOURCE = egl_generated_dispatch.c
-
-GENERATED_EGL = \
-	$(GENERATED_EGL_SOURCE) \
-	$(GENERATED_EGL_INCLUDES) \
-	$()
-
-GENERATED_WGL_SOURCE = wgl_generated_dispatch.c
-
-GENERATED_WGL = \
-	$(GENERATED_WGL_SOURCE) \
-	$(GENERATED_WGL_INCLUDES) \
-	$()
-
-BUILT_SOURCES = \
-	$(GENERATED_GL) \
-	$(GENERATED_GLX) \
-	$(GENERATED_EGL) \
-	$(GENERATED_WGL) \
-	$()
-CLEANFILES = $(BUILT_SOURCES)
-
-libepoxy_la_SOURCES = \
-	dispatch_common.c \
-	dispatch_common.h \
-	$(GENERATED_GL) \
-	$(BUILD_EGL_CODE) \
-	$(BUILD_GLX_CODE) \
-	$(BUILD_WGL_CODE) \
-	$()
-
-libepoxy_la_LDFLAGS = \
-	-no-undefined \
-        -Bsymbolic-functions \
-	$()
-
-libepoxy_la_LIBADD = \
-	$(EPOXY_LINK_LIBS) \
-        $(DLOPEN_LIBS) \
-	$()
-
-if BUILD_EGL
-BUILD_EGL_CODE = \
-	$(GENERATED_EGL) \
-	dispatch_egl.c \
-	$()
-endif
-
-if BUILD_GLX
-BUILD_GLX_CODE = \
-	$(GENERATED_GLX) \
-	dispatch_glx.c \
-	$()
-endif
-
-if BUILD_WGL
-BUILD_WGL_CODE = \
-	$(GENERATED_WGL) \
-	dispatch_wgl.c \
-	$()
-endif
-
-# These are generated alongside the .c file.
-$(GENERATED_GL_INCLUDES): $(GENERATED_GL_SOURCE)
-$(GENERATED_GLX_INCLUDES): $(GENERATED_GLX_SOURCE)
-$(GENERATED_EGL_INCLUDES): $(GENERATED_EGL_SOURCE)
-$(GENERATED_WGL_INCLUDES): $(GENERATED_WGL_SOURCE)
-
-$(GENERATED_GL_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/gl.xml
-	@$(MKDIR_P) $(top_builddir)/include/epoxy
-	$(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \
-		--srcdir $(top_builddir)/src \
-		--includedir $(top_builddir)/include/epoxy \
-		$(top_srcdir)/registry/gl.xml
-
-$(GENERATED_GLX_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/glx.xml
-	@$(MKDIR_P) $(top_builddir)/include/epoxy
-	$(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \
-		--srcdir $(top_builddir)/src \
-		--includedir $(top_builddir)/include/epoxy \
-		$(top_srcdir)/registry/glx.xml
-
-$(GENERATED_EGL_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/egl.xml
-	@$(MKDIR_P) $(top_builddir)/include/epoxy
-	$(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \
-		--srcdir $(top_builddir)/src \
-		--includedir $(top_builddir)/include/epoxy \
-		$(top_srcdir)/registry/egl.xml
-
-$(GENERATED_WGL_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/wgl.xml
-	@$(MKDIR_P) $(top_builddir)/include/epoxy
-	$(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \
-		--srcdir $(top_builddir)/src \
-		--includedir $(top_builddir)/include/epoxy \
-		$(top_srcdir)/registry/wgl.xml
-
-EXTRA_DIST = \
-	gen_dispatch.py \
-	$()
diff --git a/src/dispatch_common.c b/src/dispatch_common.c
index b3e4f5f..153eb7c 100644
--- a/src/dispatch_common.c
+++ b/src/dispatch_common.c
@@ -392,10 +392,10 @@
 }
 
 static int
-epoxy_internal_gl_version(GLenum version_string, int error_version)
+epoxy_internal_gl_version(GLenum version_string, int error_version, int factor)
 {
     const char *version = (const char *)glGetString(version_string);
-    GLint major, minor, factor;
+    GLint major, minor;
     int scanf_count;
 
     if (!version)
@@ -413,11 +413,6 @@
         abort();
     }
 
-    if (minor >= 10)
-        factor = 100;
-    else
-        factor = 10;
-
     return factor * major + minor;
 }
 
@@ -439,7 +434,7 @@
 int
 epoxy_gl_version(void)
 {
-    return epoxy_internal_gl_version(GL_VERSION, 0);
+    return epoxy_internal_gl_version(GL_VERSION, 0, 10);
 }
 
 int
@@ -448,7 +443,7 @@
     if (api.begin_count)
         return 100;
 
-    return epoxy_internal_gl_version(GL_VERSION, 100);
+    return epoxy_internal_gl_version(GL_VERSION, 100, 10);
 }
 
 /**
@@ -471,7 +466,7 @@
 {
     if (epoxy_gl_version() >= 20 ||
         epoxy_has_gl_extension ("GL_ARB_shading_language_100"))
-        return epoxy_internal_gl_version(GL_SHADING_LANGUAGE_VERSION, 0);
+        return epoxy_internal_gl_version(GL_SHADING_LANGUAGE_VERSION, 0, 100);
 
     return 0;
 }
@@ -675,13 +670,27 @@
     get_dlopen_handle(&api.gl_handle, OPENGL_LIB, true, true);
 #else
 
+    // Prefer GLX_LIB over OPENGL_LIB to maintain existing behavior.
+    // Using the inverse ordering OPENGL_LIB -> GLX_LIB, causes issues such as:
+    // https://github.com/anholt/libepoxy/issues/240 (apitrace missing calls)
+    // https://github.com/anholt/libepoxy/issues/252 (Xorg boot crash)
+    get_dlopen_handle(&api.glx_handle, GLX_LIB, false, true);
+    api.gl_handle = api.glx_handle;
+
 #if defined(OPENGL_LIB)
     if (!api.gl_handle)
-	get_dlopen_handle(&api.gl_handle, OPENGL_LIB, false, true);
+        get_dlopen_handle(&api.gl_handle, OPENGL_LIB, false, true);
 #endif
 
-    get_dlopen_handle(&api.glx_handle, GLX_LIB, true, true);
-    api.gl_handle = api.glx_handle;
+    if (!api.gl_handle) {
+#if defined(OPENGL_LIB)
+        fprintf(stderr, "Couldn't open %s or %s\n", GLX_LIB, OPENGL_LIB);
+#else
+        fprintf(stderr, "Couldn't open %s\n", GLX_LIB);
+#endif
+        abort();
+    }
+
 #endif
 }
 
diff --git a/src/dispatch_common.h b/src/dispatch_common.h
index a361ccc..a136943 100644
--- a/src/dispatch_common.h
+++ b/src/dispatch_common.h
@@ -47,9 +47,12 @@
 #endif
 #if PLATFORM_HAS_EGL
 # if !ENABLE_X11
-/* Mesa uses this symbol to avoid including X11 headers when including
- * EGL.h; since X11 was explicitly disabled at configuration time, we
- * should do the same
+/* Disable including X11 headers if the X11 support was disabled at
+ * configuration time
+ */
+#  define EGL_NO_X11 1
+/* Older versions of Mesa use this symbol to achieve the same result
+ * as EGL_NO_X11
  */
 #  define MESA_EGL_NO_X11_HEADERS 1
 # endif
diff --git a/src/gen_dispatch.py b/src/gen_dispatch.py
index f4d0f31..3daad84 100755
--- a/src/gen_dispatch.py
+++ b/src/gen_dispatch.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 # Copyright © 2013 Intel Corporation
@@ -466,6 +467,7 @@
                                                                     func.args_decl))
 
     def write_header_header(self, out_file):
+        self.close()
         self.out_file = open(out_file, 'w')
 
         self.outln('/* GL dispatch header.')
@@ -514,9 +516,17 @@
             self.outln('typedef uint32_t khronos_uint32_t;')
             self.outln('typedef uint64_t khronos_uint64_t;')
             self.outln('typedef float khronos_float_t;')
-            self.outln('typedef long khronos_intptr_t;')
-            self.outln('typedef long khronos_ssize_t;')
-            self.outln('typedef unsigned long khronos_usize_t;')
+            self.outln('#ifdef _WIN64')
+            self.outln('typedef signed   long long int khronos_intptr_t;')
+            self.outln('typedef unsigned long long int khronos_uintptr_t;')
+            self.outln('typedef signed   long long int khronos_ssize_t;')
+            self.outln('typedef unsigned long long int khronos_usize_t;')
+            self.outln('#else')
+            self.outln('typedef signed   long int      khronos_intptr_t;')
+            self.outln('typedef unsigned long int      khronos_uintptr_t;')
+            self.outln('typedef signed   long int      khronos_ssize_t;')
+            self.outln('typedef unsigned long int      khronos_usize_t;')
+            self.outln('#endif')
             self.outln('typedef uint64_t khronos_utime_nanoseconds_t;')
             self.outln('typedef int64_t khronos_stime_nanoseconds_t;')
             self.outln('#define KHRONOS_MAX_ENUM 0x7FFFFFFF')
@@ -525,7 +535,6 @@
             self.outln('    KHRONOS_TRUE  = 1,')
             self.outln('    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM')
             self.outln('} khronos_boolean_enum_t;')
-            self.outln('typedef uintptr_t khronos_uintptr_t;')
 
         if self.target == "glx":
             self.outln('#include <X11/Xlib.h>')
@@ -756,6 +765,7 @@
         self.outln('')
 
     def write_source(self, f):
+        self.close()
         self.out_file = open(f, 'w')
 
         self.outln('/* GL dispatch code.')
@@ -848,6 +858,12 @@
         for func in self.sorted_functions:
             self.write_function_pointer(func)
 
+    def close(self):
+        if self.out_file:
+            self.out_file.close()
+            self.out_file = None
+
+
 argparser = argparse.ArgumentParser(description='Generate GL dispatch wrappers.')
 argparser.add_argument('files', metavar='file.xml', nargs='+', help='GL API XML files to be parsed')
 argparser.add_argument('--outputdir', metavar='dir', required=False, help='Destination directory for files (default to current dir)')
@@ -912,3 +928,5 @@
         generator.write_header(os.path.join(includedir, name + '_generated.h'))
     if build_source:
         generator.write_source(os.path.join(srcdir, name + '_generated_dispatch.c'))
+
+    generator.close()
diff --git a/src/meson.build b/src/meson.build
index fe092d1..e19a918 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -33,7 +33,6 @@
                             input: registry,
                             output: [ gen_source ],
                             command: [
-                              python,
                               gen_dispatch_py,
                               '--source',
                               '--no-header',
@@ -54,19 +53,24 @@
 endif
 
 # Maintain compatibility with autotools; see: https://github.com/anholt/libepoxy/issues/108
-if host_system == 'darwin'
-  common_ldflags += [ '-compatibility_version 1', '-current_version 1.0', ]
-endif
+darwin_versions = [1, '1.0']
 
 epoxy_deps = [ dl_dep, ]
 if host_system == 'windows'
   epoxy_deps += [ opengl32_dep, gdi32_dep ]
 endif
+if enable_x11
+  epoxy_deps += [ x11_headers_dep, ]
+endif
+if build_egl
+  epoxy_deps += [ elg_headers_dep, ]
+endif
 
 libepoxy = library(
   'epoxy',
   sources: epoxy_sources + epoxy_headers,
   version: '0.0.0',
+  darwin_versions: darwin_versions,
   install: true,
   dependencies: epoxy_deps,
   include_directories: libepoxy_inc,
@@ -74,17 +78,22 @@
   link_args: common_ldflags,
 )
 
+epoxy_has_glx = build_glx ? '1' : '0'
+epoxy_has_egl = build_egl ? '1' : '0'
+epoxy_has_wgl = build_wgl ? '1' : '0'
+
 libepoxy_dep = declare_dependency(
   link_with: libepoxy,
   include_directories: libepoxy_inc,
   dependencies: epoxy_deps,
   sources: epoxy_headers,
+  variables: {
+    'epoxy_has_glx': epoxy_has_glx,
+    'epoxy_has_egl': epoxy_has_egl,
+    'epoxy_has_wgl': epoxy_has_wgl,
+  },
 )
 
-epoxy_has_glx = build_glx ? '1' : '0'
-epoxy_has_egl = build_egl ? '1' : '0'
-epoxy_has_wgl = build_wgl ? '1' : '0'
-
 # We don't want to add these dependencies to the library, as they are
 # not needed when building Epoxy; we do want to add them to the generated
 # pkg-config file, for consumers of Epoxy
diff --git a/test/.gitignore b/test/.gitignore
deleted file mode 100644
index 78919f3..0000000
--- a/test/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-egl_and_glx_different_pointers_egl
-egl_and_glx_different_pointers_egl_glx
-egl_and_glx_different_pointers_glx
-egl_has_extension_nocontext
-egl_gl
-egl_gles1_without_glx
-egl_gles2_without_glx
-glx_alias_prefer_same_name
-glx_beginend
-glx_gles2
-glx_glxgetprocaddress_nocontext
-glx_has_extension_nocontext
-glx_public_api
-glx_public_api_core
-glx_shared_znow
-glx_static
-headerguards
-khronos_typedefs
-miscdefines
-wgl_core_and_exts
-wgl_usefontbitmaps
-wgl_usefontbitmaps_unicode
-*.log
-*.trs
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644
index fc3ffcd..0000000
--- a/test/Makefile.am
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright © 2013 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-EPOXY = $(builddir)/../src/libepoxy.la
-
-check_LTLIBRARIES = \
-	$(EGL_UTIL_LIB) \
-	$(GLX_UTIL_LIB) \
-	$(WGL_UTIL_LIB) \
-	$()
-
-libegl_common_la_SOURCES = \
-	egl_common.c \
-	egl_common.h
-	$()
-
-libglx_common_la_SOURCES = \
-	glx_common.c \
-	glx_common.h
-	$()
-
-libwgl_common_la_SOURCES = \
-	wgl_common.c \
-	wgl_common.h
-	$()
-libwgl_common_la_LIBADD = $(EPOXY)
-
-AM_CPPFLAGS = \
-	-I$(top_srcdir)/include \
-	-I$(top_builddir)/include \
-	$(X11_CFLAGS) \
-	$(EGL_CFLAGS) \
-	$()
-
-AM_CFLAGS = $(CWARNFLAGS)
-
-TESTS = \
-	$(EGL_TESTS) \
-	$(GLX_TESTS) \
-	$(EGL_AND_GLX_TESTS) \
-	$(WGL_TESTS) \
-	gl_version$(EXEEXT) \
-	headerguards$(EXEEXT) \
-	miscdefines$(EXEEXT) \
-	khronos_typedefs$(EXEEXT) \
-	$()
-
-check_BINARIES = $(EGL_AND_GLX_BIN)
-
-XFAIL_TESTS = \
-	$()
-
-check_PROGRAMS = $(TESTS)
-
-if BUILD_EGL
-EGL_TESTS = \
-	$()
-
-if HAVE_X11
-EGL_TESTS += \
-	egl_has_extension_nocontext \
-	egl_epoxy_api \
-	egl_gles2_without_glx \
-	$()
-
-if HAS_GLES1
-EGL_TESTS += egl_gles1_without_glx
-endif
-
-EGL_UTIL_LIB = libegl_common.la
-endif
-endif
-
-if BUILD_GLX
-if HAS_ZNOW
-GLX_SHARED_ZNOW = glx_shared_znow
-endif
-
-if BUILD_EGL
-if BUILD_GLX
-if HAVE_DLVSYM
-EGL_AND_GLX_TESTS = \
-	egl_gl \
-        $()
-endif
-endif
-endif
-
-if HAVE_DLVSYM
-GLX_DLVSYM_TESTS = \
-	glx_alias_prefer_same_name \
-	glx_gles2 \
-        $()
-endif
-
-GLX_TESTS = \
-	glx_beginend \
-	glx_public_api \
-	glx_public_api_core \
-	glx_glxgetprocaddress_nocontext \
-	glx_has_extension_nocontext \
-	glx_static \
-        $(GLX_SHARED_ZNOW) \
-        $(GLX_DLVSYM_TESTS) \
-	$()
-
-GLX_UTIL_LIB = libglx_common.la
-endif
-
-if BUILD_WGL
-WGL_TESTS = \
-	wgl_core_and_exts$(EXEEXT) \
-	wgl_per_context_funcptrs$(EXEEXT) \
-	wgl_usefontbitmaps$(EXEEXT) \
-	wgl_usefontbitmaps_unicode$(EXEEXT) \
-	$()
-
-WGL_UTIL_LIB = libwgl_common.la
-endif
-
-egl_has_extension_nocontext_LDADD = $(EPOXY) libegl_common.la $(X11_LIBS)
-
-egl_epoxy_api_LDADD = $(EPOXY) libegl_common.la $(X11_LIBS)
-
-egl_gl_LDADD = $(EPOXY) $(DLOPEN_LIBS) libegl_common.la $(X11_LIBS)
-
-egl_gles1_without_glx_CPPFLAGS = $(AM_CPPFLAGS) -DGLES_VERSION=1
-egl_gles1_without_glx_SOURCES = egl_without_glx.c
-egl_gles1_without_glx_LDADD = $(EPOXY) $(DLOPEN_LIBS) libegl_common.la $(X11_LIBS)
-
-egl_gles2_without_glx_CPPFLAGS = $(AM_CPPFLAGS) -DGLES_VERSION=2
-egl_gles2_without_glx_SOURCES = egl_without_glx.c
-egl_gles2_without_glx_LDADD = $(EPOXY) $(DLOPEN_LIBS) libegl_common.la $(X11_LIBS)
-
-glx_alias_prefer_same_name_SOURCES = glx_alias_prefer_same_name.c dlwrap.c dlwrap.h
-glx_alias_prefer_same_name_LDFLAGS = -rdynamic
-glx_alias_prefer_same_name_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) $(DLOPEN_LIBS)
-
-glx_beginend_LDADD = $(EPOXY) libglx_common.la $(GL_LIBS) $(X11_LIBS)
-
-glx_gles2_SOURCES = glx_gles2.c dlwrap.c dlwrap.h
-glx_gles2_LDFLAGS = -rdynamic
-glx_gles2_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) $(DLOPEN_LIBS)
-
-glx_public_api_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS)
-
-glx_public_api_core_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS)
-
-glx_glxgetprocaddress_nocontext_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS)
-
-glx_has_extension_nocontext_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS)
-
-glx_static_CFLAGS = -DNEEDS_TO_BE_STATIC
-glx_static_LDADD = $(DLOPEN_LIBS) $(EPOXY) libglx_common.la $(X11_LIBS)
-glx_static_LDFLAGS = -static
-
-glx_shared_znow_SOURCES = glx_static.c
-glx_shared_znow_LDADD = $(DLOPEN_LIBS) $(EPOXY) libglx_common.la $(X11_LIBS)
-glx_shared_znow_LDFLAGS = -Wl,-z,now
-
-khronos_typedefs_SOURCES = \
-	khronos_typedefs.c \
-	khronos_typedefs.h \
-	khronos_typedefs_nonepoxy.c \
-	$()
-
-wgl_core_and_exts_LDADD = $(EPOXY) libwgl_common.la -lgdi32
-
-wgl_per_context_funcptrs_LDADD = $(EPOXY) libwgl_common.la -lgdi32
-
-wgl_usefontbitmaps_LDADD = $(EPOXY) libwgl_common.la -lgdi32
-wgl_usefontbitmaps_unicode_SOURCES = wgl_usefontbitmaps.c
-wgl_usefontbitmaps_unicode_LDADD = $(EPOXY) libwgl_common.la -lgdi32
-wgl_usefontbitmaps_unicode_CPPFLAGS = $(AM_CPPFLAGS) -DUNICODE
diff --git a/test/gl_version.c b/test/gl_version.c
index 9ab0080..8873ef7 100644
--- a/test/gl_version.c
+++ b/test/gl_version.c
@@ -29,7 +29,7 @@
 const char *mock_gl_version;
 const char *mock_glsl_version;
 
-static const GLubyte *override_glGetString(GLenum name)
+static const GLubyte * EPOXY_CALLSPEC override_glGetString(GLenum name)
 {
     switch (name) {
     case GL_VERSION:
@@ -80,6 +80,8 @@
 
     pass = pass && test_version("3.0 Mesa 13.0.6", 30,
                                 "1.30", 130);
+    pass = pass && test_version("OpenGL ES 2.0 Mesa 20.1.0-devel (git-4bb19a330e)", 20,
+                                "OpenGL ES GLSL ES 1.0.16", 100);
     pass = pass && test_version("OpenGL ES 3.2 Mesa 18.3.0-devel", 32,
                                 "OpenGL ES GLSL ES 3.20", 320);
     pass = pass && test_version("4.5.0 NVIDIA 384.130", 45,