aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 1739185d78eb9205142736cb87e160defac48663 (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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
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)