diff options
author | Jon TURNEY <[email protected]> | 2012-06-28 23:15:48 +0100 |
---|---|---|
committer | Jon TURNEY <[email protected]> | 2012-07-13 12:43:41 +0100 |
commit | 68e04cc6014bf7a2c9bd0b3b783b4ec12aa2e824 (patch) | |
tree | 41ca584f01c57b781d41d703f044f4452ba4e644 /src/glsl/Makefile.am | |
parent | 284325d97b3049e59e64daf784e2b3858f0ffcf5 (diff) |
automake: convert libglsl
v2: Use AM_V_GEN to silence generated code rules. Add BUILT_SOURCES to CLEANFILES
v3:
- Fix an accidental // in a path
- Use automake make rules for lex/yacc rather than writing our own
- Update .gitignore appropriately
- Build a libglcpp convenience library rather than awkwardly including
the files in libglsl and delegating the generation
- Remove libglsl.a compatibility link on clean
v4:
- Automake's rules for lex/yacc make .cc if source is .ll or .yy, and apparently we
must use those extensions "because of scons", so update everywhere glsl_parser.cpp
-> glsl_parser.cc and glsl_lexer.cpp -> glsl_lexer.cc. This fixes 'make tarballs'
and building with dricore enabled.
Signed-off-by: Jon TURNEY <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Tested-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/glsl/Makefile.am')
-rw-r--r-- | src/glsl/Makefile.am | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am new file mode 100644 index 00000000000..2b9ca2cbaf9 --- /dev/null +++ b/src/glsl/Makefile.am @@ -0,0 +1,106 @@ +# 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. + + +# builtin_compiler is built before libglsl to generate builtin_function.cpp for libglsl. +# For this to work, a dummy version of builtin_function.cpp, builtin_stubs.cpp, is used. + +# Hack to make some of the non-automake variables work. +TOP=$(top_builddir) + +AM_CFLAGS = \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/src/mapi \ + -I$(top_srcdir)/src/mesa/ \ + $(LIBRARY_INCLUDES) \ + $(DEFINES) \ + $(LIBRARY_DEFINES) \ + $(API_DEFINES) + +AM_CXXFLAGS = $(AM_CFLAGS) + +AM_YFLAGS = -v -d -p "_mesa_glsl_" +AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c + +GLSL_SRCDIR=$(top_srcdir)/src/glsl +include Makefile.sources + +noinst_LTLIBRARIES = libglslcommon.la libglsl.la +noinst_PROGRAMS = glsl_compiler glsl_test builtin_compiler + +# common sources for builtin_compiler and libglsl +libglslcommon_la_SOURCES = \ + glsl_lexer.ll \ + glsl_parser.yy \ + $(LIBGLSL_FILES) \ + $(LIBGLSL_CXX_FILES) + +libglslcommon_la_LIBADD = glcpp/libglcpp.la + +# common sources for builtin_compiler and glsl_compiler +GLSL2_SOURCES = \ + $(top_srcdir)/src/mesa/program/hash_table.c \ + $(top_srcdir)/src/mesa/program/symbol_table.c \ + $(GLSL_COMPILER_CXX_FILES) + +libglsl_la_SOURCES = \ + builtin_function.cpp + +libglsl_la_LIBADD = libglslcommon.la +libglsl_la_LDFLAGS = + +glsl_compiler_SOURCES = \ + $(GLSL2_SOURCES) + +glsl_compiler_LDADD = libglsl.la + +glsl_test_SOURCES = \ + $(top_srcdir)/src/mesa/program/hash_table.c \ + $(top_srcdir)/src/mesa/program/symbol_table.c \ + $(GLSL_SRCDIR)/standalone_scaffolding.cpp \ + test.cpp \ + test_optpass.cpp + +glsl_test_LDADD = libglsl.la + +builtin_compiler_SOURCES = \ + $(GLSL2_SOURCES) \ + builtin_stubs.cpp + +builtin_compiler_LDADD = libglslcommon.la + +BUILT_SOURCES = glsl_lexer.cc glsl_parser.cc glsl_parser.h builtin_function.cpp +CLEANFILES = $(BUILT_SOURCES) + +builtin_function.cpp: builtins/profiles/* builtins/ir/* builtins/glsl/* builtins/tools/generate_builtins.py builtins/tools/texture_builtins.py builtin_compiler$(EXEEXT) + $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) builtins/tools/generate_builtins.py ./builtin_compiler > builtin_function.cpp || rm -f builtin_function.cpp + +glcpp/libglcpp.la: + cd glcpp ; $(MAKE) $(AM_MAKEFLAGS) + +SUBDIRS = glcpp + +# 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: libglsl.la + ln -f .libs/libglsl.a . + +CLEANFILES += libglsl.a |