bsd.obj.mk revision 15948
1# $Id: bsd.obj.mk,v 1.3 1996/04/22 23:31:39 wosch Exp $ 2# 3# The include file <bsd.obj.mk> handles creating 'obj' directory 4# and cleaning up object files, log files etc. 5# 6# 7# +++ variables +++ 8# 9# BSDSRCDIR The real path to the system sources, so that 'make obj' 10# will work correctly. [/usr/src] 11# 12# BSDOBJDIR The real path to the system 'obj' tree, so that 'make obj' 13# will work correctly. [/usr/obj] 14# 15# CLEANFILES Additional files to remove for the clean and cleandir targets. 16# 17# MAKEOBJDIR A file name to the directory where the targets 18# are built. Note: MAKEOBJDIR is an *enviroment* variable 19# and does work proper only if set as enviroment variable, 20# not as global or command line variable! [obj] 21# 22# E.g. use `env MAKEOBJDIR=obj-amd make' 23# 24# NOOBJ Do not create 'obj' directory if defined. [not set] 25# 26# NOOBJLINK Create 'obj' directory in current directory instead 27# a symbolic link to the 'obj' tree if defined. [not set] 28# 29# 30# +++ targets +++ 31# 32# clean: 33# remove a.out Errs errs mklog ${CLEANFILES} 34# 35# cleandir: 36# remove all of the files removed by the target clean, 37# cleandepend (see bsd.dep.mk) and 'obj' directory. 38# 39# obj: 40# create 'obj' directory. 41# 42 43 44.if defined(MAKEOBJDIR) && !empty(MAKEOBJDIR) 45__objdir = ${MAKEOBJDIR} 46.else 47 48.if defined(MACHINE) && !empty(MACHINE) 49__objdir = obj # obj.${MACHINE} 50.else 51__objdir = obj 52.endif 53.endif 54 55 56.if !target(obj) 57.if defined(NOOBJ) 58obj: 59.else 60 61obj: _SUBDIRUSE cleanobj 62.if defined(NOOBJLINK) 63 mkdir ${.CURDIR}/${__objdir} 64.else 65 @if test -d ${BSDOBJDIR}; then \ 66 cd ${.CURDIR}; here=${.CURDIR}; \ 67 dest=${BSDOBJDIR}`echo $$here | \ 68 sed "s,^${BSDSRCDIR},,"`/${__objdir}; \ 69 ${ECHO} "$$here/${__objdir} -> $$dest"; \ 70 ln -s $$dest ${__objdir}; \ 71 if test ! -d $$dest; then \ 72 mkdir -p $$dest; \ 73 fi; \ 74 else \ 75 ${ECHO} "obj tree \"${BSDOBJDIR}\" does not exist."; \ 76 fi 77.endif 78.endif 79.endif 80 81# 82# cleanup 83# 84cleanobj: 85 rm -f -r ${.CURDIR}/${__objdir} 86 87cleanfiles: 88 rm -f a.out Errs errs mklog ${CLEANFILES} 89 90# see bsd.dep.mk 91.if !target(cleandepend) 92cleandepend: 93.endif 94 95.if !target(clean) 96clean: _SUBDIRUSE cleanfiles 97.endif 98 99cleandir: _SUBDIRUSE cleanfiles cleandepend cleanobj 100