On Tue, Jul 10, 2012 at 10:08 AM, Jon TURNEY <jon.tur...@dronecode.org.uk> wrote: > v2: Use AM_V_GEN to silence generated code rules. Add BUILT_SOURCES to > CLEANFILES > > Signed-off-by: Jon TURNEY <jon.tur...@dronecode.org.uk> > --- > configure.ac | 2 + > src/glsl/.gitignore | 1 + > src/glsl/Makefile | 144 > ----------------------------------- > src/glsl/Makefile.am | 112 +++++++++++++++++++++++++++ > src/glsl/glcpp/.gitignore | 1 + > src/glsl/glcpp/Makefile.am | 33 ++++++++ > src/glsl/tests/Makefile.am | 2 +- > src/mesa/drivers/osmesa/Makefile.am | 2 +- > 8 files changed, 151 insertions(+), 146 deletions(-) > delete mode 100644 src/glsl/Makefile > create mode 100644 src/glsl/Makefile.am > create mode 100644 src/glsl/glcpp/Makefile.am > > diff --git a/configure.ac b/configure.ac > index e5ac791..93a8493 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -2170,6 +2170,8 @@ AC_CONFIG_FILES([configs/current > src/egl/wayland/wayland-egl/Makefile > src/egl/wayland/wayland-egl/wayland-egl.pc > src/egl/wayland/wayland-drm/Makefile > + src/glsl/Makefile > + src/glsl/glcpp/Makefile > src/glsl/tests/Makefile > src/glx/Makefile > src/glx/tests/Makefile > diff --git a/src/glsl/.gitignore b/src/glsl/.gitignore > index d26839a..e3531cd 100644 > --- a/src/glsl/.gitignore > +++ b/src/glsl/.gitignore > @@ -6,3 +6,4 @@ glsl_parser.output > builtin_function.cpp > builtin_compiler > glsl_test > +/Makefile > diff --git a/src/glsl/Makefile b/src/glsl/Makefile > deleted file mode 100644 > index 3cf9fc9..0000000 > --- a/src/glsl/Makefile > +++ /dev/null > @@ -1,144 +0,0 @@ > - > -#src/glsl/pp/Makefile > - > -TOP = ../.. > - > -include $(TOP)/configs/current > - > -LIBNAME = glsl > - > -GLSL_SRCDIR=. > -include Makefile.sources > - > -GLCPP_SOURCES = \ > - $(LIBGLCPP_GENERATED_FILES) \ > - $(LIBGLCPP_FILES) \ > - ralloc.c \ > - glcpp/glcpp.c > - > -C_SOURCES = \ > - $(LIBGLCPP_GENERATED_FILES) \ > - $(LIBGLCPP_FILES) \ > - $(LIBGLSL_FILES) > - > -# common sources for builtin_compiler and libglsl > -CXX_SOURCES = \ > - $(BUILTIN_COMPILER_GENERATED_CXX_FILES) \ > - $(LIBGLSL_CXX_FILES) > - > -LIBS = \ > - $(TOP)/src/glsl/libglsl.a > - > -APPS = glsl_compiler glsl_test glcpp/glcpp > - > -GLSL2_C_SOURCES = \ > - ../mesa/program/hash_table.c \ > - ../mesa/program/symbol_table.c > -GLSL2_CXX_SOURCES = \ > - $(GLSL_COMPILER_CXX_FILES) > - > -GLSL2_OBJECTS = \ > - $(GLSL2_C_SOURCES:.c=.o) \ > - $(GLSL2_CXX_SOURCES:.cpp=.o) > - > -TEST_C_SOURCES = \ > - ../mesa/program/hash_table.c \ > - ../mesa/program/symbol_table.c > - > -TEST_CXX_SOURCES = \ > - standalone_scaffolding.cpp \ > - test.cpp \ > - test_optpass.cpp > - > -TEST_OBJECTS = \ > - $(TEST_C_SOURCES:.c=.o) \ > - $(TEST_CXX_SOURCES:.cpp=.o) > - > -### Basic defines ### > - > -DEFINES += \ > - $(LIBRARY_DEFINES) \ > - $(API_DEFINES) > - > -GLCPP_OBJECTS = \ > - $(GLCPP_SOURCES:.c=.o) \ > - ../mesa/program/hash_table.o > - > -OBJECTS = \ > - $(C_SOURCES:.c=.o) \ > - $(CXX_SOURCES:.cpp=.o) > - > -INCLUDES = \ > - -I. \ > - -I../mesa \ > - -I../mapi \ > - -I../../include \ > - $(LIBRARY_INCLUDES) > - > -ALL_SOURCES = \ > - $(C_SOURCES) \ > - $(CXX_SOURCES) \ > - $(GLSL2_CXX_SOURCES) \ > - $(GLSL2_C_SOURCES) \ > - $(TEST_CXX_SOURCES) \ > - $(TEST_C_SOURCES) > - > -##### TARGETS ##### > - > -default: depend lib$(LIBNAME).a $(APPS) > - > -lib$(LIBNAME).a: $(OBJECTS) builtin_function.o Makefile > $(TOP)/src/glsl/Makefile.template > - $(MKLIB) -cplusplus -o $(LIBNAME) -static $(OBJECTS) > builtin_function.o > - > -depend: $(ALL_SOURCES) Makefile > - rm -f depend > - touch depend > - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(ALL_SOURCES) 2> /dev/null > - > -# Remove .o and backup files > -clean: > - rm -f $(GLCPP_OBJECTS) $(GLSL2_OBJECTS) $(TEST_OBJECTS) $(OBJECTS) > lib$(LIBNAME).a depend depend.bak builtin_function.cpp builtin_function.o > builtin_stubs.o builtin_compiler > - -rm -f $(APPS) > - > -# Dummy target > -install: > - @echo -n "" > - > -##### RULES ##### > - > -glsl_compiler: $(GLSL2_OBJECTS) libglsl.a > - $(APP_CXX) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLSL2_OBJECTS) $(LIBS) > -o $@ > - > -glsl_test: $(TEST_OBJECTS) libglsl.a > - $(APP_CXX) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(TEST_OBJECTS) $(LIBS) > -o $@ > - > -glcpp: glcpp/glcpp > -glcpp/glcpp: $(GLCPP_OBJECTS) > - $(APP_CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLCPP_OBJECTS) -o $@ > - > -.cpp.o: > - $(CXX) -c $(INCLUDES) $(CXXFLAGS) $(DEFINES) $< -o $@ > - > -.c.o: > - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ > - > -glsl_lexer.cpp: glsl_lexer.ll > - $(FLEX) --nounistd -o$@ $< > - > -glsl_parser.cpp: glsl_parser.yy > - $(BISON) -v -o "$@" -p "_mesa_glsl_" --defines=glsl_parser.h $< > - > -glcpp/glcpp-lex.c: glcpp/glcpp-lex.l > - $(FLEX) --nounistd -o$@ $< > - > -glcpp/glcpp-parse.c: glcpp/glcpp-parse.y > - $(BISON) -v -o "$@" --defines=glcpp/glcpp-parse.h $< > - > -builtin_compiler: $(GLSL2_OBJECTS) $(OBJECTS) builtin_stubs.o > - $(APP_CXX) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) > $(GLSL2_OBJECTS) builtin_stubs.o -o $@ > - > -builtin_function.cpp: builtins/profiles/* builtins/ir/* builtins/glsl/* > builtins/tools/generate_builtins.py builtins/tools/texture_builtins.py > builtin_compiler > - @echo Regenerating builtin_function.cpp... > - $(PYTHON2) $(PYTHON_FLAGS) builtins/tools/generate_builtins.py > ./builtin_compiler > builtin_function.cpp || rm -f builtin_function.cpp > - > --include depend > diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am > new file mode 100644 > index 0000000..e724ba0 > --- /dev/null > +++ b/src/glsl/Makefile.am > @@ -0,0 +1,112 @@ > +# 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) > + > +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 = \ > + $(LIBGLCPP_GENERATED_FILES) \ > + $(LIBGLCPP_FILES) \ > + $(LIBGLSL_FILES) \ > + $(BUILTIN_COMPILER_GENERATED_CXX_FILES) \ > + $(LIBGLSL_CXX_FILES) > + > +# 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.cpp glsl_parser.cpp glsl_parser.h > builtin_function.cpp \ > + $(GLSL_SRCDIR)/glcpp/glcpp-lex.c \ > + $(GLSL_SRCDIR)/glcpp/glcpp-parse.c $(GLSL_SRCDIR)/glcpp/glcpp-parse.h > + > +CLEANFILES = $(BUILT_SOURCES) > + > +glsl_lexer.cpp: glsl_lexer.ll > + $(AM_V_GEN) $(LEX) --nounistd -o$@ $< > + > +glsl_parser.cpp: glsl_parser.yy > + $(AM_V_GEN) $(YACC) -v -o "$@" -p "_mesa_glsl_" > --defines=glsl_parser.h $< > + > +$(GLSL_SRCDIR)/glcpp/glcpp-lex.c: $(GLSL_SRCDIR)/glcpp/glcpp-parse.h > + cd glcpp ; $(MAKE) $(AM_MAKEFLAGS) glcpp-lex.c > + > +$(GLSL_SRCDIR)/glcpp/glcpp-parse.c $(GLSL_SRCDIR)/glcpp/glcpp-parse.h: > + cd glcpp ; $(MAKE) $(AM_MAKEFLAGS) glcpp-parse.c
Don't do this. Automake will do all this for us. See http://cgit.freedesktop.org/~mattst88/mesa/commit/?h=automake&id=cba247c20787ca281f79f4ee78fc5b01ad890726 Same thing for glcpp/Makefile.am. > + > +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 > + > +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 . > diff --git a/src/glsl/glcpp/.gitignore b/src/glsl/glcpp/.gitignore > index 24a7119..64033e2 100644 > --- a/src/glsl/glcpp/.gitignore > +++ b/src/glsl/glcpp/.gitignore > @@ -4,3 +4,4 @@ glcpp-parse.output > glcpp-parse.c > glcpp-parse.h > tests/*.out > +/Makefile > diff --git a/src/glsl/glcpp/Makefile.am b/src/glsl/glcpp/Makefile.am > new file mode 100644 > index 0000000..114c959 > --- /dev/null > +++ b/src/glsl/glcpp/Makefile.am > @@ -0,0 +1,33 @@ > + > +# Hack to make some of the non-automake variables work. > +TOP=$(top_builddir) > + > +GLSL_SRCDIR=$(top_srcdir)/src/glsl > +include ../Makefile.sources > + > +AM_CFLAGS = \ > + -I$(top_srcdir)/include \ > + -I$(top_srcdir)/src/mapi \ > + -I$(top_srcdir)/src/mesa/ \ > + $(LIBRARY_INCLUDES) \ > + $(DEFINES) \ > + $(LIBRARY_DEFINES) \ > + $(API_DEFINES) > + > +noinst_PROGRAMS = glcpp > + > +glcpp_SOURCES = \ > + $(LIBGLCPP_GENERATED_FILES) \ > + $(LIBGLCPP_FILES) \ > + ../ralloc.c \ > + glcpp.c \ > + $(top_srcdir)/src//mesa/program/hash_table.c Double / here. > + > +BUILT_SOURCES = glcpp-lex.c glcpp-parse.c glcpp-parse.h > +CLEANFILES = $(BUILT_SOURCES) > + > +glcpp-lex.c: glcpp-lex.l > + $(AM_V_GEN) $(LEX) --nounistd -o$@ $< > + > +glcpp-parse.c: glcpp-parse.y > + $(AM_V_GEN) $(YACC) -v -o "$@" --defines=glcpp-parse.h $< > diff --git a/src/glsl/tests/Makefile.am b/src/glsl/tests/Makefile.am > index d2facba..4829fb2 100644 > --- a/src/glsl/tests/Makefile.am > +++ b/src/glsl/tests/Makefile.am > @@ -27,7 +27,7 @@ uniform_initializer_test_SOURCES = \ > > uniform_initializer_test_LDADD = \ > $(top_builddir)/src/gtest/libgtest.la \ > - $(top_builddir)/src/glsl/libglsl.a \ > + $(top_builddir)/src/glsl/libglsl.la \ > $(top_builddir)/src/mesa/libmesa.a \ > -lpthread > > diff --git a/src/mesa/drivers/osmesa/Makefile.am > b/src/mesa/drivers/osmesa/Makefile.am > index 3cf3005..2c4ce2c 100644 > --- a/src/mesa/drivers/osmesa/Makefile.am > +++ b/src/mesa/drivers/osmesa/Makefile.am > @@ -41,7 +41,7 @@ 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/mapi/glapi/libglapi.a \ > - $(top_builddir)/src/glsl/libglsl.a > + $(top_builddir)/src/glsl/libglsl.la > > # Provide compatibility with scripts for the old Mesa build system for > # a while by putting a link to the driver into /lib of the build tree. > -- > 1.7.9 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev