[Mesa-dev] [PATCH 8/9] automake: convert libglapi

Jon TURNEY jon.turney at dronecode.org.uk
Tue Jul 10 07:08:42 PDT 2012


* "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

Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
---
 configs/current.in                  |    1 -
 configure.ac                        |    6 +--
 src/egl/main/Makefile.am            |    2 +-
 src/glx/Makefile.am                 |    2 +-
 src/mapi/glapi/.gitignore           |    1 +
 src/mapi/glapi/Makefile             |   77 -----------------------------------
 src/mapi/glapi/Makefile.am          |   69 +++++++++++++++++++++++++++++++
 src/mapi/glapi/tests/Makefile.am    |    2 +-
 src/mesa/drivers/osmesa/Makefile.am |    2 +-
 src/mesa/drivers/x11/Makefile.am    |    2 +-
 10 files changed, 76 insertions(+), 88 deletions(-)
 delete mode 100644 src/mapi/glapi/Makefile
 create mode 100644 src/mapi/glapi/Makefile.am

diff --git a/configs/current.in b/configs/current.in
index e0c0130..dc0dea8 100644
--- a/configs/current.in
+++ b/configs/current.in
@@ -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@
diff --git a/configure.ac b/configure.ac
index c579fd3..7e55907 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
@@ -2177,6 +2172,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
diff --git a/src/egl/main/Makefile.am b/src/egl/main/Makefile.am
index 9c3935b..ca5257a 100644
--- a/src/egl/main/Makefile.am
+++ b/src/egl/main/Makefile.am
@@ -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
diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am
index 37a938d..6ca85cd 100644
--- a/src/glx/Makefile.am
+++ b/src/glx/Makefile.am
@@ -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
diff --git a/src/mapi/glapi/.gitignore b/src/mapi/glapi/.gitignore
index ecae56a..25d3dfd 100644
--- a/src/mapi/glapi/.gitignore
+++ b/src/mapi/glapi/.gitignore
@@ -7,3 +7,4 @@ glapi_x86.S
 glapitable.h
 glapitemp.h
 glprocs.h
+\Makefile
diff --git a/src/mapi/glapi/Makefile b/src/mapi/glapi/Makefile
deleted file mode 100644
index 211f384..0000000
--- a/src/mapi/glapi/Makefile
+++ /dev/null
@@ -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
diff --git a/src/mapi/glapi/Makefile.am b/src/mapi/glapi/Makefile.am
new file mode 100644
index 0000000..bd36d86
--- /dev/null
+++ b/src/mapi/glapi/Makefile.am
@@ -0,0 +1,69 @@
+# 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
+
+libglapi_la_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
+libglapi_la_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
+libglapi_la_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 =
+
+# list all possible sources, so automake understands what should be distributed
+EXTRA_libglapi_la_SOURCES = $(X86_API) $(X86_64_API) $(SPARC_API)
+
+# 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
diff --git a/src/mapi/glapi/tests/Makefile.am b/src/mapi/glapi/tests/Makefile.am
index 96b63f5..96fc871 100644
--- a/src/mapi/glapi/tests/Makefile.am
+++ b/src/mapi/glapi/tests/Makefile.am
@@ -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
diff --git a/src/mesa/drivers/osmesa/Makefile.am b/src/mesa/drivers/osmesa/Makefile.am
index 6dadf46..9989c92 100644
--- a/src/mesa/drivers/osmesa/Makefile.am
+++ b/src/mesa/drivers/osmesa/Makefile.am
@@ -40,7 +40,7 @@ lib at OSMESA_LIB@_la_SOURCES = osmesa.c
 lib at OSMESA_LIB@_la_LDFLAGS = -module -version-number @OSMESA_VERSION@ -shared
 lib at 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
diff --git a/src/mesa/drivers/x11/Makefile.am b/src/mesa/drivers/x11/Makefile.am
index 4948e8f..52febbb 100644
--- a/src/mesa/drivers/x11/Makefile.am
+++ b/src/mesa/drivers/x11/Makefile.am
@@ -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)
-- 
1.7.9



More information about the mesa-dev mailing list