SRC_DIRS = @SRC_DIRS@
GLU_DIRS = @GLU_DIRS@
DRIVER_DIRS = @DRIVER_DIRS@
-EGL_DRIVERS_DIRS = @EGL_DRIVERS_DIRS@
GALLIUM_DIRS = @GALLIUM_DIRS@
GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@
GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@
GLU_DIRS = sgi
DRIVER_DIRS = x11 osmesa
-# EGL drivers to build
-EGL_DRIVERS_DIRS = glx
-
# Gallium directories and
GALLIUM_DIRS = auxiliary drivers state_trackers
GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
# Directories
SRC_DIRS := glx egl $(SRC_DIRS)
-# EGL directories
-EGL_DRIVERS_DIRS = glx
-
DRIVER_DIRS = dri
GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel svga/drm
GALLIUM_TARGET_DIRS = dri-vmwgfx
# no mesa or egl drivers
DRIVER_DIRS =
-EGL_DRIVERS_DIRS =
GALLIUM_DRIVERS_DIRS = softpipe
if test "x$enable_egl" = xyes; then
SRC_DIRS="$SRC_DIRS egl"
EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
- EGL_DRIVERS_DIRS=""
AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
if test "$enable_static" != yes; then
# build egl_glx when libGL is built
if test "x$enable_glx" = xyes; then
- EGL_DRIVERS_DIRS="glx"
+ HAVE_EGL_DRIVER_GLX=1
fi
PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
# build egl_dri2 when xcb-dri2 is available
PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
[have_xcb_dri2=yes],[have_xcb_dri2=no])
-
if test "$have_xcb_dri2" = yes; then
- EGL_DRIVER_DRI2=dri2
- DEFINES="$DEFINES -DHAVE_XCB_DRI2"
+ HAVE_EGL_DRIVER_DRI2=1
# workaround a bug in xcb-dri2 generated by xcb-proto 1.6
save_LIBS="$LIBS"
AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
fi
fi
- EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
fi
fi
AC_SUBST([EGL_LIB_DEPS])
-AC_SUBST([EGL_DRIVERS_DIRS])
dnl
dnl EGL Gallium configuration
esac
done
+# libEGL wants to default to the first platform specified in
+# ./configure. parse that here.
+if test "x$egl_platforms" != "x"; then
+ FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
+ EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
+else
+ EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
+fi
+
EGL_PLATFORMS="$egl_platforms"
+
+AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
+AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
+AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
+AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
+AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
+
+AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
+AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
+
+AC_SUBST([EGL_NATIVE_PLATFORM])
AC_SUBST([EGL_PLATFORMS])
+AC_SUBST([EGL_CFLAGS])
AC_ARG_WITH([egl-driver-dir],
[AS_HELP_STRING([--with-egl-driver-dir=DIR],
src/gallium/drivers/r300/Makefile
src/gbm/Makefile
src/gbm/main/gbm.pc
+ src/egl/drivers/Makefile
+ src/egl/main/Makefile
+ src/egl/main/egl.pc
src/egl/wayland/Makefile
src/egl/wayland/wayland-egl/Makefile
src/egl/wayland/wayland-egl/wayland-egl.pc
echo " EGL platforms: $EGL_PLATFORMS"
egl_drivers=""
- for d in $EGL_DRIVERS_DIRS; do
- egl_drivers="$egl_drivers builtin:egl_$d"
- done
+ if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then
+ egl_drivers="$egl_drivers builtin:egl_glx"
+ fi
+ if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
+ egl_drivers="$egl_drivers builtin:egl_dri2"
+ fi
if test "x$HAVE_ST_EGL" = xyes; then
echo " EGL drivers: ${egl_drivers} egl_gallium"
--- /dev/null
+Makefile
+Makefile.in
+++ /dev/null
-# src/egl/drivers/Makefile
-
-TOP = ../../..
-include $(TOP)/configs/current
-
-SUBDIRS = $(EGL_DRIVERS_DIRS)
-
-
-default: subdirs
-
-
-subdirs:
- @for dir in $(SUBDIRS) ; do \
- if [ -d $$dir ] ; then \
- (cd $$dir ; $(MAKE)) || exit 1 ; \
- fi \
- done
-
-install:
- @ for dir in $(SUBDIRS) ; do \
- if [ -d $$dir ] ; then \
- (cd $$dir ; $(MAKE) install) || exit 1 ; \
- fi \
- done
-
-clean:
- @for dir in $(SUBDIRS) ; do \
- if [ -d $$dir ] ; then \
- (cd $$dir ; $(MAKE) clean) ; \
- fi \
- done
--- /dev/null
+# Copyright © 2012 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.
+
+SUBDIRS =
+
+if HAVE_EGL_DRIVER_GLX
+SUBDIRS += glx
+endif
+
+if HAVE_EGL_DRIVER_DRI2
+SUBDIRS += dri2
+endif
EGL_OBJECTS = $(EGL_SOURCES:.c=.o)
-default: depend lib$(EGL_DRIVER).a
+all: depend lib$(EGL_DRIVER).a
lib$(EGL_DRIVER).a: $(EGL_OBJECTS) Makefile $(TOP)/src/egl/drivers/Makefile.template
@$(MKLIB) -o $(EGL_DRIVER) -static $(EGL_OBJECTS)
--- /dev/null
+.deps
+.libs
+Makefile
+Makefile.in
+libEGL.la
+++ /dev/null
-# src/egl/main/Makefile
-
-TOP = ../../..
-include $(TOP)/configs/current
-
-
-EGL_MAJOR = 1
-EGL_MINOR = 0
-
-INCLUDE_DIRS = -I$(TOP)/include
-
-HEADERS = \
- eglcompiler.h \
- eglconfig.h \
- eglcontext.h \
- eglcurrent.h \
- egldefines.h \
- egldisplay.h \
- egldriver.h \
- eglglobals.h \
- eglimage.h \
- egllog.h \
- eglmisc.h \
- eglmode.h \
- eglmutex.h \
- eglscreen.h \
- eglstring.h \
- eglsurface.h \
- eglsync.h
-
-SOURCES = \
- eglapi.c \
- eglarray.c \
- eglconfig.c \
- eglcontext.c \
- eglcurrent.c \
- egldisplay.c \
- egldriver.c \
- eglfallbacks.c \
- eglglobals.c \
- eglimage.c \
- egllog.c \
- eglmisc.c \
- eglmode.c \
- eglscreen.c \
- eglstring.c \
- eglsurface.c \
- eglsync.c
-
-OBJECTS = $(SOURCES:.c=.o)
-
-
-# use dl*() to load drivers
-LOCAL_CFLAGS = -D_EGL_OS_UNIX=1
-LOCAL_LIBS =
-
-# egl_dri2 and egl_glx are built-ins
-ifeq ($(filter dri2, $(EGL_DRIVERS_DIRS)),dri2)
-LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_DRI2
-LOCAL_LIBS += $(TOP)/src/egl/drivers/dri2/libegl_dri2.a
-ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
-EGL_LIB_DEPS += $(XCB_DRI2_LIBS)
-endif
-EGL_LIB_DEPS += $(LIBUDEV_LIBS) $(DLOPEN_LIBS) $(LIBDRM_LIB)
-endif
-ifeq ($(filter glx, $(EGL_DRIVERS_DIRS)),glx)
-LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_GLX
-LOCAL_LIBS += $(TOP)/src/egl/drivers/glx/libegl_glx.a
-EGL_LIB_DEPS += $(X11_LIBS) $(DLOPEN_LIBS)
-endif
-
-# libs/cflags for display type autodetection
-ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
-LOCAL_LIBS += $(TOP)/src/egl/wayland/wayland-drm/.libs/libwayland-drm.a
-EGL_LIB_DEPS += $(WAYLAND_LIBS)
-INCLUDE_DIRS += $(WAYLAND_CFLAGS)
-endif
-ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
-EGL_LIB_DEPS += -lgbm
-INCLUDE_DIRS += -I$(TOP)/src/gbm/main
-endif
-
-# translate --with-egl-platforms to _EGLPlatformType
-EGL_NATIVE_PLATFORM=_EGL_INVALID_PLATFORM
-ifeq ($(firstword $(EGL_PLATFORMS)),x11)
-EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11
-endif
-ifeq ($(firstword $(EGL_PLATFORMS)),wayland)
-EGL_NATIVE_PLATFORM=_EGL_PLATFORM_WAYLAND
-endif
-ifeq ($(firstword $(EGL_PLATFORMS)),drm)
-EGL_NATIVE_PLATFORM=_EGL_PLATFORM_DRM
-endif
-ifeq ($(firstword $(EGL_PLATFORMS)),fbdev)
-EGL_NATIVE_PLATFORM=_EGL_PLATFORM_FBDEV
-endif
-ifeq ($(firstword $(EGL_PLATFORMS)),null)
-EGL_NATIVE_PLATFORM=_EGL_PLATFORM_NULL
-endif
-
-ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
-LOCAL_CFLAGS += -DHAVE_X11_PLATFORM
-endif
-ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
-LOCAL_CFLAGS += -DHAVE_WAYLAND_PLATFORM
-endif
-ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
-LOCAL_CFLAGS += -DHAVE_DRM_PLATFORM
-endif
-ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),)
-LOCAL_CFLAGS += -DHAVE_FBDEV_PLATFORM
-endif
-ifneq ($(findstring null, $(EGL_PLATFORMS)),)
-LOCAL_CFLAGS += -DHAVE_NULL_PLATFORM
-endif
-
-LOCAL_CFLAGS += \
- -D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM) \
- -D_EGL_DRIVER_SEARCH_DIR=\"$(EGL_DRIVER_INSTALL_DIR)\"
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(LOCAL_CFLAGS) $< -o $@
-
-
-
-default: depend library
-
-
-# EGL Library
-library: $(TOP)/$(LIB_DIR)/$(EGL_LIB_NAME)
-
-$(TOP)/$(LIB_DIR)/$(EGL_LIB_NAME): $(OBJECTS) $(LOCAL_LIBS)
- $(MKLIB) -o $(EGL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
- -major $(EGL_MAJOR) -minor $(EGL_MINOR) \
- -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
- -L$(TOP)/$(LIB_DIR) $(EGL_LIB_DEPS) \
- $(OBJECTS) $(LOCAL_LIBS)
-
-install-headers:
- $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/KHR
- $(INSTALL) -m 644 $(TOP)/include/KHR/*.h \
- $(DESTDIR)$(INSTALL_INC_DIR)/KHR
- $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/EGL
- $(INSTALL) -m 644 $(TOP)/include/EGL/*.h \
- $(DESTDIR)$(INSTALL_INC_DIR)/EGL
-
-PKG_CONFIG_DIR = $(INSTALL_LIB_DIR)/pkgconfig
-
-gl_pcedit = sed \
- -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
- -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
- -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
- -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
- -e 's,@EGL_PC_REQ_PRIV@,$(EGL_PC_REQ_PRIV),' \
- -e 's,@EGL_PC_LIB_PRIV@,$(EGL_PC_LIB_PRIV),' \
- -e 's,@EGL_PC_CFLAGS@,$(EGL_PC_CFLAGS),' \
- -e 's,@EGL_LIB@,$(EGL_LIB),'
-
-egl.pc: egl.pc.in
- $(gl_pcedit) $< > $@
-
-install: default install-headers egl.pc
- $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
- $(MINSTALL) $(TOP)/$(LIB_DIR)/$(EGL_LIB_GLOB) \
- $(DESTDIR)$(INSTALL_LIB_DIR)
- $(INSTALL) -d $(DESTDIR)$(PKG_CONFIG_DIR)
- $(INSTALL) -m 644 egl.pc $(DESTDIR)$(PKG_CONFIG_DIR)
-
-clean:
- -rm -f *.o
- -rm -f depend depend.bak
-
-
-depend: $(SOURCES) $(HEADERS)
- @ echo "running $(MKDEP)"
- @ rm -f depend
- @ touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) \
- $(SOURCES) $(HEADERS) > /dev/null 2>/dev/null
-
-
--include depend
-# DO NOT DELETE
--- /dev/null
+# Copyright © 2012 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.
+
+GLAPI_LIB = ../mapi/glapi/libglapi.a
+
+if HAVE_XF86VIDMODE
+EXTRA_DEFINES_XF86VIDMODE = -DXF86VIDMODE
+endif
+
+AM_CFLAGS = \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/src/gbm/main \
+ $(DEFINES) \
+ $(EGL_CFLAGS) \
+ -D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM) \
+ -D_EGL_DRIVER_SEARCH_DIR=\"$(EGL_DRIVER_INSTALL_DIR)\" \
+ -D_EGL_OS_UNIX=1
+
+lib_LTLIBRARIES = libEGL.la
+
+libEGL_la_SOURCES = \
+ eglapi.c \
+ eglarray.c \
+ eglconfig.c \
+ eglcontext.c \
+ eglcurrent.c \
+ egldisplay.c \
+ egldriver.c \
+ eglfallbacks.c \
+ eglglobals.c \
+ eglimage.c \
+ egllog.c \
+ eglmisc.c \
+ eglmode.c \
+ eglscreen.c \
+ eglstring.c \
+ eglsurface.c \
+ eglsync.c \
+ eglcompiler.h \
+ eglconfig.h \
+ eglcontext.h \
+ eglcurrent.h \
+ egldefines.h \
+ egldisplay.h \
+ egldriver.h \
+ eglglobals.h \
+ eglimage.h \
+ egllog.h \
+ eglmisc.h \
+ eglmode.h \
+ eglmutex.h \
+ eglscreen.h \
+ eglstring.h \
+ eglsurface.h \
+ eglsync.h
+
+libEGL_la_LIBADD = \
+ $(EGL_LIB_DEPS)
+libEGL_la_LDFLAGS = -version-number 1:0
+
+if HAVE_EGL_PLATFORM_X11
+AM_CFLAGS += -DHAVE_X11_PLATFORM
+AM_CFLAGS += $(XCB_DRI2_CFLAGS)
+libEGL_la_LIBADD += $(XCB_DRI2_LIBS)
+endif
+
+if HAVE_EGL_PLATFORM_WAYLAND
+AM_CFLAGS += -DHAVE_WAYLAND_PLATFORM
+AM_CFLAGS += $(WAYLAND_CFLAGS)
+libEGL_la_LIBADD += $(WAYLAND_LIBS)
+libEGL_la_LIBADD += $(LIBDRM_LIBS)
+libEGL_la_LIBADD += ../wayland/wayland-drm/libwayland-drm.la
+endif
+
+if HAVE_EGL_PLATFORM_DRM
+AM_CFLAGS += -DHAVE_DRM_PLATFORM
+libEGL_la_LIBADD += ../../gbm/libgbm.la
+libEGL_la_LIBADD += ../../gbm/libgbm.la
+endif
+
+if HAVE_EGL_PLATFORM_FBDEV
+AM_CFLAGS += -DHAVE_FBDEV_PLATFORM
+endif
+
+if HAVE_EGL_PLATFORM_NULL
+AM_CFLAGS += -DHAVE_NULL_PLATFORM
+endif
+
+if HAVE_EGL_DRIVER_GLX
+AM_CFLAGS += -D_EGL_BUILT_IN_DRIVER_GLX
+libEGL_la_LIBADD += ../drivers/glx/libegl_glx.a
+libEGL_la_LIBADD += $(X11_LIBS) $(DLOPEN_LIBS)
+endif
+
+if HAVE_EGL_DRIVER_DRI2
+AM_CFLAGS += -D_EGL_BUILT_IN_DRIVER_DRI2
+AM_CFLAGS += -DHAVE_XCB_DRI2
+libEGL_la_LIBADD += ../drivers/dri2/libegl_dri2.a
+libEGL_la_LIBADD += $(LIBUDEV_LIBS) $(DLOPEN_LIBS) $(LIBDRM_LIBS)
+endif
+
+# Provide compatibility with scripts for the old Mesa build system for
+# a while by putting a link to the driver into /lib of the build tree.
+all-local: libEGL.la
+ $(MKDIR_P) $(top_builddir)/$(LIB_DIR);
+ ln -f .libs/libEGL.so.1.0.0 $(top_builddir)/$(LIB_DIR)/libEGL.so.1
+
+pkgconfigdir = $(libdir)/pkgconfig
+
+pkgconfig_DATA = egl.pc
+
+khrdir = $(includedir)/KHR
+khr_HEADERS = $(top_srcdir)/include/KHR/khrplatform.h
+
+egldir = $(includedir)/EGL
+egl_HEADERS = \
+ $(top_srcdir)/include/EGL/eglext.h \
+ $(top_srcdir)/include/EGL/egl.h \
+ $(top_srcdir)/include/EGL/eglmesaext.h \
+ $(top_srcdir)/include/EGL/eglplatform.h
-prefix=@INSTALL_DIR@
+prefix=@prefix@
exec_prefix=${prefix}
-libdir=@INSTALL_LIB_DIR@
-includedir=@INSTALL_INC_DIR@
+libdir=@libdir@
+includedir=@includedir@
Name: egl
Description: Mesa EGL library
-Requires.private: @EGL_PC_REQ_PRIV@
-Version: @VERSION@
-Libs: -L${libdir} -l@EGL_LIB@
-Libs.private: @EGL_PC_LIB_PRIV@
-Cflags: -I${includedir} @EGL_PC_CFLAGS@
+Requires.private: @GL_PC_REQ_PRIV@
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lEGL
+Libs.private: @GL_PC_LIB_PRIV@
+Cflags: -I${includedir} @GL_PC_CFLAGS@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <strings.h>
#include "egllog.h"
#include "eglstring.h"