Commit Graph

172 Commits

Author SHA1 Message Date
Brian Paul cdb7396390 scons: don't compile some files with -gstabs if using mingw32
Compiling some (large) files with i686-pc-mingw32-gcc 4.2.2 (at least)
and the -gstabs option triggers a compiler error.  Use this work-around
to simply compile the effected files without -gstabs.
2011-08-26 08:05:36 -06:00
Brian Paul 3d1af78fdc scons: add more LIBS for compiling with LLVM 2.9 on Windows
These extra libs shouldn't hurt with LLVM 2.8 or older.
2011-08-26 08:05:35 -06:00
Chia-I Wu 582b5d869c scons: add ParseSourceList method
ParseSourceList() can be used to parse a source list file and returns
the source files defined in it.  It is supposed to be used like this

  # get the list of source files from C_SOURCES in Makefile.sources
  sources = env.ParseSourceList('Makefile.sources', 'C_SOURCES')

The syntax of a source list file is compatible with GNU Make.  This
effectively allows SConscript and Makefile to share the source lists.

Acked-by: José Fonseca <jfonseca@vmware.com>
Acked-by: Chad Versace <chad@chad-versace.us>
2011-08-23 09:11:58 +08:00
José Fonseca 7be4cf9c63 scons: Add support for LLVM-2.9 on Windows.
MinGW & MSVC, although I've only tested the former.
2011-08-18 16:00:59 +01:00
Andreas Fänger e411cd7b0a swrast: initial multi-threaded span rendering
Optional parallel rendering of spans using OpenMP.
Initial implementation for aa triangles. A new option for scons is
also provided to activate the openmp support (off by default).

Signed-off-by: Brian Paul <brianp@vmware.com>
2011-08-11 08:33:59 -06:00
José Fonseca acf82194ce scons: Filter-out NDEBUG define from llvm-config.
Based on a similar autoconf change from Marek.
2011-07-11 15:38:06 +01:00
José Fonseca 235225ec93 scons: Expose pkg-config in a simpler manner. 2011-06-30 17:36:37 +01:00
José Fonseca 2699fce0d6 scons: Buid libGL.so (WIP). 2011-06-30 11:34:51 +01:00
José Fonseca 0edb40cb69 scons: Make declaration-after-statement and pointer-arith just warnings.
Necessary, in order to build the whole tree.
2011-06-30 10:43:57 +01:00
José Fonseca c7bd0fa485 scons: Accept verbose=yes instead of quiet=no.
'verbose' is affirmative, and much more common name for this sort of option.
2011-06-17 20:13:16 +01:00
José Fonseca 8173471fc2 scons: Move all env setup to scons/gallium.py 2011-06-17 16:41:05 +01:00
José Fonseca 4175010749 scons: make embedding orthogonal to the platform
To enable embedding in platforms other than linux.
2011-06-17 14:50:37 +01:00
José Fonseca 37058c3497 scons: Add a few more human friendly messages. 2011-05-04 14:10:24 +01:00
José Fonseca afeaf1771d st/python: Remove bindings, and all its dependencies.
Because:
- bindings are not fully automatic, and they are broken most of the time
- unit tests/samples can be written in C on top of graw
- tracing/retracing is more useful at API levels with stable ABIs such as
  GL, producing traces that cover more layers of the driver stack and and
  can be used for regression testing
2011-04-06 08:26:04 +01:00
José Fonseca e6314db0ac gallivm: Use LLVM MC disassembler, instead of udis86.
Included in LLVM 2.7+. Unlink udis86, should support all instructions that
LLVM can emit.
2011-03-13 19:24:26 +00:00
José Fonseca 54d8c5e3c2 scons: Add human friendlier build messages for lex/yacc. 2011-03-03 15:42:58 +00:00
José Fonseca 8987109c27 scons: Always load lex/yacc tool.
lex/yacc is not loaded by default when toolchain is not default either,
e.g., when toolchain=crossmingw.
2011-03-03 15:28:36 +00:00
Vinson Lee eb17802386 scons: Reduce all Cygwin platform names to 'cygwin'.
platform.system in SCons on Cygwin includes the OS version number.
Windows XP - CYGWIN_NT-5.1
Windows Vista - CYGWIN_NT-6.0
Windows 7 - CYGWIN_NT-6.1

Reduce all Cygwin platform variants to just 'cygwin' so anything
downstream can simply use 'cygwin' instead of the different full
platform names.
2011-02-24 19:49:37 -08:00
José Fonseca 33d8ff9c31 scons: Recognize 'AMD64' processor as well. 2011-02-16 18:02:08 +00:00
José Fonseca 590c2ee568 scons: Don't get fooled by 32bit python on a 64bit windows. 2011-02-16 18:02:06 +00:00
José Fonseca 982609f4cf scons: builtin_glsl_function on windows needs bundled getopt. 2011-02-11 20:09:26 +00:00
José Fonseca ae760279f1 scons: Try to support building 64bit binaries on 32bit windows. 2011-02-11 20:09:26 +00:00
José Fonseca 051f8bbfee scons: Fix MSVC 64bit build. 2011-02-11 20:09:26 +00:00
José Fonseca d60f07489e scons: Disable -mstackrealign on MinGW again.
It's still broken, however it doesn't show up on debug builds.
2011-02-10 16:29:10 +00:00
José Fonseca 3b8bb7b449 scons: Restrict whole program optimization to release builds.
It just takes forever, so it is inadequate for continuous testings
(i.e., checked and profile build types).
2011-02-09 18:31:21 +00:00
José Fonseca 82e79e93ac scons: Eliminate libgcc_s_sjlj-1.dll dependency
Certain mingw32 cross compilers (e.g. RedHat's) defaults to use DLL gcc
runtime.

Given the main deliverable from this project are self-contained drivers,
which are loaded by any application, this dependency can cause havoc.
2011-02-03 09:16:49 +00:00
José Fonseca 11b15c4d25 scons: We have C++ in several libraries, so always link with the C++ compiler
Prevents missing symbols in libGL.so when LLVM is disabled.
2011-01-30 11:19:44 +00:00
Jakob Bornecrantz c0db7854d5 scons: Check for libdrm_[intel|radeon] as well
And run SConscripts if they are present.
Also make dri depend on both drm and x11.
2010-11-05 20:58:49 +00:00
Jakob Bornecrantz 98d6ed8742 scons: Check for pkg-config before trying to use it
Silences warning about missing packages
2010-11-05 20:58:49 +00:00
José Fonseca d49dfe66cf st/xorg: Detect libkms with scons too. 2010-11-03 15:21:51 +00:00
José Fonseca 265b53983e scons: Propagate installation targets.
Fixes libgl-xlib target.
2010-11-02 14:20:12 +00:00
José Fonseca 0fd41d236f scons: Restore x11 tool behavior for backwards compatability. 2010-11-01 14:37:18 +00:00
José Fonseca 601498ae73 scons: Revamp how to specify targets to build.
Use scons target and dependency system instead of ad-hoc options.

Now is simply a matter of naming what to build. For example:

  scons libgl-xlib

  scons libgl-gdi

  scons graw-progs

  scons llvmpipe

and so on. And there is also the possibility of scepcified subdirs, e.g.

  scons src/gallium/drivers

If nothing is specified then everything will be build.

There might be some rough corners over the next days. Please bare with me.
2010-11-01 13:30:22 +00:00
José Fonseca e3a3a5378e scons: New build= option, with support for checked builds.
Where checked build is compiler optimizations plus debugging checks --
ideal for testing CPU bound loads and running test automation loads.
2010-09-29 14:24:52 +01:00
José Fonseca 67450f0644 scons: New build= option, with support for checked builds.
Where checked build is compiler optimizations plus debugging checks --
ideal for testing CPU bound loads and running test automation loads.
2010-09-29 14:17:26 +01:00
Vinson Lee a6e642be5c scons: Add MinGW-w64 prefixes for MinGW build. 2010-09-27 13:13:25 -07:00
José Fonseca 30c5d5d9d8 scons: Re-enable SSE on MinGW.
It seems to be working correctly with gcc 4.4, and enabling it allows to
test some of the llvmpipe instrinsics on Windows.
2010-09-05 10:17:51 +01:00
Vinson Lee 462e8a8b0d scons: Add -fno-common for 64-bit builds on Mac OS X.
This option is also needed for 64-bit builds if llvm is enabled.
Other the build fails during linking.
2010-08-17 00:20:58 -07:00
Vinson Lee 32502b0eeb scons: Use '-Wmissing-field-initializers' on GCC 4.0 and greater only. 2010-07-23 17:24:21 -07:00
Vinson Lee 95ca22001a scons: Fix Mac OS X SCons build on 32-bit CPUs.
The Mac OS X SCons build failed on 32-bit CPUs starting with commit
2f6d47a7c8 during linking of graw-null.
The build succeeds though on a 64-bit CPU. See FDO bug 29117.

This was the compiler error.
scons: building associated VariantDir targets: build/darwin-x86-debug
  Linking build/darwin-x86-debug/gallium/targets/graw-null/libgraw.dylib ...
Undefined symbols:
  "_lp_swizzled_cbuf", referenced from:
      _lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
      _lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
     (maybe you meant: _lp_swizzled_cbuf$non_lazy_ptr)
  "_lp_dummy_tile", referenced from:
      _lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
      _lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
      _lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_setup.os)
     (maybe you meant: _lp_dummy_tile$non_lazy_ptr)

The patch adds -fno-common to all Mac OS X builds to work around this issue.
2010-07-19 11:31:44 -07:00
José Fonseca 6f81b78cb4 scons: Make PIPE_ALIGN_VAR() of static/global vars work on MinGW.
Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
2010-07-16 21:27:14 +01:00
José Fonseca f816937d77 scons: Add support for Mingw64. 2010-05-05 00:46:12 +01:00
José Fonseca ea532f0e72 scons: Make LLVM a black-white dependency.
Now that draw depends on llvm it is very difficult to correctly handle
broken llvm installations. Either the user requests LLVM and it needs to
supply a working installation. Or it doesn't, and it gets no LLVM
accelerate pipe drivers.
2010-04-11 17:17:34 +09:00
José Fonseca 1f014a36f7 scons: Set -gstabs for C++ too. 2010-04-09 16:32:47 +01:00
José Fonseca cf5cd836de scons: Don't always include/links X11 headers/libs.
Move it into a separate tool.

TODO: Needs to be "tooled" in each SConscript that uses it.
2010-03-31 18:40:10 +01:00
José Fonseca ddb081e3ed Revert "scons: Refuse to use LLVM 2.7 for now."
This reverts commit 44703217f7.

http://www.llvm.org/bugs/show_bug.cgi?id=6429 has been fixed now. Things
appear to be working reasonably so far.
2010-03-10 18:09:33 +00:00
José Fonseca 44703217f7 scons: Refuse to use LLVM 2.7 for now.
LLVM's trunk is totally broken, at least for x86_64.

See http://www.llvm.org/bugs/show_bug.cgi?id=6429
2010-03-06 09:34:31 +00:00
José Fonseca 19a633310f scons: Fix version comparisons. 2010-03-06 09:34:31 +00:00
José Fonseca 8edc6b0bfc scons: Detect and support LLVM 2.7. 2010-03-06 09:34:31 +00:00
José Fonseca fe889a89d2 scons: Control caching via new SCONS_CACHE_DIR environment variable.
This serves several purposes:
- disable caching in situations were is it useless or undesired
- share caches among all trees
- simplify purging the cache (when it's a single location)
- move the cache out of the tree, since that slows downs IDEs considerably

To retain previous behavior just define do

  export SCONS_CACHE_DIR=$PWD/build/cache

before invoking scons.
2010-02-14 15:34:39 +00:00