automake: src/egl/wayland

So we can use the wayland scanner makro, which is way
better than our previous runtime-pkgconfig hack.

Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Benjamin Franzke 2012-01-24 20:38:01 +01:00
parent dc435ae774
commit 8b902056d5
14 changed files with 47 additions and 190 deletions

View File

@ -75,7 +75,6 @@ GLESv1_CM_LIB = GLESv1_CM
GLESv2_LIB = GLESv2
VG_LIB = OpenVG
GLAPI_LIB = glapi
WAYLAND_EGL_LIB = wayland-egl
# Library names (actual file names)
GL_LIB_NAME = @GL_LIB_NAME@
@ -87,7 +86,6 @@ GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@
VG_LIB_NAME = @VG_LIB_NAME@
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@
WAYLAND_EGL_LIB_NAME = @WAYLAND_EGL_LIB_NAME@
# Globs used to install the lib and all symlinks
GL_LIB_GLOB = @GL_LIB_GLOB@
@ -99,7 +97,6 @@ GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@
VG_LIB_GLOB = @VG_LIB_GLOB@
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@
WAYLAND_EGL_LIB_GLOB = @WAYLAND_EGL_LIB_GLOB@
# Directories to build
LIB_DIR = @LIB_DIR@
@ -143,7 +140,6 @@ GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv1_CM_LIB_DEPS@
GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv2_LIB_DEPS@
VG_LIB_DEPS = $(EXTRA_LIB_PATH) @VG_LIB_DEPS@
GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) @GLAPI_LIB_DEPS@
WAYLAND_EGL_LIB_DEPS = $(EXTRA_LIB_PATH) @WAYLAND_EGL_LIB_DEPS@
# DRI dependencies
MESA_MODULES = @MESA_MODULES@
@ -202,9 +198,6 @@ GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@
EGL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
EGL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@
EGL_PC_CFLAGS = @GL_PC_CFLAGS@
WAYLAND_EGL_PC_REQ_PRIV = @WAYLAND_EGL_PC_REQ_PRIV@
WAYLAND_EGL_PC_LIB_PRIV = @WAYLAND_EGL_PC_LIB_PRIV@
WAYLAND_EGL_PC_CFLAGS = @WAYLAND_EGL_PC_CFLAGS@
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@

View File

@ -62,7 +62,6 @@ GLESv1_CM_LIB = GLESv1_CM
GLESv2_LIB = GLESv2
VG_LIB = OpenVG
GLAPI_LIB = glapi
WAYLAND_EGL_LIB = wayland-egl
# Library names (actual file names)
GL_LIB_NAME = lib$(GL_LIB).so
@ -74,7 +73,6 @@ GLESv1_CM_LIB_NAME = lib$(GLESv1_CM_LIB).so
GLESv2_LIB_NAME = lib$(GLESv2_LIB).so
VG_LIB_NAME = lib$(VG_LIB).so
GLAPI_LIB_NAME = lib$(GLAPI_LIB).so
WAYLAND_EGL_LIB_NAME = lib$(WAYLAND_EGL_LIB).so
# globs used to install the lib and all symlinks
GL_LIB_GLOB = $(GL_LIB_NAME)*
@ -86,7 +84,6 @@ GLESv1_CM_LIB_GLOB = $(GLESv1_CM_LIB_NAME)*
GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)*
VG_LIB_GLOB = $(VG_LIB_NAME)*
GLAPI_LIB_GLOB = $(GLAPI_LIB_NAME)*
WAYLAND_EGL_LIB_GLOB = $(WAYLAND_EGL_LIB_NAME)*
DRI_CFLAGS = $(CFLAGS)
DRI_CXXFLAGS = $(CXXFLAGS)
@ -134,7 +131,6 @@ GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
VG_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
WAYLAND_EGL_LIB_DEPS = $(EXTRA_LIB_PATH) -lwayland-client -ldrm
# Program dependencies - specific GL libraries added in Makefiles
X11_LIBS = -lX11
@ -179,6 +175,3 @@ GLESv2_PC_CFLAGS =
VG_PC_REQ_PRIV =
VG_PC_LIB_PRIV =
VG_PC_CFLAGS =
WAYLAND_EGL_PC_REQ_PRIV =
WAYLAND_EGL_PC_LIB_PRIV =
WAYLAND_EGL_PC_CFLAGS =

View File

@ -413,7 +413,6 @@ GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
@ -424,7 +423,6 @@ GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'
GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
AC_SUBST([GL_LIB_NAME])
AC_SUBST([GLU_LIB_NAME])
@ -434,7 +432,6 @@ AC_SUBST([GLESv1_CM_LIB_NAME])
AC_SUBST([GLESv2_LIB_NAME])
AC_SUBST([VG_LIB_NAME])
AC_SUBST([GLAPI_LIB_NAME])
AC_SUBST([WAYLAND_EGL_LIB_NAME])
AC_SUBST([GL_LIB_GLOB])
AC_SUBST([GLU_LIB_GLOB])
@ -444,7 +441,6 @@ AC_SUBST([GLESv1_CM_LIB_GLOB])
AC_SUBST([GLESv2_LIB_GLOB])
AC_SUBST([VG_LIB_GLOB])
AC_SUBST([GLAPI_LIB_GLOB])
AC_SUBST([WAYLAND_EGL_LIB_GLOB])
dnl
dnl Arch/platform-specific settings
@ -1687,7 +1683,6 @@ AC_ARG_WITH([egl-platforms],
[with_egl_platforms=yes])
EGL_PLATFORMS=""
WAYLAND_EGL_LIB_DEPS=""
case "$with_egl_platforms" in
yes)
@ -1703,7 +1698,7 @@ yes)
egl_platforms=`IFS=', '; echo $with_egl_platforms`
for plat in $egl_platforms; do
test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
AC_MSG_ERROR([EGL platform '$plat' does not exist])
if test "$plat" = "fbdev"; then
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
fi
@ -1713,8 +1708,9 @@ yes)
if test "$plat" = "wayland"; then
PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
[AC_MSG_ERROR([cannot find libwayland-client])])
WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
WAYLAND_SCANNER_RULES(['$(top_srcdir)/src/egl/wayland/wayland-drm/protocol'])
fi
if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
AC_MSG_ERROR([EGL platform drm needs gbm])
@ -1729,16 +1725,6 @@ yes)
esac
AC_SUBST([EGL_PLATFORMS])
AC_SUBST([WAYLAND_EGL_LIB_DEPS])
WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
WAYLAND_EGL_PC_LIB_PRIV=
WAYLAND_EGL_PC_CFLAGS=
AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
AC_ARG_WITH([egl-driver-dir],
[AS_HELP_STRING([--with-egl-driver-dir=DIR],
[directory for EGL drivers [[default=${libdir}/egl]]])],
@ -1946,6 +1932,10 @@ dnl Substitute the config
AC_CONFIG_FILES([configs/autoconf
src/gbm/Makefile
src/gbm/main/gbm.pc
src/egl/wayland/Makefile
src/egl/wayland/wayland-egl/Makefile
src/egl/wayland/wayland-egl/wayland-egl.pc
src/egl/wayland/wayland-drm/Makefile
src/mesa/drivers/dri/dri.pc
src/mesa/drivers/dri/Makefile
src/mesa/drivers/dri/i915/Makefile

View File

@ -42,7 +42,7 @@ EGL_INCLUDES += -DHAVE_WAYLAND_PLATFORM $(WAYLAND_CFLAGS) \
-I$(TOP)/src/egl/wayland/wayland-egl \
-I$(TOP)/src/egl/wayland/wayland-drm
EGL_LIBS += $(WAYLAND_LIBS) \
$(TOP)/src/egl/wayland/wayland-drm/libwayland-drm.a
$(TOP)/src/egl/wayland/wayland-drm/.libs/libwayland-drm.a
endif
include ../Makefile.template

View File

@ -71,7 +71,7 @@ endif
# libs/cflags for display type autodetection
ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
LOCAL_LIBS += $(TOP)/src/egl/wayland/wayland-drm/libwayland-drm.a
LOCAL_LIBS += $(TOP)/src/egl/wayland/wayland-drm/.libs/libwayland-drm.a
EGL_LIB_DEPS += $(WAYLAND_LIBS)
INCLUDE_DIRS += $(WAYLAND_CFLAGS)
endif

View File

@ -1,3 +1,9 @@
.deps/
.libs/
Makefile
Makefile.in
libwayland-egl.la
libwayland-drm.la
wayland-drm-client-protocol.h
wayland-drm-server-protocol.h
wayland-drm-protocol.c

View File

@ -1,30 +0,0 @@
# src/egl/wayland/Makefile
TOP = ../../..
include $(TOP)/configs/current
SUBDIRS = wayland-drm wayland-egl
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

View File

@ -0,0 +1 @@
SUBDIRS = wayland-drm wayland-egl

View File

@ -1,47 +0,0 @@
# src/egl/wayland/wayland-drm/Makefile
TOP = ../../../..
include $(TOP)/configs/current
GEN_SOURCES = wayland-drm-protocol.c
GEN_HEADERS = wayland-drm-client-protocol.h wayland-drm-server-protocol.h
wayland_drm_SOURCES = wayland-drm.c $(GEN_SOURCES)
wayland_drm_OBJECTS = $(wayland_drm_SOURCES:.c=.o)
wayland_drm_INCLUDES = \
$(WAYLAND_CFLAGS) \
-I$(TOP)/src/egl/main \
-I$(TOP)/include
# Generate protocol sources
prefix=$(shell $(PKG_CONFIG) --variable=prefix wayland-server)
exec_prefx=$(shell $(PKG_CONFIG) --variable=exec_prefix wayland-server)
wayland_protocoldir = $(PWD)/protocol
wayland_scanner=$(exec_prefix)/bin/wayland-scanner
default: depend libwayland-drm.a $(GEN_SOURCES) $(GEN_HEADERS)
libwayland-drm.a: $(wayland_drm_OBJECTS) Makefile
$(MKLIB) -o wayland-drm -static $(wayland_drm_OBJECTS)
depend:
rm -f depend
touch depend
$(MKDEP) $(MKDEP_OPTIONS) $(wayland_drm_INCLUDES) $(wayland_drm_SOURCES) 2> /dev/null
clean:
rm -rf libwayland-drm.a $(wayland_drm_OBJECTS) \
$(GEN_SOURCES) $(GEN_HEADERS)
rm -f depend depend.bak
install:
@echo -n ""
$(wayland_drm_OBJECTS): %.o: %.c $(GEN_HEADERS)
$(CC) -c $(wayland_drm_INCLUDES) $(CFLAGS) $< -o $@
include $(prefix)/share/aclocal/wayland-scanner.mk
sinclude depend

View File

@ -0,0 +1,15 @@
AM_CFLAGS = -I$(top_srcdir)/src/egl/main \
-I$(top_srcdir)/include \
$(DEFINES) \
$(WAYLAND_CFLAGS)
noinst_LTLIBRARIES = libwayland-drm.la
libwayland_drm_la_SOURCES = wayland-drm.c wayland-drm-protocol.c
noinst_HEADERS = wayland-drm.h
BUILT_SOURCES = wayland-drm-protocol.c \
wayland-drm-client-protocol.h \
wayland-drm-server-protocol.h
CLEANFILES = $(BUILT_SOURCES)
@wayland_scanner_rules@

View File

@ -1,71 +0,0 @@
# src/egl/wayland/wayland-egl/Makefile
TOP = ../../../..
include $(TOP)/configs/current
INCLUDE_DIRS = -I$(TOP)/include \
-I$(TOP)/include/EGL \
-I$(TOP)/src/egl/wayland/wayland-drm
HEADERS = wayland-egl-priv.h
SOURCES = wayland-egl.c
OBJECTS = $(SOURCES:.c=.o)
LOCAL_CFLAGS = $(LIBDRM_CFLAGS) \
$(WAYLAND_CFLAGS)
LOCAL_LIBS =
.c.o:
$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(LOCAL_CFLAGS) $< -o $@
default: depend library
# wayland-egl Library
library: $(TOP)/$(LIB_DIR)/$(WAYLAND_EGL_LIB_NAME)
$(TOP)/$(LIB_DIR)/$(WAYLAND_EGL_LIB_NAME): $(OBJECTS) $(LOCAL_LIBS)
$(MKLIB) -o $(WAYLAND_EGL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
-install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
-L$(TOP)/$(LIB_DIR) $(WAYLAND_EGL_LIB_DEPS) \
$(OBJECTS) $(LOCAL_LIBS)
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,@WAYLAND_EGL_PC_REQ_PRIV@,$(WAYLAND_EGL_PC_REQ_PRIV),' \
-e 's,@WAYLAND_EGL_PC_LIB_PRIV@,$(WAYLAND_EGL_PC_LIB_PRIV),' \
-e 's,@WAYLAND_EGL_PC_CFLAGS@,$(WAYLAND_EGL_PC_CFLAGS),' \
-e 's,@WAYLAND_EGL_LIB@,$(WAYLAND_EGL_LIB),'
wayland-egl.pc: wayland-egl.pc.in
$(gl_pcedit) $< > $@
install: default wayland-egl.pc
$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
$(MINSTALL) $(TOP)/$(LIB_DIR)/$(WAYLAND_EGL_LIB_GLOB) \
$(DESTDIR)$(INSTALL_LIB_DIR)
$(INSTALL) -d $(DESTDIR)$(PKG_CONFIG_DIR)
$(INSTALL) -m 644 wayland-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

View File

@ -0,0 +1,9 @@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = wayland-egl.pc
AM_CFLAGS = $(DEFINES)
lib_LTLIBRARIES = libwayland-egl.la
noinst_HEADERS = wayland-egl-priv.h
libwayland_egl_la_SOURCES = wayland-egl.c
libwayland_egl_la_LDFLAGS = -version-info 1

View File

@ -1,12 +1,10 @@
prefix=@INSTALL_DIR@
exec_prefix=${prefix}
libdir=@INSTALL_LIB_DIR@
includedir=@INSTALL_INC_DIR@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: wayland-egl
Description: Mesa wayland-egl library
Requires.private: @WAYLAND_EGL_PC_REQ_PRIV@
Version: @VERSION@
Libs: -L${libdir} -l@WAYLAND_EGL_LIB@
Libs.private: @WAYLAND_EGL_PC_LIB_PRIV@
Cflags: -I${includedir} @WAYLAND_EGL_PC_CFLAGS@
Libs: -L${libdir} -lwayland-egl
Cflags: -I${includedir}

View File

@ -53,7 +53,7 @@ endif
ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
egl_CPPFLAGS += $(LIBDRM_CFLAGS)
egl_LIBS += $(TOP)/src/gallium/winsys/sw/wayland/libws_wayland.a
egl_LIBS += $(TOP)/src/egl/wayland/wayland-drm/libwayland-drm.a
egl_LIBS += $(TOP)/src/egl/wayland/wayland-drm/.libs/libwayland-drm.a
egl_SYS += $(LIBDRM_LIB) $(WAYLAND_LIBS)
endif
ifneq ($(findstring drm, $(EGL_PLATFORMS)),)