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 73585b293SGarrett Wollman.if exists(${.CURDIR}/shlib_version) 83585b293SGarrett WollmanSHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major 9cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout 103585b293SGarrett WollmanSHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor 113585b293SGarrett Wollman.endif 128c05a446SPeter Wemm.endif 133585b293SGarrett Wollman 14f67eb0dcSJohn Polstra# Set up the variables controlling shared libraries. After this section, 15f67eb0dcSJohn Polstra# SHLIB_NAME will be defined only if we are to create a shared library. 16f67eb0dcSJohn Polstra# SHLIB_LINK will be defined only if we are to create a link to it. 17f67eb0dcSJohn Polstra# INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive. 18f67eb0dcSJohn Polstra.if defined(NOPIC) 19f67eb0dcSJohn Polstra.undef SHLIB_NAME 20f67eb0dcSJohn Polstra.undef INSTALL_PIC_ARCHIVE 21f67eb0dcSJohn Polstra.else 22f67eb0dcSJohn Polstra.if ${OBJFORMAT} == elf 23f67eb0dcSJohn Polstra.if !defined(SHLIB_NAME) && defined(SHLIB_MAJOR) 24f67eb0dcSJohn PolstraSHLIB_NAME= lib${LIB}.so.${SHLIB_MAJOR} 25f67eb0dcSJohn PolstraSHLIB_LINK?= lib${LIB}.so 26f67eb0dcSJohn Polstra.endif 27f67eb0dcSJohn PolstraSONAME?= ${SHLIB_NAME} 28f67eb0dcSJohn Polstra.else 29f67eb0dcSJohn Polstra.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) 30f67eb0dcSJohn PolstraSHLIB_NAME?= lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} 31f67eb0dcSJohn Polstra.endif 32f67eb0dcSJohn Polstra.endif 33e782d0b5SPeter Wemm.endif 34e782d0b5SPeter Wemm 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 43368c8de4SJohn Polstra.if ${OBJFORMAT} != aout || make(checkdpadd) || defined(NEED_LIBNAMES) 441a5ed802SBruce Evans.include <bsd.libnames.mk> 45e3ace70eSBruce Evans.endif 461a5ed802SBruce Evans 47afe61c15SRodney W. Grimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 48f92bdbd0SJohn Polstra# .So used for PIC object files 49afe61c15SRodney W. Grimes.SUFFIXES: 50e517d11eSDavid E. O'Brien.SUFFIXES: .out .o .po .So .S .s .asm .c .cc .cpp .cxx .m .C .f .y .l .ln 51766f7d6eSMark Murray 52766f7d6eSMark Murray.c.ln: 53766f7d6eSMark Murray ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \ 54766f7d6eSMark Murray touch ${.TARGET} 55766f7d6eSMark Murray 56766f7d6eSMark Murray.cc.ln .C.ln .cpp.ln .cxx.ln: 57bbb467cdSRuslan Ermilov ${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \ 58766f7d6eSMark Murray touch ${.TARGET} 59afe61c15SRodney W. Grimes 60afe61c15SRodney W. Grimes.c.o: 613585b293SGarrett Wollman ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 62d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 63d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 64afe61c15SRodney W. Grimes 65afe61c15SRodney W. Grimes.c.po: 669c8ff5b5SJohn Polstra ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 67d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 68d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 69afe61c15SRodney W. Grimes 70f92bdbd0SJohn Polstra.c.So: 713585b293SGarrett Wollman ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 72d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 73d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 743585b293SGarrett Wollman 75c7cbe79eSDmitrij Tejblum.cc.o .C.o .cpp.o .cxx.o: 763585b293SGarrett Wollman ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 77d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 78d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 793585b293SGarrett Wollman 80c7cbe79eSDmitrij Tejblum.cc.po .C.po .cpp.po .cxx.po: 819c8ff5b5SJohn Polstra ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 82d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 83d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 843585b293SGarrett Wollman 85f92bdbd0SJohn Polstra.cc.So .C.So .cpp.So .cxx.So: 863585b293SGarrett Wollman ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 87d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 88d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 893585b293SGarrett Wollman 903585b293SGarrett Wollman.f.o: 913585b293SGarrett Wollman ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 92d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 93d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 943585b293SGarrett Wollman 953585b293SGarrett Wollman.f.po: 969c8ff5b5SJohn Polstra ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 97d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 98d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 993585b293SGarrett Wollman 100f92bdbd0SJohn Polstra.f.So: 1013585b293SGarrett Wollman ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 102d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 103d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1043585b293SGarrett Wollman 10570a6e331SBruce Evans.m.o: 10670a6e331SBruce Evans ${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} 107d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 108d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 10970a6e331SBruce Evans 11070a6e331SBruce Evans.m.po: 11170a6e331SBruce Evans ${OBJC} ${OBJCFLAGS} -pg -c ${.IMPSRC} -o ${.TARGET} 112d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 113d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 11470a6e331SBruce Evans 115f92bdbd0SJohn Polstra.m.So: 11670a6e331SBruce Evans ${OBJC} ${PICFLAG} -DPIC ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} 117d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 118d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 11970a6e331SBruce Evans 12072d54907SRuslan Ermilov.s.o .asm.o: 121e1eecc08SSatoshi Asami ${CC} -x assembler-with-cpp ${CFLAGS:M-[BID]*} ${AINC} -c \ 1226ba7f9ffSPeter Wemm ${.IMPSRC} -o ${.TARGET} 123d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 124d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 125afe61c15SRodney W. Grimes 12672d54907SRuslan Ermilov.s.po .asm.po: 127e1eecc08SSatoshi Asami ${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c \ 1286ba7f9ffSPeter Wemm ${.IMPSRC} -o ${.TARGET} 129d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 130d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 131afe61c15SRodney W. Grimes 13272d54907SRuslan Ermilov.s.So .asm.So: 1332738ffebSMark Murray ${CC} -x assembler-with-cpp ${PICFLAG} -DPIC ${CFLAGS:M-[BID]*} \ 1342738ffebSMark Murray ${AINC} -c ${.IMPSRC} -o ${.TARGET} 135d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 136d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1373585b293SGarrett Wollman 1383585b293SGarrett Wollman.S.o: 139e1eecc08SSatoshi Asami ${CC} ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 140d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 141d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1423585b293SGarrett Wollman 1433585b293SGarrett Wollman.S.po: 144e1eecc08SSatoshi Asami ${CC} -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET} 145d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 146d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1473585b293SGarrett Wollman 148f92bdbd0SJohn Polstra.S.So: 1492738ffebSMark Murray ${CC} ${PICFLAG} -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} \ 1502738ffebSMark Murray -o ${.TARGET} 151d9eb0d4dSPeter Wemm @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 152d9eb0d4dSPeter Wemm @mv ${.TARGET}.tmp ${.TARGET} 1533585b293SGarrett Wollman 154ac1a8b47SGarrett Wollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB) 15566415998SGarrett Wollman.if !defined(NOPROFILE) && !defined(INTERNALLIB) 156afe61c15SRodney W. Grimes_LIBS=lib${LIB}.a lib${LIB}_p.a 157afe61c15SRodney W. Grimes.else 158afe61c15SRodney W. Grimes_LIBS=lib${LIB}.a 159afe61c15SRodney W. Grimes.endif 160ac1a8b47SGarrett Wollman.endif 161afe61c15SRodney W. Grimes 162f67eb0dcSJohn Polstra.if defined(SHLIB_NAME) 163f67eb0dcSJohn Polstra_LIBS+=${SHLIB_NAME} 1648c05a446SPeter Wemm.endif 1653585b293SGarrett Wollman.if defined(INSTALL_PIC_ARCHIVE) 1663585b293SGarrett Wollman_LIBS+=lib${LIB}_pic.a 1673585b293SGarrett Wollman.endif 168afe61c15SRodney W. Grimes 1693585b293SGarrett Wollman.if !defined(PICFLAG) 170e3ed55f8SDavid E. O'Brien.if ${MACHINE_ARCH} == "sparc64" 171e3ed55f8SDavid E. O'BrienPICFLAG=-fPIC 172e3ed55f8SDavid E. O'Brien.else 1733585b293SGarrett WollmanPICFLAG=-fpic 1743585b293SGarrett Wollman.endif 175e3ed55f8SDavid E. O'Brien.endif 1763585b293SGarrett Wollman 1773b9a798fSDavid E. O'BrienLINTOBJS+= ${SRCS:M*.c:C/\..+$/.ln/} 1783b9a798fSDavid E. O'Brien 1793b9a798fSDavid E. O'Brien.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && !empty(LINTOBJS) 1803b9a798fSDavid E. O'BrienLINTLIB=llib-l${LIB}.ln 1813b9a798fSDavid E. O'Brien_LIBS+=${LINTLIB} 1823b9a798fSDavid E. O'Brien.endif 1833b9a798fSDavid E. O'Brien 184b25a566dSRuslan Ermilovall: objwarn ${_LIBS} 185b25a566dSRuslan Ermilov 186b139be25SRuslan Ermilov.if !defined(NOMAN) 187b25a566dSRuslan Ermilovall: all-man 188b139be25SRuslan Ermilov.endif 1893585b293SGarrett Wollman 1903585b293SGarrett WollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 191afe61c15SRodney W. Grimes 192f67eb0dcSJohn Polstralib${LIB}.a:: ${OBJS} ${STATICOBJS} 193f45b036fSPeter Wemm @${ECHO} building static ${LIB} library 194afe61c15SRodney W. Grimes @rm -f lib${LIB}.a 195f67eb0dcSJohn Polstra @${AR} cq lib${LIB}.a `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} 1963585b293SGarrett Wollman ${RANLIB} lib${LIB}.a 197afe61c15SRodney W. Grimes 198f67eb0dcSJohn PolstraPOBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po} 1991cfd4a8bSPeter Wemm.if !defined(NOPROFILE) 200afe61c15SRodney W. Grimeslib${LIB}_p.a:: ${POBJS} 20180c02d59SBruce Evans @${ECHO} building profiled ${LIB} library 202afe61c15SRodney W. Grimes @rm -f lib${LIB}_p.a 20362eba876SJordan K. Hubbard @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD} 2043585b293SGarrett Wollman ${RANLIB} lib${LIB}_p.a 20586af0db9SBruce Evans.endif 2063585b293SGarrett Wollman 207f92bdbd0SJohn PolstraSOBJS+= ${OBJS:.o=.So} 2088c05a446SPeter Wemm 209f67eb0dcSJohn Polstra.if defined(SHLIB_NAME) 210f67eb0dcSJohn Polstra${SHLIB_NAME}: ${SOBJS} 211f67eb0dcSJohn Polstra @${ECHO} building shared library ${SHLIB_NAME} 212f67eb0dcSJohn Polstra @rm -f ${SHLIB_NAME} ${SHLIB_LINK} 213f67eb0dcSJohn Polstra.if defined(SHLIB_LINK) 214f67eb0dcSJohn Polstra @ln -sf ${SHLIB_NAME} ${SHLIB_LINK} 215f67eb0dcSJohn Polstra.endif 216cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout 217ea5c0da9SRuslan Ermilov @${CC} -shared -Wl,-x,-assert,pure-text \ 218f67eb0dcSJohn Polstra -o ${SHLIB_NAME} \ 219ea5c0da9SRuslan Ermilov `lorder ${SOBJS} | tsort -q` ${LDADD} 2208c05a446SPeter Wemm.else 221ea5c0da9SRuslan Ermilov @${CC} -shared -Wl,-x \ 222f67eb0dcSJohn Polstra -o ${SHLIB_NAME} -Wl,-soname,${SONAME} \ 223ea5c0da9SRuslan Ermilov `lorder ${SOBJS} | tsort -q` ${LDADD} 2248c05a446SPeter Wemm.endif 225f67eb0dcSJohn Polstra.endif 2263585b293SGarrett Wollman 227f67eb0dcSJohn Polstra.if defined(INSTALL_PIC_ARCHIVE) 2283585b293SGarrett Wollmanlib${LIB}_pic.a:: ${SOBJS} 22980c02d59SBruce Evans @${ECHO} building special pic ${LIB} library 2303585b293SGarrett Wollman @rm -f lib${LIB}_pic.a 2310cd12228SAndrey A. Chernov @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD} 2323585b293SGarrett Wollman ${RANLIB} lib${LIB}_pic.a 23386af0db9SBruce Evans.endif 234afe61c15SRodney W. Grimes 235bbb467cdSRuslan Ermilov.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && !empty(LINTOBJS) 236766f7d6eSMark Murray${LINTLIB}: ${LINTOBJS} 237bbb467cdSRuslan Ermilov @${ECHO} building lint library ${LINTLIB} 238766f7d6eSMark Murray @rm -f ${LINTLIB} 239766f7d6eSMark Murray ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 240766f7d6eSMark Murray.endif 241afe61c15SRodney W. Grimes 242afe61c15SRodney W. Grimes.if !target(clean) 243b25a566dSRuslan Ermilovclean: 244f67eb0dcSJohn Polstra rm -f a.out ${OBJS} ${STATICOBJS} ${OBJS:S/$/.tmp/} ${CLEANFILES} 245bbb467cdSRuslan Ermilov rm -f lib${LIB}.a 2461cfd4a8bSPeter Wemm rm -f ${POBJS} ${POBJS:S/$/.tmp/} lib${LIB}_p.a 247f92bdbd0SJohn Polstra rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/} \ 248f67eb0dcSJohn Polstra ${SHLIB_NAME} ${SHLIB_LINK} \ 249f92bdbd0SJohn Polstra lib${LIB}.so.* lib${LIB}.so lib${LIB}_pic.a 250766f7d6eSMark Murray rm -f ${LINTOBJS} ${LINTLIB} 251209396dfSPoul-Henning Kamp.if defined(CLEANDIRS) && !empty(CLEANDIRS) 2522b9cd238SPoul-Henning Kamp rm -rf ${CLEANDIRS} 2532b9cd238SPoul-Henning Kamp.endif 254afe61c15SRodney W. Grimes.endif 255afe61c15SRodney W. Grimes 256fcccc50bSBruce Evans_EXTRADEPEND: 257663e9677SBruce Evans @TMP=_depend$$$$; \ 258f92bdbd0SJohn Polstra sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \ 259663e9677SBruce Evans > $$TMP; \ 260663e9677SBruce Evans mv $$TMP ${DEPENDFILE} 261f67eb0dcSJohn Polstra.if !defined(NOEXTRADEPEND) && defined(SHLIB_NAME) 262cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout 263f67eb0dcSJohn Polstra echo ${SHLIB_NAME}: \ 264ea5c0da9SRuslan Ermilov `${CC} -shared -Wl,-f ${LDADD}` \ 265ef431e2eSJohn Polstra >> ${DEPENDFILE} 2668c05a446SPeter Wemm.else 267e3ace70eSBruce Evans.if defined(DPADD) && !empty(DPADD) 268f67eb0dcSJohn Polstra echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE} 2698c05a446SPeter Wemm.endif 2708c05a446SPeter Wemm.endif 2712799473bSSatoshi Asami.endif 272afe61c15SRodney W. Grimes 273afe61c15SRodney W. Grimes.if !target(install) 274afe61c15SRodney W. Grimes.if !target(beforeinstall) 275fccf86c1SRodney W. Grimesbeforeinstall: _includeinstall 276fccf86c1SRodney W. Grimes.endif 277fccf86c1SRodney W. Grimes 278fccf86c1SRodney W. Grimes_includeinstall: 279fccf86c1SRodney W. Grimes.if defined(INCS) 280fccf86c1SRodney W. Grimes.for header in ${INCS} 281fccf86c1SRodney W. Grimes cd ${.CURDIR} && \ 282fccf86c1SRodney W. Grimes ${INSTALL} -C -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} \ 283fccf86c1SRodney W. Grimes ${header} ${DESTDIR}${INCDIR} 284fccf86c1SRodney W. Grimes.endfor 285afe61c15SRodney W. Grimes.endif 286afe61c15SRodney W. Grimes 2870099533aSJohn-Mark Gurney.if defined(PRECIOUSLIB) && !defined(NOFSCHG) 288c59ae063SGarrett WollmanSHLINSTALLFLAGS+= -fschg 289c59ae063SGarrett Wollman.endif 290c59ae063SGarrett Wollman 291e902c1bbSTim Vanderhoek_INSTALLFLAGS:= ${INSTALLFLAGS} 292e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT} 293e902c1bbSTim Vanderhoek_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} 294e902c1bbSTim Vanderhoek.endfor 2951a66233dSRuslan Ermilov_SHLINSTALLFLAGS:= ${SHLINSTALLFLAGS} 296e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT} 297e902c1bbSTim Vanderhoek_SHLINSTALLFLAGS:= ${_SHLINSTALLFLAGS${ie}} 298e902c1bbSTim Vanderhoek.endfor 299e902c1bbSTim Vanderhoek 300afe61c15SRodney W. Grimesrealinstall: beforeinstall 301b25a566dSRuslan Ermilovrealinstall: _libinstall 302b25a566dSRuslan Ermilov_libinstall: 303c59ae063SGarrett Wollman.if !defined(INTERNALLIB) 3048fd9852bSDag-Erling Smørgrav ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 305e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR} 306afe61c15SRodney W. Grimes.if !defined(NOPROFILE) 3078fd9852bSDag-Erling Smørgrav ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 308e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR} 309afe61c15SRodney W. Grimes.endif 310c59ae063SGarrett Wollman.endif 311f67eb0dcSJohn Polstra.if defined(SHLIB_NAME) 3120099533aSJohn-Mark Gurney ${INSTALL} ${COPY} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 313e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \ 314f67eb0dcSJohn Polstra ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR} 315f67eb0dcSJohn Polstra.if defined(SHLIB_LINK) 3162336a7eaSBruce Evans ln -sf ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK} 3178c05a446SPeter Wemm.endif 3188c05a446SPeter Wemm.endif 3193585b293SGarrett Wollman.if defined(INSTALL_PIC_ARCHIVE) 3203585b293SGarrett Wollman ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 321e902c1bbSTim Vanderhoek ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR} 3223585b293SGarrett Wollman.endif 323afe61c15SRodney W. Grimes.if defined(LINKS) && !empty(LINKS) 324afe61c15SRodney W. Grimes @set ${LINKS}; \ 325afe61c15SRodney W. Grimes while test $$# -ge 2; do \ 326afe61c15SRodney W. Grimes l=${DESTDIR}$$1; \ 327afe61c15SRodney W. Grimes shift; \ 328afe61c15SRodney W. Grimes t=${DESTDIR}$$1; \ 329afe61c15SRodney W. Grimes shift; \ 33080c02d59SBruce Evans ${ECHO} $$t -\> $$l; \ 3312336a7eaSBruce Evans ln -f $$l $$t; \ 3322336a7eaSBruce Evans done; true 3332336a7eaSBruce Evans.endif 3342336a7eaSBruce Evans.if defined(SYMLINKS) && !empty(SYMLINKS) 3352336a7eaSBruce Evans @set ${SYMLINKS}; \ 3362336a7eaSBruce Evans while test $$# -ge 2; do \ 3372336a7eaSBruce Evans l=$$1; \ 3382336a7eaSBruce Evans shift; \ 3392336a7eaSBruce Evans t=${DESTDIR}$$1; \ 3402336a7eaSBruce Evans shift; \ 3412336a7eaSBruce Evans ${ECHO} $$t -\> $$l; \ 3422336a7eaSBruce Evans ln -fs $$l $$t; \ 343afe61c15SRodney W. Grimes done; true 344afe61c15SRodney W. Grimes.endif 345bbb467cdSRuslan Ermilov.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && !empty(LINTOBJS) 346766f7d6eSMark Murray ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 347766f7d6eSMark Murray ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR} 348766f7d6eSMark Murray.endif 349afe61c15SRodney W. Grimes 350b25a566dSRuslan Ermilovinstall: afterinstall 3513585b293SGarrett Wollmanafterinstall: realinstall 352b25a566dSRuslan Ermilov.if !defined(NOMAN) 353b25a566dSRuslan Ermilovafterinstall: maninstall 354afe61c15SRodney W. Grimes.endif 355afe61c15SRodney W. Grimes.endif 356afe61c15SRodney W. Grimes 357d9584d76SJordan K. HubbardDISTRIBUTION?= bin 35855ff8fb1SPoul-Henning Kamp.if !target(distribute) 359b25a566dSRuslan Ermilovdistribute: 360398ac038SJordan K. Hubbard.for dist in ${DISTRIBUTION} 361398ac038SJordan K. Hubbard cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 362398ac038SJordan K. Hubbard.endfor 36355ff8fb1SPoul-Henning Kamp.endif 36455ff8fb1SPoul-Henning Kamp 365afe61c15SRodney W. Grimes.if !target(lint) 366b25a566dSRuslan Ermilovlint: ${SRCS:M*.c} 367bbb467cdSRuslan Ermilov ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 368afe61c15SRodney W. Grimes.endif 369afe61c15SRodney W. Grimes 3703585b293SGarrett Wollman.if !defined(NOMAN) 371afe61c15SRodney W. Grimes.include <bsd.man.mk> 372918fb560SRuslan Ermilov.endif 3733585b293SGarrett Wollman 3743585b293SGarrett Wollman.include <bsd.dep.mk> 37514172e46SBruce Evans 37688505e11SRuslan Ermilov.if !exists(${.OBJDIR}/${DEPENDFILE}) 377f67eb0dcSJohn Polstra${OBJS} ${STATICOBJS} ${POBJS} ${SOBJS}: ${SRCS:M*.h} 37814172e46SBruce Evans.endif 37914172e46SBruce Evans 380cd9a2f5cSJordan K. Hubbard.include <bsd.obj.mk> 381d510ecb4SKris Kennaway 382d510ecb4SKris Kennaway.include <bsd.sys.mk> 383