xref: /freebsd/share/mk/bsd.lib.mk (revision c33bd5d626bb1f6a43f46ff34e64eaa15c40dfab)
13585b293SGarrett Wollman#	from: @(#)bsd.lib.mk	5.26 (Berkeley) 5/2/91
27f3dea24SPeter Wemm# $FreeBSD$
33585b293SGarrett Wollman#
4afe61c15SRodney W. Grimes
52bdaf7e8SRuslan Ermilov.include <bsd.init.mk>
6afe61c15SRodney W. Grimes
7f67eb0dcSJohn Polstra# Set up the variables controlling shared libraries.  After this section,
8f67eb0dcSJohn Polstra# SHLIB_NAME will be defined only if we are to create a shared library.
9f67eb0dcSJohn Polstra# SHLIB_LINK will be defined only if we are to create a link to it.
10f67eb0dcSJohn Polstra# INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive.
11f67eb0dcSJohn Polstra.if defined(NOPIC)
12f67eb0dcSJohn Polstra.undef SHLIB_NAME
13f67eb0dcSJohn Polstra.undef INSTALL_PIC_ARCHIVE
14f67eb0dcSJohn Polstra.else
1510717e2eSDag-Erling Smørgrav.if !defined(SHLIB) && defined(LIB)
1610717e2eSDag-Erling SmørgravSHLIB=		${LIB}
1710717e2eSDag-Erling Smørgrav.endif
1810717e2eSDag-Erling Smørgrav.if !defined(SHLIB_NAME) && defined(SHLIB) && defined(SHLIB_MAJOR)
1910717e2eSDag-Erling SmørgravSHLIB_NAME=	lib${SHLIB}.so.${SHLIB_MAJOR}
2042c0ad02SRuslan Ermilov.endif
2165d2bdc6SRuslan Ermilov.if defined(SHLIB_NAME) && !empty(SHLIB_NAME:M*.so.*)
2242c0ad02SRuslan ErmilovSHLIB_LINK?=	${SHLIB_NAME:R}
23f67eb0dcSJohn Polstra.endif
24f67eb0dcSJohn PolstraSONAME?=	${SHLIB_NAME}
25e782d0b5SPeter Wemm.endif
26e782d0b5SPeter Wemm
2741f89315SRuslan Ermilov.if defined(CRUNCH_CFLAGS)
283c9b8563SGordon TetlowCFLAGS+=	${CRUNCH_CFLAGS}
2941f89315SRuslan Ermilov.endif
303c9b8563SGordon Tetlow
31e82b0b99SJordan K. Hubbard.if defined(DEBUG_FLAGS)
32e82b0b99SJordan K. HubbardCFLAGS+= ${DEBUG_FLAGS}
33e82b0b99SJordan K. Hubbard.endif
34e82b0b99SJordan K. Hubbard
35e82b0b99SJordan K. Hubbard.if !defined(DEBUG_FLAGS)
36afe61c15SRodney W. GrimesSTRIP?=	-s
37e82b0b99SJordan K. Hubbard.endif
38afe61c15SRodney W. Grimes
391a5ed802SBruce Evans.include <bsd.libnames.mk>
401a5ed802SBruce Evans
41afe61c15SRodney W. Grimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
42f92bdbd0SJohn Polstra# .So used for PIC object files
43afe61c15SRodney W. Grimes.SUFFIXES:
44d58e932fSRuslan Ermilov.SUFFIXES: .out .o .po .So .S .asm .s .c .cc .cpp .cxx .m .C .f .y .l .ln
45766f7d6eSMark Murray
462a53f3fbSRuslan Ermilov.if !defined(PICFLAG)
472a53f3fbSRuslan Ermilov.if ${MACHINE_ARCH} == "sparc64"
482a53f3fbSRuslan ErmilovPICFLAG=-fPIC
492a53f3fbSRuslan Ermilov.else
502a53f3fbSRuslan ErmilovPICFLAG=-fpic
512a53f3fbSRuslan Ermilov.endif
522a53f3fbSRuslan Ermilov.endif
532a53f3fbSRuslan Ermilov
5406d6e4fcSTom Rhodes.if ${CC} == "icc"
5506d6e4fcSTom RhodesPO_FLAG=-p
5606d6e4fcSTom Rhodes.else
5706d6e4fcSTom RhodesPO_FLAG=-pg
5806d6e4fcSTom Rhodes.endif
5906d6e4fcSTom Rhodes
60afe61c15SRodney W. Grimes.c.po:
6106d6e4fcSTom Rhodes	${CC} ${PO_FLAG} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
62afe61c15SRodney W. Grimes
63f92bdbd0SJohn Polstra.c.So:
643585b293SGarrett Wollman	${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
653585b293SGarrett Wollman
66c7cbe79eSDmitrij Tejblum.cc.po .C.po .cpp.po .cxx.po:
6706d6e4fcSTom Rhodes	${CXX} ${PO_FLAG} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
683585b293SGarrett Wollman
69f92bdbd0SJohn Polstra.cc.So .C.So .cpp.So .cxx.So:
703585b293SGarrett Wollman	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
713585b293SGarrett Wollman
723585b293SGarrett Wollman.f.po:
739c8ff5b5SJohn Polstra	${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
743585b293SGarrett Wollman
75f92bdbd0SJohn Polstra.f.So:
763585b293SGarrett Wollman	${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
773585b293SGarrett Wollman
7870a6e331SBruce Evans.m.po:
7970a6e331SBruce Evans	${OBJC} ${OBJCFLAGS} -pg -c ${.IMPSRC} -o ${.TARGET}
8070a6e331SBruce Evans
81f92bdbd0SJohn Polstra.m.So:
8270a6e331SBruce Evans	${OBJC} ${PICFLAG} -DPIC ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET}
8370a6e331SBruce Evans
84d58e932fSRuslan Ermilov.s.po .s.So:
85f79d11b7SRuslan Ermilov	${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
863585b293SGarrett Wollman
87d58e932fSRuslan Ermilov.asm.po:
88d58e932fSRuslan Ermilov	${CC} -x assembler-with-cpp -DPROF ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
89d58e932fSRuslan Ermilov
90d58e932fSRuslan Ermilov.asm.So:
91d58e932fSRuslan Ermilov	${CC} -x assembler-with-cpp ${PICFLAG} -DPIC ${CFLAGS} \
92d58e932fSRuslan Ermilov	    -c ${.IMPSRC} -o ${.TARGET}
93d58e932fSRuslan Ermilov
943585b293SGarrett Wollman.S.po:
95a51613b6SRuslan Ermilov	${CC} -DPROF ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
963585b293SGarrett Wollman
97f92bdbd0SJohn Polstra.S.So:
98a51613b6SRuslan Ermilov	${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
993585b293SGarrett Wollman
1002a53f3fbSRuslan Ermilovall: objwarn
1012a53f3fbSRuslan Ermilov
1024d7d5e7cSRuslan Ermilov.if defined(LIB) && !empty(LIB) || defined(SHLIB_NAME)
1034d7d5e7cSRuslan ErmilovOBJS+=		${SRCS:N*.h:R:S/$/.o/}
1044d7d5e7cSRuslan Ermilov.endif
1054d7d5e7cSRuslan Ermilov
1062a53f3fbSRuslan Ermilov.if defined(LIB) && !empty(LIB)
1075aa23756SDavid E. O'Brien_LIBS=		lib${LIB}.a
108afe61c15SRodney W. Grimes
1092a53f3fbSRuslan Ermilovlib${LIB}.a: ${OBJS} ${STATICOBJS}
110f45b036fSPeter Wemm	@${ECHO} building static ${LIB} library
1112a53f3fbSRuslan Ermilov	@rm -f ${.TARGET}
1122a53f3fbSRuslan Ermilov	@${AR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
1132a53f3fbSRuslan Ermilov	${RANLIB} ${.TARGET}
1144d7d5e7cSRuslan Ermilov.endif
115afe61c15SRodney W. Grimes
1162a53f3fbSRuslan Ermilov.if !defined(INTERNALLIB)
1172a53f3fbSRuslan Ermilov
1184d7d5e7cSRuslan Ermilov.if !defined(NOPROFILE) && defined(LIB) && !empty(LIB)
1192a53f3fbSRuslan Ermilov_LIBS+=		lib${LIB}_p.a
1202a53f3fbSRuslan ErmilovPOBJS+=		${OBJS:.o=.po} ${STATICOBJS:.o=.po}
1212a53f3fbSRuslan Ermilov
1222a53f3fbSRuslan Ermilovlib${LIB}_p.a: ${POBJS}
12380c02d59SBruce Evans	@${ECHO} building profiled ${LIB} library
1242a53f3fbSRuslan Ermilov	@rm -f ${.TARGET}
1252a53f3fbSRuslan Ermilov	@${AR} cq ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD}
1262a53f3fbSRuslan Ermilov	${RANLIB} ${.TARGET}
12786af0db9SBruce Evans.endif
1283585b293SGarrett Wollman
1294d7d5e7cSRuslan Ermilov.if defined(SHLIB_NAME) || \
1304d7d5e7cSRuslan Ermilov    defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
131f92bdbd0SJohn PolstraSOBJS+=		${OBJS:.o=.So}
1324d7d5e7cSRuslan Ermilov.endif
1338c05a446SPeter Wemm
134f67eb0dcSJohn Polstra.if defined(SHLIB_NAME)
1352a53f3fbSRuslan Ermilov_LIBS+=		${SHLIB_NAME}
1362a53f3fbSRuslan Ermilov
137f67eb0dcSJohn Polstra${SHLIB_NAME}: ${SOBJS}
138f67eb0dcSJohn Polstra	@${ECHO} building shared library ${SHLIB_NAME}
1392a53f3fbSRuslan Ermilov	@rm -f ${.TARGET} ${SHLIB_LINK}
140f67eb0dcSJohn Polstra.if defined(SHLIB_LINK)
1412a53f3fbSRuslan Ermilov	@ln -fs ${.TARGET} ${SHLIB_LINK}
142f67eb0dcSJohn Polstra.endif
143e20b0b73SDavid E. O'Brien	@${CC} ${LDFLAGS} -shared -Wl,-x \
1442a53f3fbSRuslan Ermilov	    -o ${.TARGET} -Wl,-soname,${SONAME} \
145ea5c0da9SRuslan Ermilov	    `lorder ${SOBJS} | tsort -q` ${LDADD}
1468c05a446SPeter Wemm.endif
1473585b293SGarrett Wollman
1484d7d5e7cSRuslan Ermilov.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
1492a53f3fbSRuslan Ermilov_LIBS+=		lib${LIB}_pic.a
1502a53f3fbSRuslan Ermilov
1512a53f3fbSRuslan Ermilovlib${LIB}_pic.a: ${SOBJS}
15280c02d59SBruce Evans	@${ECHO} building special pic ${LIB} library
1532a53f3fbSRuslan Ermilov	@rm -f ${.TARGET}
1542a53f3fbSRuslan Ermilov	@${AR} cq ${.TARGET} ${SOBJS} ${ARADD}
1552a53f3fbSRuslan Ermilov	${RANLIB} ${.TARGET}
15686af0db9SBruce Evans.endif
157afe61c15SRodney W. Grimes
1585741a42fSMark Murray.if defined(WANT_LINT) && !defined(NOLINT) && defined(LIB) && !empty(LIB)
1592a53f3fbSRuslan ErmilovLINTLIB=	llib-l${LIB}.ln
1602a53f3fbSRuslan Ermilov_LIBS+=		${LINTLIB}
1612a53f3fbSRuslan ErmilovLINTOBJS+=	${SRCS:M*.c:.c=.ln}
1622a53f3fbSRuslan Ermilov
163766f7d6eSMark Murray${LINTLIB}: ${LINTOBJS}
1642a53f3fbSRuslan Ermilov	@${ECHO} building lint library ${.TARGET}
1652a53f3fbSRuslan Ermilov	@rm -f ${.TARGET}
166766f7d6eSMark Murray	${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
167766f7d6eSMark Murray.endif
168afe61c15SRodney W. Grimes
1695a19f6d9STom Rhodes.endif !defined(INTERNALLIB)
1702a53f3fbSRuslan Ermilov
1712a53f3fbSRuslan Ermilovall: ${_LIBS}
1722a53f3fbSRuslan Ermilov
1732a53f3fbSRuslan Ermilov.if !defined(NOMAN)
1742a53f3fbSRuslan Ermilovall: _manpages
175afe61c15SRodney W. Grimes.endif
176afe61c15SRodney W. Grimes
177fcccc50bSBruce Evans_EXTRADEPEND:
178663e9677SBruce Evans	@TMP=_depend$$$$; \
179f92bdbd0SJohn Polstra	sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \
180663e9677SBruce Evans	    > $$TMP; \
181663e9677SBruce Evans	mv $$TMP ${DEPENDFILE}
182f67eb0dcSJohn Polstra.if !defined(NOEXTRADEPEND) && defined(SHLIB_NAME)
183e3ace70eSBruce Evans.if defined(DPADD) && !empty(DPADD)
184f67eb0dcSJohn Polstra	echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE}
1858c05a446SPeter Wemm.endif
1868c05a446SPeter Wemm.endif
187afe61c15SRodney W. Grimes
188afe61c15SRodney W. Grimes.if !target(install)
189afe61c15SRodney W. Grimes
190c33bd5d6SRuslan Ermilov.if defined(PRECIOUSLIB)
191c33bd5d6SRuslan Ermilov.if !defined(NOFSCHG)
192c59ae063SGarrett WollmanSHLINSTALLFLAGS+= -fschg
193c59ae063SGarrett Wollman.endif
194c33bd5d6SRuslan ErmilovSHLINSTALLFLAGS+= -S
195c33bd5d6SRuslan Ermilov.endif
196c59ae063SGarrett Wollman
197e902c1bbSTim Vanderhoek_INSTALLFLAGS:=	${INSTALLFLAGS}
198e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT}
199e902c1bbSTim Vanderhoek_INSTALLFLAGS:=	${_INSTALLFLAGS${ie}}
200e902c1bbSTim Vanderhoek.endfor
2011a66233dSRuslan Ermilov_SHLINSTALLFLAGS:=	${SHLINSTALLFLAGS}
202e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT}
203e902c1bbSTim Vanderhoek_SHLINSTALLFLAGS:=	${_SHLINSTALLFLAGS${ie}}
204e902c1bbSTim Vanderhoek.endfor
205e902c1bbSTim Vanderhoek
2064d7d5e7cSRuslan Ermilov.if !defined(INTERNALLIB)
207b25a566dSRuslan Ermilovrealinstall: _libinstall
208badb7c1cSRuslan Ermilov.ORDER: beforeinstall _libinstall
209b25a566dSRuslan Ermilov_libinstall:
2104d7d5e7cSRuslan Ermilov.if defined(LIB) && !empty(LIB) && !defined(NOINSTALLLIB)
2118fd9852bSDag-Erling Smørgrav	${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
212e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR}
2132a53f3fbSRuslan Ermilov.endif
2144d7d5e7cSRuslan Ermilov.if !defined(NOPROFILE) && defined(LIB) && !empty(LIB)
2158fd9852bSDag-Erling Smørgrav	${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
216e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR}
217afe61c15SRodney W. Grimes.endif
218a89bd620SDavid E. O'Brien.if defined(SHLIB_NAME)
219d2893b16SRuslan Ermilov	${INSTALL} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
220e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
221f67eb0dcSJohn Polstra	    ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
222f67eb0dcSJohn Polstra.if defined(SHLIB_LINK)
223be01c222SRuslan Ermilov.if ${SHLIBDIR} == ${LIBDIR}
224be01c222SRuslan Ermilov	ln -fs ${SHLIB_NAME} ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
225be01c222SRuslan Ermilov.else
226be01c222SRuslan Ermilov	ln -fs ${_SHLIBDIRPREFIX}${SHLIBDIR}/${SHLIB_NAME} \
227eb7f25e1SPeter Wemm	    ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
228be01c222SRuslan Ermilov.if exists(${DESTDIR}${LIBDIR}/${SHLIB_NAME})
229be01c222SRuslan Ermilov	-chflags noschg ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
230be01c222SRuslan Ermilov	rm -f ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
231be01c222SRuslan Ermilov.endif
232eb7f25e1SPeter Wemm.endif
2338c05a446SPeter Wemm.endif
2348c05a446SPeter Wemm.endif
2354d7d5e7cSRuslan Ermilov.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
236d2893b16SRuslan Ermilov	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
237e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR}
2383585b293SGarrett Wollman.endif
2395741a42fSMark Murray.if defined(WANT_LINT) && !defined(NOLINT) && defined(LIB) && !empty(LIB)
240d2893b16SRuslan Ermilov	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
241c7b111cbSRuslan Ermilov	    ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR}
242c7b111cbSRuslan Ermilov.endif
2434d7d5e7cSRuslan Ermilov.endif !defined(INTERNALLIB)
244c7b111cbSRuslan Ermilov
245af2dc868SRuslan Ermilov.include <bsd.files.mk>
2465d862037SRuslan Ermilov.include <bsd.incs.mk>
24784f94a79SRuslan Ermilov.include <bsd.links.mk>
248afe61c15SRodney W. Grimes
249b90dab70SRuslan Ermilov.if !defined(NOMAN)
250afeaaa84SRuslan Ermilovrealinstall: _maninstall
251badb7c1cSRuslan Ermilov.ORDER: beforeinstall _maninstall
252b90dab70SRuslan Ermilov.endif
253b90dab70SRuslan Ermilov
254afe61c15SRodney W. Grimes.endif
255afe61c15SRodney W. Grimes
256afe61c15SRodney W. Grimes.if !target(lint)
257b25a566dSRuslan Ermilovlint: ${SRCS:M*.c}
2585741a42fSMark Murray	${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
259afe61c15SRodney W. Grimes.endif
260afe61c15SRodney W. Grimes
2613585b293SGarrett Wollman.if !defined(NOMAN)
262afe61c15SRodney W. Grimes.include <bsd.man.mk>
263918fb560SRuslan Ermilov.endif
2643585b293SGarrett Wollman
2653585b293SGarrett Wollman.include <bsd.dep.mk>
26614172e46SBruce Evans
26788505e11SRuslan Ermilov.if !exists(${.OBJDIR}/${DEPENDFILE})
2684d7d5e7cSRuslan Ermilov.if defined(LIB) && !empty(LIB)
2694d7d5e7cSRuslan Ermilov${OBJS} ${STATICOBJS} ${POBJS}: ${SRCS:M*.h}
2706b14fdfaSRuslan Ermilov.for _S in ${SRCS:N*.[hly]}
2716b14fdfaSRuslan Ermilov${_S:R}.po: ${_S}
2726b14fdfaSRuslan Ermilov.endfor
2734d7d5e7cSRuslan Ermilov.endif
2744d7d5e7cSRuslan Ermilov.if defined(SHLIB_NAME) || \
2754d7d5e7cSRuslan Ermilov    defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
2764d7d5e7cSRuslan Ermilov${SOBJS}: ${SRCS:M*.h}
2776b14fdfaSRuslan Ermilov.for _S in ${SRCS:N*.[hly]}
2786b14fdfaSRuslan Ermilov${_S:R}.So: ${_S}
2796b14fdfaSRuslan Ermilov.endfor
28014172e46SBruce Evans.endif
2812a53f3fbSRuslan Ermilov.endif
28214172e46SBruce Evans
283397304feSRuslan Ermilov.if !target(clean)
284397304feSRuslan Ermilovclean:
285397304feSRuslan Ermilov.if defined(CLEANFILES) && !empty(CLEANFILES)
286397304feSRuslan Ermilov	rm -f ${CLEANFILES}
287397304feSRuslan Ermilov.endif
288397304feSRuslan Ermilov.if defined(LIB) && !empty(LIB)
289397304feSRuslan Ermilov	rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS}
290397304feSRuslan Ermilov.endif
291397304feSRuslan Ermilov.if !defined(INTERNALLIB)
292397304feSRuslan Ermilov.if !defined(NOPROFILE) && defined(LIB) && !empty(LIB)
293397304feSRuslan Ermilov	rm -f ${POBJS} ${POBJS:S/$/.tmp/}
294397304feSRuslan Ermilov.endif
295397304feSRuslan Ermilov.if defined(SHLIB_NAME) || \
296397304feSRuslan Ermilov    defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
297397304feSRuslan Ermilov	rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/}
298397304feSRuslan Ermilov.endif
299397304feSRuslan Ermilov.if defined(SHLIB_NAME)
300397304feSRuslan Ermilov.if defined(SHLIB_LINK)
301397304feSRuslan Ermilov	rm -f ${SHLIB_LINK}
302397304feSRuslan Ermilov.endif
303397304feSRuslan Ermilov.if defined(LIB) && !empty(LIB)
304397304feSRuslan Ermilov	rm -f lib${LIB}.so.* lib${LIB}.so
305397304feSRuslan Ermilov.endif
306397304feSRuslan Ermilov.endif
307397304feSRuslan Ermilov.if defined(WANT_LINT) && defined(LIB) && !empty(LIB)
308397304feSRuslan Ermilov	rm -f ${LINTOBJS}
309397304feSRuslan Ermilov.endif
310397304feSRuslan Ermilov.endif !defined(INTERNALLIB)
311397304feSRuslan Ermilov.if defined(_LIBS) && !empty(_LIBS)
312397304feSRuslan Ermilov	rm -f ${_LIBS}
313397304feSRuslan Ermilov.endif
314397304feSRuslan Ermilov.if defined(CLEANDIRS) && !empty(CLEANDIRS)
315397304feSRuslan Ermilov	rm -rf ${CLEANDIRS}
316397304feSRuslan Ermilov.endif
317397304feSRuslan Ermilov.endif
318397304feSRuslan Ermilov
319cd9a2f5cSJordan K. Hubbard.include <bsd.obj.mk>
320d510ecb4SKris Kennaway
321d510ecb4SKris Kennaway.include <bsd.sys.mk>
322