From owner-svn-src-head@freebsd.org Mon Jul 23 16:11:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6FB02104F310; Mon, 23 Jul 2018 16:11:04 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 203C68328B; Mon, 23 Jul 2018 16:11:04 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 02C091EBC0; Mon, 23 Jul 2018 16:11:04 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w6NGB3ZL074169; Mon, 23 Jul 2018 16:11:03 GMT (envelope-from brd@FreeBSD.org) Received: (from brd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w6NGB3gh074167; Mon, 23 Jul 2018 16:11:03 GMT (envelope-from brd@FreeBSD.org) Message-Id: <201807231611.w6NGB3gh074167@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brd set sender to brd@FreeBSD.org using -f From: Brad Davis Date: Mon, 23 Jul 2018 16:11:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r336640 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: brd X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 336640 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jul 2018 16:11:04 -0000 Author: brd Date: Mon Jul 23 16:11:03 2018 New Revision: 336640 URL: https://svnweb.freebsd.org/changeset/base/336640 Log: Add the initial DIRS infrastructure for creating directories with the necessary owner, group, mode and flags. Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D16405 Added: head/share/mk/bsd.dirs.mk (contents, props changed) Modified: head/share/mk/bsd.README Modified: head/share/mk/bsd.README ============================================================================== --- head/share/mk/bsd.README Mon Jul 23 15:36:55 2018 (r336639) +++ head/share/mk/bsd.README Mon Jul 23 16:11:03 2018 (r336640) @@ -22,6 +22,7 @@ bsd.confs.mk - install of configuration files 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 @@ CFLAGS Flags to the compiler when creating C objects. 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 Added: head/share/mk/bsd.dirs.mk ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/mk/bsd.dirs.mk Mon Jul 23 16:11:03 2018 (r336640) @@ -0,0 +1,42 @@ +# $FreeBSD$ +# +# Directory permissions management. + +.if !target(____) +____: +# List of directory variable names to install. Each variable name's value +# must be a full path. If non-default permissions are desired, _MODE, +# _OWN, and _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