1319884Ssjg# $Id: scripts.mk,v 1.3 2017/05/06 17:29:45 sjg Exp $
2319884Ssjg#
3319884Ssjg#	@(#) Copyright (c) 2006, Simon J. Gerraty
4319884Ssjg#
5319884Ssjg#	This file is provided in the hope that it will
6319884Ssjg#	be of use.  There is absolutely NO WARRANTY.
7319884Ssjg#	Permission to copy, redistribute or otherwise
8319884Ssjg#	use this file is hereby granted provided that 
9319884Ssjg#	the above copyright notice and this notice are
10319884Ssjg#	left intact. 
11319884Ssjg#      
12319884Ssjg#	Please send copies of changes and bug-fixes to:
13319884Ssjg#	sjg@crufty.net
14319884Ssjg#
15246149Ssjg
16246149Ssjg.include <init.mk>
17246149Ssjg
18319884SsjgSCRIPTSGROUPS ?= SCRIPTS
19319884SsjgSCRIPTSGROUPS := ${SCRIPTSGROUPS:O:u}
20246149Ssjg
21246149SsjgSCRIPTSDIR?=	${BINDIR}
22246149SsjgSCRIPTSOWN?=	${BINOWN}
23246149SsjgSCRIPTSGRP?=	${BINGRP}
24246149SsjgSCRIPTSMODE?=	${BINMODE}
25246149Ssjg
26319884SsjgSCRIPTS_INSTALL_OWN?= -o ${SCRIPTSOWN} -g ${SCRIPTSGRP}
27319884SsjgSCRIPTS_COPY ?= -C
28319884Ssjg
29246149Ssjg# how we get script name from src
30246149SsjgSCRIPTSNAME_MOD?=T:R
31246149Ssjg
32319884Ssjg.if !target(buildfiles)
33319884Ssjg.for group in ${SCRIPTSGROUPS}
34319884Ssjgbuildfiles: ${${group}}
35319884Ssjg.endfor
36319884Ssjg.endif
37319884Ssjgbuildfiles:
38319884Ssjgrealbuild: buildfiles
39246149Ssjg
40319884Ssjg.for group in ${SCRIPTSGROUPS}
41319884Ssjg.if !empty(${group}) && defined(${group}DIR)
42319884Ssjg.if ${group} != "SCRIPTS"
43319884Ssjg${group}_INSTALL_OWN ?= ${SCRIPTS_INSTALL_OWN}
44246149Ssjg.endif
45319884Ssjg# incase we are staging
46319884SsjgSTAGE_DIR.${group} ?= ${STAGE_OBJTOP}${${group}DIR}
47246149Ssjg
48319884Ssjg.for script in ${${group}:O:u}
49319884Ssjg${group}_INSTALL_OWN.${script:T} ?= ${${group}_INSTALL_OWN}
50319884Ssjg${group}DIR.${script:T} ?= ${${group}DIR_${script:T}:U${${group}DIR}}
51319884Ssjgscript_mkdir_list += ${${group}DIR.${script:T}}
52246149Ssjg
53319884Ssjg${group}NAME.${script} ?= ${${group}NAME_${script:T}:U${script:${SCRIPTSNAME_MOD}}}
54319884Ssjg.if ${${group}NAME.${script}:T} != ${script:T}
55319884SsjgSTAGE_AS_SETS += ${group}
56319884SsjgSTAGE_AS_${script} = ${${group}NAME.${script:T}}
57319884Ssjgstage_as.${group}: ${script}
58246149Ssjg
59319884Ssjginstallscripts: installscripts.${group}.${script:T}
60319884Ssjginstallscripts.${group}.${script:T}: ${script} script_mkdirs
61319884Ssjg	${INSTALL} ${SCRIPTS_COPY} ${${group}_INSTALL_OWN.${script:T}} \
62319884Ssjg	-m ${SCRIPTSMODE} ${.ALLSRC:Nscript_mkdirs} ${DESTDIR}${${group}DIR}/${${group}NAME.${script:T}}
63246149Ssjg
64319884Ssjg.else
65319884SsjgSTAGE_SETS += ${group}
66319884Ssjgstage_files.${group}: ${script}
67319884Ssjginstallscripts.${group}: ${script}
68319884Ssjginstallscripts: installscripts.${group}
69246149Ssjg.endif
70246149Ssjg
71319884Ssjg.endfor				# script
72246149Ssjg
73319884Ssjginstallscripts.${group}: script_mkdirs
74319884Ssjg	${INSTALL} ${SCRIPTS_COPY} ${${group}_INSTALL_OWN} -m ${SCRIPTSMODE} \
75319884Ssjg	${.ALLSRC:Nscript_mkdirs:O:u} ${DESTDIR}${${group}DIR}
76319884Ssjg
77319884Ssjg.endif				# !empty
78319884Ssjg.endfor				# group
79319884Ssjg
80319884Ssjgscript_mkdirs:
81319884Ssjg	@for d in ${script_mkdir_list:O:u}; do \
82319884Ssjg		test -d ${DESTDIR}$$d || \
83319884Ssjg		${INSTALL} -d ${SCRIPTS_INSTALL_OWN} -m 775 ${DESTDIR}$$d; \
84319884Ssjg	done
85319884Ssjg
86319884Ssjg
87319884Ssjgbeforeinstall:
88319884Ssjginstallscripts:
89319884Ssjgrealinstall:	installscripts
90319884Ssjg.ORDER: beforeinstall installscripts
91319884Ssjg
92