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>