LinBuild Code
Brought to you by:
finncoder
| 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() |
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>