Menu

Tree [r209] /
 History

HTTPS access


File Date Author Commit
 examples 2009-06-10 finncoder [r208] widget.hh, widhet.cc Added.
 logos 2009-04-27 finncoder [r207] Updated.
 scripts 2009-03-29 finncoder [r165] Qt hash splitted into several lines.
 testing 2009-04-27 finncoder [r203] Fixed a bug: including qt4 indirectly using format
 web 2009-04-27 finncoder [r206] Logos updated.
 CHANGELOG 2009-04-25 finncoder [r196] exportEnvironment added.
 COPYING 2009-02-19 finncoder [r1] Project inited.
 README 2009-04-24 finncoder [r190] Python version check made implicit. checkSTL te...
 linbuild 2009-06-10 finncoder [r209] Explicit dictionaries added to exec()

Read Me

README for LinBuild v1.0.3
--------------------------

..................
:: Introduction ::
..................

LinBuild is a Python-based, simple and user-friendly build system for C/C++ 
on Linux/Unix. It's intended to be distributed with your project. There's
no need to get it installed on the system. 

LinBuild adopts some concepts from Waf and CMake. LinBuild is simply a single 
script that depends only on Python. LinBuild replaces GNU Make and makes it 
really easy to configure, build & install a C/C++ project. 

LinBuild features e.g. automatic build dependency scanning of source files, 
multi-threaded build process and built-in supports for Qt4 and pkg-config.

..............
:: The flow ::
..............

The LinBuild executable by default searches for a file called 'linfile'. This
is the drive file ("Makefile") for LinBuild. Another file can be forced by 
using the --file option. 

LinBuild creates one hidden file (.linbuild-vars) and one hidden directory 
(.linbuild-[LINFILE]/) per build script in the current working directory. 
These can be removed with --cleancache. .linbuild-vars contains the current 
shared environment and the hidden directories contains data specific to the build 
script (linfile) used.

Linfiles are divided into four sections: 
configure, build, install and clean using the simple syntax of Python language.

The configure section includes the configuring instructions, build sections 
includes the build instruction and so on.

A typical build flow goes like this:

(first copy the linbuild script into your project directory + write the linfile)

$ ./linbuild -c (or --configure)
$ ./linbuild -b (or --build)
($ ./linbuild -i (or --install))

LinBuild can output a template/example linfile like this:

$ ./linbuild --template

Help for options:

$ ./linbuild --help

.......................................
:: So how to write LinBuild scripts? ::
.......................................

See the enclosed examples (examples/) to learn how to use LinBuild :)

Current options are:

Usage: linbuild [options]                                                                                    

Options:
  -h, --help            show this help message and exit
  -b, --build           Execute build                  
  -c, --configure       Execute configure              
  --clean               Execute clean
  --cleancache          Clean environment cache
  --destdir=DESTDIR     Define installation destination directory. LinBuild
                        will install to [destDir]/[prefix]/... Default is ''.
  -f FILE, --file=FILE  Read script from the given FILE
  -i, --install         Execute install
  --prefix=PREFIX       Define installation prefix. Default is '/usr/local/'.
  --template            Output an example linfile
  -t NUMTHREADS, --threads=NUMTHREADS
                        Specify the number of threads to be used in the
                        compile stage
  -v, --verbose         Show more information about what is being done
  --version             Print version


There will be a proper documentation in the future.
Web: http://linbuild.sourceforge.net


-- Jussi Lind <jussi.lind@iki.fi>