automake: convert libmesa and libmesagallium
* "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>
This commit is contained in:
parent
8676890018
commit
a112ca5d5f
|
@ -28,7 +28,7 @@ uniform_initializer_test_SOURCES = \
|
||||||
uniform_initializer_test_LDADD = \
|
uniform_initializer_test_LDADD = \
|
||||||
$(top_builddir)/src/gtest/libgtest.la \
|
$(top_builddir)/src/gtest/libgtest.la \
|
||||||
$(top_builddir)/src/glsl/libglsl.la \
|
$(top_builddir)/src/glsl/libglsl.la \
|
||||||
$(top_builddir)/src/mesa/libmesa.a \
|
$(top_builddir)/src/mesa/libmesa.la \
|
||||||
-lpthread
|
-lpthread
|
||||||
|
|
||||||
ralloc_test_SOURCES = ralloc_test.cpp $(top_builddir)/src/glsl/ralloc.c
|
ralloc_test_SOURCES = ralloc_test.cpp $(top_builddir)/src/glsl/ralloc.c
|
||||||
|
|
|
@ -93,14 +93,53 @@ program/lex.yy.c: program/program_lexer.l
|
||||||
mkdir -p program
|
mkdir -p program
|
||||||
$(LEX) --never-interactive --outfile=$@ $<
|
$(LEX) --never-interactive --outfile=$@ $<
|
||||||
|
|
||||||
all-local:
|
noinst_LTLIBRARIES = libmesa.la libmesagallium.la
|
||||||
$(MAKE) -f $(srcdir)/Makefile.old
|
|
||||||
|
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:
|
install-exec-local:
|
||||||
$(MAKE) -f $(srcdir)/Makefile.old install
|
$(MAKE) -f $(srcdir)/Makefile.old install
|
||||||
|
|
||||||
clean-local:
|
# Provide compatibility with scripts for the old Mesa build system for
|
||||||
$(MAKE) -f $(srcdir)/Makefile.old clean
|
# 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
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
|
||||||
|
|
|
@ -3,58 +3,10 @@
|
||||||
TOP = ../..
|
TOP = ../..
|
||||||
include $(TOP)/configs/current
|
include $(TOP)/configs/current
|
||||||
|
|
||||||
MESA_LIBS := libmesa.a libmesagallium.a
|
|
||||||
DEPENDS := depend
|
|
||||||
|
|
||||||
SRCDIR = .
|
SRCDIR = .
|
||||||
include sources.mak
|
include sources.mak
|
||||||
|
|
||||||
# define preprocessor flags
|
default:
|
||||||
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
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Installation rules
|
# Installation rules
|
||||||
|
@ -73,10 +25,3 @@ install-osmesa: default
|
||||||
# Emacs tags
|
# Emacs tags
|
||||||
tags:
|
tags:
|
||||||
etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
|
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)
|
|
||||||
|
|
|
@ -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_LDFLAGS = -module -version-number @OSMESA_VERSION@ -shared
|
||||||
lib@OSMESA_LIB@_la_LIBADD = \
|
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/mapi/glapi/libglapi.a \
|
||||||
$(top_builddir)/src/glsl/libglsl.la
|
$(top_builddir)/src/glsl/libglsl.la
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ GL_MINOR = 6
|
||||||
GL_PATCH = 0
|
GL_PATCH = 0
|
||||||
|
|
||||||
libGL_la_LIBADD = \
|
libGL_la_LIBADD = \
|
||||||
$(top_builddir)/src/mesa/libmesa.a \
|
$(top_builddir)/src/mesa/libmesa.la \
|
||||||
$(top_builddir)/src/mapi/glapi/libglapi.a
|
$(top_builddir)/src/mapi/glapi/libglapi.a
|
||||||
libGL_la_LDFLAGS = \
|
libGL_la_LDFLAGS = \
|
||||||
-version-number $(GL_MAJOR):$(GL_MINOR):$(GL_PATCH) \
|
-version-number $(GL_MAJOR):$(GL_MINOR):$(GL_PATCH) \
|
||||||
|
|
|
@ -12,6 +12,6 @@ main_test_SOURCES = \
|
||||||
enum_strings.cpp
|
enum_strings.cpp
|
||||||
|
|
||||||
main_test_LDADD = \
|
main_test_LDADD = \
|
||||||
$(top_builddir)/src/mesa/libmesa.a \
|
$(top_builddir)/src/mesa/libmesa.la \
|
||||||
$(top_builddir)/src/gtest/libgtest.la \
|
$(top_builddir)/src/gtest/libgtest.la \
|
||||||
-lpthread
|
-lpthread
|
||||||
|
|
Loading…
Reference in New Issue