== Introduction == A .bep file is a ''recipe'' that BePorter uses to fetch, patch, build and install a software package. It is an ASCII file that contains a list of keys with corresponding (lists of) values. == Syntax == === Key types === There are three types of keys in a !BepFile: single-value, list-of-values and shell-commands. The key label is subject to the following rules: * the key label must be in all capitals and consist only of letters (A-Z) and underscores * there may be no whitespace in front of the key label * there may be whitespace around the '=', but it is not required ==== A key with a '''single value''' ==== {{{ KEY = "value" }}} The syntax is subject to the following rules: * the value should be enclosed within double quotes * there may be whitespace after the closing quote ==== A key with a '''list of values''' ==== {{{ KEY = "value1 value2 value3" }}} The syntax is subject to the rules listed above for a single value key, plus the following: * one value is entered per line, with the first on the line of the key label * every value but the first is indented by whitespace (tabs or spaces) * only one set of double quotes encloses the list, as is visible from the example above * the closing double quote is on the same ling as the last value of the list ==== A key with a '''list of shell commands''' ==== {{{ KEY = { command1 command2 command3 } }}} The syntax is subject to these rules: * the line of the key label end with an opening brace '{', with no command following it * one command is entered per line * every command is indented by whitespace (tabs or spaces) * the closing brace '}' is on on a seperate line, preceded by whitespace === List of keys === The following keys are currently supported in BePorter: {{{DESCRIPTION}}}: a (short) description of the software package {{{HOMEPAGE}}}: URI pointing to the official homepage of the software package {{{SRC_URI}}}: (a list of) URI(s) pointing to the source code archive of the software package {{{UNPACK}}}: indicates the type of archive: {{{tgz}}} (tar gzip) or {{{tbz}}} (tar bzip2)[[BR]] default = {{{tgz}}} {{{REVISION}}}: indicates the BePort revision: {{{1}}}, {{{2}}}, {{{3}}}, ... {{{PATCH}}}: indicates whether BeOS-specific patching is required: {{{YES}}} or {{{NO}}}[[BR]] default = {{{NO}}} {{{WORKING}}}: indicates whether this BePort is fully working: {{{YES}}} or {{{NO}}}[[BR]] default = {{{YES}}} {{{DEPEND}}}: list of !BePorts this port depends upon: {{{category/portname >= portversion}}} {{{BUILD}}}: list of shell commands to execute in order to build the port {{{INSTALL}}}: list of shell commands to execute in order to install the port When a key is not listed in the BepFile, BePorter assumes the default value, or an empty string/list (if no default value is specified above). Note: It is possible that the names and/or the use of these keys may change as BePorter evolves. Keys may also be added and removed. When BePorter gets a release, the key set shall be frozen. It is possible to insert '''comments''' in the BepFile. * the comment should be preceded with a hash (#) * there may be whitespace preceding the '#'