Recipe Types
Supported recipe types (also known as modes), to be given as argument to
recipe_type
:
configure
recipe_type=configure
is used for Programs based on “configure” scripts, (autoconf or not.) Some options are only relevant for configure:
configure_options=(<array of options>)
Flags to be passed to the configure script. These flags are passed in addition
to default flags detected by PrepareProgram
(such as --prefix
and --sysconfdir
on autoconf-based configure scripts), unless
the override_default_options declaration is used.
autogen_before_configure=yes
Use it if you need to run ./autogen.sh
in order to generate the configure
script.
autogen
The program to run for the above. Defaults to autogen.sh
.
configure=<program name>
By default the configure script is assumed to be called configure
. Use this
variable to override this value. Remember that the current directory during
execution will still be the one set by the dir
variable, even if a directory
path is given (as in the second example below). If the behavior you intended is
for Compile to cd
to the unix
directory and run its build sequence there,
use dir
instead.
Examples (only one applies at a time):
configure=Configure.gnu
configure=unix/configure
cabal
recipe_type=cabal
is used for Programs based on Cabal, the package manager for Haskell. Some options are only relevant for cabal:
cabal_options=(<array of options>)
Flags to be passed to the Cabal configure operation.
These flags are passed in addition to default flags detected by
PrepareProgram
(such as –prefix) unless the
override_default_options declaration is used.
runhaskell
Specifies the method of invoking Haskell to perform a Cabal-based compilation.
The default is runhaskell
.
cmake
recipe_type=cmake
is used for Programs based on CMake. Some options are
only relevant for cmake
:
cmake_options=(<array of options>))
Flags to be passed to the CMake configure operation. These flags are passed in
addition to default flags (such as -DCMAKE_INSTALL_PREFIX
).
cmake_variables=(<array of assignments>)
Variables to be defined in the environment during the execution of cmake.
makefile
recipe_type=makefile
is used for Programs based on Makefiles. No options are relevant only for makefile.
meson
recipe_type=meson
is used for Programs based on Meson. Some options are only relevant for meson:
meson_variables=(<array of assignments>)
Variables to be defined in the environment during the execution of meson.
python
recipe_type=python
is used for Programs based on Python Distutils. Some options are only relevant for python:
python_options=(<array of options>)
Array of options to be passed to the Python Distutils build script. This works
similarly to the configure_options
array.
build_script=<name>
Specify the same for the Python build script. If none is given, Compile tries a few default ones, such as setup.py.
scons
recipe_type=scons
is used for Programs based on SCons. Some options are only relevant for scons:
scons_variables=(<array of assignments>)
Variables to be passed to scons.
xmkmf
recipe_type=xmkmf
is used for Programs based on X11 Imake. No options are relevant only for xmkmf.
manifest
recipe_type=manifest
is used to directly copy appropriate files from the archive into place. Some options are only relevant for manifest:
manifest=(<array "file:dir">)
Specify which files should be copied over, and to where. Destination is relative
to target
.
Example:
manifest=(
"some_script:bin"
"include/a_header.h:include"
"lib/libfoo.so:lib"
"some_script.1:man/man1/some_script.1"
)
meta
recipe_type=meta
only depends on other Recipes. All included recipes are built relative to the same installation prefix. Some options are only relevant for meta:
include=(<array of recipes>)
In a meta-recipe, this array holds the list of recipes that should be built to
constitute the complete program. Recipe names should be in the format
Be careful with
the order, because re-building a meta-package that’s already installed may cover
up ordering problems.App--1.0
. The order of the entries in the array is significant, because it is
the order in which the recipes are built.
Note
part_of=<parent>
Indicates that this recipe is generally included as part of a meta-recipe.
Unless Compile is called with -i
/--install-separately
, the Program will be
installed into the parent Program’s directory. Implies keep_existing_target
.
update_each_settings=yes
In meta-recipes, Compile only calls UpdateSettings
for the meta-recipe and not
for its sub-recipes. Set this variable to override this behavior and have
UpdateSettings
called in every sub-recipe.