aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: c74a79fe830f2328594ab537e20ab5e160af08ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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)