xref: /freebsd/share/mk/bsd.lib.mk (revision 918fb560b426605f99adca2e6ee7a8189117edfc)
13585b293SGarrett Wollman#	from: @(#)bsd.lib.mk	5.26 (Berkeley) 5/2/91
27f3dea24SPeter Wemm# $FreeBSD$
33585b293SGarrett Wollman#
4afe61c15SRodney W. Grimes
5e0301e5dSPeter Wemm.if !target(__initialized__)
6e0301e5dSPeter Wemm__initialized__:
7afe61c15SRodney W. Grimes.if exists(${.CURDIR}/../Makefile.inc)
8afe61c15SRodney W. Grimes.include "${.CURDIR}/../Makefile.inc"
9afe61c15SRodney W. Grimes.endif
10e0301e5dSPeter Wemm.endif
11afe61c15SRodney W. Grimes
123585b293SGarrett Wollman.if exists(${.CURDIR}/shlib_version)
133585b293SGarrett WollmanSHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major
14cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout
153585b293SGarrett WollmanSHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor
163585b293SGarrett Wollman.endif
178c05a446SPeter Wemm.endif
183585b293SGarrett Wollman
19f67eb0dcSJohn Polstra# Set up the variables controlling shared libraries.  After this section,
20f67eb0dcSJohn Polstra# SHLIB_NAME will be defined only if we are to create a shared library.
21f67eb0dcSJohn Polstra# SHLIB_LINK will be defined only if we are to create a link to it.
22f67eb0dcSJohn Polstra# INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive.
23f67eb0dcSJohn Polstra.if defined(NOPIC)
24f67eb0dcSJohn Polstra.undef SHLIB_NAME
25f67eb0dcSJohn Polstra.undef INSTALL_PIC_ARCHIVE
26f67eb0dcSJohn Polstra.else
27f67eb0dcSJohn Polstra.if ${OBJFORMAT} == elf
28f67eb0dcSJohn Polstra.if !defined(SHLIB_NAME) && defined(SHLIB_MAJOR)
29f67eb0dcSJohn PolstraSHLIB_NAME=	lib${LIB}.so.${SHLIB_MAJOR}
30f67eb0dcSJohn PolstraSHLIB_LINK?=	lib${LIB}.so
31f67eb0dcSJohn Polstra.endif
32f67eb0dcSJohn PolstraSONAME?=	${SHLIB_NAME}
33f67eb0dcSJohn Polstra.else
34f67eb0dcSJohn Polstra.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR)
35f67eb0dcSJohn PolstraSHLIB_NAME?=	lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
36f67eb0dcSJohn Polstra.endif
37f67eb0dcSJohn Polstra.endif
38e782d0b5SPeter Wemm.endif
39e782d0b5SPeter Wemm
403585b293SGarrett Wollman.if defined(DESTDIR)
413585b293SGarrett WollmanCFLAGS+= -I${DESTDIR}/usr/include
4215db27b8SSatoshi AsamiCXXINCLUDES+= -I${DESTDIR}/usr/include/g++
433585b293SGarrett Wollman.endif
4480c02d59SBruce Evans
45e82b0b99SJordan K. Hubbard.if defined(DEBUG_FLAGS)
46e82b0b99SJordan K. HubbardCFLAGS+= ${DEBUG_FLAGS}
47e82b0b99SJordan K. Hubbard.endif
48e82b0b99SJordan K. Hubbard
49e82b0b99SJordan K. Hubbard.if !defined(DEBUG_FLAGS)
50afe61c15SRodney W. GrimesSTRIP?=	-s
51e82b0b99SJordan K. Hubbard.endif
52afe61c15SRodney W. Grimes
53368c8de4SJohn Polstra.if ${OBJFORMAT} != aout || make(checkdpadd) || defined(NEED_LIBNAMES)
541a5ed802SBruce Evans.include <bsd.libnames.mk>
55e3ace70eSBruce Evans.endif
561a5ed802SBruce Evans
57afe61c15SRodney W. Grimes.MAIN: all
58afe61c15SRodney W. Grimes
59afe61c15SRodney W. Grimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
60f92bdbd0SJohn Polstra# .So used for PIC object files
61afe61c15SRodney W. Grimes.SUFFIXES:
62a8e97da0SBruce Evans.SUFFIXES: .out .o .po .So .S .s .c .cc .cpp .cxx .m .C .f .y .l
63afe61c15SRodney W. Grimes
64afe61c15SRodney W. Grimes.c.o:
653585b293SGarrett Wollman	${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
66d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
67d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
68afe61c15SRodney W. Grimes
69afe61c15SRodney W. Grimes.c.po:
709c8ff5b5SJohn Polstra	${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
71d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
72d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
73afe61c15SRodney W. Grimes
74f92bdbd0SJohn Polstra.c.So:
753585b293SGarrett Wollman	${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
76d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
77d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
783585b293SGarrett Wollman
79c7cbe79eSDmitrij Tejblum.cc.o .C.o .cpp.o .cxx.o:
803585b293SGarrett Wollman	${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
81d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
82d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
833585b293SGarrett Wollman
84c7cbe79eSDmitrij Tejblum.cc.po .C.po .cpp.po .cxx.po:
859c8ff5b5SJohn Polstra	${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
86d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
87d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
883585b293SGarrett Wollman
89f92bdbd0SJohn Polstra.cc.So .C.So .cpp.So .cxx.So:
903585b293SGarrett Wollman	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
91d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
92d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
933585b293SGarrett Wollman
943585b293SGarrett Wollman.f.o:
953585b293SGarrett Wollman	${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
96d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
97d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
983585b293SGarrett Wollman
993585b293SGarrett Wollman.f.po:
1009c8ff5b5SJohn Polstra	${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
101d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
102d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
1033585b293SGarrett Wollman
104f92bdbd0SJohn Polstra.f.So:
1053585b293SGarrett Wollman	${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
106d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
107d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
1083585b293SGarrett Wollman
10970a6e331SBruce Evans.m.o:
11070a6e331SBruce Evans	${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET}
111d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
112d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
11370a6e331SBruce Evans
11470a6e331SBruce Evans.m.po:
11570a6e331SBruce Evans	${OBJC} ${OBJCFLAGS} -pg -c ${.IMPSRC} -o ${.TARGET}
116d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
117d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
11870a6e331SBruce Evans
119f92bdbd0SJohn Polstra.m.So:
12070a6e331SBruce Evans	${OBJC} ${PICFLAG} -DPIC ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET}
121d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
122d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
12370a6e331SBruce Evans
124afe61c15SRodney W. Grimes.s.o:
125e1eecc08SSatoshi Asami	${CC} -x assembler-with-cpp ${CFLAGS:M-[BID]*} ${AINC} -c \
1266ba7f9ffSPeter Wemm	    ${.IMPSRC} -o ${.TARGET}
127d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
128d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
129afe61c15SRodney W. Grimes
130afe61c15SRodney W. Grimes.s.po:
131e1eecc08SSatoshi Asami	${CC} -x assembler-with-cpp -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c \
1326ba7f9ffSPeter Wemm	    ${.IMPSRC} -o ${.TARGET}
133d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
134d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
135afe61c15SRodney W. Grimes
136f92bdbd0SJohn Polstra.s.So:
137e1eecc08SSatoshi Asami	${CC} -x assembler-with-cpp -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c \
1386ba7f9ffSPeter Wemm	    ${.IMPSRC} -o ${.TARGET}
139d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
140d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
1413585b293SGarrett Wollman
1423585b293SGarrett Wollman.S.o:
143e1eecc08SSatoshi Asami	${CC} ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET}
144d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
145d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
1463585b293SGarrett Wollman
1473585b293SGarrett Wollman.S.po:
148e1eecc08SSatoshi Asami	${CC} -DPROF ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET}
149d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
150d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
1513585b293SGarrett Wollman
152f92bdbd0SJohn Polstra.S.So:
153e1eecc08SSatoshi Asami	${CC} -fpic -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} -o ${.TARGET}
154d9eb0d4dSPeter Wemm	@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
155d9eb0d4dSPeter Wemm	@mv ${.TARGET}.tmp ${.TARGET}
1563585b293SGarrett Wollman
157ac1a8b47SGarrett Wollman.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB)
15866415998SGarrett Wollman.if !defined(NOPROFILE) && !defined(INTERNALLIB)
159afe61c15SRodney W. Grimes_LIBS=lib${LIB}.a lib${LIB}_p.a
160afe61c15SRodney W. Grimes.else
161afe61c15SRodney W. Grimes_LIBS=lib${LIB}.a
162afe61c15SRodney W. Grimes.endif
163ac1a8b47SGarrett Wollman.endif
164afe61c15SRodney W. Grimes
165f67eb0dcSJohn Polstra.if defined(SHLIB_NAME)
166f67eb0dcSJohn Polstra_LIBS+=${SHLIB_NAME}
1678c05a446SPeter Wemm.endif
1683585b293SGarrett Wollman.if defined(INSTALL_PIC_ARCHIVE)
1693585b293SGarrett Wollman_LIBS+=lib${LIB}_pic.a
1703585b293SGarrett Wollman.endif
171afe61c15SRodney W. Grimes
1723585b293SGarrett Wollman.if !defined(PICFLAG)
1733585b293SGarrett WollmanPICFLAG=-fpic
1743585b293SGarrett Wollman.endif
1753585b293SGarrett Wollman
176b139be25SRuslan Ermilov.if !defined(NOMAN)
177b3618bcfSSteven Wallaceall: objwarn ${_LIBS} all-man _SUBDIR # llib-l${LIB}.ln
178b139be25SRuslan Ermilov.else
179b139be25SRuslan Ermilovall: objwarn ${_LIBS} _SUBDIR # llib-l${LIB}.ln
180b139be25SRuslan Ermilov.endif
1813585b293SGarrett Wollman
1823585b293SGarrett WollmanOBJS+=	${SRCS:N*.h:R:S/$/.o/g}
183afe61c15SRodney W. Grimes
184f67eb0dcSJohn Polstralib${LIB}.a:: ${OBJS} ${STATICOBJS}
185f45b036fSPeter Wemm	@${ECHO} building static ${LIB} library
186afe61c15SRodney W. Grimes	@rm -f lib${LIB}.a
187f67eb0dcSJohn Polstra	@${AR} cq lib${LIB}.a `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
1883585b293SGarrett Wollman	${RANLIB} lib${LIB}.a
189afe61c15SRodney W. Grimes
190f67eb0dcSJohn PolstraPOBJS+=	${OBJS:.o=.po} ${STATICOBJS:.o=.po}
1911cfd4a8bSPeter Wemm.if !defined(NOPROFILE)
192afe61c15SRodney W. Grimeslib${LIB}_p.a:: ${POBJS}
19380c02d59SBruce Evans	@${ECHO} building profiled ${LIB} library
194afe61c15SRodney W. Grimes	@rm -f lib${LIB}_p.a
19562eba876SJordan K. Hubbard	@${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD}
1963585b293SGarrett Wollman	${RANLIB} lib${LIB}_p.a
19786af0db9SBruce Evans.endif
1983585b293SGarrett Wollman
1993585b293SGarrett Wollman.if defined(DESTDIR)
20031d33723SPeter WemmLDDESTDIRENV?=	LIBRARY_PATH=${DESTDIR}${SHLIBDIR}:${DESTDIR}${LIBDIR}
2013585b293SGarrett Wollman.endif
2023585b293SGarrett Wollman
203f92bdbd0SJohn PolstraSOBJS+= ${OBJS:.o=.So}
2048c05a446SPeter Wemm
205f67eb0dcSJohn Polstra.if defined(SHLIB_NAME)
206f67eb0dcSJohn Polstra${SHLIB_NAME}: ${SOBJS}
207f67eb0dcSJohn Polstra	@${ECHO} building shared library ${SHLIB_NAME}
208f67eb0dcSJohn Polstra	@rm -f ${SHLIB_NAME} ${SHLIB_LINK}
209f67eb0dcSJohn Polstra.if defined(SHLIB_LINK)
210f67eb0dcSJohn Polstra	@ln -sf ${SHLIB_NAME} ${SHLIB_LINK}
211f67eb0dcSJohn Polstra.endif
212cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout
213f67eb0dcSJohn Polstra	@${LDDESTDIRENV} ${CC} -shared -Wl,-x,-assert,pure-text \
214f67eb0dcSJohn Polstra	    -o ${SHLIB_NAME} \
21562eba876SJordan K. Hubbard	    `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD}
2168c05a446SPeter Wemm.else
2178c05a446SPeter Wemm	@${LDDESTDIRENV} ${CC} -shared -Wl,-x \
218f67eb0dcSJohn Polstra	    -o ${SHLIB_NAME} -Wl,-soname,${SONAME} \
2198c05a446SPeter Wemm	    `lorder ${SOBJS} | tsort -q` ${LDDESTDIR} ${LDADD}
2208c05a446SPeter Wemm.endif
221f67eb0dcSJohn Polstra.endif
2223585b293SGarrett Wollman
223f67eb0dcSJohn Polstra.if defined(INSTALL_PIC_ARCHIVE)
2243585b293SGarrett Wollmanlib${LIB}_pic.a:: ${SOBJS}
22580c02d59SBruce Evans	@${ECHO} building special pic ${LIB} library
2263585b293SGarrett Wollman	@rm -f lib${LIB}_pic.a
2270cd12228SAndrey A. Chernov	@${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD}
2283585b293SGarrett Wollman	${RANLIB} lib${LIB}_pic.a
22986af0db9SBruce Evans.endif
230afe61c15SRodney W. Grimes
231afe61c15SRodney W. Grimesllib-l${LIB}.ln: ${SRCS}
232afe61c15SRodney W. Grimes	${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c}
233afe61c15SRodney W. Grimes
234afe61c15SRodney W. Grimes.if !target(clean)
235cd9a2f5cSJordan K. Hubbardclean:	_SUBDIR
236f67eb0dcSJohn Polstra	rm -f a.out ${OBJS} ${STATICOBJS} ${OBJS:S/$/.tmp/} ${CLEANFILES}
237e3ace70eSBruce Evans	rm -f lib${LIB}.a # llib-l${LIB}.ln
2381cfd4a8bSPeter Wemm	rm -f ${POBJS} ${POBJS:S/$/.tmp/} lib${LIB}_p.a
239f92bdbd0SJohn Polstra	rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/} \
240f67eb0dcSJohn Polstra	    ${SHLIB_NAME} ${SHLIB_LINK} \
241f92bdbd0SJohn Polstra	    lib${LIB}.so.* lib${LIB}.so lib${LIB}_pic.a
242209396dfSPoul-Henning Kamp.if defined(CLEANDIRS) && !empty(CLEANDIRS)
2432b9cd238SPoul-Henning Kamp	rm -rf ${CLEANDIRS}
2442b9cd238SPoul-Henning Kamp.endif
245afe61c15SRodney W. Grimes.endif
246afe61c15SRodney W. Grimes
247fcccc50bSBruce Evans_EXTRADEPEND:
248663e9677SBruce Evans	@TMP=_depend$$$$; \
249f92bdbd0SJohn Polstra	sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \
250663e9677SBruce Evans	    > $$TMP; \
251663e9677SBruce Evans	mv $$TMP ${DEPENDFILE}
252f67eb0dcSJohn Polstra.if !defined(NOEXTRADEPEND) && defined(SHLIB_NAME)
253cdaa52cfSJohn Birrell.if ${OBJFORMAT} == aout
254f67eb0dcSJohn Polstra	echo ${SHLIB_NAME}: \
255ef431e2eSJohn Polstra	    `${LDDESTDIRENV} ${CC} -shared -Wl,-f ${LDDESTDIR} ${LDADD}` \
256ef431e2eSJohn Polstra	    >> ${DEPENDFILE}
2578c05a446SPeter Wemm.else
258e3ace70eSBruce Evans.if defined(DPADD) && !empty(DPADD)
259f67eb0dcSJohn Polstra	echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE}
2608c05a446SPeter Wemm.endif
2618c05a446SPeter Wemm.endif
2622799473bSSatoshi Asami.endif
263afe61c15SRodney W. Grimes
264afe61c15SRodney W. Grimes.if !target(install)
265afe61c15SRodney W. Grimes.if !target(beforeinstall)
266fccf86c1SRodney W. Grimesbeforeinstall: _includeinstall
267fccf86c1SRodney W. Grimes.endif
268fccf86c1SRodney W. Grimes
269fccf86c1SRodney W. Grimes_includeinstall:
270fccf86c1SRodney W. Grimes.if defined(INCS)
271fccf86c1SRodney W. Grimes.for header in ${INCS}
272fccf86c1SRodney W. Grimes	cd ${.CURDIR} && \
273fccf86c1SRodney W. Grimes	${INSTALL} -C -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} \
274fccf86c1SRodney W. Grimes		${header} ${DESTDIR}${INCDIR}
275fccf86c1SRodney W. Grimes
276fccf86c1SRodney W. Grimes.endfor
277afe61c15SRodney W. Grimes.endif
278afe61c15SRodney W. Grimes
2790099533aSJohn-Mark Gurney.if defined(PRECIOUSLIB) && !defined(NOFSCHG)
280c59ae063SGarrett WollmanSHLINSTALLFLAGS+= -fschg
281c59ae063SGarrett Wollman.endif
282c59ae063SGarrett Wollman
283e902c1bbSTim Vanderhoek_INSTALLFLAGS:=	${INSTALLFLAGS}
284e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT}
285e902c1bbSTim Vanderhoek_INSTALLFLAGS:=	${_INSTALLFLAGS${ie}}
286e902c1bbSTim Vanderhoek.endfor
2871a66233dSRuslan Ermilov_SHLINSTALLFLAGS:=	${SHLINSTALLFLAGS}
288e902c1bbSTim Vanderhoek.for ie in ${INSTALLFLAGS_EDIT}
289e902c1bbSTim Vanderhoek_SHLINSTALLFLAGS:=	${_SHLINSTALLFLAGS${ie}}
290e902c1bbSTim Vanderhoek.endfor
291e902c1bbSTim Vanderhoek
292afe61c15SRodney W. Grimesrealinstall: beforeinstall
293c59ae063SGarrett Wollman.if !defined(INTERNALLIB)
29445f7f888SGarrett Wollman	${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
295e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR}
296afe61c15SRodney W. Grimes.if !defined(NOPROFILE)
2973585b293SGarrett Wollman	${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
298e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR}
299afe61c15SRodney W. Grimes.endif
300c59ae063SGarrett Wollman.endif
301f67eb0dcSJohn Polstra.if defined(SHLIB_NAME)
3020099533aSJohn-Mark Gurney	${INSTALL} ${COPY} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
303e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
304f67eb0dcSJohn Polstra	    ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
305f67eb0dcSJohn Polstra.if defined(SHLIB_LINK)
3062336a7eaSBruce Evans	ln -sf ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
3078c05a446SPeter Wemm.endif
3088c05a446SPeter Wemm.endif
3093585b293SGarrett Wollman.if defined(INSTALL_PIC_ARCHIVE)
3103585b293SGarrett Wollman	${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
311e902c1bbSTim Vanderhoek	    ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR}
3123585b293SGarrett Wollman.endif
313afe61c15SRodney W. Grimes.if defined(LINKS) && !empty(LINKS)
314afe61c15SRodney W. Grimes	@set ${LINKS}; \
315afe61c15SRodney W. Grimes	while test $$# -ge 2; do \
316afe61c15SRodney W. Grimes		l=${DESTDIR}$$1; \
317afe61c15SRodney W. Grimes		shift; \
318afe61c15SRodney W. Grimes		t=${DESTDIR}$$1; \
319afe61c15SRodney W. Grimes		shift; \
32080c02d59SBruce Evans		${ECHO} $$t -\> $$l; \
3212336a7eaSBruce Evans		ln -f $$l $$t; \
3222336a7eaSBruce Evans	done; true
3232336a7eaSBruce Evans.endif
3242336a7eaSBruce Evans.if defined(SYMLINKS) && !empty(SYMLINKS)
3252336a7eaSBruce Evans	@set ${SYMLINKS}; \
3262336a7eaSBruce Evans	while test $$# -ge 2; do \
3272336a7eaSBruce Evans		l=$$1; \
3282336a7eaSBruce Evans		shift; \
3292336a7eaSBruce Evans		t=${DESTDIR}$$1; \
3302336a7eaSBruce Evans		shift; \
3312336a7eaSBruce Evans		${ECHO} $$t -\> $$l; \
3322336a7eaSBruce Evans		ln -fs $$l $$t; \
333afe61c15SRodney W. Grimes	done; true
334afe61c15SRodney W. Grimes.endif
335afe61c15SRodney W. Grimes
336cd9a2f5cSJordan K. Hubbardinstall: afterinstall _SUBDIR
337afe61c15SRodney W. Grimes.if !defined(NOMAN)
3383585b293SGarrett Wollmanafterinstall: realinstall maninstall
3393585b293SGarrett Wollman.else
3403585b293SGarrett Wollmanafterinstall: realinstall
341afe61c15SRodney W. Grimes.endif
342afe61c15SRodney W. Grimes.endif
343afe61c15SRodney W. Grimes
34469b87d3eSEivind Eklund.if !target(regress)
34569b87d3eSEivind Eklundregress:
34669b87d3eSEivind Eklund.endif
34769b87d3eSEivind Eklund
348d9584d76SJordan K. HubbardDISTRIBUTION?=	bin
34955ff8fb1SPoul-Henning Kamp.if !target(distribute)
350cd9a2f5cSJordan K. Hubbarddistribute:	_SUBDIR
351398ac038SJordan K. Hubbard.for dist in ${DISTRIBUTION}
352398ac038SJordan K. Hubbard	cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies
353398ac038SJordan K. Hubbard.endfor
35455ff8fb1SPoul-Henning Kamp.endif
35555ff8fb1SPoul-Henning Kamp
356afe61c15SRodney W. Grimes.if !target(lint)
357afe61c15SRodney W. Grimeslint:
358afe61c15SRodney W. Grimes.endif
359afe61c15SRodney W. Grimes
3603585b293SGarrett Wollman.if !defined(NOMAN)
361afe61c15SRodney W. Grimes.include <bsd.man.mk>
362918fb560SRuslan Ermilov.else
363918fb560SRuslan Ermilov.if !target(all-man)
364918fb560SRuslan Ermilovall-man:
365918fb560SRuslan Ermilov.endif
366918fb560SRuslan Ermilov.if !target(maninstall)
3673585b293SGarrett Wollmanmaninstall:
3683585b293SGarrett Wollman.endif
369918fb560SRuslan Ermilov.endif
3703585b293SGarrett Wollman
3713585b293SGarrett Wollman.include <bsd.dep.mk>
37214172e46SBruce Evans
37314172e46SBruce Evans.if !exists(${DEPENDFILE})
374f67eb0dcSJohn Polstra${OBJS} ${STATICOBJS} ${POBJS} ${SOBJS}: ${SRCS:M*.h}
37514172e46SBruce Evans.endif
37614172e46SBruce Evans
377cd9a2f5cSJordan K. Hubbard.include <bsd.obj.mk>
378