CBP2MAKE(1)

NAME
cbp2make - code::blocks Makefile generation tool

SYNOPSIS
cbp2make -in <project_file> [-cfg <configuration>] [-out <makefile>] [-unix] [-windows] [-mac] [--all-os] [-targets "<target1>[,<target2>[, ...]]"] [--flat-objects] [--flat-objpath] [--wrap-objects] [--wrap-options] [--with-deps] [--keep-objdir] [--keep-outdir] [--target-case keep|lower|upper] [--macros-case keep|lower|upper] [--quote-path auto|never|always]

cbp2make -list -in <project_file_list> [-cfg <configuration>] [-unix] [-windows] [-mac] [--all-os] [-targets "<target1>[,<target2>[, ...]]"] [--flat-objects] [--flat-objpath] [--wrap-objects] [--wrap-options] [--with-deps] [--keep-objdir] [--keep-outdir] [--target-case keep|lower|upper] [--macros-case keep|lower|upper] [--quote-path auto|never|always]

DESCRIPTION
cbp2make is a stand-alone build tool that allows you to generate makefile(s) for GNU Make out of Code::Blocks IDE project or workspace file.

OPTIONS

-in <project_file>
    specifies an input file or a list of files;

-cfg <configuration>
    specifies a configuration file, see also --local and --global options;

-out <makefile>
    specifies the name of a makefile or a list of makefiles;

-unix
    enables Unix / Linux compatible makefile generation;

-windows
    enables Windows compatible makefile generation;

-mac
    enables Macintosh compatible makefile generation;

--all-os
    enables all target platforms at once;

-targets "<target1>[,<target2>[, ...]]"
    specifies the only build targets that a makefile will be made for;

--flat-objects
    forces "flat" names for object files with limited character set;

--flat-objpath
    forces "flat" paths for object files with no subdirectories;

--wrap-objects
    allows to use multiline lists of objects which makes a makefile easier to read;

--wrap-options
    allows to use multiline macros;

--with-deps
    allows a built-in dependency scanner for C/C++ projects;

--keep-objdir
    disables command that erase directories for object files in 'clean' target;

--keep-outdir
    disables command that erase directory for an output binary file in 'clean' target;

--target-case [keep|lower|upper]
    specifies style for makefile targets;

  Common options:

--local
    use configuration from current directory

--global
    use configuration from home directory

--verbose
    show project information

--quiet
    hide all messages

--help
    display this message

--version
    display version information

CONFIGURATION
Some installation- or project-specific options, primarily toolchain settings, can be saved to a configuration file. By default (since rev.110), cbp2make does not save any settings to a configuration file unless the user explicitly specifies the --config option. A configuration file can be either global (stored in user profile / home directory) or local (stored in current directory).

Please, keep in mind that since cbp2make is in early stage of development, an old configuration file may become incompatible with new tool version and it may be necessary to update it manually or initialize a new one.

When cbp2make is invoked, first it tries to load a local configuration file. If a local configuration is missing, next attempt will be to load a global one. If this attempt is not successful either, the default built-in configuration is used. Configuration lookup order can be overridden with --local or --global command line options. If one of options is supplied to cbp2make, non-specified configuration is not picked up even if the specified one is missing and non-specified do exists.

  Manage toolchains
cbp2make --config toolchain --add [-unix|-windows|-mac] -chain <toolchain>

cbp2make --config toolchain --remove [-unix|-windows|-mac] -chain <toolchain>

  Manage build tools
cbp2make --config tool --add [-unix|-windows|-mac] -chain <toolchain> -tool <tool> -type <type> <tool options>

cbp2make --config tool --remove [-unix|-windows|-mac] -chain <toolchain> -tool <tool>

  Manage platforms
cbp2make --config platform [-unix|-windows|-mac] [-pwd <print_dir_command>] [-cd <change_dir_command>] [-rm <remove_file_command>] [-rmf <remove_file_forced>] [-rmd <remove_dir_command>] [-cp <copy_file_command>] [-mv <move_file_command>] [-md <make_dir_command>] [-mdf <make_dir_forced>] [-make <default_make_tool>]

  Manage global compiler variables
cbp2make --config variable --add [-set <set_name>] -name <var_name> [-desc <description>] [-field <field_name>] -value <var_value>

cbp2make --config variable --remove [-set <set_name>] [-name <var_name>] [-field <field_name>]

  Manage options
cbp2make --config options --default-options "<options>"

cbp2make --config show

  Tool types:

pp  preprocessor

as  assembler

cc  compiler

rc  resource compiler

sl  static linker

dl  dynamic linker

el  executable linker

nl  native linker

  Tool options (common):

-desc <description>

-program <executable>

-command <command_template>

-mkv <make_variable>

-srcext <source_extensions>

-outext <output_extension>

-quotepath <yes|no>

-fullpath <yes|no>

-unixpath <yes|no>

  Tool options (compiler):

-incsw <include_switch>

-defsw <define_switch>

-deps <yes|no>

  Tool options (linker):

-ldsw <library_dir_switch>

-llsw <link_library_switch>

-lpfx <library_prefix>

-lext <library_extension>

-objext <object_extension>

-lflat <yes|no>

SEE ALSO
codeblocks (1)