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