| @@ -1,870 +1,870 @@ | | | @@ -1,870 +1,870 @@ |
1 | # $NetBSD: bsd.lib.mk,v 1.358 2015/06/04 06:01:24 mrg Exp $ | | 1 | # $NetBSD: bsd.lib.mk,v 1.359 2015/07/20 12:20:26 joerg 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 | .if ${LIBISMODULE} != "no" | | 14 | .if ${LIBISMODULE} != "no" |
15 | _LIB_PREFIX?= # empty | | 15 | _LIB_PREFIX?= # empty |
16 | MKDEBUGLIB:= no | | 16 | MKDEBUGLIB:= no |
17 | MKLINT:= no | | 17 | MKLINT:= no |
18 | MKPICINSTALL:= no | | 18 | MKPICINSTALL:= no |
19 | MKPROFILE:= no | | 19 | MKPROFILE:= no |
20 | MKSTATICLIB:= no | | 20 | MKSTATICLIB:= no |
21 | .else | | 21 | .else |
22 | _LIB_PREFIX?= lib | | 22 | _LIB_PREFIX?= lib |
23 | .endif | | 23 | .endif |
24 | | | 24 | |
25 | .if ${LIBISPRIVATE} != "no" | | 25 | .if ${LIBISPRIVATE} != "no" |
26 | MKDEBUGLIB:= no | | 26 | MKDEBUGLIB:= no |
27 | MKLINT:= no | | 27 | MKLINT:= no |
28 | MKPICINSTALL:= no | | 28 | MKPICINSTALL:= no |
29 | . if defined(NOSTATICLIB) && ${MKPICLIB} != "no" | | 29 | . if defined(NOSTATICLIB) && ${MKPICLIB} != "no" |
30 | MKSTATICLIB:= no | | 30 | MKSTATICLIB:= no |
31 | . else | | 31 | . else |
32 | MKPIC:= no | | 32 | MKPIC:= no |
33 | . endif | | 33 | . endif |
34 | MKPROFILE:= no | | 34 | MKPROFILE:= no |
35 | .endif | | 35 | .endif |
36 | | | 36 | |
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 | ##### Libraries that this may depend upon. | | 50 | ##### Libraries that this may depend upon. |
51 | .if defined(LIBDPLIBS) && ${MKPIC} != "no" # { | | 51 | .if defined(LIBDPLIBS) && ${MKPIC} != "no" # { |
52 | .for _lib _dir in ${LIBDPLIBS} | | 52 | .for _lib _dir in ${LIBDPLIBS} |
53 | .if !defined(LIBDO.${_lib}) | | 53 | .if !defined(LIBDO.${_lib}) |
54 | LIBDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} | | 54 | LIBDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} |
55 | .MAKEOVERRIDES+=LIBDO.${_lib} | | 55 | .MAKEOVERRIDES+=LIBDO.${_lib} |
56 | .endif | | 56 | .endif |
57 | .if ${LIBDO.${_lib}} == "_external" | | 57 | .if ${LIBDO.${_lib}} == "_external" |
58 | LDADD+= -l${_lib} | | 58 | LDADD+= -l${_lib} |
59 | .else | | 59 | .else |
60 | LDADD+= -L${LIBDO.${_lib}} -l${_lib} | | 60 | LDADD+= -L${LIBDO.${_lib}} -l${_lib} |
61 | DPADD+= ${LIBDO.${_lib}}/lib${_lib}.so # Don't use _LIB_PREFIX | | 61 | DPADD+= ${LIBDO.${_lib}}/lib${_lib}.so # Don't use _LIB_PREFIX |
62 | .endif | | 62 | .endif |
63 | .endfor | | 63 | .endfor |
64 | .endif # } | | 64 | .endif # } |
65 | | | 65 | |
66 | ##### Build and install rules | | 66 | ##### Build and install rules |
67 | MKDEP_SUFFIXES?= .o .po .pico .go .ln .d | | 67 | MKDEP_SUFFIXES?= .o .po .pico .go .ln .d |
68 | | | 68 | |
69 | .if !defined(SHLIB_MAJOR) && exists(${SHLIB_VERSION_FILE}) # { | | 69 | .if !defined(SHLIB_MAJOR) && exists(${SHLIB_VERSION_FILE}) # { |
70 | SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major | | 70 | SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major |
71 | SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor | | 71 | SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor |
72 | SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny | | 72 | SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny |
73 | | | 73 | |
74 | DPADD+= ${SHLIB_VERSION_FILE} | | 74 | DPADD+= ${SHLIB_VERSION_FILE} |
75 | | | 75 | |
76 | # Check for higher installed library versions. | | 76 | # Check for higher installed library versions. |
77 | .if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ | | 77 | .if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ |
78 | exists(${NETBSDSRCDIR}/lib/checkver) | | 78 | exists(${NETBSDSRCDIR}/lib/checkver) |
79 | checkver: | | 79 | checkver: |
80 | @(cd "${.CURDIR}" && \ | | 80 | @(cd "${.CURDIR}" && \ |
81 | HOST_SH=${HOST_SH:Q} AWK=${TOOL_AWK:Q} \ | | 81 | HOST_SH=${HOST_SH:Q} AWK=${TOOL_AWK:Q} \ |
82 | ${HOST_SH} ${NETBSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ | | 82 | ${HOST_SH} ${NETBSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ |
83 | -d ${_DEST.OBJ} ${LIB}) | | 83 | -d ${_DEST.OBJ} ${LIB}) |
84 | .endif | | 84 | .endif |
85 | .endif # } | | 85 | .endif # } |
86 | | | 86 | |
87 | .if !target(checkver) | | 87 | .if !target(checkver) |
88 | checkver: | | 88 | checkver: |
89 | .endif | | 89 | .endif |
90 | | | 90 | |
91 | print-shlib-major: | | 91 | print-shlib-major: |
92 | .if defined(SHLIB_MAJOR) && ${MKPIC} != "no" | | 92 | .if defined(SHLIB_MAJOR) && ${MKPIC} != "no" |
93 | @echo ${SHLIB_MAJOR} | | 93 | @echo ${SHLIB_MAJOR} |
94 | .else | | 94 | .else |
95 | @false | | 95 | @false |
96 | .endif | | 96 | .endif |
97 | | | 97 | |
98 | print-shlib-minor: | | 98 | print-shlib-minor: |
99 | .if defined(SHLIB_MINOR) && ${MKPIC} != "no" | | 99 | .if defined(SHLIB_MINOR) && ${MKPIC} != "no" |
100 | @echo ${SHLIB_MINOR} | | 100 | @echo ${SHLIB_MINOR} |
101 | .else | | 101 | .else |
102 | @false | | 102 | @false |
103 | .endif | | 103 | .endif |
104 | | | 104 | |
105 | print-shlib-teeny: | | 105 | print-shlib-teeny: |
106 | .if defined(SHLIB_TEENY) && ${MKPIC} != "no" | | 106 | .if defined(SHLIB_TEENY) && ${MKPIC} != "no" |
107 | @echo ${SHLIB_TEENY} | | 107 | @echo ${SHLIB_TEENY} |
108 | .else | | 108 | .else |
109 | @false | | 109 | @false |
110 | .endif | | 110 | .endif |
111 | | | 111 | |
112 | .if defined(SHLIB_MAJOR) && !empty(SHLIB_MAJOR) # { | | 112 | .if defined(SHLIB_MAJOR) && !empty(SHLIB_MAJOR) # { |
113 | .if defined(SHLIB_MINOR) && !empty(SHLIB_MINOR) | | 113 | .if defined(SHLIB_MINOR) && !empty(SHLIB_MINOR) |
114 | .if defined(SHLIB_TEENY) && !empty(SHLIB_TEENY) | | 114 | .if defined(SHLIB_TEENY) && !empty(SHLIB_TEENY) |
115 | SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.${SHLIB_TEENY} | | 115 | SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.${SHLIB_TEENY} |
116 | .else | | 116 | .else |
117 | SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} | | 117 | SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} |
118 | .endif | | 118 | .endif |
119 | .else | | 119 | .else |
120 | SHLIB_FULLVERSION=${SHLIB_MAJOR} | | 120 | SHLIB_FULLVERSION=${SHLIB_MAJOR} |
121 | .endif | | 121 | .endif |
122 | .endif # } | | 122 | .endif # } |
123 | | | 123 | |
124 | # add additional suffixes not exported. | | 124 | # add additional suffixes not exported. |
125 | # .po is used for profiling object files. | | 125 | # .po is used for profiling object files. |
126 | # .pico is used for PIC object files. | | 126 | # .pico is used for PIC object files. |
127 | .SUFFIXES: .out .a .ln .pico .po .go .o .s .S .c .cc .cpp .cxx .C .m .F .f .r .y .l .cl .p .h | | 127 | .SUFFIXES: .out .a .ln .pico .po .go .o .s .S .c .cc .cpp .cxx .C .m .F .f .r .y .l .cl .p .h |
128 | .SUFFIXES: .sh .m4 .m | | 128 | .SUFFIXES: .sh .m4 .m |
129 | | | 129 | |
130 | | | 130 | |
131 | # Set PICFLAGS to cc flags for producing position-independent code, | | 131 | # Set PICFLAGS to cc flags for producing position-independent code, |
132 | # if not already set. | | 132 | # if not already set. |
133 | | | 133 | |
134 | # Data-driven table using make variables to control how shared libraries | | 134 | # Data-driven table using make variables to control how shared libraries |
135 | # are built for different platforms and object formats. | | 135 | # are built for different platforms and object formats. |
136 | # SHLIB_MAJOR, SHLIB_MINOR, SHLIB_TEENY: Major, minor, and teeny version | | 136 | # SHLIB_MAJOR, SHLIB_MINOR, SHLIB_TEENY: Major, minor, and teeny version |
137 | # numbers of shared library | | 137 | # numbers of shared library |
138 | # SHLIB_SOVERSION: version number to be compiled into a shared library | | 138 | # SHLIB_SOVERSION: version number to be compiled into a shared library |
139 | # via -soname. Usualy ${SHLIB_MAJOR} on ELF. | | 139 | # via -soname. Usualy ${SHLIB_MAJOR} on ELF. |
140 | # NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR} | | 140 | # NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR} |
141 | # [.${SHLIB_TEENY}]] | | 141 | # [.${SHLIB_TEENY}]] |
142 | # SHLIB_SHFLAGS: Flags to tell ${LD} to emit shared library. | | 142 | # SHLIB_SHFLAGS: Flags to tell ${LD} to emit shared library. |
143 | # with ELF, also set shared-lib version for ld.so. | | 143 | # with ELF, also set shared-lib version for ld.so. |
144 | # SHLIB_LDSTARTFILE: support .o file, call C++ file-level constructors | | 144 | # SHLIB_LDSTARTFILE: support .o file, call C++ file-level constructors |
145 | # SHLIB_LDENDFILE: support .o file, call C++ file-level destructors | | 145 | # SHLIB_LDENDFILE: support .o file, call C++ file-level destructors |
146 | | | 146 | |
147 | PICFLAGS ?= -fPIC | | 147 | PICFLAGS ?= -fPIC |
148 | | | 148 | |
149 | .if ${MKPICLIB} != "no" | | 149 | .if ${MKPICLIB} != "no" |
150 | CSHLIBFLAGS+= ${PICFLAGS} | | 150 | CSHLIBFLAGS+= ${PICFLAGS} |
151 | .endif | | 151 | .endif |
152 | | | 152 | |
153 | .if defined(CSHLIBFLAGS) && !empty(CSHLIBFLAGS) | | 153 | .if defined(CSHLIBFLAGS) && !empty(CSHLIBFLAGS) |
154 | MKSHLIBOBJS= yes | | 154 | MKSHLIBOBJS= yes |
155 | .else | | 155 | .else |
156 | MKSHLIBOBJS= no | | 156 | MKSHLIBOBJS= no |
157 | .endif | | 157 | .endif |
158 | | | 158 | |
159 | .if (defined(MKDEBUG) && (${MKDEBUG} != "no")) || \ | | 159 | .if (defined(MKDEBUG) && (${MKDEBUG} != "no")) || \ |
160 | (defined(CFLAGS) && !empty(CFLAGS:M*-g*)) | | 160 | (defined(CFLAGS) && !empty(CFLAGS:M*-g*)) |
161 | # We only add -g to the shared library objects | | 161 | # We only add -g to the shared library objects |
162 | # because we don't currently split .a archives. | | 162 | # because we don't currently split .a archives. |
163 | CSHLIBFLAGS+= -g | | 163 | CSHLIBFLAGS+= -g |
164 | .if ${LIBISPRIVATE} == "yes" | | 164 | .if ${LIBISPRIVATE} == "yes" |
165 | CFLAGS+= -g | | 165 | CFLAGS+= -g |
166 | .endif | | 166 | .endif |
167 | .endif | | 167 | .endif |
168 | | | 168 | |
169 | # Platform-independent linker flags for ELF shared libraries | | 169 | # Platform-independent linker flags for ELF shared libraries |
170 | SHLIB_SOVERSION= ${SHLIB_MAJOR} | | 170 | SHLIB_SOVERSION= ${SHLIB_MAJOR} |
171 | SHLIB_SHFLAGS= -Wl,-soname,${_LIB}.so.${SHLIB_SOVERSION} | | 171 | SHLIB_SHFLAGS= -Wl,-soname,${_LIB}.so.${SHLIB_SOVERSION} |
172 | .if !defined(SHLIB_WARNTEXTREL) || ${SHLIB_WARNTEXTREL} != "no" | | 172 | .if !defined(SHLIB_WARNTEXTREL) || ${SHLIB_WARNTEXTREL} != "no" |
173 | SHLIB_SHFLAGS+= -Wl,--warn-shared-textrel | | 173 | SHLIB_SHFLAGS+= -Wl,--warn-shared-textrel |
174 | .endif | | 174 | .endif |
175 | .if !defined(SHLIB_MKMAP) || ${SHLIB_MKMAP} != "no" | | 175 | .if !defined(SHLIB_MKMAP) || ${SHLIB_MKMAP} != "no" |
176 | SHLIB_SHFLAGS+= -Wl,-Map=${_LIB}.so.${SHLIB_SOVERSION}.map | | 176 | SHLIB_SHFLAGS+= -Wl,-Map=${_LIB}.so.${SHLIB_SOVERSION}.map |
177 | .endif | | 177 | .endif |
178 | CLEANFILES+= ${_LIB}.so.${SHLIB_SOVERSION}.map | | 178 | CLEANFILES+= ${_LIB}.so.${SHLIB_SOVERSION}.map |
179 | SHLIB_LDSTARTFILE?= ${_GCC_CRTI} ${_GCC_CRTBEGINS} | | 179 | SHLIB_LDSTARTFILE?= ${_GCC_CRTI} ${_GCC_CRTBEGINS} |
180 | SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${_GCC_CRTN} | | 180 | SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${_GCC_CRTN} |
181 | | | 181 | |
182 | CFLAGS+= ${COPTS} | | 182 | CFLAGS+= ${COPTS} |
183 | OBJCFLAGS+= ${OBJCOPTS} | | 183 | OBJCFLAGS+= ${OBJCOPTS} |
184 | AFLAGS+= ${COPTS} | | 184 | AFLAGS+= ${COPTS} |
185 | FFLAGS+= ${FOPTS} | | 185 | FFLAGS+= ${FOPTS} |
186 | | | 186 | |
187 | .if defined(CTFCONVERT) | | 187 | .if defined(CTFCONVERT) |
188 | .if defined(CFLAGS) && !empty(CFLAGS:M*-g*) | | 188 | .if defined(CFLAGS) && !empty(CFLAGS:M*-g*) |
189 | CTFFLAGS+= -g | | 189 | CTFFLAGS+= -g |
190 | .if defined(HAVE_GCC) && ${HAVE_GCC} >= 48 | | 190 | .if defined(HAVE_GCC) && ${HAVE_GCC} >= 48 |
191 | #CFLAGS+= -gdwarf-2 | | 191 | #CFLAGS+= -gdwarf-2 |
192 | .endif | | 192 | .endif |
193 | .endif | | 193 | .endif |
194 | .endif | | 194 | .endif |
195 | | | 195 | |
196 | LIBSTRIPAOBJS= yes | | 196 | LIBSTRIPAOBJS= yes |
197 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) | | 197 | .if !defined(CFLAGS) || empty(CFLAGS:M*-g*) |
198 | LIBSTRIPCOBJS= yes | | 198 | LIBSTRIPCOBJS= yes |
199 | .endif | | 199 | .endif |
200 | .if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) | | 200 | .if !defined(OBJCFLAGS) || empty(OBJCFLAGS:M*-g*) |
201 | LIBSTRIPOBJCOBJS= yes | | 201 | LIBSTRIPOBJCOBJS= yes |
202 | .endif | | 202 | .endif |
203 | .if !defined(FFLAGS) || empty(FFLAGS:M*-g*) | | 203 | .if !defined(FFLAGS) || empty(FFLAGS:M*-g*) |
204 | LIBSTRIPFOBJS= yes | | 204 | LIBSTRIPFOBJS= yes |
205 | .endif | | 205 | .endif |
206 | .if !defined(CSHLIBFLAGS) || empty(CSHLIBFLAGS:M*-g*) | | 206 | .if !defined(CSHLIBFLAGS) || empty(CSHLIBFLAGS:M*-g*) |
207 | LIBSTRIPSHLIBOBJS= yes | | 207 | LIBSTRIPSHLIBOBJS= yes |
208 | .endif | | 208 | .endif |
209 | | | 209 | |
210 | .c.o: | | 210 | .c.o: |
211 | ${_MKTARGET_COMPILE} | | 211 | ${_MKTARGET_COMPILE} |
212 | ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 212 | ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
213 | .if defined(CTFCONVERT) | | 213 | .if defined(CTFCONVERT) |
214 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 214 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
215 | .endif | | 215 | .endif |
216 | .if defined(LIBSTRIPCOBJS) | | 216 | .if defined(LIBSTRIPCOBJS) |
217 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 217 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
218 | .endif | | 218 | .endif |
219 | | | 219 | |
220 | .c.po: | | 220 | .c.po: |
221 | ${_MKTARGET_COMPILE} | | 221 | ${_MKTARGET_COMPILE} |
222 | ${COMPILE.c} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} | | 222 | ${COMPILE.c} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} |
223 | .if defined(CTFCONVERT) | | 223 | .if defined(CTFCONVERT) |
224 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 224 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
225 | .endif | | 225 | .endif |
226 | .if defined(LIBSTRIPCOBJS) | | 226 | .if defined(LIBSTRIPCOBJS) |
227 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 227 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
228 | .endif | | 228 | .endif |
229 | | | 229 | |
230 | .c.go: | | 230 | .c.go: |
231 | ${_MKTARGET_COMPILE} | | 231 | ${_MKTARGET_COMPILE} |
232 | ${COMPILE.c} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} | | 232 | ${COMPILE.c} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} |
233 | | | 233 | |
234 | .c.pico: | | 234 | .c.pico: |
235 | ${_MKTARGET_COMPILE} | | 235 | ${_MKTARGET_COMPILE} |
236 | ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} | | 236 | ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
237 | .if defined(LIBSTRIPSHLIBOBJS) | | 237 | .if defined(LIBSTRIPSHLIBOBJS) |
238 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 238 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
239 | .endif | | 239 | .endif |
240 | | | 240 | |
241 | .cc.o .cpp.o .cxx.o .C.o: | | 241 | .cc.o .cpp.o .cxx.o .C.o: |
242 | ${_MKTARGET_COMPILE} | | 242 | ${_MKTARGET_COMPILE} |
243 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 243 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
244 | .if defined(LIBSTRIPCOBJS) | | 244 | .if defined(LIBSTRIPCOBJS) |
245 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 245 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
246 | .endif | | 246 | .endif |
247 | | | 247 | |
248 | .cc.po .cpp.po .cxx.po .C.po: | | 248 | .cc.po .cpp.po .cxx.po .C.po: |
249 | ${_MKTARGET_COMPILE} | | 249 | ${_MKTARGET_COMPILE} |
250 | ${COMPILE.cc} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} | | 250 | ${COMPILE.cc} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -pg ${.IMPSRC} -o ${.TARGET} |
251 | .if defined(LIBSTRIPCOBJS) | | 251 | .if defined(LIBSTRIPCOBJS) |
252 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 252 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
253 | .endif | | 253 | .endif |
254 | | | 254 | |
255 | .cc.go .cpp.go .cxx.go .C.go: | | 255 | .cc.go .cpp.go .cxx.go .C.go: |
256 | ${_MKTARGET_COMPILE} | | 256 | ${_MKTARGET_COMPILE} |
257 | ${COMPILE.cc} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} | | 257 | ${COMPILE.cc} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} -g ${.IMPSRC} -o ${.TARGET} |
258 | | | 258 | |
259 | .cc.pico .cpp.pico .cxx.pico .C.pico: | | 259 | .cc.pico .cpp.pico .cxx.pico .C.pico: |
260 | ${_MKTARGET_COMPILE} | | 260 | ${_MKTARGET_COMPILE} |
261 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} | | 261 | ${COMPILE.cc} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${CSHLIBFLAGS} ${.IMPSRC} -o ${.TARGET} |
262 | .if defined(LIBSTRIPSHLIBOBJS) | | 262 | .if defined(LIBSTRIPSHLIBOBJS) |
263 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 263 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
264 | .endif | | 264 | .endif |
265 | | | 265 | |
266 | .f.o: | | 266 | .f.o: |
267 | ${_MKTARGET_COMPILE} | | 267 | ${_MKTARGET_COMPILE} |
268 | ${COMPILE.f} ${.IMPSRC} -o ${.TARGET} | | 268 | ${COMPILE.f} ${.IMPSRC} -o ${.TARGET} |
269 | .if defined(CTFCONVERT) | | 269 | .if defined(CTFCONVERT) |
270 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 270 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
271 | .endif | | 271 | .endif |
272 | .if defined(LIBSTRIPFOBJS) | | 272 | .if defined(LIBSTRIPFOBJS) |
273 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 273 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
274 | .endif | | 274 | .endif |
275 | | | 275 | |
276 | .f.po: | | 276 | .f.po: |
277 | ${_MKTARGET_COMPILE} | | 277 | ${_MKTARGET_COMPILE} |
278 | ${COMPILE.f} ${PROFFLAGS} -pg ${.IMPSRC} -o ${.TARGET} | | 278 | ${COMPILE.f} ${PROFFLAGS} -pg ${.IMPSRC} -o ${.TARGET} |
279 | .if defined(CTFCONVERT) | | 279 | .if defined(CTFCONVERT) |
280 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 280 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
281 | .endif | | 281 | .endif |
282 | .if defined(LIBSTRIPFOBJS) | | 282 | .if defined(LIBSTRIPFOBJS) |
283 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 283 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
284 | .endif | | 284 | .endif |
285 | | | 285 | |
286 | .f.go: | | 286 | .f.go: |
287 | ${_MKTARGET_COMPILE} | | 287 | ${_MKTARGET_COMPILE} |
288 | ${COMPILE.f} ${DEBUGFLAGS} -g ${.IMPSRC} -o ${.TARGET} | | 288 | ${COMPILE.f} ${DEBUGFLAGS} -g ${.IMPSRC} -o ${.TARGET} |
289 | | | 289 | |
290 | .f.pico: | | 290 | .f.pico: |
291 | ${_MKTARGET_COMPILE} | | 291 | ${_MKTARGET_COMPILE} |
292 | ${COMPILE.f} ${PICFLAGS} ${.IMPSRC} -o ${.TARGET} | | 292 | ${COMPILE.f} ${PICFLAGS} ${.IMPSRC} -o ${.TARGET} |
293 | .if defined(LIBSTRIPFOBJS) | | 293 | .if defined(LIBSTRIPFOBJS) |
294 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 294 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
295 | .endif | | 295 | .endif |
296 | | | 296 | |
297 | .f.ln: | | 297 | .f.ln: |
298 | ${_MKTARGET_COMPILE} | | 298 | ${_MKTARGET_COMPILE} |
299 | @echo Skipping lint for Fortran libraries. | | 299 | @echo Skipping lint for Fortran libraries. |
300 | | | 300 | |
301 | .m.o: | | 301 | .m.o: |
302 | ${_MKTARGET_COMPILE} | | 302 | ${_MKTARGET_COMPILE} |
303 | ${COMPILE.m} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 303 | ${COMPILE.m} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
304 | .if defined(CTFCONVERT) | | 304 | .if defined(CTFCONVERT) |
305 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 305 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
306 | .endif | | 306 | .endif |
307 | .if defined(LIBSTRIPOBJCOBJS) | | 307 | .if defined(LIBSTRIPOBJCOBJS) |
308 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 308 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
309 | .endif | | 309 | .endif |
310 | | | 310 | |
311 | .m.po: | | 311 | .m.po: |
312 | ${_MKTARGET_COMPILE} | | 312 | ${_MKTARGET_COMPILE} |
313 | ${COMPILE.m} ${PROFFLAGS} -pg ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 313 | ${COMPILE.m} ${PROFFLAGS} -pg ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
314 | .if defined(CTFCONVERT) | | 314 | .if defined(CTFCONVERT) |
315 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 315 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
316 | .endif | | 316 | .endif |
317 | .if defined(LIBSTRIPOBJCOBJS) | | 317 | .if defined(LIBSTRIPOBJCOBJS) |
318 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 318 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
319 | .endif | | 319 | .endif |
320 | | | 320 | |
321 | .m.go: | | 321 | .m.go: |
322 | ${_MKTARGET_COMPILE} | | 322 | ${_MKTARGET_COMPILE} |
323 | ${COMPILE.m} ${DEBUGFLAGS} -g ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 323 | ${COMPILE.m} ${DEBUGFLAGS} -g ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
324 | .if defined(LIBSTRIPOBJCOBJS) | | 324 | .if defined(LIBSTRIPOBJCOBJS) |
325 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 325 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
326 | .endif | | 326 | .endif |
327 | | | 327 | |
328 | .m.pico: | | 328 | .m.pico: |
329 | ${_MKTARGET_COMPILE} | | 329 | ${_MKTARGET_COMPILE} |
330 | ${COMPILE.m} ${CSHLIBFLAGS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 330 | ${COMPILE.m} ${CSHLIBFLAGS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
331 | .if defined(LIBSTRIPOBJCOBJS) | | 331 | .if defined(LIBSTRIPOBJCOBJS) |
332 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 332 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
333 | .endif | | 333 | .endif |
334 | | | 334 | |
335 | .s.o: | | 335 | .s.o: |
336 | ${_MKTARGET_COMPILE} | | 336 | ${_MKTARGET_COMPILE} |
337 | ${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 337 | ${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
338 | .if defined(CTFCONVERT) | | 338 | .if defined(CTFCONVERT) |
339 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 339 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
340 | .endif | | 340 | .endif |
341 | .if defined(LIBSTRIPAOBJS) | | 341 | .if defined(LIBSTRIPAOBJS) |
342 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 342 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
343 | .endif | | 343 | .endif |
344 | | | 344 | |
345 | .S.o: | | 345 | .S.o: |
346 | ${_MKTARGET_COMPILE} | | 346 | ${_MKTARGET_COMPILE} |
347 | ${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 347 | ${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
348 | .if defined(CTFCONVERT) | | 348 | .if defined(CTFCONVERT) |
349 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 349 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
350 | .endif | | 350 | .endif |
351 | .if defined(LIBSTRIPAOBJS) | | 351 | .if defined(LIBSTRIPAOBJS) |
352 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 352 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
353 | .endif | | 353 | .endif |
354 | | | 354 | |
355 | .s.po: | | 355 | .s.po: |
356 | ${_MKTARGET_COMPILE} | | 356 | ${_MKTARGET_COMPILE} |
357 | ${COMPILE.s} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 357 | ${COMPILE.s} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
358 | .if defined(CTFCONVERT) | | 358 | .if defined(CTFCONVERT) |
359 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 359 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
360 | .endif | | 360 | .endif |
361 | .if defined(LIBSTRIPAOBJS) | | 361 | .if defined(LIBSTRIPAOBJS) |
362 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 362 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
363 | .endif | | 363 | .endif |
364 | | | 364 | |
365 | .S.po: | | 365 | .S.po: |
366 | ${_MKTARGET_COMPILE} | | 366 | ${_MKTARGET_COMPILE} |
367 | ${COMPILE.S} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 367 | ${COMPILE.S} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
368 | .if defined(CTFCONVERT) | | 368 | .if defined(CTFCONVERT) |
369 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 369 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
370 | .endif | | 370 | .endif |
371 | .if defined(LIBSTRIPAOBJS) | | 371 | .if defined(LIBSTRIPAOBJS) |
372 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 372 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
373 | .endif | | 373 | .endif |
374 | | | 374 | |
375 | .s.go: | | 375 | .s.go: |
376 | ${_MKTARGET_COMPILE} | | 376 | ${_MKTARGET_COMPILE} |
377 | ${COMPILE.s} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 377 | ${COMPILE.s} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
378 | | | 378 | |
379 | .S.go: | | 379 | .S.go: |
380 | ${_MKTARGET_COMPILE} | | 380 | ${_MKTARGET_COMPILE} |
381 | ${COMPILE.S} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 381 | ${COMPILE.S} ${DEBUGFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
382 | | | 382 | |
383 | .s.pico: | | 383 | .s.pico: |
384 | ${_MKTARGET_COMPILE} | | 384 | ${_MKTARGET_COMPILE} |
385 | ${COMPILE.s} ${PICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 385 | ${COMPILE.s} ${PICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
386 | .if defined(LIBSTRIPAOBJS) | | 386 | .if defined(LIBSTRIPAOBJS) |
387 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 387 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
388 | .endif | | 388 | .endif |
389 | | | 389 | |
390 | .S.pico: | | 390 | .S.pico: |
391 | ${_MKTARGET_COMPILE} | | 391 | ${_MKTARGET_COMPILE} |
392 | ${COMPILE.S} ${PICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} | | 392 | ${COMPILE.S} ${PICFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET} |
393 | .if defined(LIBSTRIPAOBJS) | | 393 | .if defined(LIBSTRIPAOBJS) |
394 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 394 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
395 | .endif | | 395 | .endif |
396 | | | 396 | |
397 | # Declare a few variables to make our life easier later. | | 397 | # Declare a few variables to make our life easier later. |
398 | _LIB:=${_LIB_PREFIX}${LIB} | | 398 | _LIB:=${_LIB_PREFIX}${LIB} |
399 | _LIB.a:=${_LIB}.a | | 399 | _LIB.a:=${_LIB}.a |
400 | _LIB_p.a:=${_LIB}_p.a | | 400 | _LIB_p.a:=${_LIB}_p.a |
401 | _LIB_g.a:=${_LIB}_g.a | | 401 | _LIB_g.a:=${_LIB}_g.a |
402 | _LIB_pic.a:=${_LIB}_pic.a | | 402 | _LIB_pic.a:=${_LIB}_pic.a |
403 | _LIB.ln:=llib-l${LIB}.ln | | 403 | _LIB.ln:=llib-l${LIB}.ln |
404 | | | 404 | |
405 | .if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) | | 405 | .if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) |
406 | _LIB.so:=${_LIB}.so | | 406 | _LIB.so:=${_LIB}.so |
407 | _LIB.so.major:=${_LIB}.so.${SHLIB_MAJOR} | | 407 | _LIB.so.major:=${_LIB}.so.${SHLIB_MAJOR} |
408 | _LIB.so.full:=${_LIB}.so.${SHLIB_FULLVERSION} | | 408 | _LIB.so.full:=${_LIB}.so.${SHLIB_FULLVERSION} |
409 | _LIB.so.link:=${_LIB}.so.${SHLIB_FULLVERSION}.link | | 409 | _LIB.so.link:=${_LIB}.so.${SHLIB_FULLVERSION}.link |
410 | .if ${MKDEBUG} != "no" | | 410 | .if ${MKDEBUG} != "no" |
411 | _LIB.so.debug:=${_LIB.so.full}.debug | | 411 | _LIB.so.debug:=${_LIB.so.full}.debug |
412 | .endif | | 412 | .endif |
413 | .endif | | 413 | .endif |
414 | | | 414 | |
415 | _DEST.LIB:=${DESTDIR}${LIBDIR} | | 415 | _DEST.LIB:=${DESTDIR}${LIBDIR} |
416 | _DEST.OBJ:=${DESTDIR}${_LIBSODIR} | | 416 | _DEST.OBJ:=${DESTDIR}${_LIBSODIR} |
417 | _DEST.LINT:=${DESTDIR}${LINTLIBDIR} | | 417 | _DEST.LINT:=${DESTDIR}${LINTLIBDIR} |
418 | _DEST.DEBUG:=${DESTDIR}${DEBUGDIR}${LIBDIR} | | 418 | _DEST.DEBUG:=${DESTDIR}${DEBUGDIR}${LIBDIR} |
419 | _DEST.ODEBUG:=${DESTDIR}${DEBUGDIR}${_LIBSODIR} | | 419 | _DEST.ODEBUG:=${DESTDIR}${DEBUGDIR}${_LIBSODIR} |
420 | | | 420 | |
421 | .if defined(LIB) # { | | 421 | .if defined(LIB) # { |
422 | .if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ | | 422 | .if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ |
423 | || ${MKLINKLIB} != "no") && ${MKSTATICLIB} != "no" | | 423 | || ${MKLINKLIB} != "no") && ${MKSTATICLIB} != "no" |
424 | _LIBS=${_LIB.a} | | 424 | _LIBS=${_LIB.a} |
425 | .else | | 425 | .else |
426 | _LIBS= | | 426 | _LIBS= |
427 | .endif | | 427 | .endif |
428 | | | 428 | |
429 | .if ${LIBISPRIVATE} != "no" \ | | 429 | .if ${LIBISPRIVATE} != "no" \ |
430 | && (defined(USE_COMBINE) && ${USE_COMBINE} == "yes" \ | | 430 | && (defined(USE_COMBINE) && ${USE_COMBINE} == "yes" \ |
431 | && !defined(NOCOMBINE)) # { | | 431 | && !defined(NOCOMBINE)) # { |
432 | .for f in ${SRCS:N*.h:N*.sh:C/\.[yl]$/.c/g} | | 432 | .for f in ${SRCS:N*.h:N*.sh:C/\.[yl]$/.c/g} |
433 | COMBINEFLAGS.${LIB}.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5} | | 433 | COMBINEFLAGS.${LIB}.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5} |
434 | .if empty(COMBINEFLAGS.${LIB}.${f}) && !defined(NOCOMBINE.$f) | | 434 | .if empty(COMBINEFLAGS.${LIB}.${f}) && !defined(NOCOMBINE.$f) |
435 | COMBINESRCS+= ${f} | | 435 | COMBINESRCS+= ${f} |
436 | NODPSRCS+= ${f} | | 436 | NODPSRCS+= ${f} |
437 | .else | | 437 | .else |
438 | OBJS+= ${f:R:S/$/.o/} | | 438 | OBJS+= ${f:R:S/$/.o/} |
439 | .endif | | 439 | .endif |
440 | .endfor | | 440 | .endfor |
441 | | | 441 | |
442 | .if !empty(COMBINESRCS) | | 442 | .if !empty(COMBINESRCS) |
443 | OBJS+= ${_LIB}_combine.o | | 443 | OBJS+= ${_LIB}_combine.o |
444 | ${_LIB}_combine.o: ${COMBINESRCS} | | 444 | ${_LIB}_combine.o: ${COMBINESRCS} |
445 | ${_MKTARGET_COMPILE} | | 445 | ${_MKTARGET_COMPILE} |
446 | ${COMPILE.c} -MD --combine ${.ALLSRC} -o ${.TARGET} | | 446 | ${COMPILE.c} -MD --combine ${.ALLSRC} -o ${.TARGET} |
447 | .if defined(LIBSTRIPOBJS) | | 447 | .if defined(LIBSTRIPOBJS) |
448 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} | | 448 | ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} |
449 | .endif | | 449 | .endif |
450 | | | 450 | |
451 | CLEANFILES+= ${_LIB}_combine.d | | 451 | CLEANFILES+= ${_LIB}_combine.d |
452 | | | 452 | |
453 | .if exists("${_LIB}_combine.d") | | 453 | .if exists("${_LIB}_combine.d") |
454 | .include "${_LIB}_combine.d" | | 454 | .include "${_LIB}_combine.d" |
455 | .endif | | 455 | .endif |
456 | .endif # empty(XSRCS.${LIB}) | | 456 | .endif # empty(XSRCS.${LIB}) |
457 | .else # } { | | 457 | .else # } { |
458 | OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} | | 458 | OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} |
459 | .endif # } | | 459 | .endif # } |
460 | | | 460 | |
461 | STOBJS+=${OBJS} | | 461 | STOBJS+=${OBJS} |
462 | | | 462 | |
463 | LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} | | 463 | LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} |
464 | | | 464 | |
465 | .if ${LIBISPRIVATE} != "no" | | 465 | .if ${LIBISPRIVATE} != "no" |
466 | # No installation is required | | 466 | # No installation is required |
467 | libinstall:: | | 467 | libinstall:: |
468 | .endif | | 468 | .endif |
469 | | | 469 | |
470 | .if ${MKDEBUGLIB} != "no" | | 470 | .if ${MKDEBUGLIB} != "no" |
471 | _LIBS+=${_LIB_g.a} | | 471 | _LIBS+=${_LIB_g.a} |
472 | GOBJS+=${OBJS:.o=.go} | | 472 | GOBJS+=${OBJS:.o=.go} |
473 | DEBUGFLAGS?=-DDEBUG | | 473 | DEBUGFLAGS?=-DDEBUG |
474 | .endif | | 474 | .endif |
475 | | | 475 | |
476 | .if ${MKPROFILE} != "no" | | 476 | .if ${MKPROFILE} != "no" |
477 | _LIBS+=${_LIB_p.a} | | 477 | _LIBS+=${_LIB_p.a} |
478 | POBJS+=${OBJS:.o=.po} | | 478 | POBJS+=${OBJS:.o=.po} |
479 | PROFFLAGS?=-DGPROF -DPROF | | 479 | PROFFLAGS?=-DGPROF -DPROF |
480 | .endif | | 480 | .endif |
481 | | | 481 | |
482 | .if ${MKPIC} != "no" # { | | 482 | .if ${MKPIC} != "no" # { |
483 | .if ${MKPICLIB} == "no" | | 483 | .if ${MKPICLIB} == "no" |
484 | .if ${MKSHLIBOBJS} != "no" | | 484 | .if ${MKSHLIBOBJS} != "no" |
485 | # make _pic.a, which isn't really pic, | | 485 | # make _pic.a, which isn't really pic, |
486 | # since it's needed for making shared lib. | | 486 | # since it's needed for making shared lib. |
487 | # but don't install it. | | 487 | # but don't install it. |
488 | SOLIB=${_LIB_pic.a} | | 488 | SOLIB=${_LIB_pic.a} |
489 | SOBJS+=${OBJS:.o=.pico} | | 489 | SOBJS+=${OBJS:.o=.pico} |
490 | .else | | 490 | .else |
491 | SOLIB=${_LIB.a} | | 491 | SOLIB=${_LIB.a} |
492 | .endif | | 492 | .endif |
493 | .else | | 493 | .else |
494 | SOLIB=${_LIB_pic.a} | | 494 | SOLIB=${_LIB_pic.a} |
495 | _LIBS+=${SOLIB} | | 495 | _LIBS+=${SOLIB} |
496 | SOBJS+=${OBJS:.o=.pico} | | 496 | SOBJS+=${OBJS:.o=.pico} |
497 | .endif | | 497 | .endif |
498 | .if defined(SHLIB_FULLVERSION) | | 498 | .if defined(SHLIB_FULLVERSION) |
499 | _LIBS+=${_LIB.so.full} | | 499 | _LIBS+=${_LIB.so.full} |
500 | .endif | | 500 | .endif |
501 | .endif # } | | 501 | .endif # } |
502 | | | 502 | |
503 | .if ${MKLINT} != "no" && !empty(LOBJS) | | 503 | .if ${MKLINT} != "no" && !empty(LOBJS) |
504 | _LIBS+=${_LIB.ln} | | 504 | _LIBS+=${_LIB.ln} |
505 | .endif | | 505 | .endif |
506 | | | 506 | |
507 | ALLOBJS= | | 507 | ALLOBJS= |
508 | .if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ | | 508 | .if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ |
509 | || ${MKLINKLIB} != "no") && ${MKSTATICLIB} != "no" | | 509 | || ${MKLINKLIB} != "no") && ${MKSTATICLIB} != "no" |
510 | ALLOBJS+=${STOBJS} | | 510 | ALLOBJS+=${STOBJS} |
511 | .endif | | 511 | .endif |
512 | ALLOBJS+=${POBJS} ${SOBJS} | | 512 | ALLOBJS+=${POBJS} ${SOBJS} |
513 | .if ${MKLINT} != "no" && !empty(LOBJS) | | 513 | .if ${MKLINT} != "no" && !empty(LOBJS) |
514 | ALLOBJS+=${LOBJS} | | 514 | ALLOBJS+=${LOBJS} |
515 | .endif | | 515 | .endif |
516 | .else # !defined(LIB) # } { | | 516 | .else # !defined(LIB) # } { |
517 | LOBJS= | | 517 | LOBJS= |
518 | SOBJS= | | 518 | SOBJS= |
519 | .endif # !defined(LIB) # } | | 519 | .endif # !defined(LIB) # } |
520 | | | 520 | |
521 | _YLSRCS= ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}} | | 521 | _YLSRCS= ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}} |
522 | | | 522 | |
523 | .NOPATH: ${ALLOBJS} ${_LIBS} ${_YLSRCS} | | 523 | .NOPATH: ${ALLOBJS} ${_LIBS} ${_YLSRCS} |
524 | | | 524 | |
525 | realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} ${_LIB.so.debug} | | 525 | realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} ${_LIB.so.debug} |
526 | | | 526 | |
527 | MKARZERO?= ${MKREPRO:Uno} | | 527 | MKARZERO?= ${MKREPRO:Uno} |
528 | | | 528 | |
529 | .if ${MKARZERO} == "yes" | | 529 | .if ${MKARZERO} == "yes" |
530 | _ARFL=crsD | | 530 | _ARFL=crsD |
531 | _ARRANFL=sD | | 531 | _ARRANFL=sD |
532 | _INSTRANLIB= | | 532 | _INSTRANLIB= |
533 | .else | | 533 | .else |
534 | _ARFL=crs | | 534 | _ARFL=crs |
535 | _ARRANFL=s | | 535 | _ARRANFL=s |
536 | _INSTRANLIB=${empty(PRESERVE):?-a "${RANLIB} -t":} | | 536 | _INSTRANLIB=${empty(PRESERVE):?-a "${RANLIB} -t":} |
537 | .endif | | 537 | .endif |
538 | | | 538 | |
539 | # If you change this, please consider reflecting the change in | | 539 | # If you change this, please consider reflecting the change in |
540 | # the override in sys/rump/Makefile.rump. | | 540 | # the override in sys/rump/Makefile.rump. |
541 | .if !target(__archivebuild) | | 541 | .if !target(__archivebuild) |
542 | __archivebuild: .USE | | 542 | __archivebuild: .USE |
543 | ${_MKTARGET_BUILD} | | 543 | ${_MKTARGET_BUILD} |
544 | rm -f ${.TARGET} | | 544 | rm -f ${.TARGET} |
545 | ${AR} ${_ARFL} ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}` | | 545 | ${AR} ${_ARFL} ${.TARGET} ${.ALLSRC:M*o:O} |
546 | .endif | | 546 | .endif |
547 | | | 547 | |
548 | .if !target(__archiveinstall) | | 548 | .if !target(__archiveinstall) |
549 | __archiveinstall: .USE | | 549 | __archiveinstall: .USE |
550 | ${_MKTARGET_INSTALL} | | 550 | ${_MKTARGET_INSTALL} |
551 | ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ | | 551 | ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ |
552 | ${_INSTRANLIB} ${.ALLSRC} ${.TARGET} | | 552 | ${_INSTRANLIB} ${.ALLSRC} ${.TARGET} |
553 | .endif | | 553 | .endif |
554 | | | 554 | |
555 | __archivesymlinkpic: .USE | | 555 | __archivesymlinkpic: .USE |
556 | ${_MKTARGET_INSTALL} | | 556 | ${_MKTARGET_INSTALL} |
557 | ${INSTALL_SYMLINK} ${.ALLSRC} ${.TARGET} | | 557 | ${INSTALL_SYMLINK} ${.ALLSRC} ${.TARGET} |
558 | | | 558 | |
559 | DPSRCS+= ${_YLSRCS} | | 559 | DPSRCS+= ${_YLSRCS} |
560 | CLEANFILES+= ${_YLSRCS} | | 560 | CLEANFILES+= ${_YLSRCS} |
561 | | | 561 | |
562 | ${STOBJS} ${POBJS} ${GOBJS} ${SOBJS} ${LOBJS}: ${DPSRCS} | | 562 | ${STOBJS} ${POBJS} ${GOBJS} ${SOBJS} ${LOBJS}: ${DPSRCS} |
563 | | | 563 | |
564 | ${_LIB.a}:: ${STOBJS} __archivebuild | | 564 | ${_LIB.a}:: ${STOBJS} __archivebuild |
565 | | | 565 | |
566 | ${_LIB_p.a}:: ${POBJS} __archivebuild | | 566 | ${_LIB_p.a}:: ${POBJS} __archivebuild |
567 | | | 567 | |
568 | ${_LIB_pic.a}:: ${SOBJS} __archivebuild | | 568 | ${_LIB_pic.a}:: ${SOBJS} __archivebuild |
569 | | | 569 | |
570 | ${_LIB_g.a}:: ${GOBJS} __archivebuild | | 570 | ${_LIB_g.a}:: ${GOBJS} __archivebuild |
571 | | | 571 | |
572 | | | 572 | |
573 | _LIBLDOPTS= | | 573 | _LIBLDOPTS= |
574 | .if ${SHLIBDIR} != "/usr/lib" | | 574 | .if ${SHLIBDIR} != "/usr/lib" |
575 | _LIBLDOPTS+= -Wl,-rpath,${SHLIBDIR} \ | | 575 | _LIBLDOPTS+= -Wl,-rpath,${SHLIBDIR} \ |
576 | -L=${SHLIBDIR} | | 576 | -L=${SHLIBDIR} |
577 | .elif ${SHLIBINSTALLDIR} != "/usr/lib" | | 577 | .elif ${SHLIBINSTALLDIR} != "/usr/lib" |
578 | _LIBLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ | | 578 | _LIBLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ |
579 | -L=${SHLIBINSTALLDIR} | | 579 | -L=${SHLIBINSTALLDIR} |
580 | .endif | | 580 | .endif |
581 | | | 581 | |
582 | # gcc -shared now adds -lc automatically. For libraries other than libc and | | 582 | # gcc -shared now adds -lc automatically. For libraries other than libc and |
583 | # libgcc* we add as a dependency the installed shared libc. For libc and | | 583 | # libgcc* we add as a dependency the installed shared libc. For libc and |
584 | # libgcc* we avoid adding libc as a dependency by using -nostdlib. Note that | | 584 | # libgcc* we avoid adding libc as a dependency by using -nostdlib. Note that |
585 | # -Xl,-nostdlib is not enough because we want to tell the compiler-driver not | | 585 | # -Xl,-nostdlib is not enough because we want to tell the compiler-driver not |
586 | # to add standard libraries, not the linker. | | 586 | # to add standard libraries, not the linker. |
587 | .if !defined(LIB) | | 587 | .if !defined(LIB) |
588 | .if !empty(LIBC_SO) | | 588 | .if !empty(LIBC_SO) |
589 | DPLIBC ?= ${DESTDIR}${LIBC_SO} | | 589 | DPLIBC ?= ${DESTDIR}${LIBC_SO} |
590 | .endif | | 590 | .endif |
591 | .else | | 591 | .else |
592 | .if ${LIB} != "c" && ${LIB:Mgcc*} == "" | | 592 | .if ${LIB} != "c" && ${LIB:Mgcc*} == "" |
593 | .if !empty(LIBC_SO) | | 593 | .if !empty(LIBC_SO) |
594 | DPLIBC ?= ${DESTDIR}${LIBC_SO} | | 594 | DPLIBC ?= ${DESTDIR}${LIBC_SO} |
595 | .endif | | 595 | .endif |
596 | .else | | 596 | .else |
597 | LDLIBC ?= -nodefaultlibs | | 597 | LDLIBC ?= -nodefaultlibs |
598 | .if ${HAVE_LIBGCC} == "yes" && ${LIB} == "c" | | 598 | .if ${HAVE_LIBGCC} == "yes" && ${LIB} == "c" |
599 | LDADD+= -lgcc | | 599 | LDADD+= -lgcc |
600 | .endif | | 600 | .endif |
601 | .endif | | 601 | .endif |
602 | .endif | | 602 | .endif |
603 | | | 603 | |
604 | .if ${LIBISCXX} != "no" | | 604 | .if ${LIBISCXX} != "no" |
605 | LIBCC:= ${CXX} | | 605 | LIBCC:= ${CXX} |
606 | . if ${MKLIBCXX} == "yes" | | 606 | . if ${MKLIBCXX} == "yes" |
607 | LIBDPLIBS+= c++ ${.CURDIR}/../../../../../external/bsd/libc++/lib | | 607 | LIBDPLIBS+= c++ ${.CURDIR}/../../../../../external/bsd/libc++/lib |
608 | . else | | 608 | . else |
609 | LIBDPLIBS+= stdc++ ${.CURDIR}/../../../../../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libstdc++-v3 | | 609 | LIBDPLIBS+= stdc++ ${.CURDIR}/../../../../../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libstdc++-v3 |
610 | . endif | | 610 | . endif |
611 | .else | | 611 | .else |
612 | LIBCC:= ${CC} | | 612 | LIBCC:= ${CC} |
613 | .endif | | 613 | .endif |
614 | | | 614 | |
615 | _LDADD.${_LIB}= ${LDADD} ${LDADD.${_LIB}} | | 615 | _LDADD.${_LIB}= ${LDADD} ${LDADD.${_LIB}} |
616 | _LDFLAGS.${_LIB}= ${LDFLAGS} ${LDFLAGS.${_LIB}} | | 616 | _LDFLAGS.${_LIB}= ${LDFLAGS} ${LDFLAGS.${_LIB}} |
617 | | | 617 | |
618 | _MAINLIBDEPS= ${SOLIB} ${DPADD} ${DPLIBC} \ | | 618 | _MAINLIBDEPS= ${SOLIB} ${DPADD} ${DPLIBC} \ |
619 | ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} | | 619 | ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} |
620 | | | 620 | |
621 | .if defined(_LIB.so.debug) | | 621 | .if defined(_LIB.so.debug) |
622 | ${_LIB.so.debug}: ${_LIB.so.link} | | 622 | ${_LIB.so.debug}: ${_LIB.so.link} |
623 | ${_MKTARGET_CREATE} | | 623 | ${_MKTARGET_CREATE} |
624 | ( ${OBJCOPY} --only-keep-debug \ | | 624 | ( ${OBJCOPY} --only-keep-debug \ |
625 | ${_LIB.so.link} ${_LIB.so.debug} \ | | 625 | ${_LIB.so.link} ${_LIB.so.debug} \ |
626 | ) || (rm -f ${.TARGET}; false) | | 626 | ) || (rm -f ${.TARGET}; false) |
627 | ${_LIB.so.full}: ${_LIB.so.link} ${_LIB.so.debug} | | 627 | ${_LIB.so.full}: ${_LIB.so.link} ${_LIB.so.debug} |
628 | ${_MKTARGET_CREATE} | | 628 | ${_MKTARGET_CREATE} |
629 | ( ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \ | | 629 | ( ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \ |
630 | --add-gnu-debuglink=${_LIB.so.debug} \ | | 630 | --add-gnu-debuglink=${_LIB.so.debug} \ |
631 | ${_LIB.so.link} ${_LIB.so.full} \ | | 631 | ${_LIB.so.link} ${_LIB.so.full} \ |
632 | ) || (rm -f ${.TARGET}; false) | | 632 | ) || (rm -f ${.TARGET}; false) |
633 | ${_LIB.so.link}: ${_MAINLIBDEPS} | | 633 | ${_LIB.so.link}: ${_MAINLIBDEPS} |
634 | .else # aka no MKDEBUG | | 634 | .else # aka no MKDEBUG |
635 | ${_LIB.so.full}: ${_MAINLIBDEPS} | | 635 | ${_LIB.so.full}: ${_MAINLIBDEPS} |
636 | .endif | | 636 | .endif |
637 | ${_MKTARGET_BUILD} | | 637 | ${_MKTARGET_BUILD} |
638 | rm -f ${.TARGET} | | 638 | rm -f ${.TARGET} |
639 | ${LIBCC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} \ | | 639 | ${LIBCC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} \ |
640 | ${_LDFLAGS.${_LIB}} -o ${.TARGET} ${_LIBLDOPTS} \ | | 640 | ${_LDFLAGS.${_LIB}} -o ${.TARGET} ${_LIBLDOPTS} \ |
641 | -Wl,--whole-archive ${SOLIB} \ | | 641 | -Wl,--whole-archive ${SOLIB} \ |
642 | -Wl,--no-whole-archive ${_LDADD.${_LIB}} | | 642 | -Wl,--no-whole-archive ${_LDADD.${_LIB}} |
643 | # We don't use INSTALL_SYMLINK here because this is just | | 643 | # We don't use INSTALL_SYMLINK here because this is just |
644 | # happening inside the build directory/objdir. XXX Why does | | 644 | # happening inside the build directory/objdir. XXX Why does |
645 | # this spend so much effort on libraries that aren't live??? XXX | | 645 | # this spend so much effort on libraries that aren't live??? XXX |
646 | # XXX Also creates dead symlinks until the .full rule runs | | 646 | # XXX Also creates dead symlinks until the .full rule runs |
647 | # above and creates the main link | | 647 | # above and creates the main link |
648 | .if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ | | 648 | .if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ |
649 | "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" | | 649 | "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" |
650 | ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so.major}.tmp | | 650 | ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so.major}.tmp |
651 | mv -f ${_LIB.so.major}.tmp ${_LIB.so.major} | | 651 | mv -f ${_LIB.so.major}.tmp ${_LIB.so.major} |
652 | .endif | | 652 | .endif |
653 | ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so}.tmp | | 653 | ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so}.tmp |
654 | mv -f ${_LIB.so}.tmp ${_LIB.so} | | 654 | mv -f ${_LIB.so}.tmp ${_LIB.so} |
655 | .if ${MKSTRIPIDENT} != "no" | | 655 | .if ${MKSTRIPIDENT} != "no" |
656 | ${OBJCOPY} -R .ident ${.TARGET} | | 656 | ${OBJCOPY} -R .ident ${.TARGET} |
657 | .endif | | 657 | .endif |
658 | | | 658 | |
659 | .if !empty(LOBJS) # { | | 659 | .if !empty(LOBJS) # { |
660 | LLIBS?= -lc | | 660 | LLIBS?= -lc |
661 | ${_LIB.ln}: ${LOBJS} | | 661 | ${_LIB.ln}: ${LOBJS} |
662 | ${_MKTARGET_COMPILE} | | 662 | ${_MKTARGET_COMPILE} |
663 | rm -f ${.TARGET} | | 663 | rm -f ${.TARGET} |
664 | .if defined(DESTDIR) | | 664 | .if defined(DESTDIR) |
665 | ${LINT} -C${LIB} ${.ALLSRC} -L${DESTDIR}/usr/libdata ${LLIBS} | | 665 | ${LINT} -C${LIB} ${.ALLSRC} -L${DESTDIR}/usr/libdata ${LLIBS} |
666 | .else | | 666 | .else |
667 | ${LINT} -C${LIB} ${.ALLSRC} ${LLIBS} | | 667 | ${LINT} -C${LIB} ${.ALLSRC} ${LLIBS} |
668 | .endif | | 668 | .endif |
669 | .endif # } | | 669 | .endif # } |
670 | | | 670 | |
671 | lint: ${LOBJS} | | 671 | lint: ${LOBJS} |
672 | .if defined(LOBJS) && !empty(LOBJS) | | 672 | .if defined(LOBJS) && !empty(LOBJS) |
673 | ${LINT} ${LINTFLAGS} ${LOBJS} | | 673 | ${LINT} ${LINTFLAGS} ${LOBJS} |
674 | .endif | | 674 | .endif |
675 | | | 675 | |
676 | | | 676 | |
677 | # If the number of entries in CLEANFILES is too large, then the | | 677 | # If the number of entries in CLEANFILES is too large, then the |
678 | # commands in bsd.clean.mk encounter errors like "exec(/bin/sh) | | 678 | # commands in bsd.clean.mk encounter errors like "exec(/bin/sh) |
679 | # failed (Argument list too long)". Avoid that by splitting the | | 679 | # failed (Argument list too long)". Avoid that by splitting the |
680 | # files to clean into several lists using different variable names. | | 680 | # files to clean into several lists using different variable names. |
681 | # __cleanuse is an internal target in bsd.clean.mk; the way we | | 681 | # __cleanuse is an internal target in bsd.clean.mk; the way we |
682 | # use it here mimics the way it's used by the clean target in | | 682 | # use it here mimics the way it's used by the clean target in |
683 | # bsd.clean.mk. | | 683 | # bsd.clean.mk. |
684 | # | | 684 | # |
685 | clean: libclean1 libclean2 libclean3 libclean4 libclean5 | | 685 | clean: libclean1 libclean2 libclean3 libclean4 libclean5 |
686 | libclean1: .PHONY .MADE __cleanuse LIBCLEANFILES1 | | 686 | libclean1: .PHONY .MADE __cleanuse LIBCLEANFILES1 |
687 | libclean2: .PHONY .MADE __cleanuse LIBCLEANFILES2 | | 687 | libclean2: .PHONY .MADE __cleanuse LIBCLEANFILES2 |
688 | libclean3: .PHONY .MADE __cleanuse LIBCLEANFILES3 | | 688 | libclean3: .PHONY .MADE __cleanuse LIBCLEANFILES3 |
689 | libclean4: .PHONY .MADE __cleanuse LIBCLEANFILES4 | | 689 | libclean4: .PHONY .MADE __cleanuse LIBCLEANFILES4 |
690 | libclean5: .PHONY .MADE __cleanuse LIBCLEANFILES5 | | 690 | libclean5: .PHONY .MADE __cleanuse LIBCLEANFILES5 |
691 | CLEANFILES+= a.out [Ee]rrs mklog core *.core | | 691 | CLEANFILES+= a.out [Ee]rrs mklog core *.core |
692 | LIBCLEANFILES1+= ${_LIB.a} ${STOBJS} ${STOBJS:=.tmp} | | 692 | LIBCLEANFILES1+= ${_LIB.a} ${STOBJS} ${STOBJS:=.tmp} |
693 | LIBCLEANFILES2+= ${_LIB_p.a} ${POBJS} ${POBJS:=.tmp} | | 693 | LIBCLEANFILES2+= ${_LIB_p.a} ${POBJS} ${POBJS:=.tmp} |
694 | LIBCLEANFILES3+= ${_LIB_g.a} ${GOBJS} ${GOBJS:=.tmp} | | 694 | LIBCLEANFILES3+= ${_LIB_g.a} ${GOBJS} ${GOBJS:=.tmp} |
695 | LIBCLEANFILES4+= ${_LIB_pic.a} | | 695 | LIBCLEANFILES4+= ${_LIB_pic.a} |
696 | .if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) | | 696 | .if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) |
697 | LIBCLEANFILES4+= ${_LIB.so}.* ${_LIB.so} ${_LIB.so.debug} | | 697 | LIBCLEANFILES4+= ${_LIB.so}.* ${_LIB.so} ${_LIB.so.debug} |
698 | .endif | | 698 | .endif |
699 | LIBCLEANFILES4+= ${SOBJS} ${SOBJS:=.tmp} | | 699 | LIBCLEANFILES4+= ${SOBJS} ${SOBJS:=.tmp} |
700 | LIBCLEANFILES5+= ${_LIB.ln} ${LOBJS} | | 700 | LIBCLEANFILES5+= ${_LIB.ln} ${LOBJS} |
701 | | | 701 | |
702 | .if !target(libinstall) # { | | 702 | .if !target(libinstall) # { |
703 | # Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no | | 703 | # Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no |
704 | libinstall:: | | 704 | libinstall:: |
705 | | | 705 | |
706 | .if ${MKLINKLIB} != "no" && ${MKSTATICLIB} != "no" | | 706 | .if ${MKLINKLIB} != "no" && ${MKSTATICLIB} != "no" |
707 | libinstall:: ${_DEST.LIB}/${_LIB.a} | | 707 | libinstall:: ${_DEST.LIB}/${_LIB.a} |
708 | .PRECIOUS: ${_DEST.LIB}/${_LIB.a} | | 708 | .PRECIOUS: ${_DEST.LIB}/${_LIB.a} |
709 | | | 709 | |
710 | .if ${MKUPDATE} == "no" | | 710 | .if ${MKUPDATE} == "no" |
711 | .if !defined(BUILD) && !make(all) && !make(${_LIB.a}) | | 711 | .if !defined(BUILD) && !make(all) && !make(${_LIB.a}) |
712 | ${_DEST.LIB}/${_LIB.a}! .MADE | | 712 | ${_DEST.LIB}/${_LIB.a}! .MADE |
713 | .endif | | 713 | .endif |
714 | ${_DEST.LIB}/${_LIB.a}! ${_LIB.a} __archiveinstall | | 714 | ${_DEST.LIB}/${_LIB.a}! ${_LIB.a} __archiveinstall |
715 | .else | | 715 | .else |
716 | .if !defined(BUILD) && !make(all) && !make(${_LIB.a}) | | 716 | .if !defined(BUILD) && !make(all) && !make(${_LIB.a}) |
717 | ${_DEST.LIB}/${_LIB.a}: .MADE | | 717 | ${_DEST.LIB}/${_LIB.a}: .MADE |
718 | .endif | | 718 | .endif |
719 | ${_DEST.LIB}/${_LIB.a}: ${_LIB.a} __archiveinstall | | 719 | ${_DEST.LIB}/${_LIB.a}: ${_LIB.a} __archiveinstall |
720 | .endif | | 720 | .endif |
721 | .endif | | 721 | .endif |
722 | | | 722 | |
723 | .if ${MKPROFILE} != "no" | | 723 | .if ${MKPROFILE} != "no" |
724 | libinstall:: ${_DEST.LIB}/${_LIB_p.a} | | 724 | libinstall:: ${_DEST.LIB}/${_LIB_p.a} |
725 | .PRECIOUS: ${_DEST.LIB}/${_LIB_p.a} | | 725 | .PRECIOUS: ${_DEST.LIB}/${_LIB_p.a} |
726 | | | 726 | |
727 | .if ${MKUPDATE} == "no" | | 727 | .if ${MKUPDATE} == "no" |
728 | .if !defined(BUILD) && !make(all) && !make(${_LIB_p.a}) | | 728 | .if !defined(BUILD) && !make(all) && !make(${_LIB_p.a}) |
729 | ${_DEST.LIB}/${_LIB_p.a}! .MADE | | 729 | ${_DEST.LIB}/${_LIB_p.a}! .MADE |
730 | .endif | | 730 | .endif |
731 | ${_DEST.LIB}/${_LIB_p.a}! ${_LIB_p.a} __archiveinstall | | 731 | ${_DEST.LIB}/${_LIB_p.a}! ${_LIB_p.a} __archiveinstall |
732 | .else | | 732 | .else |
733 | .if !defined(BUILD) && !make(all) && !make(${_LIB_p.a}) | | 733 | .if !defined(BUILD) && !make(all) && !make(${_LIB_p.a}) |
734 | ${_DEST.LIB}/${_LIB_p.a}: .MADE | | 734 | ${_DEST.LIB}/${_LIB_p.a}: .MADE |
735 | .endif | | 735 | .endif |
736 | ${_DEST.LIB}/${_LIB_p.a}: ${_LIB_p.a} __archiveinstall | | 736 | ${_DEST.LIB}/${_LIB_p.a}: ${_LIB_p.a} __archiveinstall |
737 | .endif | | 737 | .endif |
738 | .endif | | 738 | .endif |
739 | | | 739 | |
740 | .if ${MKDEBUGLIB} != "no" | | 740 | .if ${MKDEBUGLIB} != "no" |
741 | libinstall:: ${_DEST.LIB}/${_LIB_g.a} | | 741 | libinstall:: ${_DEST.LIB}/${_LIB_g.a} |
742 | .PRECIOUS: ${_DEST.LIB}/${_LIB_g.a} | | 742 | .PRECIOUS: ${_DEST.LIB}/${_LIB_g.a} |
743 | | | 743 | |
744 | .if ${MKUPDATE} == "no" | | 744 | .if ${MKUPDATE} == "no" |
745 | .if !defined(BUILD) && !make(all) && !make(${_LIB_g.a}) | | 745 | .if !defined(BUILD) && !make(all) && !make(${_LIB_g.a}) |
746 | ${_DEST.LIB}/${_LIB_g.a}! .MADE | | 746 | ${_DEST.LIB}/${_LIB_g.a}! .MADE |
747 | .endif | | 747 | .endif |
748 | ${_DEST.LIB}/${_LIB_g.a}! ${_LIB_g.a} __archiveinstall | | 748 | ${_DEST.LIB}/${_LIB_g.a}! ${_LIB_g.a} __archiveinstall |
749 | .else | | 749 | .else |
750 | .if !defined(BUILD) && !make(all) && !make(${LIB_g.a}) | | 750 | .if !defined(BUILD) && !make(all) && !make(${LIB_g.a}) |
751 | ${_DEST.LIB}/${_LIB_g.a}: .MADE | | 751 | ${_DEST.LIB}/${_LIB_g.a}: .MADE |
752 | .endif | | 752 | .endif |
753 | ${_DEST.LIB}/${_LIB_g.a}: ${_LIB_g.a} __archiveinstall | | 753 | ${_DEST.LIB}/${_LIB_g.a}: ${_LIB_g.a} __archiveinstall |
754 | .endif | | 754 | .endif |
755 | .endif | | 755 | .endif |
756 | | | 756 | |
757 | .if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" | | 757 | .if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" |
758 | libinstall:: ${_DEST.LIB}/${_LIB_pic.a} | | 758 | libinstall:: ${_DEST.LIB}/${_LIB_pic.a} |
759 | .PRECIOUS: ${_DEST.LIB}/${_LIB_pic.a} | | 759 | .PRECIOUS: ${_DEST.LIB}/${_LIB_pic.a} |
760 | | | 760 | |
761 | .if ${MKUPDATE} == "no" | | 761 | .if ${MKUPDATE} == "no" |
762 | .if !defined(BUILD) && !make(all) && !make(${_LIB_pic.a}) | | 762 | .if !defined(BUILD) && !make(all) && !make(${_LIB_pic.a}) |
763 | ${_DEST.LIB}/${_LIB_pic.a}! .MADE | | 763 | ${_DEST.LIB}/${_LIB_pic.a}! .MADE |
764 | .endif | | 764 | .endif |
765 | .if ${MKPICLIB} == "no" | | 765 | .if ${MKPICLIB} == "no" |
766 | ${_DEST.LIB}/${_LIB_pic.a}! ${_LIB.a} __archivesymlinkpic | | 766 | ${_DEST.LIB}/${_LIB_pic.a}! ${_LIB.a} __archivesymlinkpic |
767 | .else | | 767 | .else |
768 | ${_DEST.LIB}/${_LIB_pic.a}! ${_LIB_pic.a} __archiveinstall | | 768 | ${_DEST.LIB}/${_LIB_pic.a}! ${_LIB_pic.a} __archiveinstall |
769 | .endif | | 769 | .endif |
770 | .else | | 770 | .else |
771 | .if !defined(BUILD) && !make(all) && !make(${_LIB_pic.a}) | | 771 | .if !defined(BUILD) && !make(all) && !make(${_LIB_pic.a}) |
772 | ${_DEST.LIB}/${_LIB_pic.a}: .MADE | | 772 | ${_DEST.LIB}/${_LIB_pic.a}: .MADE |
773 | .endif | | 773 | .endif |
774 | .if ${MKPICLIB} == "no" | | 774 | .if ${MKPICLIB} == "no" |
775 | ${_DEST.LIB}/${_LIB_pic.a}: ${_LIB.a} __archivesymlinkpic | | 775 | ${_DEST.LIB}/${_LIB_pic.a}: ${_LIB.a} __archivesymlinkpic |
776 | .else | | 776 | .else |
777 | ${_DEST.LIB}/${_LIB_pic.a}: ${_LIB_pic.a} __archiveinstall | | 777 | ${_DEST.LIB}/${_LIB_pic.a}: ${_LIB_pic.a} __archiveinstall |
778 | .endif | | 778 | .endif |
779 | .endif | | 779 | .endif |
780 | .endif | | 780 | .endif |
781 | | | 781 | |
782 | .if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) | | 782 | .if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) |
783 | | | 783 | |
784 | libinstall:: ${_DEST.OBJ}/${_LIB.so.full} | | 784 | libinstall:: ${_DEST.OBJ}/${_LIB.so.full} |
785 | .PRECIOUS: ${_DEST.OBJ}/${_LIB.so.full} | | 785 | .PRECIOUS: ${_DEST.OBJ}/${_LIB.so.full} |
786 | | | 786 | |
787 | .if ${MKUPDATE} == "no" | | 787 | .if ${MKUPDATE} == "no" |
788 | .if !defined(BUILD) && !make(all) && !make(${_LIB.so.full}) | | 788 | .if !defined(BUILD) && !make(all) && !make(${_LIB.so.full}) |
789 | ${_DEST.OBJ}/${_LIB.so.full}! .MADE | | 789 | ${_DEST.OBJ}/${_LIB.so.full}! .MADE |
790 | .endif | | 790 | .endif |
791 | ${_DEST.OBJ}/${_LIB.so.full}! ${_LIB.so.full} | | 791 | ${_DEST.OBJ}/${_LIB.so.full}! ${_LIB.so.full} |
792 | .else | | 792 | .else |
793 | .if !defined(BUILD) && !make(all) && !make(${_LIB.so.full}) | | 793 | .if !defined(BUILD) && !make(all) && !make(${_LIB.so.full}) |
794 | ${_DEST.OBJ}/${_LIB.so.full}: .MADE | | 794 | ${_DEST.OBJ}/${_LIB.so.full}: .MADE |
795 | .endif | | 795 | .endif |
796 | ${_DEST.OBJ}/${_LIB.so.full}: ${_LIB.so.full} | | 796 | ${_DEST.OBJ}/${_LIB.so.full}: ${_LIB.so.full} |
797 | .endif | | 797 | .endif |
798 | ${_MKTARGET_INSTALL} | | 798 | ${_MKTARGET_INSTALL} |
799 | ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ | | 799 | ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ |
800 | ${.ALLSRC} ${.TARGET} | | 800 | ${.ALLSRC} ${.TARGET} |
801 | .if ${_LIBSODIR} != ${LIBDIR} | | 801 | .if ${_LIBSODIR} != ${LIBDIR} |
802 | ${INSTALL_SYMLINK} -l r ${_DEST.OBJ}/${_LIB.so.full} \ | | 802 | ${INSTALL_SYMLINK} -l r ${_DEST.OBJ}/${_LIB.so.full} \ |
803 | ${_DEST.LIB}/${_LIB.so.full} | | 803 | ${_DEST.LIB}/${_LIB.so.full} |
804 | .endif | | 804 | .endif |
805 | .if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ | | 805 | .if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ |
806 | "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" | | 806 | "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" |
807 | ${INSTALL_SYMLINK} ${_LIB.so.full} ${_DEST.OBJ}/${_LIB.so.major} | | 807 | ${INSTALL_SYMLINK} ${_LIB.so.full} ${_DEST.OBJ}/${_LIB.so.major} |
808 | .if ${_LIBSODIR} != ${LIBDIR} | | 808 | .if ${_LIBSODIR} != ${LIBDIR} |
809 | ${INSTALL_SYMLINK} -l r ${_DEST.OBJ}/${_LIB.so.full} \ | | 809 | ${INSTALL_SYMLINK} -l r ${_DEST.OBJ}/${_LIB.so.full} \ |
810 | ${_DEST.LIB}/${_LIB.so.major} | | 810 | ${_DEST.LIB}/${_LIB.so.major} |
811 | .endif | | 811 | .endif |
812 | .endif | | 812 | .endif |
813 | .if ${MKLINKLIB} != "no" | | 813 | .if ${MKLINKLIB} != "no" |
814 | ${INSTALL_SYMLINK} ${_LIB.so.full} ${_DEST.OBJ}/${_LIB.so} | | 814 | ${INSTALL_SYMLINK} ${_LIB.so.full} ${_DEST.OBJ}/${_LIB.so} |
815 | .if ${_LIBSODIR} != ${LIBDIR} | | 815 | .if ${_LIBSODIR} != ${LIBDIR} |
816 | ${INSTALL_SYMLINK} -l r ${_DEST.OBJ}/${_LIB.so.full} \ | | 816 | ${INSTALL_SYMLINK} -l r ${_DEST.OBJ}/${_LIB.so.full} \ |
817 | ${_DEST.LIB}/${_LIB.so} | | 817 | ${_DEST.LIB}/${_LIB.so} |
818 | .endif | | 818 | .endif |
819 | .endif | | 819 | .endif |
820 | .endif | | 820 | .endif |
821 | | | 821 | |
822 | .if defined(_LIB.so.debug) | | 822 | .if defined(_LIB.so.debug) |
823 | libinstall:: ${_DEST.DEBUG}/${_LIB.so.debug} | | 823 | libinstall:: ${_DEST.DEBUG}/${_LIB.so.debug} |
824 | .PRECIOUS: ${_DEST.DEBUG}/${_LIB.so.debug} | | 824 | .PRECIOUS: ${_DEST.DEBUG}/${_LIB.so.debug} |
825 | | | 825 | |
826 | ${_DEST.DEBUG}/${_LIB.so.debug}: ${_LIB.so.debug} | | 826 | ${_DEST.DEBUG}/${_LIB.so.debug}: ${_LIB.so.debug} |
827 | ${_MKTARGET_INSTALL} | | 827 | ${_MKTARGET_INSTALL} |
828 | ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ | | 828 | ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ |
829 | ${.ALLSRC} ${.TARGET} | | 829 | ${.ALLSRC} ${.TARGET} |
830 | .if ${_LIBSODIR} != ${LIBDIR} | | 830 | .if ${_LIBSODIR} != ${LIBDIR} |
831 | ${INSTALL_SYMLINK} -l r ${_DEST.DEBUG}/${_LIB.so.debug} \ | | 831 | ${INSTALL_SYMLINK} -l r ${_DEST.DEBUG}/${_LIB.so.debug} \ |
832 | ${_DEST.ODEBUG}/${_LIB.so.debug} | | 832 | ${_DEST.ODEBUG}/${_LIB.so.debug} |
833 | .endif | | 833 | .endif |
834 | .endif | | 834 | .endif |
835 | | | 835 | |
836 | .if ${MKLINT} != "no" && !empty(LOBJS) | | 836 | .if ${MKLINT} != "no" && !empty(LOBJS) |
837 | libinstall:: ${_DEST.LINT}/${_LIB.ln} | | 837 | libinstall:: ${_DEST.LINT}/${_LIB.ln} |
838 | .PRECIOUS: ${_DEST.LINT}/${_LIB.ln} | | 838 | .PRECIOUS: ${_DEST.LINT}/${_LIB.ln} |
839 | | | 839 | |
840 | .if ${MKUPDATE} == "no" | | 840 | .if ${MKUPDATE} == "no" |
841 | .if !defined(BUILD) && !make(all) && !make(${_LIB.ln}) | | 841 | .if !defined(BUILD) && !make(all) && !make(${_LIB.ln}) |
842 | ${_DEST.LINT}/${_LIB.ln}! .MADE | | 842 | ${_DEST.LINT}/${_LIB.ln}! .MADE |
843 | .endif | | 843 | .endif |
844 | ${_DEST.LINT}/${_LIB.ln}! ${_LIB.ln} | | 844 | ${_DEST.LINT}/${_LIB.ln}! ${_LIB.ln} |
845 | .else | | 845 | .else |
846 | .if !defined(BUILD) && !make(all) && !make(${_LIB.ln}) | | 846 | .if !defined(BUILD) && !make(all) && !make(${_LIB.ln}) |
847 | ${_DEST.LINT}/${_LIB.ln}: .MADE | | 847 | ${_DEST.LINT}/${_LIB.ln}: .MADE |
848 | .endif | | 848 | .endif |
849 | ${_DEST.LINT}/${_LIB.ln}: ${_LIB.ln} | | 849 | ${_DEST.LINT}/${_LIB.ln}: ${_LIB.ln} |
850 | .endif | | 850 | .endif |
851 | ${_MKTARGET_INSTALL} | | 851 | ${_MKTARGET_INSTALL} |
852 | ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ | | 852 | ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ |
853 | ${.ALLSRC} ${_DEST.LINT} | | 853 | ${.ALLSRC} ${_DEST.LINT} |
854 | .endif | | 854 | .endif |
855 | .endif # !target(libinstall) # } | | 855 | .endif # !target(libinstall) # } |
856 | | | 856 | |
857 | ##### Pull in related .mk logic | | 857 | ##### Pull in related .mk logic |
858 | LINKSOWN?= ${LIBOWN} | | 858 | LINKSOWN?= ${LIBOWN} |
859 | LINKSGRP?= ${LIBGRP} | | 859 | LINKSGRP?= ${LIBGRP} |
860 | LINKSMODE?= ${LIBMODE} | | 860 | LINKSMODE?= ${LIBMODE} |
861 | .include <bsd.man.mk> | | 861 | .include <bsd.man.mk> |
862 | .include <bsd.nls.mk> | | 862 | .include <bsd.nls.mk> |
863 | .include <bsd.files.mk> | | 863 | .include <bsd.files.mk> |
864 | .include <bsd.inc.mk> | | 864 | .include <bsd.inc.mk> |
865 | .include <bsd.links.mk> | | 865 | .include <bsd.links.mk> |
866 | .include <bsd.dep.mk> | | 866 | .include <bsd.dep.mk> |
867 | .include <bsd.clang-analyze.mk> | | 867 | .include <bsd.clang-analyze.mk> |
868 | .include <bsd.clean.mk> | | 868 | .include <bsd.clean.mk> |
869 | | | 869 | |
870 | ${TARGETS}: # ensure existence | | 870 | ${TARGETS}: # ensure existence |