xref: /freebsd/share/mk/bsd.own.mk (revision 25ecdc7d52770caf1c9b44b5ec11f468f6b636f3)
1# $FreeBSD$
2#
3# The include file <bsd.own.mk> set common variables for owner,
4# group, mode, and directories. Defaults are in brackets.
5#
6#
7# +++ variables +++
8#
9# DESTDIR	Change the tree where the file gets installed. [not set]
10#
11# DISTDIR	Change the tree where the file for a distribution
12# 		gets installed (see /usr/src/release/Makefile). [not set]
13#
14# COMPRESS_CMD	Program to compress documents.
15#		Output is to stdout. [gzip -cn]
16#
17# COMPRESS_EXT	File name extension of ${COMPRESS_CMD} command. [.gz]
18#
19# BINOWN	Binary owner. [root]
20#
21# BINGRP	Binary group. [wheel]
22#
23# BINMODE	Binary mode. [555]
24#
25# NOBINMODE	Mode for non-executable files. [444]
26#
27# LIBDIR	Base path for libraries. [/usr/lib]
28#
29# LIBCOMPATDIR	Base path for compat libraries. [/usr/lib/compat]
30#
31# LIBDATADIR	Base path for misc. utility data files. [/usr/libdata]
32#
33# LIBEXECDIR	Base path for system daemons and utilities. [/usr/libexec]
34#
35# SHLIBDIR	Base path for shared libraries. [${LIBDIR}]
36#
37# LIBOWN	Library owner. [${BINOWN}]
38#
39# LIBGRP	Library group. [${BINGRP}]
40#
41# LIBMODE	Library mode. [${NOBINMODE}]
42#
43#
44# DEBUGDIR	Base path for standalone debug files. [/usr/lib/debug]
45#
46# DEBUGMODE	Mode for debug files. [${NOBINMODE}]
47#
48#
49# KMODDIR	Base path for loadable kernel modules
50#		(see kld(4)). [/boot/modules]
51#
52# KMODOWN	Kernel and KLD owner. [${BINOWN}]
53#
54# KMODGRP	Kernel and KLD group. [${BINGRP}]
55#
56# KMODMODE	KLD mode. [${BINMODE}]
57#
58#
59# EFIDIR	Base path for the UEFI ESP [/boot/efi]
60#
61# EFIOWN	EFIDIR owner. [root]
62#
63# EFIGRP	EFIDIR group. [wheel]
64#
65# EFIMODE	EFIDIR mode. [555]
66#
67#
68# SHAREDIR	Base path for architecture-independent ascii
69#		text files. [/usr/share]
70#
71# SHAREOWN	ASCII text file owner. [root]
72#
73# SHAREGRP	ASCII text file group. [wheel]
74#
75# SHAREMODE	ASCII text file mode. [${NOBINMODE}]
76#
77#
78# CONFDIR	Base path for configuration files. [/etc]
79#
80# CONFOWN	Configuration file owner. [root]
81#
82# CONFGRP	Configuration file group. [wheel]
83#
84# CONFMODE	Configuration file mode. [644]
85#
86#
87# DIROWN	Directory owner. [root]
88#
89# DIRGRP	Directory group. [wheel]
90#
91# DIRMODE	Directory mode. [755]
92#
93#
94# DOCDIR	Base path for system documentation (e.g. PSD, USD,
95#		handbook, FAQ etc.). [${SHAREDIR}/doc]
96#
97# DOCOWN	Documentation owner. [${SHAREOWN}]
98#
99# DOCGRP	Documentation group. [${SHAREGRP}]
100#
101# DOCMODE	Documentation mode. [${NOBINMODE}]
102#
103#
104# INFODIR	Base path for GNU's hypertext system
105#		called Info (see info(1)). [${SHAREDIR}/info]
106#
107# INFOOWN	Info owner. [${SHAREOWN}]
108#
109# INFOGRP	Info group. [${SHAREGRP}]
110#
111# INFOMODE	Info mode. [${NOBINMODE}]
112#
113#
114# MANDIR	Base path for manual installation. [${SHAREDIR}/man/man]
115#
116# MANOWN	Manual owner. [${SHAREOWN}]
117#
118# MANGRP	Manual group. [${SHAREGRP}]
119#
120# MANMODE	Manual mode. [${NOBINMODE}]
121#
122#
123# NLSDIR	Base path for National Language Support files
124#		installation. [${SHAREDIR}/nls]
125#
126# NLSOWN	National Language Support files owner. [${SHAREOWN}]
127#
128# NLSGRP	National Language Support files group. [${SHAREGRP}]
129#
130# NLSMODE	National Language Support files mode. [${NOBINMODE}]
131#
132# INCLUDEDIR	Base path for standard C include files [/usr/include]
133#
134# PKG_CMD	Program for creating and manipulating packages.
135#               [pkg]
136#
137# LINKOWN	Hard link owner [${BINOWN}]
138#
139# LINKGRP	Hard link group [${BINGRP}]
140#
141# LINKMODE	Hard link mode [${NOBINMODE}]
142#
143# SYMLINKOWN	Symbolic link owner [${BINOWN} or ${LIBOWN}]
144#
145# SYMLINKGRP	Symbolic link group [${BINGRP} or ${LIBGRP}]
146#
147# SYMLINKMODE	Symbolic link mode [755]
148
149.if !target(__<bsd.own.mk>__)
150__<bsd.own.mk>__:
151
152.include <bsd.opts.mk>		# options now here or src.opts.mk
153
154.if !defined(_WITHOUT_SRCCONF)
155
156.if ${MK_CTF} != "no"
157CTFCONVERT_CMD=	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
158.elif defined(.PARSEDIR) || (defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300)
159CTFCONVERT_CMD=
160.else
161CTFCONVERT_CMD=	@:
162.endif
163
164.endif # !_WITHOUT_SRCCONF
165
166# Binaries
167BINOWN?=	root
168BINGRP?=	wheel
169BINMODE?=	555
170NOBINMODE?=	444
171
172KMODDIR?=	/boot/modules
173KMODOWN?=	${BINOWN}
174KMODGRP?=	${BINGRP}
175KMODMODE?=	${BINMODE}
176DTBDIR?=	/boot/dtb
177DTBODIR?=	/boot/dtb/overlays
178DTBOWN?=	root
179DTBGRP?=	wheel
180DTBMODE?=	444
181EFIDIR?=	/boot/efi
182EFIOWN?=	root
183EFIGRP?=	wheel
184EFIMODE?=	555
185
186# Use make.conf / environment LIBDIR as default if set...
187.if !empty(_PREMK_LIBDIR)
188LIBDIR_BASE?=	${_PREMK_LIBDIR}
189.endif
190# otherwise use our expected default value.
191LIBDIR_BASE?=	/usr/lib
192LIBDIR?=	${LIBDIR_BASE}
193LIBCOMPATDIR?=	/usr/lib/compat
194LIBDATADIR?=	/usr/libdata
195LIBEXECDIR?=	/usr/libexec
196SHLIBDIR?=	${LIBDIR}
197LIBOWN?=	${BINOWN}
198LIBGRP?=	${BINGRP}
199LIBMODE?=	${NOBINMODE}
200
201DEBUGDIR?=	/usr/lib/debug
202DEBUGMODE?=	${NOBINMODE}
203
204
205# Share files
206SHAREDIR?=	/usr/share
207SHAREOWN?=	root
208SHAREGRP?=	wheel
209SHAREMODE?=	${NOBINMODE}
210
211CONFDIR?=	/etc
212CONFOWN?=	root
213CONFGRP?=	wheel
214CONFMODE?=	644
215
216MANDIR?=	${SHAREDIR}/man/man
217MANOWN?=	${SHAREOWN}
218MANGRP?=	${SHAREGRP}
219MANMODE?=	${NOBINMODE}
220
221DIROWN?=	root
222DIRGRP?=	wheel
223DIRMODE?=	755
224
225DOCDIR?=	${SHAREDIR}/doc
226DOCOWN?=	${SHAREOWN}
227DOCGRP?=	${SHAREGRP}
228DOCMODE?=	${NOBINMODE}
229
230INFODIR?=	${SHAREDIR}/info
231INFOOWN?=	${SHAREOWN}
232INFOGRP?=	${SHAREGRP}
233INFOMODE?=	${NOBINMODE}
234
235NLSDIR?=	${SHAREDIR}/nls
236NLSOWN?=	${SHAREOWN}
237NLSGRP?=	${SHAREGRP}
238NLSMODE?=	${NOBINMODE}
239
240INCLUDEDIR?=	/usr/include
241
242#
243# install(1) parameters.
244#
245_LINKOWN?=	${LINKOWN:U${BINOWN}}
246_LINKGRP?=	${LINKGRP:U${BINGRP}}
247_LINKMODE?=	${LINKMODE:U${NOBINMODE}}
248_SYMLINKOWN?=	${SYMLINKOWN:U${BINOWN}}
249_SYMLINKGRP?=	${SYMLINKGRP:U${BINGRP}}
250_SYMLINKMODE?=	${SYMLINKMODE:U755}
251HRDLINK?=	-l h -o ${_LINKOWN} -g ${_LINKGRP} -m ${_LINKMODE}
252MANHRDLINK?=	-l h -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
253SYMLINK?=	-l s -o ${_SYMLINKOWN} -g ${_SYMLINKGRP} -m ${_SYMLINKMODE}
254LSYMLINK?=	-l s -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE}
255RSYMLINK?=	-l rs -o ${_SYMLINKOWN} -g ${_SYMLINKGRP} -m ${_SYMLINKMODE}
256
257INSTALL_LINK?=		${INSTALL} ${HRDLINK}
258INSTALL_MANLINK?=	${INSTALL} ${MANHRDLINK}
259INSTALL_SYMLINK?=	${INSTALL} ${SYMLINK}
260INSTALL_LIBSYMLINK?=	${INSTALL} ${LSYMLINK}
261INSTALL_RSYMLINK?=	${INSTALL} ${RSYMLINK}
262
263# Common variables
264.if !defined(DEBUG_FLAGS)
265STRIP?=		-s
266.endif
267
268COMPRESS_CMD?=	gzip -cn
269COMPRESS_EXT?=	.gz
270
271# Set XZ_THREADS to 1 to disable multi-threading.
272XZ_THREADS?=	0
273
274.if !empty(XZ_THREADS)
275XZ_CMD?=	xz -T ${XZ_THREADS}
276.else
277XZ_CMD?=	xz
278.endif
279
280PKG_CMD?=	pkg
281
282# Pointer to the top directory into which tests are installed.  Should not be
283# overridden by Makefiles, but the user may choose to set this in src.conf(5).
284TESTSBASE?= /usr/tests
285
286DEPENDFILE?=	.depend
287
288# Compat for the moment -- old bsd.own.mk only included this when _WITHOUT_SRCCONF
289# wasn't defined. bsd.ports.mk and friends depend on this behavior. Remove in 12.
290.if !defined(_WITHOUT_SRCCONF)
291.include <bsd.compiler.mk>
292.endif # !_WITHOUT_SRCCONF
293
294.endif	# !target(__<bsd.own.mk>__)
295