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