automake: convert libglapi

* "configure substitutions are not allowed in _SOURCES variables" in automake,
so remove the AC_SUBST'ed GLAPI_ASM_SOURCES and instead use some AM_CONDITIONALS
to choose which asm sources are used

* Change GLAPI_LIB to point to the .la file in other Makefile.am files, and make a link
to the .a file for the convenience of other Makefiles which have not yet been converted
to automake

v2:
- Use AM_CPPFLAGS for cleaner build output
- EXTRA_SOURCES is not needed
- Remove libglapi.a compatibility link on clean

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Jon TURNEY 2012-06-29 18:09:37 +01:00
parent 1e48dfeee6
commit b2a37e242e
10 changed files with 75 additions and 88 deletions

View File

@ -47,7 +47,6 @@ DLOPEN_LIBS = @DLOPEN_LIBS@
# Source selection
MESA_ASM_FILES = @MESA_ASM_FILES@
GLAPI_ASM_SOURCES = @GLAPI_ASM_SOURCES@
# Misc tools and flags
MAKE = @MAKE@

View File

@ -454,7 +454,6 @@ AC_ARG_ENABLE([asm],
)
asm_arch=""
MESA_ASM_FILES=""
GLAPI_ASM_SOURCES=""
AC_MSG_CHECKING([whether to enable assembly])
test "x$enable_asm" = xno && AC_MSG_RESULT([no])
# disable if cross compiling on x86/x86_64 since we must run gen_matypes
@ -503,19 +502,16 @@ if test "x$enable_asm" = xyes; then
x86)
DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
MESA_ASM_FILES='$(X86_FILES)'
GLAPI_ASM_SOURCES='$(X86_API)'
AC_MSG_RESULT([yes, x86])
;;
x86_64)
DEFINES="$DEFINES -DUSE_X86_64_ASM"
MESA_ASM_FILES='$(X86_64_FILES)'
GLAPI_ASM_SOURCES='$(X86_64_API)'
AC_MSG_RESULT([yes, x86_64])
;;
sparc)
DEFINES="$DEFINES -DUSE_SPARC_ASM"
MESA_ASM_FILES='$(SPARC_FILES)'
GLAPI_ASM_SOURCES='$(SPARC_API)'
AC_MSG_RESULT([yes, sparc])
;;
*)
@ -524,7 +520,6 @@ if test "x$enable_asm" = xyes; then
esac
fi
AC_SUBST([MESA_ASM_FILES])
AC_SUBST([GLAPI_ASM_SOURCES])
dnl PIC code macro
MESA_PIC_FLAGS
@ -2158,6 +2153,7 @@ AC_CONFIG_FILES([configs/current
src/glsl/tests/Makefile
src/glx/Makefile
src/glx/tests/Makefile
src/mapi/glapi/Makefile
src/mapi/glapi/gen/Makefile
src/mapi/shared-glapi/Makefile
src/mapi/glapi/tests/Makefile

View File

@ -19,7 +19,7 @@
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
GLAPI_LIB = ../mapi/glapi/libglapi.a
GLAPI_LIB = ../mapi/glapi/libglapi.la
if HAVE_XF86VIDMODE
EXTRA_DEFINES_XF86VIDMODE = -DXF86VIDMODE

View File

@ -26,7 +26,7 @@ endif
SUBDIRS=tests
GLAPI_LIB = ../mapi/glapi/libglapi.a
GLAPI_LIB = ../mapi/glapi/libglapi.la
if HAVE_XF86VIDMODE
EXTRA_DEFINES_XF86VIDMODE = -DXF86VIDMODE

View File

@ -7,3 +7,4 @@ glapi_x86.S
glapitable.h
glapitemp.h
glprocs.h
\Makefile

View File

@ -1,77 +0,0 @@
# src/mapi/glapi/Makefile
TOP = ../../..
include $(TOP)/configs/current
TARGET = glapi
MAPI = $(TOP)/src/mapi/mapi
include sources.mak
include $(MAPI)/sources.mak
glapi_CPPFLAGS := \
-I$(TOP)/include \
-I$(TOP)/src/mapi \
-I$(TOP)/src/mesa
ifeq ($(SHARED_GLAPI),1)
glapi_CPPFLAGS += \
-DMAPI_MODE_BRIDGE \
-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
glapi_SOURCES := $(MAPI_BRIDGE_FILES)
glapi_GLAPI_OBJECTS :=
glapi_ASM_OBJECTS :=
glapi_MAPI_OBJECTS := $(notdir $(MAPI_BRIDGE_FILES:.c=.o))
else
glapi_CPPFLAGS += -DMAPI_MODE_UTIL
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 := $(notdir $(MAPI_UTIL_FILES:.c=.o))
endif # SHARED_GLAPI
glapi_OBJECTS := \
$(glapi_GLAPI_OBJECTS) \
$(glapi_ASM_OBJECTS) \
$(glapi_MAPI_OBJECTS)
default: depend lib$(TARGET).a
lib$(TARGET).a: $(glapi_OBJECTS)
@$(MKLIB) -o $(TARGET) -static $(glapi_OBJECTS)
$(glapi_GLAPI_OBJECTS): %.o: %.c
$(CC) -c $(glapi_CPPFLAGS) $(CFLAGS) $< -o $@
$(glapi_ASM_OBJECTS): %.o: %.S
$(CC) -c $(glapi_CPPFLAGS) $(CFLAGS) $< -o $@
$(glapi_MAPI_OBJECTS): %.o: $(MAPI)/%.c
$(CC) -c $(glapi_CPPFLAGS) $(CFLAGS) $< -o $@
install:
clean:
-rm -f $(glapi_OBJECTS)
-rm -f lib$(TARGET).a
-rm -f depend depend.bak
ifeq ($(SHARED_GLAPI),1)
# workaround a bug in makedepend
makedepend_CPPFLAGS := \
$(filter-out -DMAPI_ABI_HEADER=%, $(glapi_CPPFLAGS))
$(glapi_OBJECTS): glapi_mapi_tmp.h
else
makedepend_CPPFLAGS := $(glapi_CPPFLAGS)
endif
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

View File

@ -0,0 +1,68 @@
# Copyright © 2012 Jon TURNEY
#
# 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.
TOP = $(top_srcdir)
include sources.mak
include ../mapi/sources.mak
AM_CPPFLAGS = \
$(DEFINES) \
-I$(top_srcdir)/include \
-I$(top_srcdir)/src/mapi \
-I$(top_srcdir)/src/mesa
if HAVE_X86_ASM
GLAPI_ASM_SOURCES = $(X86_API)
endif
if HAVE_X86_64_ASM
GLAPI_ASM_SOURCES = $(X86_64_API)
endif
if HAVE_SPARC_ASM
GLAPI_ASM_SOURCES = $(SPARC_API)
endif
if HAVE_SHARED_GLAPI
AM_CPPFLAGS += \
-DMAPI_MODE_BRIDGE \
-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
glapi_GLAPI_sources =
glapi_ASM_sources =
glapi_MAPI_sources = $(MAPI_BRIDGE_FILES)
else
AM_CPPFLAGS += \
-DMAPI_MODE_UTIL
glapi_GLAPI_sources = $(GLAPI_SOURCES)
glapi_ASM_sources = $(GLAPI_ASM_SOURCES)
glapi_MAPI_sources = $(MAPI_UTIL_FILES)
endif
noinst_LTLIBRARIES = libglapi.la
libglapi_la_SOURCES = $(glapi_GLAPI_sources) $(glapi_ASM_sources) $(glapi_MAPI_sources)
libglapi_la_LIBADD =
libglapi_la_LDFLAGS =
# Provide compatibility with scripts for the old Mesa build system for
# a while by putting a link to libglapi.a here
all-local: libglapi.la
ln -sf .libs/libglapi.a libglapi.a
CLEANFILES = libglapi.a

View File

@ -10,6 +10,6 @@ glapi_test_SOURCES = \
check_table.cpp
glapi_test_LDADD = \
$(top_builddir)/src/mapi/glapi/libglapi.a \
$(top_builddir)/src/mapi/glapi/libglapi.la \
$(top_builddir)/src/gtest/libgtest.la \
-lpthread

View File

@ -40,7 +40,7 @@ lib@OSMESA_LIB@_la_SOURCES = osmesa.c
lib@OSMESA_LIB@_la_LDFLAGS = -module -version-number @OSMESA_VERSION@ -shared
lib@OSMESA_LIB@_la_LIBADD = \
$(top_builddir)/src/mesa/libmesa.la \
$(top_builddir)/src/mapi/glapi/libglapi.a \
$(top_builddir)/src/mapi/glapi/libglapi.la \
$(top_builddir)/src/glsl/libglsl.la
# Provide compatibility with scripts for the old Mesa build system for

View File

@ -57,7 +57,7 @@ GL_PATCH = 0
libGL_la_LIBADD = \
$(top_builddir)/src/mesa/libmesa.la \
$(top_builddir)/src/mapi/glapi/libglapi.a
$(top_builddir)/src/mapi/glapi/libglapi.la
libGL_la_LDFLAGS = \
-version-number $(GL_MAJOR):$(GL_MINOR):$(GL_PATCH) \
$(GL_LIB_DEPS)