NAME makeenv - Run make(1) with environment loaded from .makeenv SYNOPSIS makeenv [arguments] ... DESCRIPTION The makeenv utility opens the file .makeenv if it exists in the current working directory and scans it for options, macros, and targets to specify along with the provided arguments when it executes make(1). Any macro listed in .makeenv is also put in the environment. After loading .makeenv and populating the environment, makeenv will inspect its environment. makeenv itself is affected by the environment variables, which are also make(1) macros; thus, if you need a specific implementation of make(1) for a project, it can be specified in the .makeenv file. When executing make(1), makeenv may reorder the arguments, and will put any option listed in .makeenv at the beginning, any macro listed in .makeenv before the macros in the arguments, and any target listed in .makeenv before the targets in the arguments. makeenv is designed to be usable in place of make(1), that is, the user can create the alias makeenv=make in his shell, without any adverse effect. makeenv will pass on its arguments as is to make(1) (or whichever utility is specified in the environment variable MAKEENV_MAKE or the environment variable MAKE) without validation or modifications, if the .makeenv does not exist. OPTIONS The makeenv utility passes its options to the make(1) utility and does not act on any of them itself; however, in order to properly interleave options and operands specified in the .makeenv file, it has to understand which options take an argument and which do not. By default, the makeenv utility only understands the options specified by POSIX, and the option -W (vendor options), which takes an argument, as well as long options that start with two dashes (--) provided that the same command line argument contains an equals sign (=). The user can modify the environment variables to modify how the makeenv utility understands the options. See the section ENVIRONMENT VARIABLES for more information. The current version only supports options that consist of a dash (-) followed by any other character and options that start with two dashes (--), followed by at least one character, but may not contain an equals sign (=), as these are treated as delimiters between long options and their associated argument. ENVIRONMENT VARIABLES The following environment variables affect the execution of makeenv: PATH Default. MAKEENV_MAKE, MAKE The command that shall be invoked by the utility. The environment variable MAKEENV_MAKE has precedence over MAKE; MAKE is only used if MAKEENV_MAKE is not defined. If neither is defined, the default value make is used. MAKEENV_OPTS_NO_ARG List of options that makeenv shall interpret as make(1) options that do not have any argument. (Default is eiknpqrSst, meaning the options -e, -i, -k, -n, -p, -q, -r, -S, -s, and -t.) MAKEENV_OPTS_ARG List of options that makeenv shall interpret as make(1) options that have an argument. (Default is fW, meaning the options -f and -W.) MAKEENV_OPTS_OPT_ATTACHED_ARG List of options that makeenv shall interpret as make(1) options that have an argument only if there are additional characters after the option character in the same command line argument. (Default is the empty string, meaning no options.) MAKEENV_OPTS_OPT_ARG List of options that makeenv shall interpret as make(1) options that have an argument if there are additional characters after the option character in the same command line argument or if argument is followed directly by another argument which does not start with a dash (-). (Default is the empty string, meaning no options.) MAKEENV_LONG_OPTS_NO_ARG Space-separated list of long options that makeenv shall interpret as make(1) options that do not have any argument unless it is followed directly by an equals sign (=) in the same command line argument. Options that do not start with two dashes (--) are silently ignored. (Default is the empty string, meaning no options.) MAKEENV_LONG_OPTS_ARG Space-separated list of long options that makeenv shall interpret as make(1) options that have an argument that must either be specified in the next command line argument or after an equals sign (=) the shall directly follow the option string in the same command line argument. Options that do not start with two dashes (--) are silently ignored. (Default is the empty string, meaning no options.) MAKEENV_LONG_OPTS_OPT_ARG Space-separated list of long options that makeenv shall interpret as make(1) options that have an argument if it is the option string is is directly followed by equals sign (=) in the same command line argument or if argument is followed directly by another argument which does not start with a dash (-). Options that do not start with two dashes (--) are silently ignored. (Default is the empty string, meaning no options.) Any macro listed in .makeenv is loaded into the environment before the utility inspects the environment. SEE ALSO makeenv(5), make(1)