automake: convert libmesa and libmesagallium
authorJon TURNEY <jon.turney@dronecode.org.uk>
Fri, 6 Jul 2012 23:51:52 +0000 (00:51 +0100)
committerJon TURNEY <jon.turney@dronecode.org.uk>
Fri, 13 Jul 2012 11:43:58 +0000 (12:43 +0100)
* "configure substitutions are not allowed in _SOURCES variables" in automake, so instead of
MESA_ASM_FILES, use some AM_CONDITIONALS to choose which architecture's asm sources are used
in libmesa_la_SOURCES. (Can't remove MESA_ASM_FILES autoconf variable as it's still used in
sources.mak)

* Update to link with 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: Remove stray -static from LDFLAGS
v3: Remove .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>
src/glsl/tests/Makefile.am
src/mesa/Makefile.am
src/mesa/Makefile.old
src/mesa/drivers/osmesa/Makefile.am
src/mesa/drivers/x11/Makefile.am
src/mesa/main/tests/Makefile.am

index 4829fb2fe0d26c18190396c50d74e3e451c2f7b2..33e634d953d2fc263524cfbf5ba4ca1567402d00 100644 (file)
@@ -28,7 +28,7 @@ uniform_initializer_test_SOURCES =            \
 uniform_initializer_test_LDADD =               \
        $(top_builddir)/src/gtest/libgtest.la   \
        $(top_builddir)/src/glsl/libglsl.la     \
-       $(top_builddir)/src/mesa/libmesa.     \
+       $(top_builddir)/src/mesa/libmesa.la     \
        -lpthread
 
 ralloc_test_SOURCES = ralloc_test.cpp $(top_builddir)/src/glsl/ralloc.c
index bada7601a8da7d3b0ca684fad88b1572d4f11460..54c1bf8ad0d325e3e7bee09a57d7d1a1b4d5ec81 100644 (file)
@@ -93,14 +93,53 @@ program/lex.yy.c: program/program_lexer.l
        mkdir -p program
        $(LEX) --never-interactive --outfile=$@ $<
 
-all-local:
-       $(MAKE) -f $(srcdir)/Makefile.old
+noinst_LTLIBRARIES = libmesa.la libmesagallium.la
+
+SRCDIR = $(top_srcdir)/src/mesa
+include sources.mak
+
+AM_CFLAGS = $(API_DEFINES) $(DEFINES) $(INCLUDE_DIRS) $(LLVM_CFLAGS) $(CFLAGS)
+AM_CXXFLAGS = $(API_DEFINES) $(DEFINES) $(INCLUDE_DIRS) $(LLVM_CFLAGS) $(CXXFLAGS)
+
+# cannot just add $(MESA_ASM_FILES) to libmesa_la_SOURCES as it contains a configure substitution
+MESA_ASM_FILES_FOR_ARCH =
+
+if HAVE_X86_ASM
+MESA_ASM_FILES_FOR_ARCH += $(X86_FILES)
+endif
+if HAVE_X86_64_ASM
+MESA_ASM_FILES_FOR_ARCH += $(X86_64_FILES)
+endif
+if HAVE_SPARC_ASM
+MESA_ASM_FILES_FOR_ARCH += $(SPARC_FILES)
+endif
+
+libmesa_la_SOURCES = \
+       $(MESA_FILES) \
+       $(MESA_CXX_FILES) \
+        $(MESA_ASM_FILES_FOR_ARCH)
+
+libmesa_la_LIBADD = $(top_builddir)/src/glsl/libglsl.la
+libmesa_la_LDFLAGS =
+
+libmesagallium_la_SOURCES = \
+       $(MESA_GALLIUM_FILES) \
+       $(MESA_GALLIUM_CXX_FILES) \
+        $(MESA_ASM_FILES_FOR_ARCH)
+
+libmesagallium_la_LIBADD = $(top_builddir)/src/glsl/libglsl.la
+libmesagallium_la_LDFLAGS =
 
 install-exec-local:
        $(MAKE) -f $(srcdir)/Makefile.old install
 
-clean-local:
-       $(MAKE) -f $(srcdir)/Makefile.old clean
+# Provide compatibility with scripts for the old Mesa build system for
+# a while by putting a link to the library in the current directory.
+all-local: libmesa.la libmesagallium.la
+       ln -f .libs/libmesa.a .
+       ln -f .libs/libmesagallium.a .
+
+CLEANFILES += libmesa.a libmesagallium.a
 
 pkgconfigdir = $(libdir)/pkgconfig
 
index 4ea70d43d07aada1e09a9047ff8404e9c7f385ed..3266a5de0852ccaea6bb90ebceddf41bcdd19ecb 100644 (file)
@@ -3,58 +3,10 @@
 TOP = ../..
 include $(TOP)/configs/current
 
-MESA_LIBS := libmesa.a libmesagallium.a
-DEPENDS := depend
-
 SRCDIR = .
 include sources.mak
 
-# define preprocessor flags
-MESA_CPPFLAGS := $(API_DEFINES) $(DEFINES)
-
-# append include dirs
-MESA_CPPFLAGS += $(INCLUDE_DIRS)
-
-# tidy compiler flags
-CFLAGS := $(filter-out $(DEFINES), $(CFLAGS))
-CXXFLAGS := $(filter-out $(DEFINES), $(CXXFLAGS))
-
-# LLVM is needed for the state tracker
-MESA_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS)
-MESA_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS)
-
-%.o: %.c
-       $(CC) -c -o $@ $< $(MESA_CPPFLAGS) $(MESA_CFLAGS)
-
-%.o: %.cpp
-       $(CXX) -c -o $@ $< $(MESA_CPPFLAGS) $(MESA_CXXFLAGS)
-
-%.o: %.S
-       $(CC) -c -o $@ $< $(MESA_CPPFLAGS) $(MESA_CFLAGS)
-
-# Default: build dependencies, then asm_subdirs, GLSL built-in lib,
-# then convenience libs (.a) and finally the device drivers:
-default: $(DEPENDS) $(MESA_LIBS)
-
-######################################################################
-# Helper libraries used by many drivers:
-
-# Make archive of core mesa object files
-libmesa.a: $(MESA_OBJECTS) $(GLSL_LIBS)
-       @ $(MKLIB) -o mesa -static $(MESA_OBJECTS) $(GLSL_LIBS)
-
-# Make archive of subset of core mesa object files for gallium
-libmesagallium.a: $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
-       @ $(MKLIB) -o mesagallium -static $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
-
-######################################################################
-# Dependency generation
-
-depend: $(ALL_FILES) main/git_sha1.h
-       @ echo "running $(MKDEP)"
-       @ touch depend
-       @$(MKDEP) $(MKDEP_OPTIONS) $(MESA_CPPFLAGS) \
-               $(ALL_FILES) > /dev/null 2>/dev/null
+default:
 
 ######################################################################
 # Installation rules
@@ -73,10 +25,3 @@ install-osmesa: default
 # Emacs tags
 tags:
        etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
-
-clean:
-       -rm -f */*.o
-       -rm -f */*/*.o
-       -rm -f depend depend.bak libmesa.a libmesagallium.a
-
--include $(DEPENDS)
index 2c4ce2c33d2a9994c689490a5dc6466465e987af..6dadf4614fc49d900ba4cfbb2a4ab4a5e531efc0 100644 (file)
@@ -39,7 +39,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.a \
+       $(top_builddir)/src/mesa/libmesa.la \
        $(top_builddir)/src/mapi/glapi/libglapi.a \
        $(top_builddir)/src/glsl/libglsl.la
 
index cced2388491602d6342dad965502089e3daf6d70..4948e8f9c769a8a4e84aa3193ec367cb5562d52c 100644 (file)
@@ -56,7 +56,7 @@ GL_MINOR = 6
 GL_PATCH = 0
 
 libGL_la_LIBADD = \
-       $(top_builddir)/src/mesa/libmesa.a \
+       $(top_builddir)/src/mesa/libmesa.la \
        $(top_builddir)/src/mapi/glapi/libglapi.a
 libGL_la_LDFLAGS = \
        -version-number $(GL_MAJOR):$(GL_MINOR):$(GL_PATCH) \
index 12f26b204093413fea7d61e13bf7be559811de05..74e02a8cccaef4e1f3b35313468cefc144281cd1 100644 (file)
@@ -12,6 +12,6 @@ main_test_SOURCES =                   \
        enum_strings.cpp
 
 main_test_LDADD = \
-       $(top_builddir)/src/mesa/libmesa.a \
+       $(top_builddir)/src/mesa/libmesa.la \
        $(top_builddir)/src/gtest/libgtest.la \
        -lpthread