1BAKEFILE(1) Running Bakefile BAKEFILE(1)
2
3
4
6 bakefile - native makefiles generator
7
9 bakefile [--version] [--help] -fFORMAT -oOUTFILE
10 [--eol=[format|dos|unix|mac|native]]
11 [--wrap-output=[no|LENGTH]] [-DVAR=VALUE...] [-IPATH...] [-v]
12 [-q] [--dry-run] [--touch] [--dump] file.bkl
13
15 bakefile creates various types of Makefiles and project files from a
16 single project description called a "Bakefile".
17
19 --version
20 Display Bakefile version and exit.
21
22 -h, --help
23 Display usage information and exit.
24
25 -fFORMAT, --format=FORMAT
26 Specify output format. Bakefile supports the following formats:
27
28
29 ┌────────────┬───────────────────────────────────────┐
30 │Format │ File(s) Generated │
31 ├────────────┼───────────────────────────────────────┤
32 │autoconf │ Makefile.in for GNU │
33 │ │ Autoconf │
34 ├────────────┼───────────────────────────────────────┤
35 │borland │ Makefile for Borland C++ │
36 │ │ and Borland │
37 │ │ make │
38 ├────────────┼───────────────────────────────────────┤
39 │dmars │ Generic Makefile for Digital │
40 │ │ Mars C/C++ │
41 ├────────────┼───────────────────────────────────────┤
42 │dmars_smake │ Makefile for Digital Mars │
43 │ │ C/C++ with │
44 │ │ SMAKE │
45 ├────────────┼───────────────────────────────────────┤
46 │gnu │ Makefile for GNU toolchain: │
47 │ │ GNU Make, GCC, │
48 │ │ etc. │
49 ├────────────┼───────────────────────────────────────┤
50 │mingw │ Makefile for MinGW toolchain: │
51 │ │ mingw32-make, │
52 │ │ MinGW port of GCC, etc. │
53 ├────────────┼───────────────────────────────────────┤
54 │msvc │ Makefile for Visual C++ with │
55 │ │ Microsoft │
56 │ │ nmake │
57 ├────────────┼───────────────────────────────────────┤
58 │msvc6prj │ Microsoft Visual C++ 6.0 project │
59 │ │ files │
60 ├────────────┼───────────────────────────────────────┤
61 │msevc4prj │ Microsoft Embedded Visual C++ 4 │
62 │ │ project │
63 │ │ files │
64 ├────────────┼───────────────────────────────────────┤
65 │msvs2003prj │ MS Visual Studio 2003 project files │
66 ├────────────┼───────────────────────────────────────┤
67 │msvs2005prj │ MS Visual Studio 2005 project files │
68 ├────────────┼───────────────────────────────────────┤
69 │msvs2008prj │ MS Visual Studio 2008 project files │
70 ├────────────┼───────────────────────────────────────┤
71 │suncc │ GNU makefile for SunCC compiler │
72 ├────────────┼───────────────────────────────────────┤
73 │symbian │ Symbian development files │
74 ├────────────┼───────────────────────────────────────┤
75 │watcom │ Makefile for OpenWatcom C/C++ │
76 ├────────────┼───────────────────────────────────────┤
77 │xcode2 │ Apple Xcode 2.4 project files │
78 └────────────┴───────────────────────────────────────┘
79
80 -oOUTFILE, --output=OUTFILE
81 File to write generated makefile to. For those backends that
82 generate more than one file, this option specifies the name of the
83 main makefile.
84
85 This option has special meaning for msvs200xprj formats: by
86 default, both the project files (one for each target) and a
87 solution file, containing all the project files, are generated.
88 However if OUTFILE is a file with .vcproj extension, then only the
89 (necessarily unique) project file will be generated.
90
91 -DVAR=VALUE
92 Define Bakefile variable. This definition overrides any definition
93 from the ruleset or input makefile. You can use it to customize
94 generated output.
95
96 --eol=[format|dos|unix|mac|native]
97 Change the type of line endings used by general files. dos, unix
98 and mac specify the line endings used by respective platforms.
99 native will use line endings of the platform Bakefile is ran on
100 (doing this is usually a bad idea, but it is useful e.g. when
101 checking generated files into RCS system that can't deal with line
102 endings correctly, such as CVS). The default value is format and
103 means that the most appropriate line endings for the output format
104 will be used - Windows makefiles will use DOS line endings,
105 Autoconf makefiles will use Unix ones and so on.
106
107 --wrap-output=[no|LENGTH]
108 Change line wrappings behavior. By default, Bakefile wraps
109 generated makefiles so that lines don't exceed 75 characters. Use
110 this option to either change the limit or to disable wrapping
111 entirely by using no as the value.
112
113 -IPATH
114 Add path to the list of directories where Bakefile looks for rules
115 and output templates.
116
117 --dry-run
118 Process the bakefile normally, but instead of creating or modifying
119 files, just print which files would be changed without actually
120 modifying them.
121
122 -v, --verbose
123 Be verbose.
124
125 -q, --quiet
126 Supress all output except for errors.
127
128 --touch
129 Always touch output files, even if their content doesn't change.
130
131 --debug
132 show internal debugging information
133
134 --dump
135 Dump all Bakefile variables and targets to standard output instead
136 of generating output. This is only useful for debugging Bakefile or
137 ill-behaving makefiles.
138
139 --output-deps=FILE
140 Output dependency information needed by bakefile_gen utility
141
142 --output-changes=FILE
143 Store list of changed files to the given file
144
145 --xml-cache=FILE
146 specify cache file where bakefile_gen stores pre-parsed XML files
147
149 BAKEFILE_PATHS
150 List of directories where ruleset files are looked for (syntax is
151 same as in PATH). Bakefile's data directory is always searched in
152 addition to paths listed in BAKEFILE_PATHS, but BAKEFILE_PATHS has
153 higher priority.
154
155
156
157[FIXME: source] 02/19/2018 BAKEFILE(1)