bsd.obj.mk revision 15948
1217309Snwhitehorn# $Id: bsd.obj.mk,v 1.3 1996/04/22 23:31:39 wosch Exp $ 2255852Sdteske# 3217309Snwhitehorn# The include file <bsd.obj.mk> handles creating 'obj' directory 4217309Snwhitehorn# and cleaning up object files, log files etc. 5217309Snwhitehorn# 6255852Sdteske# 7217309Snwhitehorn# +++ variables +++ 8217309Snwhitehorn# 9217309Snwhitehorn# BSDSRCDIR The real path to the system sources, so that 'make obj' 10217309Snwhitehorn# will work correctly. [/usr/src] 11217309Snwhitehorn# 12217309Snwhitehorn# BSDOBJDIR The real path to the system 'obj' tree, so that 'make obj' 13217309Snwhitehorn# will work correctly. [/usr/obj] 14217309Snwhitehorn# 15217309Snwhitehorn# CLEANFILES Additional files to remove for the clean and cleandir targets. 16217309Snwhitehorn# 17217309Snwhitehorn# MAKEOBJDIR A file name to the directory where the targets 18217309Snwhitehorn# are built. Note: MAKEOBJDIR is an *enviroment* variable 19217309Snwhitehorn# and does work proper only if set as enviroment variable, 20217309Snwhitehorn# not as global or command line variable! [obj] 21217309Snwhitehorn# 22217309Snwhitehorn# E.g. use `env MAKEOBJDIR=obj-amd make' 23217309Snwhitehorn# 24217309Snwhitehorn# NOOBJ Do not create 'obj' directory if defined. [not set] 25217309Snwhitehorn# 26217309Snwhitehorn# NOOBJLINK Create 'obj' directory in current directory instead 27217309Snwhitehorn# a symbolic link to the 'obj' tree if defined. [not set] 28217309Snwhitehorn# 29217309Snwhitehorn# 30217309Snwhitehorn# +++ targets +++ 31217309Snwhitehorn# 32217309Snwhitehorn# clean: 33217309Snwhitehorn# remove a.out Errs errs mklog ${CLEANFILES} 34217309Snwhitehorn# 35217309Snwhitehorn# cleandir: 36251843Sbapt# remove all of the files removed by the target clean, 37251843Sbapt# cleandepend (see bsd.dep.mk) and 'obj' directory. 38251843Sbapt# 39251843Sbapt# obj: 40251843Sbapt# create 'obj' directory. 41251843Sbapt# 42251843Sbapt 43251843Sbapt 44251843Sbapt.if defined(MAKEOBJDIR) && !empty(MAKEOBJDIR) 45251843Sbapt__objdir = ${MAKEOBJDIR} 46251843Sbapt.else 47251843Sbapt 48251843Sbapt.if defined(MACHINE) && !empty(MACHINE) 49251843Sbapt__objdir = obj # obj.${MACHINE} 50251843Sbapt.else 51217309Snwhitehorn__objdir = obj 52217309Snwhitehorn.endif 53217309Snwhitehorn.endif 54217309Snwhitehorn 55217309Snwhitehorn 56217309Snwhitehorn.if !target(obj) 57217309Snwhitehorn.if defined(NOOBJ) 58217309Snwhitehornobj: 59217309Snwhitehorn.else 60217309Snwhitehorn 61217309Snwhitehornobj: _SUBDIRUSE cleanobj 62217309Snwhitehorn.if defined(NOOBJLINK) 63251843Sbapt mkdir ${.CURDIR}/${__objdir} 64251843Sbapt.else 65251843Sbapt @if test -d ${BSDOBJDIR}; then \ 66217309Snwhitehorn cd ${.CURDIR}; here=${.CURDIR}; \ 67217309Snwhitehorn dest=${BSDOBJDIR}`echo $$here | \ 68217309Snwhitehorn sed "s,^${BSDSRCDIR},,"`/${__objdir}; \ 69217309Snwhitehorn ${ECHO} "$$here/${__objdir} -> $$dest"; \ 70220749Snwhitehorn ln -s $$dest ${__objdir}; \ 71217309Snwhitehorn if test ! -d $$dest; then \ 72251843Sbapt mkdir -p $$dest; \ 73251843Sbapt fi; \ 74251843Sbapt else \ 75217309Snwhitehorn ${ECHO} "obj tree \"${BSDOBJDIR}\" does not exist."; \ 76251843Sbapt fi 77251843Sbapt.endif 78217309Snwhitehorn.endif 79251843Sbapt.endif 80251843Sbapt 81251843Sbapt# 82217309Snwhitehorn# cleanup 83217309Snwhitehorn# 84217309Snwhitehorncleanobj: 85217309Snwhitehorn rm -f -r ${.CURDIR}/${__objdir} 86217309Snwhitehorn 87217309Snwhitehorncleanfiles: 88217309Snwhitehorn rm -f a.out Errs errs mklog ${CLEANFILES} 89217309Snwhitehorn 90217309Snwhitehorn# see bsd.dep.mk 91217309Snwhitehorn.if !target(cleandepend) 92217309Snwhitehorncleandepend: 93217309Snwhitehorn.endif 94217309Snwhitehorn 95217309Snwhitehorn.if !target(clean) 96217309Snwhitehornclean: _SUBDIRUSE cleanfiles 97217309Snwhitehorn.endif 98251843Sbapt 99217309Snwhitehorncleandir: _SUBDIRUSE cleanfiles cleandepend cleanobj 100217309Snwhitehorn