table of contents
() | () |
BAM(1)¶
Magnus Auvinen (magnus.auvinen@gmail.com) WARNING: This document is under construction and is full of holes.
NAME¶
bam - A fast and flexible build system.
SYNOPSIS¶
bam [PARAMETERS]
Bam excepts 3 different kind of parameters, options, script arguments and targets. Options starts with a `-' sign. Script arguments have a `=' assignment in them and rest is treated at targets.
DESCRIPTION¶
The bam(1) command builds ... Looks for default.bam ...
Options starts with a `-' sign. Targets are just names. Arguments as a = in them.
OPTIONS¶
-c:: Clean. Removes all output files for the specified targets
-f:: Force. Forces all files to be dirty and causes a complete rebuild.
-b filename:: Base script. Specifices the base script to use instead of the builtin.
-s filename:: Script. Specifices the bam file to use.
-j X:: Use X threads when building. (EXPRIMENTAL!)
-v:: Verbose. Prints all commands that bam executes.
–dry:: Dry run. Does not do anything except load the scripts. Don’t build any targets.
ARGUMENTS¶
Arguments
FUNCTION REFERENCE¶
Collect(...):: Collects files. Accepts several strings as paths including filtering using standard wildcards. Returns a list with all the files. Example: ———————————————— files = Collect(“src/.cpp”, ”src/lib/.c”) ————————————————
Compile(settings, ...):: Compiles a bunch of files using diffrent compiler depending on their file extention. It accept tables and strings as files.
Link(settings, filename, ...):: Links the files into an executable. It accept tables and strings as files.
Path(path):: ...
NewSettings():: Creates a new settings object. This object contains settings for all diffrent compilers and linkers.
StaticLibrary(settings, ...):: ...
Target(file):: Specifies a target.
C/C++ COMPILER SETTINGS (cc)¶
flags:: A string to pass unmodified to the compiler.
includes:: A set of include paths to use. Use the add method to
debug:: (Default 1). An integer that tells the compiler if it should generate debug information.
optimize:: (Default 0). An integer that tells the compiler if it should optimize the code. 1 turns on safe optimizations and 2 turns on full optimization.
LINKER SETTINGS (linker)¶
flags:: A string to pass unmodified to the linker.
extrafiles:: A set of files to pass to the linker. Useful when doing own libraries.
libs:: A set of system libraries that should be linked into.
EXAMPLES¶
A tiny default.bam that compiles all files in the directory can look like this.¶
s = NewSettings() objs = Compile(s, Collect(“*.cpp”)) exe = Link(s, “my_app”, objs) Target(exe) ————————————————
A script that sets som settings aswell.¶
s = NewSettings() s.cc.includes:add(“include”) s.cc.optimize = 1 s.cc.debug = 0 objs = Compile(s, Collect(“*.cpp”)) exe = Link(s, “my_app”, objs) Target(exe) ————————————————
KNOWN ISSUES¶
A few.
AUTHORS¶
Contributions by Magnus Auvinen (Lead), (mailto:magnus.auvinen@gmail.com[]) Joel de Vahl, (mailto:blarg[]) Markus Buretorp, (mailto:blarg[]) SERPEN!!! ZOMG!!, (mailto:blarg[])
RESOURCES¶
Homepage: http:www.teeworlds.com/bam
COPYING¶
Copyright (C) 2006-2008 Magnus Auvinen. Distributed under BSD-license. Note. The Lua library has it’s own license.