[Mesa-dev] [PATCH 5/7] glsl/build: Don't build builtin_compiler separately if not cross compiling

Thierry Reding thierry.reding at avionic-design.de
Thu Jan 17 22:53:25 PST 2013


On Thu, Jan 17, 2013 at 02:59:49PM -0800, Matt Turner wrote:
> On Thu, Jan 17, 2013 at 1:42 PM, Matt Turner <mattst88 at gmail.com> wrote:
> > On Wed, Jan 16, 2013 at 10:55 PM, Thierry Reding
> > <thierry.reding at avionic-design.de> wrote:
> >> On Wed, Jan 16, 2013 at 03:14:14PM -0800, Matt Turner wrote:
> >> [...]
> >>> diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am
> >>> index fa09c5e..07fcf96 100644
> >>> --- a/src/glsl/Makefile.am
> >>> +++ b/src/glsl/Makefile.am
> >>> @@ -19,7 +19,11 @@
> >>>  # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> >>>  # IN THE SOFTWARE.
> >>>
> >>> +if CROSS_COMPILING
> >>>  SUBDIRS = builtin_compiler glcpp
> >>> +else
> >>> +SUBDIRS = glcpp
> >>> +endif
> >>>
> >>>  AM_CPPFLAGS = \
> >>>       -I$(top_srcdir)/include \
> >>> @@ -56,6 +60,27 @@ glsl_test_SOURCES = \
> >>>
> >>>  glsl_test_LDADD = libglsl.la
> >>>
> >>> +if CROSS_COMPILING
> >>> +BUILTIN_COMPILER = builtin_compiler/builtin_compiler$(BUILD_EXEEXT)
> >>> +else
> >>> +BUILTIN_COMPILER = builtincompiler$(BUILD_EXEEXT)
> >>> +
> >>> +noinst_PROGRAMS = builtincompiler
> >>> +noinst_LTLIBRARIES += libglslcore.la
> >>> +
> >>> +libglslcore_la_SOURCES =                             \
> >>> +     glsl_lexer.ll                                   \
> >>> +     glsl_parser.cc                                  \
> >>> +     $(LIBGLSL_FILES)
> >>> +builtincompiler_SOURCES = \
> >>> +     $(top_srcdir)/src/mesa/main/hash_table.c        \
> >>> +     $(top_srcdir)/src/mesa/program/prog_hash_table.c\
> >>> +     $(top_srcdir)/src/mesa/program/symbol_table.c   \
> >>> +     $(top_srcdir)/src/glsl/builtin_compiler/builtin_stubs.cpp \
> >>> +     $(GLSL_COMPILER_CXX_FILES)
> >>> +builtincompiler_LDADD = libglslcore.la glcpp/libglcpp.la
> >>> +endif
> >>
> >> Can this not be moved into the builtin_compiler subdirectory? You could
> >> set the various *_FOR_BUILD variables only if CROSS_COMPILING and split
> >> up the builtin_compiler_SOURCES variables such that a native version of
> >> them is compiled if CROSS_COMPILING and make builtin_compiler link with
> >> libglcpp.la and libglslcore.la otherwise.
> >>
> >> That way there would be no duplication of these rules that need to be
> >> kept in sync. Furthermore all the cross-compiling special cases would
> >> be restricted to the builtin_compiler subdirectory.
> >>
> >> Thierry
> >
> > Yes, that might be better. I'll give that a try and send a v2 patch if
> > it goes well.
> 
> I can't seem to make this work. Even adding if CROSS_COMPILING/endif
> around the CC = @CC_FOR_BUILD@ I get these messages during autoreconf:
> 
> src/glsl/builtin_compiler/Makefile.am:24: warning: CC was already
> defined in condition TRUE, which includes condition !CROSS_COMPILING
> ...
> configure.ac:45: ... 'CC' previously defined here
> 
> They're warnings, but I'm not sure we want them in the build. Any ideas?
> 
> If there's a way to do it, I think I want to do it as an add-on to this series.

Actually you may not need to conditionalize the *_FOR_BUILD variables at
all because they should be identical to the regular ones if not cross-
compiling. So maybe conditionalizing the *_SOURCES (and adding *_LIBS if
not cross-compiling) would be enough and not cause a warning.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130118/0c225970/attachment.pgp>


More information about the mesa-dev mailing list