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> |