Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Supported recipe types (also known as modes), to be given as argument to recipe_type:
recipe_type=configure is used for Programs based on "configure" scripts, (autoconf or not.) Some options are only relevant for configure:
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.
Use it if you need to run ./autogen.sh in order to generate the configure script.
The program to run for the above. Defaults to "autogen.sh".
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):
recipe_type=cabal is used for Programs based on "Haskell Cabal". Some options are only relevant for cabal:
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.
Specifies the method of invoking Haskell to perform a Cabal-based compilation. The default is "runhaskell".
recipe_type=cmake is used for Programs based on CMake. Some options are only relevant for cmake:
Flags to be passed to the CMake configure operation. These flags are passed in addition to default flags (such as -DCMAKE_INSTALL_PREFIX).
Variables to be defined in the environment during the execution of cmake.
recipe_type=makefile is used for Programs based on Makefiles. No options are relevant only for makefile.
recipe_type=python is used for Programs based on Python Distutils. Some options are only relevant for python:
Array of options to be passed to the Python Distutils build script. This works similarly to the configure_options array.
Specify the same for the Python build script. If none is given, Compile tries a few default ones, such as setup.py.
recipe_type=scons is used for Programs based on SCons. Some options are only relevant for scons:
Variables to be passed to scons.
recipe_type=xmkmf is used for Programs based on X11 Imake. No options are relevant only for xmkmf.
recipe_type=manifest is used to directly copy appropriate files from the archive into place. Some options are only relevant for manifest:
Specify which files should be copied over, and to where. Destination is relative to target.
manifest=( "some_script:bin" "include/a_header.h:include" "lib/libfoo.so:lib" "some_script.1:man/man1/some_script.1" )
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:
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 "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: be careful with the order, because re-building a meta-package that's already installed may cover up ordering problems.
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.
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.