NAME
makeenv - Run make(1) with environment loaded from .makeenv
SYNPOSIS
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 adding populating the environment,
makeenv will inspect it's environment, makeenv itself is
affected by the environment variables, which also are make(1)
macros; this if you need a specific implementation of make(1)
for a project, it can be specified in the .makeenv file.
When executng 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 add the alias makeenv=make in his shell,
without any adverse affect. makeenv will pass on it's 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 it's options to the make(1) utility
and do not act on any of the it self, however in order to
properly interleave options and operands specified in the
.makeenv file, it have 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 argumented
option -W (vendor options), 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 support 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.
STDIN
Not used.
INPUT FILES
None.
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
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 environement.
ASYNCHRONOUS EVENTS
Default.
STDOUT
Not used.
STDERR
The standard error is used only for diagnostic messages.
OUTPUT FILES
None.
EXTENDED DESCRIPTION
None.
EXIT STATUS
If the make(1) utility is invoked, the exit status of makeenv
is the exit status of the make(1); utility otherwise, the
makeenv utility exits with one of the following values:
125 An error occurred in the makeenv utility.
126 The make(1) utility was found but could not be invoked.
127 The make(1) utility could not be found.
CONSEQUENCES OF ERRORS
Default.
FUTURE DIRECTIONS
None.
SEE ALSO
makeenv(5), make(1)