bsd.lib.mk revision 236114
11844Swollman#	from: @(#)bsd.lib.mk	5.26 (Berkeley) 5/2/91
250476Speter# $FreeBSD: stable/9/share/mk/bsd.lib.mk 236114 2012-05-26 17:53:35Z des $
31844Swollman#
41638Srgrimes
594940Sru.include <bsd.init.mk>
61638Srgrimes
742915Sjdp# Set up the variables controlling shared libraries.  After this section,
842915Sjdp# SHLIB_NAME will be defined only if we are to create a shared library.
942915Sjdp# SHLIB_LINK will be defined only if we are to create a link to it.
1042915Sjdp# INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive.
11139106Sru.if defined(NO_PIC)
1242915Sjdp.undef SHLIB_NAME
1342915Sjdp.undef INSTALL_PIC_ARCHIVE
1442915Sjdp.else
15129024Sdes.if !defined(SHLIB) && defined(LIB)
16129024SdesSHLIB=		${LIB}
1729141Speter.endif
18129024Sdes.if !defined(SHLIB_NAME) && defined(SHLIB) && defined(SHLIB_MAJOR)
19129024SdesSHLIB_NAME=	lib${SHLIB}.so.${SHLIB_MAJOR}
20129024Sdes.endif
21125119Sru.if defined(SHLIB_NAME) && !empty(SHLIB_NAME:M*.so.*)
22100332SruSHLIB_LINK?=	${SHLIB_NAME:R}
23100332Sru.endif
2442915SjdpSONAME?=	${SHLIB_NAME}
2542915Sjdp.endif
2629141Speter
27119607Sru.if defined(CRUNCH_CFLAGS)
28117034SgordonCFLAGS+=	${CRUNCH_CFLAGS}
29119607Sru.endif
30117034Sgordon
31162210Simp.if ${MK_ASSERT_DEBUG} == "no"
32162210SimpCFLAGS+= -DNDEBUG
33162293SobrienNO_WERROR=
34162210Simp.endif
35162210Simp
36206082Snetchild# Enable CTF conversion on request.
37206082Snetchild.if defined(WITH_CTF)
38206082Snetchild.undef NO_CTF
39206082Snetchild.endif
40206082Snetchild
412827Sjkh.if defined(DEBUG_FLAGS)
422827SjkhCFLAGS+= ${DEBUG_FLAGS}
43179184Sjb
44179184Sjb.if !defined(NO_CTF) && (${DEBUG_FLAGS:M-g} != "")
45179184SjbCTFFLAGS+= -g
462827Sjkh.endif
47179184Sjb.endif
482827Sjkh
492827Sjkh.if !defined(DEBUG_FLAGS)
501638SrgrimesSTRIP?=	-s
512827Sjkh.endif
521638Srgrimes
5318529Sbde.include <bsd.libnames.mk>
5418529Sbde
551638Srgrimes# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
5642450Sjdp# .So used for PIC object files
571638Srgrimes.SUFFIXES:
58220755Sdim.SUFFIXES: .out .o .po .So .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln
591638Srgrimes
6096512Sru.if !defined(PICFLAG)
61211725Simp.if ${MACHINE_CPUARCH} == "sparc64"
6296512SruPICFLAG=-fPIC
6396512Sru.else
6496512SruPICFLAG=-fpic
6596512Sru.endif
6696512Sru.endif
6796512Sru
68126890StrhodesPO_FLAG=-pg
69126890Strhodes
70236114Sdes.c.o:
71236114Sdes	${CC} ${STATIC_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
72236114Sdes	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
73236114Sdes		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
74236114Sdes		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
75236114Sdes
761638Srgrimes.c.po:
77236114Sdes	${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
78210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
79210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
80210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
811638Srgrimes
8242450Sjdp.c.So:
83236114Sdes	${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
84210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
85210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
86210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
871844Swollman
88236114Sdes.cc.o:
89236114Sdes	${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
90236114Sdes
9136673Sdt.cc.po .C.po .cpp.po .cxx.po:
92236114Sdes	${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
931844Swollman
9442450Sjdp.cc.So .C.So .cpp.So .cxx.So:
95236114Sdes	${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
961844Swollman
971844Swollman.f.po:
98127027Strhodes	${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
99210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
100210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
101210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
1021844Swollman
10342450Sjdp.f.So:
1041844Swollman	${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
105210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
106210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
107210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
1081844Swollman
109117173Sru.s.po .s.So:
110117159Sru	${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
111210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
112210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
113210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
1141638Srgrimes
115117173Sru.asm.po:
116217100Skib	${CC} -x assembler-with-cpp -DPROF ${PO_CFLAGS} ${ACFLAGS} \
117217100Skib		-c ${.IMPSRC} -o ${.TARGET}
118210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
119210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
120210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
121117173Sru
122117173Sru.asm.So:
123217100Skib	${CC} -x assembler-with-cpp ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \
124117173Sru	    -c ${.IMPSRC} -o ${.TARGET}
125210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
126210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
127210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
128117173Sru
1291844Swollman.S.po:
130217100Skib	${CC} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
131210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
132210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
133210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
1341844Swollman
13542450Sjdp.S.So:
136217100Skib	${CC} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
137210612Srpaulo	@[ -z "${CTFCONVERT}" -o -n "${NO_CTF}" ] || \
138210636Srpaulo		(${ECHO} ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} && \
139210636Srpaulo		${CTFCONVERT} ${CTFFLAGS} ${.TARGET})
1401844Swollman
14196512Sruall: objwarn
1421638Srgrimes
143168317Skan.include <bsd.symver.mk>
144156772Sdeischen
145178047Skan# Allow libraries to specify their own version map or have it
146168317Skan# automatically generated (see bsd.symver.mk above).
147169822Sru.if ${MK_SYMVER} == "yes" && !empty(VERSION_MAP)
148156772Sdeischen${SHLIB_NAME}:	${VERSION_MAP}
149156772SdeischenLDFLAGS+=	-Wl,--version-script=${VERSION_MAP}
150156772Sdeischen.endif
151156772Sdeischen
15299362Sru.if defined(LIB) && !empty(LIB) || defined(SHLIB_NAME)
15399362SruOBJS+=		${SRCS:N*.h:R:S/$/.o/}
15499362Sru.endif
15599362Sru
15696512Sru.if defined(LIB) && !empty(LIB)
15796512Sru_LIBS=		lib${LIB}.a
1581638Srgrimes
15996512Srulib${LIB}.a: ${OBJS} ${STATICOBJS}
16096512Sru	@${ECHO} building static ${LIB} library
16196512Sru	@rm -f ${.TARGET}
162163683Sru.if !defined(NM)
163163683Sru	@${AR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
164163683Sru.else
165163683Sru	@${AR} cq ${.TARGET} `NM='${NM}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
166163683Sru.endif
16796512Sru	${RANLIB} ${.TARGET}
16899362Sru.endif
1691638Srgrimes
17096512Sru.if !defined(INTERNALLIB)
17195114Sobrien
172156854Sru.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB)
17396512Sru_LIBS+=		lib${LIB}_p.a
17496512SruPOBJS+=		${OBJS:.o=.po} ${STATICOBJS:.o=.po}
17595306Sru
17696512Srulib${LIB}_p.a: ${POBJS}
17796512Sru	@${ECHO} building profiled ${LIB} library
17896512Sru	@rm -f ${.TARGET}
179163683Sru.if !defined(NM)
180163683Sru	@${AR} cq ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD}
181163683Sru.else
182163683Sru	@${AR} cq ${.TARGET} `NM='${NM}' lorder ${POBJS} | tsort -q` ${ARADD}
183163683Sru.endif
18496512Sru	${RANLIB} ${.TARGET}
18574805Sru.endif
1861844Swollman
18799362Sru.if defined(SHLIB_NAME) || \
18899362Sru    defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
18996512SruSOBJS+=		${OBJS:.o=.So}
19099362Sru.endif
1911844Swollman
19296512Sru.if defined(SHLIB_NAME)
19396512Sru_LIBS+=		${SHLIB_NAME}
1941638Srgrimes
195229380SkibSOLINKOPTS=	-shared -Wl,-x
196229380Skib.if !defined(ALLOW_SHARED_TEXTREL)
197229380SkibSOLINKOPTS+=	-Wl,--fatal-warnings -Wl,--warn-shared-textrel
198229380Skib.endif
199229380Skib
200212423Srpaulo.if target(beforelinking)
201212423Srpaulo${SHLIB_NAME}: ${SOBJS} beforelinking
202212423Srpaulo.else
20342915Sjdp${SHLIB_NAME}: ${SOBJS}
204212423Srpaulo.endif
20542915Sjdp	@${ECHO} building shared library ${SHLIB_NAME}
20696512Sru	@rm -f ${.TARGET} ${SHLIB_LINK}
20742915Sjdp.if defined(SHLIB_LINK)
20896512Sru	@ln -fs ${.TARGET} ${SHLIB_LINK}
20942915Sjdp.endif
210163683Sru.if !defined(NM)
211229380Skib	@${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
21296512Sru	    -o ${.TARGET} -Wl,-soname,${SONAME} \
213163683Sru	    `lorder ${SOBJS} | tsort -q` ${LDADD}
214163683Sru.else
215229380Skib	@${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
216163683Sru	    -o ${.TARGET} -Wl,-soname,${SONAME} \
217163683Sru	    `NM='${NM}' lorder ${SOBJS} | tsort -q` ${LDADD}
21828945Speter.endif
219210612Srpaulo	@[ -z "${CTFMERGE}" -o -n "${NO_CTF}" ] || \
220210656Srpaulo		(${ECHO} ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SOBJS} && \
221210636Srpaulo		${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SOBJS})
222163683Sru.endif
2231844Swollman
224156813Sru.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no"
22596512Sru_LIBS+=		lib${LIB}_pic.a
22696512Sru
22796512Srulib${LIB}_pic.a: ${SOBJS}
2282353Sbde	@${ECHO} building special pic ${LIB} library
22996512Sru	@rm -f ${.TARGET}
23096512Sru	@${AR} cq ${.TARGET} ${SOBJS} ${ARADD}
23196512Sru	${RANLIB} ${.TARGET}
2323859Sbde.endif
2331844Swollman
234139106Sru.if defined(WANT_LINT) && !defined(NO_LINT) && defined(LIB) && !empty(LIB)
23596512SruLINTLIB=	llib-l${LIB}.ln
23696512Sru_LIBS+=		${LINTLIB}
23796512SruLINTOBJS+=	${SRCS:M*.c:.c=.ln}
23896512Sru
23992491Smarkm${LINTLIB}: ${LINTOBJS}
24096512Sru	@${ECHO} building lint library ${.TARGET}
24196512Sru	@rm -f ${.TARGET}
24292491Smarkm	${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
24392491Smarkm.endif
2441638Srgrimes
245144893Sharti.endif # !defined(INTERNALLIB)
24696512Sru
24796512Sruall: ${_LIBS}
24896512Sru
249156813Sru.if ${MK_MAN} != "no"
25096512Sruall: _manpages
2511638Srgrimes.endif
2521638Srgrimes
25334179Sbde_EXTRADEPEND:
25424750Sbde	@TMP=_depend$$$$; \
25542450Sjdp	sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \
25624750Sbde	    > $$TMP; \
25724750Sbde	mv $$TMP ${DEPENDFILE}
258139107Sru.if !defined(NO_EXTRADEPEND) && defined(SHLIB_NAME)
25931809Sbde.if defined(DPADD) && !empty(DPADD)
26042915Sjdp	echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE}
26127910Sasami.endif
26228945Speter.endif
2631638Srgrimes
2641638Srgrimes.if !target(install)
2651638Srgrimes
266136019Sru.if defined(PRECIOUSLIB)
267139111Sru.if !defined(NO_FSCHG)
2682298SwollmanSHLINSTALLFLAGS+= -fschg
2692298Swollman.endif
270136019SruSHLINSTALLFLAGS+= -S
271136019Sru.endif
2722298Swollman
27349328Shoek_INSTALLFLAGS:=	${INSTALLFLAGS}
27449328Shoek.for ie in ${INSTALLFLAGS_EDIT}
27549328Shoek_INSTALLFLAGS:=	${_INSTALLFLAGS${ie}}
27649328Shoek.endfor
27756971Sru_SHLINSTALLFLAGS:=	${SHLINSTALLFLAGS}
27849328Shoek.for ie in ${INSTALLFLAGS_EDIT}
27949328Shoek_SHLINSTALLFLAGS:=	${_SHLINSTALLFLAGS${ie}}
28049328Shoek.endfor
28149328Shoek
28299362Sru.if !defined(INTERNALLIB)
28395306Srurealinstall: _libinstall
28499343Sru.ORDER: beforeinstall _libinstall
28595306Sru_libinstall:
286172832Sru.if defined(LIB) && !empty(LIB) && ${MK_INSTALLLIB} != "no"
28792980Sdes	${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
28849328Shoek	    ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR}
28996512Sru.endif
290156854Sru.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB)
29192980Sdes	${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
29249328Shoek	    ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR}
2931638Srgrimes.endif
294116144Sobrien.if defined(SHLIB_NAME)
295100872Sru	${INSTALL} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
29649328Shoek	    ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
29742915Sjdp	    ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
29842915Sjdp.if defined(SHLIB_LINK)
299235534Sjlh# ${_SHLIBDIRPREFIX} and ${_LDSCRIPTROOT} are both needed when cross-building
300235534Sjlh# and when building 32 bits library shims.  ${_SHLIBDIRPREFIX} is the directory
301235534Sjlh# prefix where shared objects will be installed.  ${_LDSCRIPTROOT} is the
302235534Sjlh# directory prefix that will be used in generated ld(1) scripts.  They cannot
303235534Sjlh# be coalesced because of the way ld(1) handles the sysroot prefix (used in the
304235534Sjlh# cross-toolchain):
305235534Sjlh# - 64 bits libs are located under sysroot, so ${_LDSCRIPTROOT} must be empty.
306235534Sjlh# - 32 bits shims are not, so ${_LDSCRIPTROOT} is used to specify their full
307235534Sjlh#   path.  Note that ld(1) scripts are generated both during buildworld and
308235534Sjlh#   installworld; in the later case ${_LDSCRIPTROOT} must be obviously empty.
309235534Sjlh# On the other hand, the use of ${_SHLIBDIRPREFIX} is more consistent since it
310235534Sjlh# does not involve the logic of a tool we do not own.
311235534Sjlh.if defined(SHLIB_LDSCRIPT) && !empty(SHLIB_LDSCRIPT) && exists(${.CURDIR}/${SHLIB_LDSCRIPT})
312235534Sjlh	sed -e 's,@@SHLIB@@,${_LDSCRIPTROOT}${SHLIBDIR}/${SHLIB_NAME},g' \
313235534Sjlh	    -e 's,@@LIBDIR@@,${_LDSCRIPTROOT}${LIBDIR},g' \
314235534Sjlh	    ${.CURDIR}/${SHLIB_LDSCRIPT} > lib${LIB}.ld
315235534Sjlh	${INSTALL} -S -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
316235534Sjlh	    ${_INSTALLFLAGS} lib${LIB}.ld ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
317235534Sjlh.else
318119846Sru.if ${SHLIBDIR} == ${LIBDIR}
319119846Sru	ln -fs ${SHLIB_NAME} ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
320119846Sru.else
321119846Sru	ln -fs ${_SHLIBDIRPREFIX}${SHLIBDIR}/${SHLIB_NAME} \
322119730Speter	    ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
323119846Sru.if exists(${DESTDIR}${LIBDIR}/${SHLIB_NAME})
324119846Sru	-chflags noschg ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
325119846Sru	rm -f ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
3261844Swollman.endif
32728945Speter.endif
328235534Sjlh.endif # SHLIB_LDSCRIPT
329235534Sjlh.endif # SHLIB_LINK
330235534Sjlh.endif # SHIB_NAME
331156813Sru.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no"
332100872Sru	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
33349328Shoek	    ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR}
3341844Swollman.endif
335139106Sru.if defined(WANT_LINT) && !defined(NO_LINT) && defined(LIB) && !empty(LIB)
336100872Sru	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
33796462Sru	    ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR}
33896462Sru.endif
339144893Sharti.endif # !defined(INTERNALLIB)
34096462Sru
341141503Sphantom.include <bsd.nls.mk>
34297769Sru.include <bsd.files.mk>
34396668Sru.include <bsd.incs.mk>
34499256Sru.include <bsd.links.mk>
34596462Sru
346156813Sru.if ${MK_MAN} != "no"
34796164Srurealinstall: _maninstall
34899343Sru.ORDER: beforeinstall _maninstall
34996162Sru.endif
35096162Sru
3511638Srgrimes.endif
3521638Srgrimes
3531638Srgrimes.if !target(lint)
35495306Srulint: ${SRCS:M*.c}
355103713Smarkm	${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
3561638Srgrimes.endif
3571638Srgrimes
358156813Sru.if ${MK_MAN} != "no"
3591638Srgrimes.include <bsd.man.mk>
36074842Sru.endif
3611844Swollman
3621844Swollman.include <bsd.dep.mk>
36334092Sbde
36499362Sru.if !exists(${.OBJDIR}/${DEPENDFILE})
36596512Sru.if defined(LIB) && !empty(LIB)
36699362Sru${OBJS} ${STATICOBJS} ${POBJS}: ${SRCS:M*.h}
367124637Sru.for _S in ${SRCS:N*.[hly]}
368124637Sru${_S:R}.po: ${_S}
369124637Sru.endfor
37034092Sbde.endif
37199362Sru.if defined(SHLIB_NAME) || \
37299362Sru    defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
37399362Sru${SOBJS}: ${SRCS:M*.h}
374124637Sru.for _S in ${SRCS:N*.[hly]}
375124637Sru${_S:R}.So: ${_S}
376124637Sru.endfor
37796512Sru.endif
37899362Sru.endif
37934092Sbde
380100457Sru.if !target(clean)
381100457Sruclean:
382100457Sru.if defined(CLEANFILES) && !empty(CLEANFILES)
383100457Sru	rm -f ${CLEANFILES}
384100457Sru.endif
385100457Sru.if defined(LIB) && !empty(LIB)
386100457Sru	rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS}
387100457Sru.endif
388100457Sru.if !defined(INTERNALLIB)
389156854Sru.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB)
390100457Sru	rm -f ${POBJS} ${POBJS:S/$/.tmp/}
391100457Sru.endif
392100457Sru.if defined(SHLIB_NAME) || \
393100457Sru    defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
394100457Sru	rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/}
395100457Sru.endif
396100457Sru.if defined(SHLIB_NAME)
397100457Sru.if defined(SHLIB_LINK)
398235534Sjlh.if defined(SHLIB_LDSCRIPT) && exists(${.CURDIR}/${SHLIB_LDSCRIPT})
399235534Sjlh	rm -f lib${LIB}.ld
400235534Sjlh.endif
401100457Sru	rm -f ${SHLIB_LINK}
402100457Sru.endif
403100457Sru.if defined(LIB) && !empty(LIB)
404100457Sru	rm -f lib${LIB}.so.* lib${LIB}.so
405100457Sru.endif
406100457Sru.endif
407100457Sru.if defined(WANT_LINT) && defined(LIB) && !empty(LIB)
408100457Sru	rm -f ${LINTOBJS}
409100457Sru.endif
410144893Sharti.endif # !defined(INTERNALLIB)
411100457Sru.if defined(_LIBS) && !empty(_LIBS)
412100457Sru	rm -f ${_LIBS}
413100457Sru.endif
414100457Sru.if defined(CLEANDIRS) && !empty(CLEANDIRS)
415100457Sru	rm -rf ${CLEANDIRS}
416100457Sru.endif
417157054Sdes.if !empty(VERSION_DEF) && !empty(SYMBOL_MAPS)
418157054Sdes	rm -f ${VERSION_MAP}
419100457Sru.endif
420157054Sdes.endif
421100457Sru
42216663Sjkh.include <bsd.obj.mk>
42376861Skris
42476861Skris.include <bsd.sys.mk>
425