bsd.obj.mk revision 15353
1#	$Id: bsd.obj.mk,v 1.2 1996/04/09 22:43:33 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# MAKEOBJDIR 	A file name to the directory where the targets 
16#		are built. [obj]
17#
18# NOOBJ		Do not create 'obj' directory if defined. [not set]
19#
20# NOOBJLINK	Create 'obj' directory in current directory instead
21#		a symbolic link to the 'obj' tree if defined. [not set]
22#
23#
24# +++ targets +++
25#
26#	clean:
27#		remove a.out Errs errs mklog ${CLEANFILES} 
28#
29#	cleandir:
30#		remove all of the files removed by the target clean, 
31#		cleandepend (see bsd.dep.mk) and 'obj' directory.
32#
33#	obj:
34#		create 'obj' directory.
35#
36
37
38.if defined(MAKEOBJDIR) && !empty(MAKEOBJDIR)
39__objdir = ${MAKEOBJDIR}
40.else
41
42.if defined(MACHINE) && !empty(MACHINE)
43__objdir = obj 			# obj.${MACHINE}
44.else
45__objdir = obj
46.endif
47.endif
48
49
50.if !target(obj)
51.if defined(NOOBJ)
52obj:
53.else
54
55obj:	_SUBDIRUSE cleanobj
56.if defined(NOOBJLINK)
57	mkdir ${.CURDIR}/${__objdir}
58.else
59	@if test -d ${BSDOBJDIR}; then 			\
60		cd ${.CURDIR}; here=${.CURDIR}; 	\
61		dest=${BSDOBJDIR}`echo $$here |         \
62			sed "s,^${BSDSRCDIR},,"`/${__objdir}; \
63		${ECHO} "$$here/${__objdir} -> $$dest"; \
64		ln -s $$dest ${__objdir}; 		\
65		if test ! -d $$dest; then 		\
66			mkdir -p $$dest; 		\
67		fi; 					\
68	else 						\
69		${ECHO} "obj tree \"${BSDOBJDIR}\" does not exist."; \
70	fi
71.endif
72.endif
73.endif
74
75#
76# cleanup
77#
78cleanobj: 
79	rm -f -r ${.CURDIR}/${__objdir}
80
81cleanfiles:
82	rm -f a.out Errs errs mklog ${CLEANFILES} 
83
84# see bsd.dep.mk
85.if !target(cleandepend)
86cleandepend:
87.endif
88
89.if !target(clean)
90clean: _SUBDIRUSE cleanfiles
91.endif
92
93cleandir: _SUBDIRUSE cleanfiles cleandepend cleanobj
94