| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | # $NetBSD: bsd.lib.mk,v 1.325 2012/11/13 22:30:38 pooka Exp $ | | 1 | # $NetBSD: bsd.lib.mk,v 1.326 2013/01/22 20:43:17 christos Exp $ |
2 | # @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 | | 2 | # @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 |
3 | | | 3 | |
4 | .include <bsd.init.mk> | | 4 | .include <bsd.init.mk> |
5 | .include <bsd.shlib.mk> | | 5 | .include <bsd.shlib.mk> |
6 | .include <bsd.gcc.mk> | | 6 | .include <bsd.gcc.mk> |
7 | # Pull in <bsd.sys.mk> here so we can override its .c.o rule | | 7 | # Pull in <bsd.sys.mk> here so we can override its .c.o rule |
8 | .include <bsd.sys.mk> | | 8 | .include <bsd.sys.mk> |
9 | | | 9 | |
10 | LIBISMODULE?= no | | 10 | LIBISMODULE?= no |
11 | LIBISPRIVATE?= no | | 11 | LIBISPRIVATE?= no |
12 | LIBISCXX?= no | | 12 | LIBISCXX?= no |
13 | | | 13 | |
14 | _LIB_PREFIX= lib | | 14 | _LIB_PREFIX= lib |
| @@ -37,26 +37,32 @@ MKPROFILE:= no | | | @@ -37,26 +37,32 @@ MKPROFILE:= no |
37 | ##### Basic targets | | 37 | ##### Basic targets |
38 | .PHONY: checkver libinstall | | 38 | .PHONY: checkver libinstall |
39 | realinstall: checkver libinstall | | 39 | realinstall: checkver libinstall |
40 | | | 40 | |
41 | ##### LIB specific flags. | | 41 | ##### LIB specific flags. |
42 | # XXX: This is needed for programs that link with .a libraries | | 42 | # XXX: This is needed for programs that link with .a libraries |
43 | # Perhaps a more correct solution is to always generate _pic.a | | 43 | # Perhaps a more correct solution is to always generate _pic.a |
44 | # files or always have a shared library. | | 44 | # files or always have a shared library. |
45 | .if defined(MKPIE) && (${MKPIE} != "no") | | 45 | .if defined(MKPIE) && (${MKPIE} != "no") |
46 | CFLAGS+= ${PIE_CFLAGS} | | 46 | CFLAGS+= ${PIE_CFLAGS} |
47 | AFLAGS+= ${PIE_AFLAGS} | | 47 | AFLAGS+= ${PIE_AFLAGS} |
48 | .endif | | 48 | .endif |
49 | | | 49 | |
| | | 50 | .if defined(MKDEBUG) && (${MKDEBUG} != "no") |
| | | 51 | # We only add -g to the shared library objects |
| | | 52 | # because we don't currently split .a archives. |
| | | 53 | CSHLIBFLAGS+= -g |
| | | 54 | .endif |
| | | 55 | |
50 | ##### Libraries that this may depend upon. | | 56 | ##### Libraries that this may depend upon. |
51 | .if defined(LIBDPLIBS) && ${MKPIC} != "no" # { | | 57 | .if defined(LIBDPLIBS) && ${MKPIC} != "no" # { |
52 | .for _lib _dir in ${LIBDPLIBS} | | 58 | .for _lib _dir in ${LIBDPLIBS} |
53 | .if !defined(LIBDO.${_lib}) | | 59 | .if !defined(LIBDO.${_lib}) |
54 | LIBDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} | | 60 | LIBDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} |
55 | .MAKEOVERRIDES+=LIBDO.${_lib} | | 61 | .MAKEOVERRIDES+=LIBDO.${_lib} |
56 | .endif | | 62 | .endif |
57 | .if ${LIBDO.${_lib}} == "_external" | | 63 | .if ${LIBDO.${_lib}} == "_external" |
58 | LDADD+= -l${_lib} | | 64 | LDADD+= -l${_lib} |
59 | .else | | 65 | .else |
60 | LDADD+= -L${LIBDO.${_lib}} -l${_lib} | | 66 | LDADD+= -L${LIBDO.${_lib}} -l${_lib} |
61 | DPADD+= ${LIBDO.${_lib}}/lib${_lib}.so | | 67 | DPADD+= ${LIBDO.${_lib}}/lib${_lib}.so |
62 | .endif | | 68 | .endif |
| @@ -228,52 +234,52 @@ CTFFLAGS+= -g | | | @@ -228,52 +234,52 @@ CTFFLAGS+= -g |
228 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 234 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
229 | .endif | | 235 | .endif |
230 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) | | 236 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
231 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 237 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
232 | .endif | | 238 | .endif |
233 | | | 239 | |
234 | .c.go: | | 240 | .c.go: |
235 | ${_MKTARGET_COMPILE} | | 241 | ${_MKTARGET_COMPILE} |
236 | ${COMPILE.c} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} | | 242 | ${COMPILE.c} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} |
237 | | | 243 | |
238 | .c.pico: | | 244 | .c.pico: |
239 | ${_MKTARGET_COMPILE} | | 245 | ${_MKTARGET_COMPILE} |
240 | ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} | | 246 | ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
241 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) | | 247 | .if !defined(CSHLIBFLAGS) || empty(CSHLIBFLAGS:M*-g*) |
242 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 248 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
243 | .endif | | 249 | .endif |
244 | | | 250 | |
245 | .cc.o .cpp.o .cxx.o .C.o: | | 251 | .cc.o .cpp.o .cxx.o .C.o: |
246 | ${_MKTARGET_COMPILE} | | 252 | ${_MKTARGET_COMPILE} |
247 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 253 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
248 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) | | 254 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
249 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 255 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
250 | .endif | | 256 | .endif |
251 | | | 257 | |
252 | .cc.po .cpp.po .cxx.po .C.po: | | 258 | .cc.po .cpp.po .cxx.po .C.po: |
253 | ${_MKTARGET_COMPILE} | | 259 | ${_MKTARGET_COMPILE} |
254 | ${COMPILE.cc} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} | | 260 | ${COMPILE.cc} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} |
255 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) | | 261 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
256 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 262 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
257 | .endif | | 263 | .endif |
258 | | | 264 | |
259 | .cc.go .cpp.go .cxx.go .C.go: | | 265 | .cc.go .cpp.go .cxx.go .C.go: |
260 | ${_MKTARGET_COMPILE} | | 266 | ${_MKTARGET_COMPILE} |
261 | ${COMPILE.cc} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} | | 267 | ${COMPILE.cc} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} |
262 | | | 268 | |
263 | .cc.pico .cpp.pico .cxx.pico .C.pico: | | 269 | .cc.pico .cpp.pico .cxx.pico .C.pico: |
264 | ${_MKTARGET_COMPILE} | | 270 | ${_MKTARGET_COMPILE} |
265 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} | | 271 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
266 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) | | 272 | .if !defined(CSHLIBFLAGS) || empty(CSHLIBFLAGS:M*-g*) |
267 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 273 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
268 | .endif | | 274 | .endif |
269 | | | 275 | |
270 | .f.o: | | 276 | .f.o: |
271 | ${_MKTARGET_COMPILE} | | 277 | ${_MKTARGET_COMPILE} |
272 | ${COMPILE.f} ${.IMPSRC} -o ${.TARGET} | | 278 | ${COMPILE.f} ${.IMPSRC} -o ${.TARGET} |
273 | .if defined(CTFCONVERT) | | 279 | .if defined(CTFCONVERT) |
274 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 280 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
275 | .endif | | 281 | .endif |
276 | .if !defined(FOPTS) || empty(FOPTS:M*-g*) | | 282 | .if !defined(FOPTS) || empty(FOPTS:M*-g*) |
277 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 283 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
278 | .endif | | 284 | .endif |
279 | | | 285 | |