Page MenuHomeFreeBSD

D16405.id45729.diff
No OneTemporary

D16405.id45729.diff

Index: head/share/mk/bsd.README
===================================================================
--- head/share/mk/bsd.README
+++ head/share/mk/bsd.README
@@ -22,6 +22,7 @@
bsd.cpu.mk - sets CPU/arch-related variables (included from sys.mk)
bsd.crunchgen.mk - building crunched binaries using crunchgen(1)
bsd.dep.mk - handle Makefile dependencies
+bsd.dirs.mk - handle directory creation
bsd.doc.mk - building troff system documents
bsd.endian.mk - TARGET_ENDIAN=1234(little) or 4321 (big) for target
bsd.files.mk - install of general purpose files
@@ -291,6 +292,18 @@
CLEANDIRS Additional files (CLEANFILES) and directories (CLEANDIRS) to
CLEANFILES remove during clean and cleandir targets. "rm -rf" and
"rm -f" are used, respectively.
+
+DIRS A list of variables referring to directories. For example:
+
+ DIRS+= FOO
+ FOO= /usr/share/foo
+
+ Owner, Group, Mode and Flags are handled by FOO_OWN,
+ FOO_GRP, FOO_MODE and FOO_FLAGS, respectively.
+
+ This allows FILESDIR to be set to FOO, and the directory
+ will be created before the files are installed and the
+ dependencies will be set correctly.
DPADD Additional dependencies for the program. Usually used for
libraries. For example, to depend on the compatibility and
Index: head/share/mk/bsd.dirs.mk
===================================================================
--- head/share/mk/bsd.dirs.mk
+++ head/share/mk/bsd.dirs.mk
@@ -0,0 +1,42 @@
+# $FreeBSD$
+#
+# Directory permissions management.
+
+.if !target(__<bsd.dirs.mk>__)
+__<bsd.dirs.mk>__:
+# List of directory variable names to install. Each variable name's value
+# must be a full path. If non-default permissions are desired, <DIR>_MODE,
+# <DIR>_OWN, and <DIR>_GRP may be specified.
+DIRS?=
+
+. for dir in ${DIRS:O:u}
+. if defined(${dir}) && !empty(${dir})
+# Set default permissions for a directory
+${dir}_MODE?= 0755
+${dir}_OWN?= root
+${dir}_GRP?= wheel
+. if defined(${dir}_FLAGS) && !empty(${dir}_FLAGS)
+${dir}_FLAG= -f ${${dir}_FLAGS}
+. endif
+
+. if defined(NO_ROOT)
+. if !defined(${dir}TAGS) || ! ${${dir}TAGS:Mpackage=*}
+${dir}TAGS+= package=${${dir}PACKAGE:Uruntime}
+. endif
+${dir}TAG_ARGS= -T ${${dir}TAGS:[*]:S/ /,/g}
+. endif
+
+installdirs: installdirs-${dir}
+
+installdirs-${dir}: ${DESTDIR}${${dir}}
+
+${DESTDIR}${${dir}}:
+ @${ECHO} installing DIRS ${dir}
+ ${INSTALL} ${${dir}TAG_ARGS} -d -m ${${dir}_MODE} -o ${${dir}_OWN} \
+ -g ${${dir}_GRP} ${${dir}_FLAG} ${DESTDIR}${${dir}}
+. endif
+
+realinstall: installdirs-${dir}
+. endfor
+
+.endif

File Metadata

Mime Type
text/plain
Expires
Sun, Sep 13, 6:39 AM (16 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38838558
Default Alt Text
D16405.id45729.diff (2 KB)

Event Timeline