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