Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

Build Systems

Name: Anonymous 2011-05-21 5:55

I've just discovered an open source build system that trumps everything else.

Fuck GNU Make and all Make clones. Fuck GNU Autotools. Fuck Scons. Fuck Waf. Fuck Premake. Fuck CMake. Fuck Jam/Bjam. Fuck Ant. Fuck NAnt. Fuck Rake. Fuck OCamlbuild. Fuck everything.

Tundra is the new fucking king.

http://deplinenoise.files.wordpress.com/2011/04/tundra43.pdf
https://github.com/deplinenoise/tundra

It was written and is currently maintained by an EA/DICE employee and it's being used to build Battlefield 3 and their Frostbite 2 engine. It's released under GPL. The execution engine is implemented mostly in C89 following data-oriented design principles using fast stack allocators and task-oriented parallelism. It's fucking fast. It uses Lua as a declarative DSL to precisely allow you to model your project or projects you want to build, and it has a very DRY syntax unlike other fucking build tools. It's designed for scalability on very large projects with multiple libraries and build artifacts with varying degrees of interdependencies. It supports cross-compilation, multiple platforms and architectures, multiple tool sets and variants, but doesn't go out of it's way to try to auto-detect anything or abstract anything away--it gets out of your fucking way and lets you control precisely what your CFLAGS/CXXFLAGS will be.

Yeah, this sounds like an advertisement, but I have nothing to do with the project. Seriously, I've been fucking around with other build tools for so long, trying to wrestle the syntax to get them to do what you want it to do. DICE guys fucking know exactly what is needed for large projects with varying requirements and build scenarios. This is finally what I've been looking for, short of writing my own build system or using some ENTERPRISE proprietary build solution.

Name: VIPPER 2011-05-21 6:05

It was written and is currently maintained by an EA/DICE employee
Go to hell please.

Name: Anonymous 2011-05-21 6:07

>>2
Why?

Name: VIPPER 2011-05-21 6:15

>>3
EA is the worst evil the world has ever seen.

Name: Anonymous 2011-05-21 6:24

>>4
You're thinking of Activision. DICE is cool yo.

Name: Anonymous 2011-05-21 6:49

>>1
It's released under GPL.
cough

It has some good ideas, though, and it is better than that SCurge FIOC thing and GLUE/Make. I also find the Lua DSL pretty readable.

Name: Anonymous 2011-05-21 9:57

>>1
CMake doesn't work for you? I've found it does the things you describe. What deficiencies have you found with CMake?

>>6
GPL covers distribution, not usage.

Name: Anonymous 2011-05-21 10:01

Game programming isn't Enterprise

Name: Anonymous 2011-05-21 10:27

>>7
Tundra is bootstrapped via CMake.

Name: Anonymous 2011-05-21 10:34

Woo TBL!!

AMIGAAAAAAAAAAAAAAAAAH!!!!

Name: Anonymous 2011-05-21 11:18

>>7
CMake doesn't scale for large projects with 7+ different configurations (debug, release, production, ad hocs, betas, RCs, gold, etc.), 5 different target platforms/architectures, 6 different sub-configuration variants (shared and static linkage plus different profiling/profile-guided optimizations for each, and side-by-side support for different compilers, like gcc, icc, and clang support all on the same host platform.

You can force it to work on large projects, but it's not very DRY, there's a lot of duplication in CMakeLists.txt files and shit for conditionally building certain translation units for certain platforms. And CMake syntax is fucking ugly.

Plus the MSVS and XCode project files CMake generates are absolute garbage, they're pretty much useless for anyone wanting to use the integrated debugger properly, or do profile guided optimizations.

Name: Anonymous 2011-05-21 11:21

>>7
I hate littering my project source directory tree with *.txt files. Makes me feel like I'm on Windows and using Notepad.

Don't change these.
Name: Email:
Entire Thread Thread List