1*84d9c625SLionel Sambuc# $NetBSD: bsd.files.mk,v 1.43 2013/04/06 15:39:19 uebayasi Exp $ 2e1091647SArun Thomas 39152e1c5SLionel Sambuc.if !defined(_BSD_FILES_MK_) 49152e1c5SLionel Sambuc_BSD_FILES_MK_=1 5e1091647SArun Thomas 6e1091647SArun Thomas.include <bsd.init.mk> 7e1091647SArun Thomas 8e1091647SArun Thomas.if !target(__fileinstall) 9e1091647SArun Thomas##### Basic targets 10e1091647SArun Thomasrealinstall: filesinstall 11e1091647SArun Thomasrealall: filesbuild 12e1091647SArun Thomas 13e1091647SArun Thomas##### Default values 14e1091647SArun ThomasFILESDIR?= ${BINDIR} 15e1091647SArun ThomasFILESOWN?= ${BINOWN} 16e1091647SArun ThomasFILESGRP?= ${BINGRP} 17e1091647SArun ThomasFILESMODE?= ${NONBINMODE} 18e1091647SArun Thomas 19e1091647SArun Thomas##### Build rules 20e1091647SArun Thomasfilesbuild: 21e1091647SArun Thomas.PHONY: filesbuild 22e1091647SArun Thomas 23e1091647SArun Thomas##### Install rules 24e1091647SArun Thomasfilesinstall:: # ensure existence 25e1091647SArun Thomas.PHONY: filesinstall 26e1091647SArun Thomas 27e1091647SArun Thomasconfigfilesinstall:: .PHONY 28e1091647SArun Thomas 29e1091647SArun Thomas__fileinstall: .USE 30e1091647SArun Thomas ${_MKTARGET_INSTALL} 31e1091647SArun Thomas ${INSTALL_FILE} \ 32e1091647SArun Thomas -o ${FILESOWN_${.ALLSRC:T}:U${FILESOWN}} \ 33e1091647SArun Thomas -g ${FILESGRP_${.ALLSRC:T}:U${FILESGRP}} \ 34e1091647SArun Thomas -m ${FILESMODE_${.ALLSRC:T}:U${FILESMODE}} \ 35e1091647SArun Thomas ${SYSPKGTAG} ${.ALLSRC} ${.TARGET} 36e1091647SArun Thomas 37e1091647SArun Thomas.endif # !target(__fileinstall) 38e1091647SArun Thomas 39e1091647SArun Thomas 40e1091647SArun Thomas.for F in ${FILES:O:u} 41e1091647SArun Thomas_FDIR:= ${FILESDIR_${F}:U${FILESDIR}} # dir override 42e1091647SArun Thomas_FNAME:= ${FILESNAME_${F}:U${FILESNAME:U${F:T}}} # name override 43e1091647SArun Thomas_F:= ${DESTDIR}${_FDIR}/${_FNAME} # installed path 449152e1c5SLionel Sambuc_FDOBUILD:= ${FILESBUILD_${F}:U${FILESBUILD:Uno}} 45e1091647SArun Thomas 46e1091647SArun Thomas.if ${MKUPDATE} == "no" 47e1091647SArun Thomas${_F}! ${F} __fileinstall # install rule 48e1091647SArun Thomas.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no") 49e1091647SArun Thomas${_F}! .MADE # no build at install 50e1091647SArun Thomas.endif 51e1091647SArun Thomas.else 52e1091647SArun Thomas${_F}: ${F} __fileinstall # install rule 53e1091647SArun Thomas.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no") 54e1091647SArun Thomas${_F}: .MADE # no build at install 55e1091647SArun Thomas.endif 56e1091647SArun Thomas.endif 57e1091647SArun Thomas 58e1091647SArun Thomas.if ${_FDOBUILD} != "no" 59e1091647SArun Thomasfilesbuild: ${F} 60e1091647SArun ThomasCLEANFILES+= ${F} 61e1091647SArun Thomas.endif 62e1091647SArun Thomas 63e1091647SArun Thomasfilesinstall:: ${_F} 64e1091647SArun Thomas.PRECIOUS: ${_F} # keep if install fails 65e1091647SArun Thomas.endfor 66e1091647SArun Thomas 67e1091647SArun Thomas 68e1091647SArun Thomas# 69e1091647SArun Thomas# CONFIGFILES 70e1091647SArun Thomas# 71e1091647SArun Thomasconfiginstall: configfilesinstall 72e1091647SArun Thomas 73e1091647SArun Thomas.for F in ${CONFIGFILES:O:u} 74e1091647SArun Thomas_FDIR:= ${FILESDIR_${F}:U${FILESDIR}} # dir override 75e1091647SArun Thomas_FNAME:= ${FILESNAME_${F}:U${FILESNAME:U${F:T}}} # name override 76e1091647SArun Thomas_F:= ${DESTDIR}${_FDIR}/${_FNAME} # installed path 779152e1c5SLionel Sambuc_FDOBUILD:= ${FILESBUILD_${F}:U${FILESBUILD:Uno}} 78e1091647SArun Thomas 79e1091647SArun Thomas.if ${MKUPDATE} == "no" 80e1091647SArun Thomas${_F}! ${F} __fileinstall # install rule 81e1091647SArun Thomas.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no") 82e1091647SArun Thomas${_F}! .MADE # no build at install 83e1091647SArun Thomas.endif 84e1091647SArun Thomas.else 85e1091647SArun Thomas${_F}: ${F} __fileinstall # install rule 86e1091647SArun Thomas.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no") 87e1091647SArun Thomas${_F}: .MADE # no build at install 88e1091647SArun Thomas.endif 89e1091647SArun Thomas.endif 90e1091647SArun Thomas 91e1091647SArun Thomas.if ${_FDOBUILD} != "no" 92e1091647SArun Thomasfilesbuild: ${F} 93e1091647SArun ThomasCLEANFILES+= ${F} 94e1091647SArun Thomas.endif 95e1091647SArun Thomas 96e1091647SArun Thomasconfigfilesinstall:: ${_F} 97e1091647SArun Thomas.PRECIOUS: ${_F} # keep if install fails 98e1091647SArun Thomas.endfor 99e1091647SArun Thomas 100e1091647SArun Thomas.undef _FDIR 101e1091647SArun Thomas.undef _FNAME 102e1091647SArun Thomas.undef _F 103e1091647SArun Thomas 104e1091647SArun Thomas 105e1091647SArun Thomas# 106e1091647SArun Thomas# BUILDSYMLINKS 107e1091647SArun Thomas# 108e1091647SArun Thomas.if defined(BUILDSYMLINKS) # { 109e1091647SArun Thomas 110e1091647SArun Thomas.for _SL _TL in ${BUILDSYMLINKS} 111e1091647SArun ThomasBUILDSYMLINKS.s+= ${_SL} 112e1091647SArun ThomasBUILDSYMLINKS.t+= ${_TL} 113e1091647SArun Thomas${_TL}: ${_SL} 114e1091647SArun Thomas ${_MKMSG} "symlink " ${.CURDIR:T}/${.TARGET} 115e1091647SArun Thomas rm -f ${.TARGET} 116e1091647SArun Thomas ln -s ${.ALLSRC} ${.TARGET} 117e1091647SArun Thomas.endfor 118e1091647SArun Thomas 119e1091647SArun Thomasrealall: ${BUILDSYMLINKS.t} 120e1091647SArun Thomas 1219152e1c5SLionel SambucCLEANDIRFILES+= ${BUILDSYMLINKS.t} 122e1091647SArun Thomas 123e1091647SArun Thomas.endif # } 124e1091647SArun Thomas 125e1091647SArun Thomas# 126e1091647SArun Thomas# .uue -> "" handling (i.e. decode a given binary/object) 127e1091647SArun Thomas# 128e1091647SArun Thomas# UUDECODE_FILES - List of files which are stored in the source tree 129e1091647SArun Thomas# as <file>.uue and should be uudecoded. 130e1091647SArun Thomas# 131e1091647SArun Thomas# UUDECODE_FILES_RENAME_fn - For this file, rename its output to the provided 132e1091647SArun Thomas# name (handled via -p and redirecting stdout) 133e1091647SArun Thomas 134e1091647SArun Thomas.if defined(UUDECODE_FILES) # { 135e1091647SArun Thomas.SUFFIXES: .uue 136e1091647SArun Thomas 137e1091647SArun Thomas.uue: 138e1091647SArun Thomas ${_MKTARGET_CREATE} 139*84d9c625SLionel Sambuc rm -f ${.TARGET} 140*84d9c625SLionel Sambuc ${TOOL_UUDECODE} -p ${.IMPSRC} > ${.TARGET} 141*84d9c625SLionel Sambuc 142*84d9c625SLionel Sambuc.if defined(UUDECODE_FILES_RENAME_${UUDECODE_FILES}) 143*84d9c625SLionel Sambuc${UUDECODE_FILES_RENAME_${UUDECODE_FILES}}: ${UUDECODE_FILES} 144*84d9c625SLionel Sambuc cp ${.ALLSRC} ${.TARGET} 145*84d9c625SLionel Sambuc.endif 146e1091647SArun Thomas 147e1091647SArun Thomasrealall: ${UUDECODE_FILES} 148e1091647SArun Thomas 149*84d9c625SLionel SambucCLEANUUDECODE_FILES=${UUDECODE_FILES} 150e1091647SArun Thomas.for i in ${UUDECODE_FILES} 151e1091647SArun ThomasCLEANUUDECODE_FILES+=${UUDECODE_FILES_RENAME_${i}} 152e1091647SArun Thomas.endfor 153e1091647SArun Thomas 1549152e1c5SLionel SambucCLEANFILES+= ${CLEANUUDECODE_FILES} 155e1091647SArun Thomas.endif # } 156e1091647SArun Thomas 157e1091647SArun Thomas##### Pull in related .mk logic 158e1091647SArun Thomas.include <bsd.obj.mk> 1596567e50aSGianluca Guida.include <bsd.sys.mk> 1609152e1c5SLionel Sambuc.include <bsd.clean.mk> 161e1091647SArun Thomas 1629152e1c5SLionel Sambuc.endif # !defined(_BSD_FILES_MK_) 163