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 15f67eb0dcSJohn Polstra.if ${OBJFORMAT} == elf 16f67eb0dcSJohn Polstra.if !defined(SHLIB_NAME) && defined(SHLIB_MAJOR) 17f67eb0dcSJohn PolstraSHLIB_NAME= lib${LIB}.so.${SHLIB_MAJOR} 18f67eb0dcSJohn PolstraSHLIB_LINK?= lib${LIB}.so 19f67eb0dcSJohn Polstra.endif 20f67eb0dcSJohn PolstraSONAME?= ${SHLIB_NAME} 21f67eb0dcSJohn Polstra.else 22f67eb0dcSJohn Polstra.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 23f67eb0dcSJohn PolstraSHLIB_NAME?= lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 24f67eb0dcSJohn Polstra.endif 25f67eb0dcSJohn Polstra.endif 26e782d0b5SPeter Wemm.endif 27e782d0b5SPeter Wemm 28e82b0b99SJordan K. Hubbard.if defined(DEBUG_FLAGS) 29e82b0b99SJordan K. HubbardCFLAGS+= ${DEBUG_FLAGS} 30e82b0b99SJordan K. Hubbard.endif 31e82b0b99SJordan K. Hubbard 32e82b0b99SJordan K. Hubbard.if !defined(DEBUG_FLAGS) 33afe61c15SRodney W. GrimesSTRIP?= -s 34e82b0b99SJordan K. Hubbard.endif 35afe61c15SRodney W. Grimes 36368c8de4SJohn Polstra.if ${OBJFORMAT} != aout || make(checkdpadd) || defined(NEED_LIBNAMES) 371a5ed802SBruce Evans.include <bsd.libnames.mk> 38e3ace70eSBruce Evans.endif 391a5ed802SBruce Evans 40afe61c15SRodney W. Grimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 41f92bdbd0SJohn Polstra# .So used for PIC object files 42afe61c15SRodney W. Grimes.SUFFIXES: 43e517d11eSDavid E. O'Brien.SUFFIXES: .out .o .po .So .S .s .asm .c .cc .cpp .cxx .m .C .f .y .l .ln 44766f7d6eSMark Murray 452a53f3fbSRuslan Ermilov.if !defined(PICFLAG) 462a53f3fbSRuslan Ermilov.if ${MACHINE_ARCH} == "sparc64" 472a53f3fbSRuslan ErmilovPICFLAG=-fPIC 482a53f3fbSRuslan Ermilov.else 492a53f3fbSRuslan ErmilovPICFLAG=-fpic 502a53f3fbSRuslan Ermilov.endif 512a53f3fbSRuslan Ermilov.endif 522a53f3fbSRuslan Ermilov 53766f7d6eSMark Murray.c.ln: 54766f7d6eSMark Murray ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \ 55766f7d6eSMark Murray touch ${.TARGET} 56766f7d6eSMark Murray 57766f7d6eSMark Murray.cc.ln .C.ln .cpp.ln .cxx.ln: 58bbb467cdSRuslan Ermilov ${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \ 59766f7d6eSMark Murray touch ${.TARGET} 60afe61c15SRodney W. Grimes 61afe61c15SRodney W. Grimes.c.o: 623585b293SGarrett Wollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 63d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 64d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 65afe61c15SRodney W. Grimes 66afe61c15SRodney W. Grimes.c.po: 679c8ff5b5SJohn Polstra ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 68d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 69d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 70afe61c15SRodney W. Grimes 71f92bdbd0SJohn Polstra.c.So: 723585b293SGarrett Wollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 73d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} 74d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 753585b293SGarrett Wollman 76c7cbe79eSDmitrij Tejblum.cc.o .C.o .cpp.o .cxx.o: 773585b293SGarrett Wollman ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 78d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 79d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 803585b293SGarrett Wollman 81c7cbe79eSDmitrij Tejblum.cc.po .C.po .cpp.po .cxx.po: 829c8ff5b5SJohn Polstra ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 83d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 84d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 853585b293SGarrett Wollman 86f92bdbd0SJohn Polstra.cc.So .C.So .cpp.So .cxx.So: 873585b293SGarrett Wollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 88d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} 89d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 903585b293SGarrett Wollman 913585b293SGarrett Wollman.f.o: 923585b293SGarrett Wollman ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 93d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 94d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 953585b293SGarrett Wollman 963585b293SGarrett Wollman.f.po: 979c8ff5b5SJohn Polstra ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 98d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 99d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1003585b293SGarrett Wollman 101f92bdbd0SJohn Polstra.f.So: 1023585b293SGarrett Wollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 103d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} 104d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1053585b293SGarrett Wollman 10670a6e331SBruce Evans.m.o: 10770a6e331SBruce Evans ${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} 108d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 109d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 11070a6e331SBruce Evans 11170a6e331SBruce Evans.m.po: 11270a6e331SBruce Evans ${OBJC} ${OBJCFLAGS} -pg -c ${.IMPSRC} -o ${.TARGET} 113d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 114d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 11570a6e331SBruce Evans 116f92bdbd0SJohn Polstra.m.So: 11770a6e331SBruce Evans ${OBJC} ${PICFLAG} -DPIC ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} 118d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} 119d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 12070a6e331SBruce Evans 12172d54907SRuslan Ermilov.s.o .asm.o: 12279273cd7SRuslan Ermilov ${CC} -x assembler-with-cpp ${CFLAGS} ${AINC} -c \ 1236ba7f9ffSPeter Wemm ${.IMPSRC} -o ${.TARGET} 124d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} 125d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 126afe61c15SRodney W. Grimes 12772d54907SRuslan Ermilov.s.po .asm.po: 12879273cd7SRuslan Ermilov ${CC} -x assembler-with-cpp -DPROF ${CFLAGS} ${AINC} -c \ 1296ba7f9ffSPeter Wemm ${.IMPSRC} -o ${.TARGET} 130d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -X -r ${.TARGET} 131d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 132afe61c15SRodney W. Grimes 13372d54907SRuslan Ermilov.s.So .asm.So: 13479273cd7SRuslan Ermilov ${CC} -x assembler-with-cpp ${PICFLAG} -DPIC ${CFLAGS} \ 1352738ffebSMark Murray ${AINC} -c ${.IMPSRC} -o ${.TARGET} 136d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 137d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1383585b293SGarrett Wollman 1393585b293SGarrett Wollman.S.o: 14079273cd7SRuslan Ermilov ${CC} ${CFLAGS} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 141d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} 142d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1433585b293SGarrett Wollman 1443585b293SGarrett Wollman.S.po: 14579273cd7SRuslan Ermilov ${CC} -DPROF ${CFLAGS} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 146d23aa1efSDavid E. O'Brien @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -X -r ${.TARGET} 147d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1483585b293SGarrett Wollman 149f92bdbd0SJohn Polstra.S.So: 15079273cd7SRuslan Ermilov ${CC} ${PICFLAG} -DPIC ${CFLAGS} ${AINC} -c ${.IMPSRC} \ 1512738ffebSMark Murray -o ${.TARGET} 152d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 153d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1543585b293SGarrett Wollman 1552a53f3fbSRuslan Ermilovall: objwarn 1562a53f3fbSRuslan Ermilov 1572a53f3fbSRuslan Ermilov.if defined(LIB) && !empty(LIB) 1585aa23756SDavid E. O'Brien_LIBS= lib${LIB}.a 1592a53f3fbSRuslan ErmilovOBJS+= ${SRCS:N*.h:R:S/$/.o/} 160afe61c15SRodney W. Grimes 1612a53f3fbSRuslan Ermilovlib${LIB}.a: ${OBJS} ${STATICOBJS} 162f45b036fSPeter Wemm @${ECHO} building static ${LIB} library 1632a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 1642a53f3fbSRuslan Ermilov @${AR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} 1652a53f3fbSRuslan Ermilov ${RANLIB} ${.TARGET} 166afe61c15SRodney W. Grimes 1672a53f3fbSRuslan Ermilov.if !defined(INTERNALLIB) 1682a53f3fbSRuslan Ermilov 1691cfd4a8bSPeter Wemm.if !defined(NOPROFILE) 1702a53f3fbSRuslan Ermilov_LIBS+= lib${LIB}_p.a 1712a53f3fbSRuslan ErmilovPOBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po} 1722a53f3fbSRuslan Ermilov 1732a53f3fbSRuslan Ermilovlib${LIB}_p.a: ${POBJS} 17480c02d59SBruce Evans @${ECHO} building profiled ${LIB} library 1752a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 1762a53f3fbSRuslan Ermilov @${AR} cq ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD} 1772a53f3fbSRuslan Ermilov ${RANLIB} ${.TARGET} 17886af0db9SBruce Evans.endif 1793585b293SGarrett Wollman 180f92bdbd0SJohn PolstraSOBJS+= ${OBJS:.o=.So} 1818c05a446SPeter Wemm 182f67eb0dcSJohn Polstra.if defined(SHLIB_NAME) 1832a53f3fbSRuslan Ermilov_LIBS+= ${SHLIB_NAME} 1842a53f3fbSRuslan Ermilov 185f67eb0dcSJohn Polstra${SHLIB_NAME}: ${SOBJS} 186f67eb0dcSJohn Polstra @${ECHO} building shared library ${SHLIB_NAME} 1872a53f3fbSRuslan Ermilov @rm -f ${.TARGET} ${SHLIB_LINK} 188f67eb0dcSJohn Polstra.if defined(SHLIB_LINK) 1892a53f3fbSRuslan Ermilov @ln -fs ${.TARGET} ${SHLIB_LINK} 190f67eb0dcSJohn Polstra.endif 191cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout 192ea5c0da9SRuslan Ermilov @${CC} -shared -Wl,-x,-assert,pure-text \ 1932a53f3fbSRuslan Ermilov -o ${.TARGET} \ 194ea5c0da9SRuslan Ermilov `lorder ${SOBJS} | tsort -q` ${LDADD} 1958c05a446SPeter Wemm.else 196e20b0b73SDavid E. O'Brien @${CC} ${LDFLAGS} -shared -Wl,-x \ 1972a53f3fbSRuslan Ermilov -o ${.TARGET} -Wl,-soname,${SONAME} \ 198ea5c0da9SRuslan Ermilov `lorder ${SOBJS} | tsort -q` ${LDADD} 1998c05a446SPeter Wemm.endif 200f67eb0dcSJohn Polstra.endif 2013585b293SGarrett Wollman 202f67eb0dcSJohn Polstra.if defined(INSTALL_PIC_ARCHIVE) 2032a53f3fbSRuslan Ermilov_LIBS+= lib${LIB}_pic.a 2042a53f3fbSRuslan Ermilov 2052a53f3fbSRuslan Ermilovlib${LIB}_pic.a: ${SOBJS} 20680c02d59SBruce Evans @${ECHO} building special pic ${LIB} library 2072a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 2082a53f3fbSRuslan Ermilov @${AR} cq ${.TARGET} ${SOBJS} ${ARADD} 2092a53f3fbSRuslan Ermilov ${RANLIB} ${.TARGET} 21086af0db9SBruce Evans.endif 211afe61c15SRodney W. Grimes 2122a53f3fbSRuslan Ermilov.if defined(WANT_LINT) 2132a53f3fbSRuslan ErmilovLINTLIB= llib-l${LIB}.ln 2142a53f3fbSRuslan Ermilov_LIBS+= ${LINTLIB} 2152a53f3fbSRuslan ErmilovLINTOBJS+= ${SRCS:M*.c:.c=.ln} 2162a53f3fbSRuslan Ermilov 217766f7d6eSMark Murray${LINTLIB}: ${LINTOBJS} 2182a53f3fbSRuslan Ermilov @${ECHO} building lint library ${.TARGET} 2192a53f3fbSRuslan Ermilov @rm -f ${.TARGET} 220766f7d6eSMark Murray ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 221766f7d6eSMark Murray.endif 222afe61c15SRodney W. Grimes 2232a53f3fbSRuslan Ermilov.endif !defined(INTERNALLIB) 2242a53f3fbSRuslan Ermilov 2252a53f3fbSRuslan Ermilovall: ${_LIBS} 2262a53f3fbSRuslan Ermilov 2272a53f3fbSRuslan Ermilov.endif defined(LIB) && !empty(LIB) 2282a53f3fbSRuslan Ermilov 2292a53f3fbSRuslan Ermilov.if !defined(NOMAN) 2302a53f3fbSRuslan Ermilovall: _manpages 231afe61c15SRodney W. Grimes.endif 232afe61c15SRodney W. Grimes 23312e0852aSRuslan Ermilov.if !target(clean) 23412e0852aSRuslan Ermilovclean: 235dd247f73SJuli Mallett.if defined(CLEANFILES) && !empty(CLEANFILES) 23612e0852aSRuslan Ermilov rm -f ${CLEANFILES} 237dd247f73SJuli Mallett.endif 23812e0852aSRuslan Ermilov.if defined(LIB) && !empty(LIB) 23912e0852aSRuslan Ermilov rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS} 24012e0852aSRuslan Ermilov.if !defined(INTERNALLIB) 24112e0852aSRuslan Ermilov.if !defined(NOPROFILE) 24212e0852aSRuslan Ermilov rm -f ${POBJS} ${POBJS:S/$/.tmp/} 24312e0852aSRuslan Ermilov.endif 24412e0852aSRuslan Ermilov rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/} 24512e0852aSRuslan Ermilov.if defined(SHLIB_NAME) 24612e0852aSRuslan Ermilov rm -f ${SHLIB_LINK} lib${LIB}.so.* lib${LIB}.so 24712e0852aSRuslan Ermilov.endif 24812e0852aSRuslan Ermilov.if defined(WANT_LINT) 24912e0852aSRuslan Ermilov rm -f ${LINTOBJS} 25012e0852aSRuslan Ermilov.endif 25112e0852aSRuslan Ermilov.endif !defined(INTERNALLIB) 25212e0852aSRuslan Ermilov rm -f ${_LIBS} 25312e0852aSRuslan Ermilov.endif defined(LIB) && !empty(LIB) 25412e0852aSRuslan Ermilov.if defined(CLEANDIRS) && !empty(CLEANDIRS) 25512e0852aSRuslan Ermilov rm -rf ${CLEANDIRS} 25612e0852aSRuslan Ermilov.endif 25712e0852aSRuslan Ermilov.endif 25812e0852aSRuslan Ermilov 259fcccc50bSBruce Evans_EXTRADEPEND: 260663e9677SBruce Evans @TMP=_depend$$$$; \ 261f92bdbd0SJohn Polstra sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \ 262663e9677SBruce Evans > $$TMP; \ 263663e9677SBruce Evans mv $$TMP ${DEPENDFILE} 264f67eb0dcSJohn Polstra.if !defined(NOEXTRADEPEND) && defined(SHLIB_NAME) 265cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout 266f67eb0dcSJohn Polstra echo ${SHLIB_NAME}: \ 267ea5c0da9SRuslan Ermilov `${CC} -shared -Wl,-f ${LDADD}` \ 268ef431e2eSJohn Polstra >> ${DEPENDFILE} 2698c05a446SPeter Wemm.else 270e3ace70eSBruce Evans.if defined(DPADD) && !empty(DPADD) 271f67eb0dcSJohn Polstra echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE} 2728c05a446SPeter Wemm.endif 2738c05a446SPeter Wemm.endif 2742799473bSSatoshi Asami.endif 275afe61c15SRodney W. Grimes 276afe61c15SRodney W. Grimes.if !target(install) 277afe61c15SRodney W. Grimes 2780099533aSJohn-Mark Gurney.if defined(PRECIOUSLIB) && !defined(NOFSCHG) 279c59ae063SGarrett WollmanSHLINSTALLFLAGS+= -fschg 280c59ae063SGarrett Wollman.endif 281c59ae063SGarrett Wollman 282e902c1bbSTim Vanderhoek_INSTALLFLAGS:= ${INSTALLFLAGS} 283e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT} 284e902c1bbSTim Vanderhoek_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} 285e902c1bbSTim Vanderhoek.endfor 2861a66233dSRuslan Ermilov_SHLINSTALLFLAGS:= ${SHLINSTALLFLAGS} 287e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT} 288e902c1bbSTim Vanderhoek_SHLINSTALLFLAGS:= ${_SHLINSTALLFLAGS${ie}} 289e902c1bbSTim Vanderhoek.endfor 290e902c1bbSTim Vanderhoek 2912a53f3fbSRuslan Ermilov.if defined(LIB) && !empty(LIB) && !defined(INTERNALLIB) 292b25a566dSRuslan Ermilovrealinstall: _libinstall 293b25a566dSRuslan Ermilov_libinstall: 2942a53f3fbSRuslan Ermilov.if !defined(NOINSTALLLIB) 2958fd9852bSDag-Erling Smørgrav ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 296e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 2972a53f3fbSRuslan Ermilov.endif 298afe61c15SRodney W. Grimes.if !defined(NOPROFILE) 2998fd9852bSDag-Erling Smørgrav ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 300e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 301afe61c15SRodney W. Grimes.endif 302f67eb0dcSJohn Polstra.if defined(SHLIB_NAME) 3030099533aSJohn-Mark Gurney ${INSTALL} ${COPY} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 304e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \ 305f67eb0dcSJohn Polstra ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR} 306f67eb0dcSJohn Polstra.if defined(SHLIB_LINK) 3072a53f3fbSRuslan Ermilov ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK} 3088c05a446SPeter Wemm.endif 3098c05a446SPeter Wemm.endif 3103585b293SGarrett Wollman.if defined(INSTALL_PIC_ARCHIVE) 3113585b293SGarrett Wollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 312e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 3133585b293SGarrett Wollman.endif 3142a53f3fbSRuslan Ermilov.if defined(WANT_LINT) 315c7b111cbSRuslan Ermilov ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 316c7b111cbSRuslan Ermilov ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR} 317c7b111cbSRuslan Ermilov.endif 3182a53f3fbSRuslan Ermilov.endif defined(LIB) && !empty(LIB) && !defined(INTERNALLIB) 319c7b111cbSRuslan Ermilov 320af2dc868SRuslan Ermilov.include <bsd.files.mk> 3215d862037SRuslan Ermilov.include <bsd.incs.mk> 32284f94a79SRuslan Ermilov.include <bsd.links.mk> 323afe61c15SRodney W. Grimes 324b90dab70SRuslan Ermilov.if !defined(NOMAN) 325afeaaa84SRuslan Ermilovrealinstall: _maninstall 326b90dab70SRuslan Ermilov.endif 327b90dab70SRuslan Ermilov 328afe61c15SRodney W. Grimes.endif 329afe61c15SRodney W. Grimes 330afe61c15SRodney W. Grimes.if !target(lint) 331b25a566dSRuslan Ermilovlint: ${SRCS:M*.c} 332bbb467cdSRuslan Ermilov ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 333afe61c15SRodney W. Grimes.endif 334afe61c15SRodney W. Grimes 3353585b293SGarrett Wollman.if !defined(NOMAN) 336afe61c15SRodney W. Grimes.include <bsd.man.mk> 337918fb560SRuslan Ermilov.endif 3383585b293SGarrett Wollman 3393585b293SGarrett Wollman.include <bsd.dep.mk> 34014172e46SBruce Evans 3412a53f3fbSRuslan Ermilov.if defined(LIB) && !empty(LIB) 34288505e11SRuslan Ermilov.if !exists(${.OBJDIR}/${DEPENDFILE}) 343f67eb0dcSJohn Polstra${OBJS} ${STATICOBJS} ${POBJS} ${SOBJS}: ${SRCS:M*.h} 34414172e46SBruce Evans.endif 3452a53f3fbSRuslan Ermilov.endif 34614172e46SBruce Evans 347cd9a2f5cSJordan K. Hubbard.include <bsd.obj.mk> 348d510ecb4SKris Kennaway 349d510ecb4SKris Kennaway.include <bsd.sys.mk> 350