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. 11ab7a2947SRuslan Ermilov.if defined(NO_PIC) 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 314df1f59eSWarner Losh.if ${MK_ASSERT_DEBUG} == "no" 324df1f59eSWarner LoshCFLAGS+= -DNDEBUG 334df1f59eSWarner Losh.endif 344df1f59eSWarner Losh 35e82b0b99SJordan K. Hubbard.if defined(DEBUG_FLAGS) 36e82b0b99SJordan K. HubbardCFLAGS+= ${DEBUG_FLAGS} 37e82b0b99SJordan K. Hubbard.endif 38e82b0b99SJordan K. Hubbard 39e82b0b99SJordan K. Hubbard.if !defined(DEBUG_FLAGS) 40afe61c15SRodney W. GrimesSTRIP?= -s 41e82b0b99SJordan K. Hubbard.endif 42afe61c15SRodney W. Grimes 431a5ed802SBruce Evans.include <bsd.libnames.mk> 441a5ed802SBruce Evans 45afe61c15SRodney W. Grimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 46f92bdbd0SJohn Polstra# .So used for PIC object files 47afe61c15SRodney W. Grimes.SUFFIXES: 48d58e932fSRuslan Ermilov.SUFFIXES: .out .o .po .So .S .asm .s .c .cc .cpp .cxx .m .C .f .y .l .ln 49766f7d6eSMark Murray 502a53f3fbSRuslan Ermilov.if !defined(PICFLAG) 512a53f3fbSRuslan Ermilov.if ${MACHINE_ARCH} == "sparc64" 522a53f3fbSRuslan ErmilovPICFLAG=-fPIC 532a53f3fbSRuslan Ermilov.else 542a53f3fbSRuslan ErmilovPICFLAG=-fpic 552a53f3fbSRuslan Ermilov.endif 562a53f3fbSRuslan Ermilov.endif 572a53f3fbSRuslan Ermilov 5806d6e4fcSTom Rhodes.if ${CC} == "icc" 5906d6e4fcSTom RhodesPO_FLAG=-p 6006d6e4fcSTom Rhodes.else 6106d6e4fcSTom RhodesPO_FLAG=-pg 6206d6e4fcSTom Rhodes.endif 6306d6e4fcSTom Rhodes 64afe61c15SRodney W. Grimes.c.po: 6506d6e4fcSTom Rhodes ${CC} ${PO_FLAG} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 66afe61c15SRodney W. Grimes 67f92bdbd0SJohn Polstra.c.So: 683585b293SGarrett Wollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 693585b293SGarrett Wollman 70c7cbe79eSDmitrij Tejblum.cc.po .C.po .cpp.po .cxx.po: 7106d6e4fcSTom Rhodes ${CXX} ${PO_FLAG} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 723585b293SGarrett Wollman 73f92bdbd0SJohn Polstra.cc.So .C.So .cpp.So .cxx.So: 743585b293SGarrett Wollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 753585b293SGarrett Wollman 763585b293SGarrett Wollman.f.po: 779c8ff5b5SJohn Polstra ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 783585b293SGarrett Wollman 79f92bdbd0SJohn Polstra.f.So: 803585b293SGarrett Wollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 813585b293SGarrett Wollman 8270a6e331SBruce Evans.m.po: 8370a6e331SBruce Evans ${OBJC} ${OBJCFLAGS} -pg -c ${.IMPSRC} -o ${.TARGET} 8470a6e331SBruce Evans 85f92bdbd0SJohn Polstra.m.So: 8670a6e331SBruce Evans ${OBJC} ${PICFLAG} -DPIC ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} 8770a6e331SBruce Evans 88d58e932fSRuslan Ermilov.s.po .s.So: 89f79d11b7SRuslan Ermilov ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} 903585b293SGarrett Wollman 91d58e932fSRuslan Ermilov.asm.po: 92d58e932fSRuslan Ermilov ${CC} -x assembler-with-cpp -DPROF ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 93d58e932fSRuslan Ermilov 94d58e932fSRuslan Ermilov.asm.So: 95d58e932fSRuslan Ermilov ${CC} -x assembler-with-cpp ${PICFLAG} -DPIC ${CFLAGS} \ 96d58e932fSRuslan Ermilov -c ${.IMPSRC} -o ${.TARGET} 97d58e932fSRuslan Ermilov 983585b293SGarrett Wollman.S.po: 99a51613b6SRuslan Ermilov ${CC} -DPROF ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 1003585b293SGarrett Wollman 101f92bdbd0SJohn Polstra.S.So: 102a51613b6SRuslan Ermilov ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 1033585b293SGarrett Wollman 1042a53f3fbSRuslan Ermilovall: objwarn 1052a53f3fbSRuslan Ermilov 106ab52e991SDaniel Eischen# Generate the version map given the version definitions 107ab52e991SDaniel Eischen# and symbol maps. 108ab52e991SDaniel Eischen.if !empty(VERSION_DEF) && !empty(SYMBOL_MAPS) 109ab52e991SDaniel Eischen# Find the awk script that generates the version map. 110ab52e991SDaniel EischenVERSION_GEN?= version_gen.awk 111ab52e991SDaniel EischenVERSION_MAP?= Version.map 112ab52e991SDaniel Eischen 113ab52e991SDaniel Eischen# Compute the make's -m path. 114ab52e991SDaniel Eischen_mpath= 115ab52e991SDaniel Eischen_oarg= 116ab52e991SDaniel Eischen.for _arg in ${.MAKEFLAGS} 117ab52e991SDaniel Eischen.if ${_oarg} == "-m" 118ab52e991SDaniel Eischen_mpath+= ${_arg} 119ab52e991SDaniel Eischen.endif 120ab52e991SDaniel Eischen_oarg= ${_arg} 121ab52e991SDaniel Eischen.endfor 122ab52e991SDaniel Eischen_mpath+= /usr/share/mk 123ab52e991SDaniel Eischen 124ab52e991SDaniel Eischen# Look up ${VERSION_GEN} in ${_mpath}. 125ab52e991SDaniel Eischen_vgen= 126ab52e991SDaniel Eischen.for path in ${_mpath} 127ab52e991SDaniel Eischen.if empty(_vgen) 128ab52e991SDaniel Eischen.if exists(${path}/${VERSION_GEN}) 129ab52e991SDaniel Eischen_vgen= ${path}/${VERSION_GEN} 130ab52e991SDaniel Eischen.endif 131ab52e991SDaniel Eischen.endif 132ab52e991SDaniel Eischen.endfor 133ab52e991SDaniel Eischen 134add47b95SDag-Erling Smørgrav${VERSION_MAP}: ${VERSION_DEF} ${_vgen} ${SYMBOL_MAPS} 135ab52e991SDaniel Eischen awk -v vfile=${VERSION_DEF} -f ${_vgen} ${SYMBOL_MAPS} \ 136ab52e991SDaniel Eischen > ${.TARGET} 137ab52e991SDaniel Eischen.endif # !empty(VERSION_DEF) && !empty(SYMBOL_MAPS) 138ab52e991SDaniel Eischen 139ab52e991SDaniel Eischen# Allow librararies to specify their own version map or have it 140ab52e991SDaniel Eischen# automatically generated (see above). 141ab52e991SDaniel Eischen.if !empty(VERSION_MAP) 142ab52e991SDaniel Eischen${SHLIB_NAME}: ${VERSION_MAP} 143ab52e991SDaniel EischenLDFLAGS+= -Wl,--version-script=${VERSION_MAP} 144ab52e991SDaniel Eischen.endif 145ab52e991SDaniel Eischen 1464d7d5e7cSRuslan Ermilov.if defined(LIB) && !empty(LIB) || defined(SHLIB_NAME) 1474d7d5e7cSRuslan ErmilovOBJS+= ${SRCS:N*.h:R:S/$/.o/} 1484d7d5e7cSRuslan Ermilov.endif 1494d7d5e7cSRuslan Ermilov 1502a53f3fbSRuslan Ermilov.if defined(LIB) && !empty(LIB) 1515aa23756SDavid E. O'Brien_LIBS= lib${LIB}.a 152afe61c15SRodney W. Grimes 1532a53f3fbSRuslan Ermilovlib${LIB}.a: ${OBJS} ${STATICOBJS} 154f45b036fSPeter Wemm @${ECHO} building static ${LIB} library 1552a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 156b608b452SWarner Losh @${AR} cq ${.TARGET} `env NM=${NM} lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} 1572a53f3fbSRuslan Ermilov ${RANLIB} ${.TARGET} 1584d7d5e7cSRuslan Ermilov.endif 159afe61c15SRodney W. Grimes 1602a53f3fbSRuslan Ermilov.if !defined(INTERNALLIB) 1612a53f3fbSRuslan Ermilov 1625740a2b6SRuslan Ermilov.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB) 1632a53f3fbSRuslan Ermilov_LIBS+= lib${LIB}_p.a 1642a53f3fbSRuslan ErmilovPOBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po} 1652a53f3fbSRuslan Ermilov 1662a53f3fbSRuslan Ermilovlib${LIB}_p.a: ${POBJS} 16780c02d59SBruce Evans @${ECHO} building profiled ${LIB} library 1682a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 169b608b452SWarner Losh @${AR} cq ${.TARGET} `env NM=${NM} lorder ${POBJS} | tsort -q` ${ARADD} 1702a53f3fbSRuslan Ermilov ${RANLIB} ${.TARGET} 17186af0db9SBruce Evans.endif 1723585b293SGarrett Wollman 1734d7d5e7cSRuslan Ermilov.if defined(SHLIB_NAME) || \ 1744d7d5e7cSRuslan Ermilov defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) 175f92bdbd0SJohn PolstraSOBJS+= ${OBJS:.o=.So} 1764d7d5e7cSRuslan Ermilov.endif 1778c05a446SPeter Wemm 178f67eb0dcSJohn Polstra.if defined(SHLIB_NAME) 1792a53f3fbSRuslan Ermilov_LIBS+= ${SHLIB_NAME} 1802a53f3fbSRuslan Ermilov 181f67eb0dcSJohn Polstra${SHLIB_NAME}: ${SOBJS} 182f67eb0dcSJohn Polstra @${ECHO} building shared library ${SHLIB_NAME} 1832a53f3fbSRuslan Ermilov @rm -f ${.TARGET} ${SHLIB_LINK} 184f67eb0dcSJohn Polstra.if defined(SHLIB_LINK) 1852a53f3fbSRuslan Ermilov @ln -fs ${.TARGET} ${SHLIB_LINK} 186f67eb0dcSJohn Polstra.endif 187e20b0b73SDavid E. O'Brien @${CC} ${LDFLAGS} -shared -Wl,-x \ 1882a53f3fbSRuslan Ermilov -o ${.TARGET} -Wl,-soname,${SONAME} \ 189b608b452SWarner Losh `env NM=${NM} lorder ${SOBJS} | tsort -q` ${LDADD} 1908c05a446SPeter Wemm.endif 1913585b293SGarrett Wollman 192e1fe3dbaSRuslan Ermilov.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no" 1932a53f3fbSRuslan Ermilov_LIBS+= lib${LIB}_pic.a 1942a53f3fbSRuslan Ermilov 1952a53f3fbSRuslan Ermilovlib${LIB}_pic.a: ${SOBJS} 19680c02d59SBruce Evans @${ECHO} building special pic ${LIB} library 1972a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 1982a53f3fbSRuslan Ermilov @${AR} cq ${.TARGET} ${SOBJS} ${ARADD} 1992a53f3fbSRuslan Ermilov ${RANLIB} ${.TARGET} 20086af0db9SBruce Evans.endif 201afe61c15SRodney W. Grimes 202ab7a2947SRuslan Ermilov.if defined(WANT_LINT) && !defined(NO_LINT) && defined(LIB) && !empty(LIB) 2032a53f3fbSRuslan ErmilovLINTLIB= llib-l${LIB}.ln 2042a53f3fbSRuslan Ermilov_LIBS+= ${LINTLIB} 2052a53f3fbSRuslan ErmilovLINTOBJS+= ${SRCS:M*.c:.c=.ln} 2062a53f3fbSRuslan Ermilov 207766f7d6eSMark Murray${LINTLIB}: ${LINTOBJS} 2082a53f3fbSRuslan Ermilov @${ECHO} building lint library ${.TARGET} 2092a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 210766f7d6eSMark Murray ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 211766f7d6eSMark Murray.endif 212afe61c15SRodney W. Grimes 21384aac273SHartmut Brandt.endif # !defined(INTERNALLIB) 2142a53f3fbSRuslan Ermilov 2152a53f3fbSRuslan Ermilovall: ${_LIBS} 2162a53f3fbSRuslan Ermilov 217e1fe3dbaSRuslan Ermilov.if ${MK_MAN} != "no" 2182a53f3fbSRuslan Ermilovall: _manpages 219afe61c15SRodney W. Grimes.endif 220afe61c15SRodney W. Grimes 221fcccc50bSBruce Evans_EXTRADEPEND: 222663e9677SBruce Evans @TMP=_depend$$$$; \ 223f92bdbd0SJohn Polstra sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \ 224663e9677SBruce Evans > $$TMP; \ 225663e9677SBruce Evans mv $$TMP ${DEPENDFILE} 226a399b3b4SRuslan Ermilov.if !defined(NO_EXTRADEPEND) && defined(SHLIB_NAME) 227e3ace70eSBruce Evans.if defined(DPADD) && !empty(DPADD) 228f67eb0dcSJohn Polstra echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE} 2298c05a446SPeter Wemm.endif 2308c05a446SPeter Wemm.endif 231afe61c15SRodney W. Grimes 232afe61c15SRodney W. Grimes.if !target(install) 233afe61c15SRodney W. Grimes 234c33bd5d6SRuslan Ermilov.if defined(PRECIOUSLIB) 23500fbd407SRuslan Ermilov.if !defined(NO_FSCHG) 236c59ae063SGarrett WollmanSHLINSTALLFLAGS+= -fschg 237c59ae063SGarrett Wollman.endif 238c33bd5d6SRuslan ErmilovSHLINSTALLFLAGS+= -S 239c33bd5d6SRuslan Ermilov.endif 240c59ae063SGarrett Wollman 241e902c1bbSTim Vanderhoek_INSTALLFLAGS:= ${INSTALLFLAGS} 242e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT} 243e902c1bbSTim Vanderhoek_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} 244e902c1bbSTim Vanderhoek.endfor 2451a66233dSRuslan Ermilov_SHLINSTALLFLAGS:= ${SHLINSTALLFLAGS} 246e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT} 247e902c1bbSTim Vanderhoek_SHLINSTALLFLAGS:= ${_SHLINSTALLFLAGS${ie}} 248e902c1bbSTim Vanderhoek.endfor 249e902c1bbSTim Vanderhoek 2504d7d5e7cSRuslan Ermilov.if !defined(INTERNALLIB) 251b25a566dSRuslan Ermilovrealinstall: _libinstall 252badb7c1cSRuslan Ermilov.ORDER: beforeinstall _libinstall 253b25a566dSRuslan Ermilov_libinstall: 2542c74b2cbSRuslan Ermilov.if defined(LIB) && !empty(LIB) && !defined(NO_INSTALLLIB) 2558fd9852bSDag-Erling Smørgrav ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 256e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2572a53f3fbSRuslan Ermilov.endif 2585740a2b6SRuslan Ermilov.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB) 2598fd9852bSDag-Erling Smørgrav ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 260e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 261afe61c15SRodney W. Grimes.endif 262a89bd620SDavid E. O'Brien.if defined(SHLIB_NAME) 263d2893b16SRuslan Ermilov ${INSTALL} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 264e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \ 265f67eb0dcSJohn Polstra ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR} 266f67eb0dcSJohn Polstra.if defined(SHLIB_LINK) 267be01c222SRuslan Ermilov.if ${SHLIBDIR} == ${LIBDIR} 268be01c222SRuslan Ermilov ln -fs ${SHLIB_NAME} ${DESTDIR}${LIBDIR}/${SHLIB_LINK} 269be01c222SRuslan Ermilov.else 270be01c222SRuslan Ermilov ln -fs ${_SHLIBDIRPREFIX}${SHLIBDIR}/${SHLIB_NAME} \ 271eb7f25e1SPeter Wemm ${DESTDIR}${LIBDIR}/${SHLIB_LINK} 272be01c222SRuslan Ermilov.if exists(${DESTDIR}${LIBDIR}/${SHLIB_NAME}) 273be01c222SRuslan Ermilov -chflags noschg ${DESTDIR}${LIBDIR}/${SHLIB_NAME} 274be01c222SRuslan Ermilov rm -f ${DESTDIR}${LIBDIR}/${SHLIB_NAME} 275be01c222SRuslan Ermilov.endif 276eb7f25e1SPeter Wemm.endif 2778c05a446SPeter Wemm.endif 2788c05a446SPeter Wemm.endif 279e1fe3dbaSRuslan Ermilov.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no" 280d2893b16SRuslan Ermilov ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 281e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 2823585b293SGarrett Wollman.endif 283ab7a2947SRuslan Ermilov.if defined(WANT_LINT) && !defined(NO_LINT) && defined(LIB) && !empty(LIB) 284d2893b16SRuslan Ermilov ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 285c7b111cbSRuslan Ermilov ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR} 286c7b111cbSRuslan Ermilov.endif 28784aac273SHartmut Brandt.endif # !defined(INTERNALLIB) 288c7b111cbSRuslan Ermilov 289b9f5e422SAlexey Zelkin.include <bsd.nls.mk> 290af2dc868SRuslan Ermilov.include <bsd.files.mk> 2915d862037SRuslan Ermilov.include <bsd.incs.mk> 29284f94a79SRuslan Ermilov.include <bsd.links.mk> 293afe61c15SRodney W. Grimes 294e1fe3dbaSRuslan Ermilov.if ${MK_MAN} != "no" 295afeaaa84SRuslan Ermilovrealinstall: _maninstall 296badb7c1cSRuslan Ermilov.ORDER: beforeinstall _maninstall 297b90dab70SRuslan Ermilov.endif 298b90dab70SRuslan Ermilov 299afe61c15SRodney W. Grimes.endif 300afe61c15SRodney W. Grimes 301afe61c15SRodney W. Grimes.if !target(lint) 302b25a566dSRuslan Ermilovlint: ${SRCS:M*.c} 3035741a42fSMark Murray ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 304afe61c15SRodney W. Grimes.endif 305afe61c15SRodney W. Grimes 306e1fe3dbaSRuslan Ermilov.if ${MK_MAN} != "no" 307afe61c15SRodney W. Grimes.include <bsd.man.mk> 308918fb560SRuslan Ermilov.endif 3093585b293SGarrett Wollman 3103585b293SGarrett Wollman.include <bsd.dep.mk> 31114172e46SBruce Evans 31288505e11SRuslan Ermilov.if !exists(${.OBJDIR}/${DEPENDFILE}) 3134d7d5e7cSRuslan Ermilov.if defined(LIB) && !empty(LIB) 3144d7d5e7cSRuslan Ermilov${OBJS} ${STATICOBJS} ${POBJS}: ${SRCS:M*.h} 3156b14fdfaSRuslan Ermilov.for _S in ${SRCS:N*.[hly]} 3166b14fdfaSRuslan Ermilov${_S:R}.po: ${_S} 3176b14fdfaSRuslan Ermilov.endfor 3184d7d5e7cSRuslan Ermilov.endif 3194d7d5e7cSRuslan Ermilov.if defined(SHLIB_NAME) || \ 3204d7d5e7cSRuslan Ermilov defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) 3214d7d5e7cSRuslan Ermilov${SOBJS}: ${SRCS:M*.h} 3226b14fdfaSRuslan Ermilov.for _S in ${SRCS:N*.[hly]} 3236b14fdfaSRuslan Ermilov${_S:R}.So: ${_S} 3246b14fdfaSRuslan Ermilov.endfor 32514172e46SBruce Evans.endif 3262a53f3fbSRuslan Ermilov.endif 32714172e46SBruce Evans 328397304feSRuslan Ermilov.if !target(clean) 329397304feSRuslan Ermilovclean: 330397304feSRuslan Ermilov.if defined(CLEANFILES) && !empty(CLEANFILES) 331397304feSRuslan Ermilov rm -f ${CLEANFILES} 332397304feSRuslan Ermilov.endif 333397304feSRuslan Ermilov.if defined(LIB) && !empty(LIB) 334397304feSRuslan Ermilov rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS} 335397304feSRuslan Ermilov.endif 336397304feSRuslan Ermilov.if !defined(INTERNALLIB) 3375740a2b6SRuslan Ermilov.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB) 338397304feSRuslan Ermilov rm -f ${POBJS} ${POBJS:S/$/.tmp/} 339397304feSRuslan Ermilov.endif 340397304feSRuslan Ermilov.if defined(SHLIB_NAME) || \ 341397304feSRuslan Ermilov defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) 342397304feSRuslan Ermilov rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/} 343397304feSRuslan Ermilov.endif 344397304feSRuslan Ermilov.if defined(SHLIB_NAME) 345397304feSRuslan Ermilov.if defined(SHLIB_LINK) 346397304feSRuslan Ermilov rm -f ${SHLIB_LINK} 347397304feSRuslan Ermilov.endif 348397304feSRuslan Ermilov.if defined(LIB) && !empty(LIB) 349397304feSRuslan Ermilov rm -f lib${LIB}.so.* lib${LIB}.so 350397304feSRuslan Ermilov.endif 351397304feSRuslan Ermilov.endif 352397304feSRuslan Ermilov.if defined(WANT_LINT) && defined(LIB) && !empty(LIB) 353397304feSRuslan Ermilov rm -f ${LINTOBJS} 354397304feSRuslan Ermilov.endif 35584aac273SHartmut Brandt.endif # !defined(INTERNALLIB) 356397304feSRuslan Ermilov.if defined(_LIBS) && !empty(_LIBS) 357397304feSRuslan Ermilov rm -f ${_LIBS} 358397304feSRuslan Ermilov.endif 359397304feSRuslan Ermilov.if defined(CLEANDIRS) && !empty(CLEANDIRS) 360397304feSRuslan Ermilov rm -rf ${CLEANDIRS} 361397304feSRuslan Ermilov.endif 362add47b95SDag-Erling Smørgrav.if !empty(VERSION_DEF) && !empty(SYMBOL_MAPS) 363add47b95SDag-Erling Smørgrav rm -f ${VERSION_MAP} 364add47b95SDag-Erling Smørgrav.endif 365397304feSRuslan Ermilov.endif 366397304feSRuslan Ermilov 367cd9a2f5cSJordan K. Hubbard.include <bsd.obj.mk> 368d510ecb4SKris Kennaway 369d510ecb4SKris Kennaway.include <bsd.sys.mk> 370