bakefile man page

bakefile — native makefiles generator

Synopsis

bakefile [--version] [--help] -fFORMAT -oOUTFILE [--eol=[format|dos|unix|mac|native]] [--wrap-output=[no|LENGTH]] [-DVAR=VALUE...] [-IPATH...] [-v] [-q] [--dry-run] [--touch] [--dump] file.bkl

Description

bakefile creates various types of Makefiles and project files from a single project description called a "Bakefile".

Command Line Options

--version

Display Bakefile version and exit.

-h, --help

Display usage information and exit.

-fFORMAT, --format=FORMAT

Specify output format. Bakefile supports the following formats:

Format File(s) Generated
autoconf Makefile.in for GNU Autoconf
borland Makefile for Borland C++ and Borland
                       make
dmars Generic Makefile for Digital Mars C/C++
dmars_smake Makefile for Digital Mars C/C++ with
                       SMAKE
gnu Makefile for GNU toolchain: GNU Make, GCC,
                       etc.
mingw Makefile for MinGW toolchain:
                       mingw32-make, MinGW port of GCC, etc.
msvc Makefile for Visual C++ with Microsoft
                       nmake
msvc6prj Microsoft Visual C++ 6.0 project files
msevc4prj Microsoft Embedded Visual C++ 4 project
                       files
msvs2003prj MS Visual Studio 2003 project files
msvs2005prj MS Visual Studio 2005 project files
msvs2008prj MS Visual Studio 2008 project files
suncc GNU makefile for SunCC compiler
symbian Symbian development files
watcom Makefile for OpenWatcom C/C++
xcode2 Apple Xcode 2.4 project files
-oOUTFILE, --output=OUTFILE

File to write generated makefile to. For those backends that generate more than one file, this option specifies the name of the main makefile.

This option has special meaning for msvs200xprj formats: by default, both the project files (one for each target) and a solution file, containing all the project files, are generated. However if OUTFILE is a file with .vcproj extension, then only the (necessarily unique) project file will be generated.

-DVAR=VALUE

Define Bakefile variable. This definition overrides any definition from the ruleset or input makefile. You can use it to customize generated output.

--eol=[format|dos|unix|mac|native]

Change the type of line endings used by general files. dos, unix and mac specify the line endings used by respective platforms. native will use line endings of the platform Bakefile is ran on (doing this is usually a bad idea, but it is useful e.g. when checking generated files into RCS system that can't deal with line endings correctly, such as CVS). The default value is format and means that the most appropriate line endings for the output format will be used - Windows makefiles will use DOS line endings, Autoconf makefiles will use Unix ones and so on.

--wrap-output=[no|LENGTH]

Change line wrappings behavior. By default, Bakefile wraps generated makefiles so that lines don't exceed 75 characters. Use this option to either change the limit or to disable wrapping entirely by using no as the value.

-IPATH

Add path to the list of directories where Bakefile looks for rules and output templates.

--dry-run

Process the bakefile normally, but instead of creating or modifying files, just print which files would be changed without actually modifying them.

-v, --verbose

Be verbose.

-q, --quiet

Supress all output except for errors.

--touch

Always touch output files, even if their content doesn't change.

--debug

show internal debugging information

--dump

Dump all Bakefile variables and targets to standard output instead of generating output. This is only useful for debugging Bakefile or ill-behaving makefiles.

--output-deps=FILE

Output dependency information needed by bakefile_gen utility

--output-changes=FILE

Store list of changed files to the given file

--xml-cache=FILE

specify cache file where bakefile_gen stores pre-parsed XML files

Environment Variables

BAKEFILE_PATHS

List of directories where ruleset files are looked for (syntax is same as in PATH). Bakefile's data directory is always searched in addition to paths listed in BAKEFILE_PATHS, but BAKEFILE_PATHS has higher priority.

Info

02/27/2017 [FIXME: source] Running Bakefile