Simple-Build

browse svn | home page

Overview

Eventually aims to be a complete solution for software configuration, building, installation and distribution.

Some vague principles: keep your build configurations as tiny as possible. Leverage/target existing build and package systems. Lots of features. Extensibility. Portability. Cross-language. Cross-project. Etc.

Current features:

This package also contains a patched version of googlecode_upload.py that can use an alternate, simpler auth data file than subversion’s cached auth data (which is currently broken). This version uses a file ~/.googlecode.auth (with permissions 600) containing your username and password on separate lines.

Requirements

Examples

Say the directory ~/myapp/ contains two C++ programs: client.cc and server.cc. To build these with SimpleBuild, create a file called build containing the following YAML data:

client:
  srcs: [client.cc]

server:
  srcs: [server.cc]
  libs: [pthread, profiler]

Now running simple-build generates a GNUmakefile that can be used to compile both programs in a variety of ways. We could alternatively keep the source tree clean of generated files by changing to a different directory and running simple-build ~/myapp/build.

The libs field lists libraries that are to be linked with the application. simple-build is also capable of inferring libraries by automatically determining the headers included by your source files and then mapping these onto library names.

The GNUmakefile also contains a mechanism for automatically generating dependencies from your source files. This mechanism relies on gcc -M and some GNU make tricks. I also take other cues from Peter Miller’s excellent paper “Recursive Make Considered Harmful”.

This automatic dependency generation is also available for Java and Scala; the mechanism there relies on the compilers’ verbose output, and has only been tested with Sun’s javac.

Todo

Planned features:

The decision to write yet another build system was based on the empty-handed outcome of a long (and depressing) quest. Here are brief commentaries of some other build systems.

License

Simple-Build is released under the GNU GPL3.

Contact

Copyright 2008 Yang Zhang.
All rights reserved.

Back to assorted.sf.net.