mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 22:38:05 +02:00
shared-glapi: Convert to automake
This fixes a build problem where EGL links to libgbm.la, which encodes a relative path to it's libglapi.so dependency. The relative path breaks when the linker tries to resolve it from src/egl/main instead of src/gbm. Typically we silently fall back to the system libglapi.so, which is wrong and breaks when there isn't one. Morale of the story: don't mix mklib and libtool.
This commit is contained in:
parent
91ddfa72b4
commit
ca760181b4
11 changed files with 61 additions and 100 deletions
|
|
@ -702,6 +702,7 @@ if test "x$enable_shared_glapi" = xyes; then
|
|||
# libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use
|
||||
# the remap table)
|
||||
DEFINES="$DEFINES -DIN_DRI_DRIVER"
|
||||
SRC_DIRS="$SRC_DIRS mapi/shared-glapi"
|
||||
fi
|
||||
AC_SUBST([SHARED_GLAPI])
|
||||
AM_CONDITIONAL(HAVE_SHARED_GLAPI, test $SHARED_GLAPI = 1)
|
||||
|
|
@ -1985,6 +1986,7 @@ AC_CONFIG_FILES([configs/autoconf
|
|||
src/egl/wayland/wayland-egl/wayland-egl.pc
|
||||
src/egl/wayland/wayland-drm/Makefile
|
||||
src/glx/Makefile
|
||||
src/mapi/shared-glapi/Makefile
|
||||
src/mesa/drivers/dri/dri.pc
|
||||
src/mesa/drivers/dri/Makefile
|
||||
src/mesa/drivers/dri/common/Makefile
|
||||
|
|
|
|||
|
|
@ -93,7 +93,6 @@ 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
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ libgbm_dri_la_CFLAGS = \
|
|||
-DDEFAULT_DRIVER_DIR='"$(DRI_DRIVER_SEARCH_DIR)"' \
|
||||
$(LIBDRM_CFLAGS)
|
||||
|
||||
libgbm_la_LDFLAGS += -L$(top_builddir)/$(LIB_DIR)
|
||||
libgbm_la_LIBADD += libgbm_dri.la -lglapi
|
||||
libgbm_la_LIBADD += \
|
||||
libgbm_dri.la $(top_builddir)/src/mapi/shared-glapi/libglapi.la
|
||||
endif
|
||||
|
||||
all-local: libgbm.la
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
if HAVE_SHARED_GLAPI
|
||||
SHARED_GLAPI_CFLAGS = -DGLX_SHARED_GLAPI
|
||||
SHARED_GLAPI_LIBS = -L$(top_builddir)/$(LIB_DIR) -lglapi
|
||||
SHARED_GLAPI_LIBS = $(top_builddir)/src/mapi/shared-glapi/libglapi.la
|
||||
endif
|
||||
|
||||
GLAPI_LIB = ../mapi/glapi/libglapi.a
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
# get MAPI_GLAPI_SOURCES
|
||||
# get MAPI_GLAPI_FILES
|
||||
include $(LOCAL_PATH)/mapi/sources.mak
|
||||
|
||||
mapi_abi_headers :=
|
||||
|
|
@ -38,7 +38,7 @@ include $(CLEAR_VARS)
|
|||
|
||||
abi_header := shared-glapi/glapi_mapi_tmp.h
|
||||
|
||||
LOCAL_SRC_FILES := $(addprefix mapi/, $(MAPI_GLAPI_SOURCES))
|
||||
LOCAL_SRC_FILES := $(MAPI_GLAPI_FILES)
|
||||
|
||||
LOCAL_CFLAGS := \
|
||||
-DMAPI_MODE_GLAPI \
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ esapi_CPPFLAGS := \
|
|||
-DMAPI_ABI_HEADER=\"$(ESAPI)/glapi_mapi_tmp.h\"
|
||||
|
||||
include $(MAPI)/sources.mak
|
||||
esapi_SOURCES := $(addprefix $(MAPI)/, $(MAPI_BRIDGE_SOURCES))
|
||||
esapi_OBJECTS := $(MAPI_BRIDGE_SOURCES:.c=.o)
|
||||
esapi_SOURCES := $(MAPI_BRIDGE_FILES)
|
||||
esapi_OBJECTS := $(notdir $(MAPI_BRIDGE_FILES:.c=.o))
|
||||
esapi_CPPFLAGS += -DMAPI_MODE_BRIDGE
|
||||
|
||||
esapi_LIB_DEPS := -L$(TOP)/$(LIB_DIR) -l$(GLAPI_LIB) $(esapi_LIB_DEPS)
|
||||
|
|
|
|||
|
|
@ -19,18 +19,18 @@ ifeq ($(SHARED_GLAPI),1)
|
|||
glapi_CPPFLAGS += \
|
||||
-DMAPI_MODE_BRIDGE \
|
||||
-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
|
||||
glapi_SOURCES := $(addprefix $(MAPI)/, $(MAPI_BRIDGE_SOURCES))
|
||||
glapi_SOURCES := $(MAPI_BRIDGE_FILES)
|
||||
|
||||
glapi_GLAPI_OBJECTS :=
|
||||
glapi_ASM_OBJECTS :=
|
||||
glapi_MAPI_OBJECTS := $(MAPI_BRIDGE_SOURCES:.c=.o)
|
||||
glapi_MAPI_OBJECTS := $(notdir $(MAPI_BRIDGE_FILES:.c=.o))
|
||||
else
|
||||
glapi_CPPFLAGS += -DMAPI_MODE_UTIL
|
||||
glapi_SOURCES := $(GLAPI_SOURCES) $(addprefix $(MAPI)/, $(MAPI_UTIL_SOURCES))
|
||||
glapi_SOURCES := $(GLAPI_SOURCES) $(MAPI_UTIL_FILES)
|
||||
|
||||
glapi_GLAPI_OBJECTS := $(GLAPI_SOURCES:.c=.o)
|
||||
glapi_ASM_OBJECTS := $(GLAPI_ASM_SOURCES:.S=.o)
|
||||
glapi_MAPI_OBJECTS := $(MAPI_UTIL_SOURCES:.c=.o)
|
||||
glapi_MAPI_OBJECTS := $(notdir $(MAPI_UTIL_FILES:.c=.o))
|
||||
endif # SHARED_GLAPI
|
||||
|
||||
glapi_OBJECTS := \
|
||||
|
|
|
|||
|
|
@ -3,34 +3,34 @@
|
|||
# mapi may be used in several ways
|
||||
#
|
||||
# - In default mode, mapi implements the interface defined by mapi.h. To use
|
||||
# this mode, compile MAPI_SOURCES.
|
||||
# this mode, compile MAPI_FILES.
|
||||
#
|
||||
# - In util mode, mapi provides utility functions for use with glapi. To use
|
||||
# this mode, compile MAPI_UTIL_SOURCES with MAPI_MODE_UTIL defined.
|
||||
# this mode, compile MAPI_UTIL_FILES with MAPI_MODE_UTIL defined.
|
||||
#
|
||||
# - In glapi mode, mapi implements the interface defined by glapi.h. To use
|
||||
# this mode, compile MAPI_GLAPI_SOURCES with MAPI_MODE_GLAPI defined.
|
||||
# this mode, compile MAPI_GLAPI_FILES with MAPI_MODE_GLAPI defined.
|
||||
#
|
||||
# - In bridge mode, mapi provides entry points calling into glapi. To use
|
||||
# this mode, compile MAPI_BRIDGE_SOURCES with MAPI_MODE_BRIDGE defined.
|
||||
# this mode, compile MAPI_BRIDGE_FILES with MAPI_MODE_BRIDGE defined.
|
||||
|
||||
MAPI_UTIL_SOURCES = \
|
||||
u_current.c \
|
||||
u_execmem.c
|
||||
MAPI_UTIL_FILES = \
|
||||
$(TOP)/src/mapi/mapi/u_current.c \
|
||||
$(TOP)/src/mapi/mapi/u_execmem.c
|
||||
|
||||
MAPI_SOURCES = \
|
||||
entry.c \
|
||||
mapi.c \
|
||||
stub.c \
|
||||
table.c \
|
||||
$(MAPI_UTIL_SOURCES)
|
||||
MAPI_FILES = \
|
||||
$(TOP)/src/mapi/mapi/entry.c \
|
||||
$(TOP)/src/mapi/mapi/mapi.c \
|
||||
$(TOP)/src/mapi/mapi/stub.c \
|
||||
$(TOP)/src/mapi/mapi/table.c \
|
||||
$(MAPI_UTIL_FILES)
|
||||
|
||||
MAPI_GLAPI_SOURCES = \
|
||||
entry.c \
|
||||
mapi_glapi.c \
|
||||
stub.c \
|
||||
table.c \
|
||||
$(MAPI_UTIL_SOURCES)
|
||||
MAPI_GLAPI_FILES = \
|
||||
$(TOP)/src/mapi/mapi/entry.c \
|
||||
$(TOP)/src/mapi/mapi/mapi_glapi.c \
|
||||
$(TOP)/src/mapi/mapi/stub.c \
|
||||
$(TOP)/src/mapi/mapi/table.c \
|
||||
$(MAPI_UTIL_FILES)
|
||||
|
||||
MAPI_BRIDGE_SOURCES = \
|
||||
entry.c
|
||||
MAPI_BRIDGE_FILES = \
|
||||
$(TOP)/src/mapi/mapi/entry.c
|
||||
|
|
|
|||
|
|
@ -1,65 +0,0 @@
|
|||
# src/mapi/shared-glapi/Makefile
|
||||
#
|
||||
# Used by OpenGL ES or when --enable-shared-glapi is specified
|
||||
#
|
||||
|
||||
TOP := ../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
GLAPI := $(TOP)/src/mapi/glapi
|
||||
MAPI := $(TOP)/src/mapi/mapi
|
||||
|
||||
glapi_CPPFLAGS := \
|
||||
-I$(TOP)/include \
|
||||
-I$(TOP)/src/mapi \
|
||||
-DMAPI_MODE_GLAPI \
|
||||
-DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\"
|
||||
|
||||
include $(MAPI)/sources.mak
|
||||
glapi_SOURCES := $(addprefix $(MAPI)/, $(MAPI_GLAPI_SOURCES))
|
||||
glapi_OBJECTS := $(MAPI_GLAPI_SOURCES:.c=.o)
|
||||
|
||||
.PHONY: default
|
||||
default: depend $(TOP)/$(LIB_DIR)/$(GLAPI_LIB_NAME)
|
||||
|
||||
$(TOP)/$(LIB_DIR)/$(GLAPI_LIB_NAME): $(glapi_OBJECTS)
|
||||
$(MKLIB) -o $(GLAPI_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
|
||||
-major 0 -minor 0 -patch 0 \
|
||||
-id $(INSTALL_LIB_DIR)/lib$(GLAPI_LIB).0.dylib \
|
||||
$(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
|
||||
$(glapi_OBJECTS) $(GLAPI_LIB_DEPS)
|
||||
|
||||
$(glapi_OBJECTS): %.o: $(MAPI)/%.c
|
||||
$(CC) -c $(glapi_CPPFLAGS) $(CFLAGS) $< -o $@
|
||||
|
||||
$(glapi_SOURCES): glapi_mapi_tmp.h
|
||||
|
||||
include $(GLAPI)/gen/glapi_gen.mk
|
||||
glapi_mapi_tmp.h: $(GLAPI)/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
|
||||
$(call glapi_gen_mapi,$<,shared-glapi)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f $(TOP)/$(LIB_DIR)/$(GLAPI_LIB_NAME)
|
||||
-rm -f $(glapi_OBJECTS)
|
||||
-rm -f depend depend.bak
|
||||
-rm -f glapi_mapi_tmp.h
|
||||
|
||||
install:
|
||||
$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
|
||||
$(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLAPI_LIB_GLOB) \
|
||||
$(DESTDIR)$(INSTALL_LIB_DIR)
|
||||
|
||||
# workaround a bug in makedepend
|
||||
makedepend_CPPFLAGS := \
|
||||
$(filter-out -DMAPI_ABI_HEADER=%, $(glapi_CPPFLAGS))
|
||||
$(glapi_OBJECTS): glapi_mapi_tmp.h
|
||||
|
||||
depend: $(glapi_SOURCES)
|
||||
@echo "running $(MKDEP)"
|
||||
@touch depend
|
||||
@$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(makedepend_CPPFLAGS) \
|
||||
$(glapi_SOURCES) 2>/dev/null | sed -e 's,^$(MAPI)/,,' \
|
||||
> depend
|
||||
|
||||
-include depend
|
||||
25
src/mapi/shared-glapi/Makefile.am
Normal file
25
src/mapi/shared-glapi/Makefile.am
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# Used by OpenGL ES or when --enable-shared-glapi is specified
|
||||
|
||||
TOP = $(top_srcdir)
|
||||
GLAPI = $(top_srcdir)/src/mapi/glapi
|
||||
include $(top_srcdir)/src/mapi/mapi/sources.mak
|
||||
|
||||
lib_LTLIBRARIES = libglapi.la
|
||||
libglapi_la_SOURCES = $(MAPI_GLAPI_FILES)
|
||||
|
||||
include $(GLAPI)/gen/glapi_gen.mk
|
||||
glapi_mapi_tmp.h : $(GLAPI)/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
|
||||
$(call glapi_gen_mapi,$<,shared-glapi)
|
||||
|
||||
BUILT_SOURCES = glapi_mapi_tmp.h
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
$(DEFINES) \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/mapi \
|
||||
-DMAPI_MODE_GLAPI \
|
||||
-DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\"
|
||||
|
||||
all-local: libglapi.la
|
||||
$(MKDIR_P) $(top_builddir)/$(LIB_DIR)
|
||||
ln -f .libs/libglapi.so.0.0.0 $(top_builddir)/$(LIB_DIR)/libglapi.so
|
||||
|
|
@ -10,8 +10,8 @@ VG_LIB_PATCH = 0
|
|||
MAPI := $(TOP)/src/mapi/mapi
|
||||
|
||||
include $(MAPI)/sources.mak
|
||||
VGAPI_SOURCES := $(addprefix $(MAPI)/, $(MAPI_SOURCES))
|
||||
VGAPI_OBJECTS := $(MAPI_SOURCES:.c=.o)
|
||||
VGAPI_SOURCES := $(MAPI_FILES)
|
||||
VGAPI_OBJECTS := $(notdir $(MAPI_FILES:.c=.o))
|
||||
|
||||
VGAPI_CPPFLAGS := -DMAPI_ABI_HEADER=\"vgapi/vgapi_tmp.h\"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue