Deleted Added
full compact
bsd.lib.mk (96462) bsd.lib.mk (96512)
1# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91
1# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91
2# $FreeBSD: head/share/mk/bsd.lib.mk 96462 2002-05-12 16:01:00Z ru $
2# $FreeBSD: head/share/mk/bsd.lib.mk 96512 2002-05-13 10:53:24Z ru $
3#
4
5.include <bsd.init.mk>
6
3#
4
5.include <bsd.init.mk>
6
7.if exists(${.CURDIR}/shlib_version)
8SHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major
9.if ${OBJFORMAT} == aout
10SHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor
11.endif
12.endif
13
14# Set up the variables controlling shared libraries. After this section,
15# SHLIB_NAME will be defined only if we are to create a shared library.
16# SHLIB_LINK will be defined only if we are to create a link to it.
17# INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive.
18.if defined(NOPIC)
19.undef SHLIB_NAME
20.undef INSTALL_PIC_ARCHIVE
21.else

--- 22 unchanged lines hidden (view full) ---

44.include <bsd.libnames.mk>
45.endif
46
47# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
48# .So used for PIC object files
49.SUFFIXES:
50.SUFFIXES: .out .o .po .So .S .s .asm .c .cc .cpp .cxx .m .C .f .y .l .ln
51
7# Set up the variables controlling shared libraries. After this section,
8# SHLIB_NAME will be defined only if we are to create a shared library.
9# SHLIB_LINK will be defined only if we are to create a link to it.
10# INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive.
11.if defined(NOPIC)
12.undef SHLIB_NAME
13.undef INSTALL_PIC_ARCHIVE
14.else

--- 22 unchanged lines hidden (view full) ---

37.include <bsd.libnames.mk>
38.endif
39
40# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
41# .So used for PIC object files
42.SUFFIXES:
43.SUFFIXES: .out .o .po .So .S .s .asm .c .cc .cpp .cxx .m .C .f .y .l .ln
44
45.if !defined(PICFLAG)
46.if ${MACHINE_ARCH} == "sparc64"
47PICFLAG=-fPIC
48.else
49PICFLAG=-fpic
50.endif
51.endif
52
52.c.ln:
53 ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
54 touch ${.TARGET}
55
56.cc.ln .C.ln .cpp.ln .cxx.ln:
57 ${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \
58 touch ${.TARGET}
59

--- 86 unchanged lines hidden (view full) ---

146 @mv ${.TARGET}.tmp ${.TARGET}
147
148.S.So:
149 ${CC} ${PICFLAG} -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} \
150 -o ${.TARGET}
151 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
152 @mv ${.TARGET}.tmp ${.TARGET}
153
53.c.ln:
54 ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
55 touch ${.TARGET}
56
57.cc.ln .C.ln .cpp.ln .cxx.ln:
58 ${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \
59 touch ${.TARGET}
60

--- 86 unchanged lines hidden (view full) ---

147 @mv ${.TARGET}.tmp ${.TARGET}
148
149.S.So:
150 ${CC} ${PICFLAG} -DPIC ${CFLAGS:M-[BID]*} ${AINC} -c ${.IMPSRC} \
151 -o ${.TARGET}
152 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
153 @mv ${.TARGET}.tmp ${.TARGET}
154
154.if !defined(INTERNALLIB) || defined(INTERNALSTATICLIB)
155.if !defined(NOPROFILE) && !defined(INTERNALLIB)
156_LIBS=lib${LIB}.a lib${LIB}_p.a
157.else
158_LIBS=lib${LIB}.a
159.endif
160.endif
155all: objwarn
161
156
162.if defined(SHLIB_NAME)
163_LIBS+=${SHLIB_NAME}
164.endif
165.if defined(INSTALL_PIC_ARCHIVE)
166_LIBS+=lib${LIB}_pic.a
167.endif
157.if defined(LIB) && !empty(LIB)
158_LIBS= lib${LIB}.a
159OBJS+= ${SRCS:N*.h:R:S/$/.o/}
168
160
169.if !defined(PICFLAG)
170.if ${MACHINE_ARCH} == "sparc64"
171PICFLAG=-fPIC
172.else
173PICFLAG=-fpic
174.endif
175.endif
161lib${LIB}.a: ${OBJS} ${STATICOBJS}
162 @${ECHO} building static ${LIB} library
163 @rm -f ${.TARGET}
164 @${AR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
165 ${RANLIB} ${.TARGET}
176
166
177LINTOBJS+= ${SRCS:M*.c:C/\..+$/.ln/}
167CLEANFILES+= a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS}
178
168
179.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && !empty(LINTOBJS)
180LINTLIB=llib-l${LIB}.ln
181_LIBS+=${LINTLIB}
182.endif
169.if !defined(INTERNALLIB)
183
170
184all: objwarn ${_LIBS}
185
186.if !defined(NOMAN)
187all: _manpages
188.endif
189
190OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
191
192lib${LIB}.a:: ${OBJS} ${STATICOBJS}
193 @${ECHO} building static ${LIB} library
194 @rm -f lib${LIB}.a
195 @${AR} cq lib${LIB}.a `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
196 ${RANLIB} lib${LIB}.a
197
198POBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po}
199.if !defined(NOPROFILE)
171.if !defined(NOPROFILE)
200lib${LIB}_p.a:: ${POBJS}
172_LIBS+= lib${LIB}_p.a
173POBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po}
174
175lib${LIB}_p.a: ${POBJS}
201 @${ECHO} building profiled ${LIB} library
176 @${ECHO} building profiled ${LIB} library
202 @rm -f lib${LIB}_p.a
203 @${AR} cq lib${LIB}_p.a `lorder ${POBJS} | tsort -q` ${ARADD}
204 ${RANLIB} lib${LIB}_p.a
177 @rm -f ${.TARGET}
178 @${AR} cq ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD}
179 ${RANLIB} ${.TARGET}
180
181CLEANFILES+= ${POBJS} ${POBJS:S/$/.tmp/}
205.endif
206
182.endif
183
207SOBJS+= ${OBJS:.o=.So}
184SOBJS+= ${OBJS:.o=.So}
208
185
186CLEANFILES+= ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/}
187
209.if defined(SHLIB_NAME)
188.if defined(SHLIB_NAME)
189_LIBS+= ${SHLIB_NAME}
190
210${SHLIB_NAME}: ${SOBJS}
211 @${ECHO} building shared library ${SHLIB_NAME}
191${SHLIB_NAME}: ${SOBJS}
192 @${ECHO} building shared library ${SHLIB_NAME}
212 @rm -f ${SHLIB_NAME} ${SHLIB_LINK}
193 @rm -f ${.TARGET} ${SHLIB_LINK}
213.if defined(SHLIB_LINK)
194.if defined(SHLIB_LINK)
214 @ln -sf ${SHLIB_NAME} ${SHLIB_LINK}
195 @ln -fs ${.TARGET} ${SHLIB_LINK}
215.endif
216.if ${OBJFORMAT} == aout
217 @${CC} -shared -Wl,-x,-assert,pure-text \
196.endif
197.if ${OBJFORMAT} == aout
198 @${CC} -shared -Wl,-x,-assert,pure-text \
218 -o ${SHLIB_NAME} \
199 -o ${.TARGET} \
219 `lorder ${SOBJS} | tsort -q` ${LDADD}
220.else
221 @${CC} ${LDFLAGS} -shared -Wl,-x \
200 `lorder ${SOBJS} | tsort -q` ${LDADD}
201.else
202 @${CC} ${LDFLAGS} -shared -Wl,-x \
222 -o ${SHLIB_NAME} -Wl,-soname,${SONAME} \
203 -o ${.TARGET} -Wl,-soname,${SONAME} \
223 `lorder ${SOBJS} | tsort -q` ${LDADD}
224.endif
204 `lorder ${SOBJS} | tsort -q` ${LDADD}
205.endif
206
207CLEANFILES+= ${SHLIB_LINK} lib${LIB}.so.* lib${LIB}.so
225.endif
226
227.if defined(INSTALL_PIC_ARCHIVE)
208.endif
209
210.if defined(INSTALL_PIC_ARCHIVE)
228lib${LIB}_pic.a:: ${SOBJS}
211_LIBS+= lib${LIB}_pic.a
212
213lib${LIB}_pic.a: ${SOBJS}
229 @${ECHO} building special pic ${LIB} library
214 @${ECHO} building special pic ${LIB} library
230 @rm -f lib${LIB}_pic.a
231 @${AR} cq lib${LIB}_pic.a ${SOBJS} ${ARADD}
232 ${RANLIB} lib${LIB}_pic.a
215 @rm -f ${.TARGET}
216 @${AR} cq ${.TARGET} ${SOBJS} ${ARADD}
217 ${RANLIB} ${.TARGET}
233.endif
234
218.endif
219
235.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && !empty(LINTOBJS)
220.if defined(WANT_LINT)
221LINTLIB= llib-l${LIB}.ln
222_LIBS+= ${LINTLIB}
223LINTOBJS+= ${SRCS:M*.c:.c=.ln}
224
236${LINTLIB}: ${LINTOBJS}
225${LINTLIB}: ${LINTOBJS}
237 @${ECHO} building lint library ${LINTLIB}
238 @rm -f ${LINTLIB}
226 @${ECHO} building lint library ${.TARGET}
227 @rm -f ${.TARGET}
239 ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
228 ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC}
229
230CLEANFILES+= ${LINTOBJS}
240.endif
241
231.endif
232
242.if !target(clean)
243clean:
244 rm -f a.out ${OBJS} ${STATICOBJS} ${OBJS:S/$/.tmp/} ${CLEANFILES}
245 rm -f lib${LIB}.a
246 rm -f ${POBJS} ${POBJS:S/$/.tmp/} lib${LIB}_p.a
247 rm -f ${SOBJS} ${SOBJS:.So=.so} ${SOBJS:S/$/.tmp/} \
248 ${SHLIB_NAME} ${SHLIB_LINK} \
249 lib${LIB}.so.* lib${LIB}.so lib${LIB}_pic.a
250 rm -f ${LINTOBJS} ${LINTLIB}
251.if defined(CLEANDIRS) && !empty(CLEANDIRS)
252 rm -rf ${CLEANDIRS}
233.endif !defined(INTERNALLIB)
234
235all: ${_LIBS}
236
237CLEANFILES+= ${_LIBS}
238.endif defined(LIB) && !empty(LIB)
239
240.if !defined(NOMAN)
241all: _manpages
253.endif
242.endif
254.endif
255
256_EXTRADEPEND:
257 @TMP=_depend$$$$; \
258 sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \
259 > $$TMP; \
260 mv $$TMP ${DEPENDFILE}
261.if !defined(NOEXTRADEPEND) && defined(SHLIB_NAME)
262.if ${OBJFORMAT} == aout

--- 17 unchanged lines hidden (view full) ---

280.for ie in ${INSTALLFLAGS_EDIT}
281_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}}
282.endfor
283_SHLINSTALLFLAGS:= ${SHLINSTALLFLAGS}
284.for ie in ${INSTALLFLAGS_EDIT}
285_SHLINSTALLFLAGS:= ${_SHLINSTALLFLAGS${ie}}
286.endfor
287
243
244_EXTRADEPEND:
245 @TMP=_depend$$$$; \
246 sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.So:/' < ${DEPENDFILE} \
247 > $$TMP; \
248 mv $$TMP ${DEPENDFILE}
249.if !defined(NOEXTRADEPEND) && defined(SHLIB_NAME)
250.if ${OBJFORMAT} == aout

--- 17 unchanged lines hidden (view full) ---

268.for ie in ${INSTALLFLAGS_EDIT}
269_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}}
270.endfor
271_SHLINSTALLFLAGS:= ${SHLINSTALLFLAGS}
272.for ie in ${INSTALLFLAGS_EDIT}
273_SHLINSTALLFLAGS:= ${_SHLINSTALLFLAGS${ie}}
274.endfor
275
276.if defined(LIB) && !empty(LIB) && !defined(INTERNALLIB)
288realinstall: _libinstall
289_libinstall:
277realinstall: _libinstall
278_libinstall:
290.if !defined(INTERNALLIB)
279.if !defined(NOINSTALLLIB)
291 ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
292 ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR}
280 ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
281 ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR}
282.endif
293.if !defined(NOPROFILE)
294 ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
295 ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR}
296.endif
283.if !defined(NOPROFILE)
284 ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
285 ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR}
286.endif
297.endif
298.if defined(SHLIB_NAME)
299 ${INSTALL} ${COPY} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
300 ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
301 ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
302.if defined(SHLIB_LINK)
287.if defined(SHLIB_NAME)
288 ${INSTALL} ${COPY} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
289 ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
290 ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
291.if defined(SHLIB_LINK)
303 ln -sf ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
292 ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
304.endif
305.endif
306.if defined(INSTALL_PIC_ARCHIVE)
307 ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
308 ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR}
309.endif
293.endif
294.endif
295.if defined(INSTALL_PIC_ARCHIVE)
296 ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
297 ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR}
298.endif
310.if defined(WANT_LINT) && defined(LIB) && defined(LINTOBJS) && !empty(LINTOBJS)
299.if defined(WANT_LINT)
311 ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
312 ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR}
313.endif
300 ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
301 ${_INSTALLFLAGS} ${LINTLIB} ${DESTDIR}${LINTLIBDIR}
302.endif
303.endif defined(LIB) && !empty(LIB) && !defined(INTERNALLIB)
314
315realinstall:
316.if defined(LINKS) && !empty(LINKS)
317 @set ${LINKS}; \
318 while test $$# -ge 2; do \
319 l=${DESTDIR}$$1; \
320 shift; \
321 t=${DESTDIR}$$1; \

--- 30 unchanged lines hidden (view full) ---

352.include <bsd.incs.mk>
353
354.if !defined(NOMAN)
355.include <bsd.man.mk>
356.endif
357
358.include <bsd.dep.mk>
359
304
305realinstall:
306.if defined(LINKS) && !empty(LINKS)
307 @set ${LINKS}; \
308 while test $$# -ge 2; do \
309 l=${DESTDIR}$$1; \
310 shift; \
311 t=${DESTDIR}$$1; \

--- 30 unchanged lines hidden (view full) ---

342.include <bsd.incs.mk>
343
344.if !defined(NOMAN)
345.include <bsd.man.mk>
346.endif
347
348.include <bsd.dep.mk>
349
350.if defined(LIB) && !empty(LIB)
360.if !exists(${.OBJDIR}/${DEPENDFILE})
361${OBJS} ${STATICOBJS} ${POBJS} ${SOBJS}: ${SRCS:M*.h}
362.endif
351.if !exists(${.OBJDIR}/${DEPENDFILE})
352${OBJS} ${STATICOBJS} ${POBJS} ${SOBJS}: ${SRCS:M*.h}
353.endif
354.endif
363
364.include <bsd.obj.mk>
365
366.include <bsd.sys.mk>
355
356.include <bsd.obj.mk>
357
358.include <bsd.sys.mk>