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