| @@ -1,690 +1,691 @@ | | | @@ -1,690 +1,691 @@ |
1 | # $NetBSD: bsd.prog.mk,v 1.332 2020/10/16 06:55:36 nia Exp $ | | 1 | # $NetBSD: bsd.prog.mk,v 1.333 2020/10/30 08:41:58 martin Exp $ |
2 | # @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 | | 2 | # @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 |
3 | | | 3 | |
4 | .ifndef HOSTPROG | | 4 | .ifndef HOSTPROG |
5 | | | 5 | |
6 | .include <bsd.init.mk> | | 6 | .include <bsd.init.mk> |
7 | .include <bsd.shlib.mk> | | 7 | .include <bsd.shlib.mk> |
8 | .include <bsd.gcc.mk> | | 8 | .include <bsd.gcc.mk> |
9 | .include <bsd.sanitizer.mk> | | 9 | .include <bsd.sanitizer.mk> |
10 | | | 10 | |
11 | ##### Sanitizer specific flags. | | 11 | ##### Sanitizer specific flags. |
12 | | | 12 | |
13 | CFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS} | | 13 | CFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS} |
14 | CXXFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS} | | 14 | CXXFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS} |
15 | LDFLAGS+= ${SANITIZERFLAGS} | | 15 | LDFLAGS+= ${SANITIZERFLAGS} |
16 | | | 16 | |
17 | # | | 17 | # |
18 | # Definitions and targets shared among all programs built by a single | | 18 | # Definitions and targets shared among all programs built by a single |
19 | # Makefile. | | 19 | # Makefile. |
20 | # | | 20 | # |
21 | | | 21 | |
22 | ##### Basic targets | | 22 | ##### Basic targets |
23 | realinstall: proginstall scriptsinstall | | 23 | realinstall: proginstall scriptsinstall |
24 | | | 24 | |
25 | .gdbinit: | | 25 | .gdbinit: |
26 | rm -f .gdbinit | | 26 | rm -f .gdbinit |
27 | .if defined(DESTDIR) && !empty(DESTDIR) | | 27 | .if defined(DESTDIR) && !empty(DESTDIR) |
28 | echo "set solib-absolute-prefix ${DESTDIR}" > .gdbinit | | 28 | echo "set solib-absolute-prefix ${DESTDIR}" > .gdbinit |
29 | .else | | 29 | .else |
30 | touch .gdbinit | | 30 | touch .gdbinit |
31 | .endif | | 31 | .endif |
32 | .for __gdbinit in ${GDBINIT} | | 32 | .for __gdbinit in ${GDBINIT} |
33 | echo "source ${__gdbinit}" >> .gdbinit | | 33 | echo "source ${__gdbinit}" >> .gdbinit |
34 | .endfor | | 34 | .endfor |
35 | | | 35 | |
36 | CLEANFILES+= a.out [Ee]rrs mklog core *.core .gdbinit | | 36 | CLEANFILES+= a.out [Ee]rrs mklog core *.core .gdbinit |
37 | | | 37 | |
38 | .if defined(SHAREDSTRINGS) | | 38 | .if defined(SHAREDSTRINGS) |
39 | CLEANFILES+=strings | | 39 | CLEANFILES+=strings |
40 | .c.o: | | 40 | .c.o: |
41 | ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c - | | 41 | ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c - |
42 | @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET} | | 42 | @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET} |
43 | .if defined(CTFCONVERT) | | 43 | .if defined(CTFCONVERT) |
44 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 44 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
45 | .endif | | 45 | .endif |
46 | @rm -f x.c | | 46 | @rm -f x.c |
47 | | | 47 | |
48 | .cc.o .cpp.o .cxx.o .C.o: | | 48 | .cc.o .cpp.o .cxx.o .C.o: |
49 | ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c - | | 49 | ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c - |
50 | @${MV} x.c x.cc | | 50 | @${MV} x.c x.cc |
51 | @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET} | | 51 | @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET} |
52 | .if defined(CTFCONVERT) | | 52 | .if defined(CTFCONVERT) |
53 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} | | 53 | ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} |
54 | .endif | | 54 | .endif |
55 | @rm -f x.cc | | 55 | @rm -f x.cc |
56 | .endif | | 56 | .endif |
57 | | | 57 | |
58 | .if defined(MKPIE) && (${MKPIE} != "no") && !defined(NOPIE) | | 58 | .if defined(MKPIE) && (${MKPIE} != "no") && !defined(NOPIE) |
59 | CFLAGS+= ${PIE_CFLAGS} | | 59 | CFLAGS+= ${PIE_CFLAGS} |
60 | AFLAGS+= ${PIE_AFLAGS} | | 60 | AFLAGS+= ${PIE_AFLAGS} |
61 | LDFLAGS+= ${"${LDSTATIC.${.TARGET}}" == "-static" :? : ${PIE_LDFLAGS}} | | 61 | LDFLAGS+= ${"${LDSTATIC.${.TARGET}}" == "-static" :? : ${PIE_LDFLAGS}} |
62 | .endif | | 62 | .endif |
63 | | | 63 | |
64 | CFLAGS+= ${COPTS} | | 64 | CFLAGS+= ${COPTS} |
65 | .if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) | | 65 | .if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) |
66 | CFLAGS+= -g | | 66 | CFLAGS+= -g |
67 | .endif | | 67 | .endif |
68 | OBJCFLAGS+= ${OBJCOPTS} | | 68 | OBJCFLAGS+= ${OBJCOPTS} |
69 | MKDEP_SUFFIXES?= .o .ln .d | | 69 | MKDEP_SUFFIXES?= .o .ln .d |
70 | | | 70 | |
71 | # CTF preserve debug symbols | | 71 | # CTF preserve debug symbols |
72 | .if (${MKCTF:Uno} != "no") && (${CFLAGS:M-g} != "") | | 72 | .if (${MKCTF:Uno} != "no") && (${CFLAGS:M-g} != "") |
73 | CTFFLAGS+= -g | | 73 | CTFFLAGS+= -g |
74 | CTFMFLAGS+= -g | | 74 | CTFMFLAGS+= -g |
75 | .if defined(HAVE_GCC) | | 75 | .if defined(HAVE_GCC) |
76 | #CFLAGS+=-gdwarf-2 | | 76 | #CFLAGS+=-gdwarf-2 |
77 | .endif | | 77 | .endif |
78 | .endif | | 78 | .endif |
79 | | | 79 | |
80 | # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o | | 80 | # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o |
81 | .ifndef LIBCRTBEGIN | | 81 | .ifndef LIBCRTBEGIN |
82 | LIBCRTBEGIN= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o ${_GCC_CRTBEGIN} | | 82 | LIBCRTBEGIN= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o ${_GCC_CRTBEGIN} |
83 | .MADE: ${LIBCRTBEGIN} | | 83 | .MADE: ${LIBCRTBEGIN} |
84 | .endif | | 84 | .endif |
85 | .ifndef LIBCRTEND | | 85 | .ifndef LIBCRTEND |
86 | LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crtn.o | | 86 | LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crtn.o |
87 | .MADE: ${LIBCRTEND} | | 87 | .MADE: ${LIBCRTEND} |
88 | .endif | | 88 | .endif |
89 | _SHLINKER= ${SHLINKDIR}/ld.elf_so | | 89 | _SHLINKER= ${SHLINKDIR}/ld.elf_so |
90 | | | 90 | |
91 | .ifndef LIBCRT0 | | 91 | .ifndef LIBCRT0 |
92 | LIBCRT0= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crt0.o | | 92 | LIBCRT0= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crt0.o |
93 | .MADE: ${LIBCRT0} | | 93 | .MADE: ${LIBCRT0} |
94 | .endif | | 94 | .endif |
95 | | | 95 | |
96 | .ifndef LIBCRTI | | 96 | .ifndef LIBCRTI |
97 | LIBCRTI= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o | | 97 | LIBCRTI= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o |
98 | .MADE: ${LIBCRTI} | | 98 | .MADE: ${LIBCRTI} |
99 | .endif | | 99 | .endif |
100 | | | 100 | |
101 | ##### Installed system library definitions | | 101 | ##### Installed system library definitions |
102 | # | | 102 | # |
103 | # E.g. | | 103 | # E.g. |
104 | # LIBC?=${DESTDIR}/usr/lib/libc.a | | 104 | # LIBC?=${DESTDIR}/usr/lib/libc.a |
105 | # LIBX11?=${DESTDIR}/usr/X11R7/lib/libX11.a | | 105 | # LIBX11?=${DESTDIR}/usr/X11R7/lib/libX11.a |
106 | # etc.. | | 106 | # etc.. |
107 | # NB: If you are a library here, add it in bsd.README | | 107 | # NB: If you are a library here, add it in bsd.README |
108 | | | 108 | |
109 | _LIBLIST=\ | | 109 | _LIBLIST=\ |
110 | archive \ | | 110 | archive \ |
111 | asn1 \ | | 111 | asn1 \ |
112 | atf_c \ | | 112 | atf_c \ |
113 | atf_cxx \ | | 113 | atf_cxx \ |
114 | bind9 \ | | 114 | bind9 \ |
115 | blocklist \ | | 115 | blocklist \ |
116 | bluetooth \ | | 116 | bluetooth \ |
117 | bsdmalloc \ | | 117 | bsdmalloc \ |
118 | bz2 \ | | 118 | bz2 \ |
119 | c \ | | 119 | c \ |
120 | c_pic \ | | 120 | c_pic \ |
121 | cbor \ | | 121 | cbor \ |
122 | com_err \ | | 122 | com_err \ |
123 | compat \ | | 123 | compat \ |
124 | crypt \ | | 124 | crypt \ |
125 | crypto \ | | 125 | crypto \ |
126 | curses \ | | 126 | curses \ |
127 | cxx \ | | 127 | cxx \ |
128 | des \ | | 128 | des \ |
129 | dns \ | | 129 | dns \ |
130 | edit \ | | 130 | edit \ |
131 | event \ | | 131 | event \ |
132 | event_openssl \ | | 132 | event_openssl \ |
133 | event_pthreads \ | | 133 | event_pthreads \ |
134 | execinfo \ | | 134 | execinfo \ |
135 | expat \ | | 135 | expat \ |
136 | fetch \ | | 136 | fetch \ |
137 | fl \ | | 137 | fl \ |
138 | fido2 \ | | 138 | fido2 \ |
139 | form \ | | 139 | form \ |
140 | gcc \ | | 140 | gcc \ |
141 | gnuctf \ | | 141 | gnuctf \ |
142 | gnumalloc \ | | 142 | gnumalloc \ |
143 | gssapi \ | | 143 | gssapi \ |
144 | hdb \ | | 144 | hdb \ |
145 | heimbase \ | | 145 | heimbase \ |
146 | heimntlm \ | | 146 | heimntlm \ |
147 | hx509 \ | | 147 | hx509 \ |
148 | intl \ | | 148 | intl \ |
149 | ipsec \ | | 149 | ipsec \ |
150 | isc \ | | 150 | isc \ |
151 | isccc \ | | 151 | isccc \ |
152 | isccfg \ | | 152 | isccfg \ |
153 | kadm5clnt \ | | 153 | kadm5clnt \ |
154 | kadm5srv \ | | 154 | kadm5srv \ |
155 | kafs \ | | 155 | kafs \ |
156 | krb5 \ | | 156 | krb5 \ |
157 | kvm \ | | 157 | kvm \ |
158 | l \ | | 158 | l \ |
159 | lber \ | | 159 | lber \ |
160 | ldap \ | | 160 | ldap \ |
161 | ldap_r \ | | 161 | ldap_r \ |
162 | lua \ | | 162 | lua \ |
163 | m \ | | 163 | m \ |
164 | magic \ | | 164 | magic \ |
165 | menu \ | | 165 | menu \ |
166 | netpgpverify \ | | 166 | netpgpverify \ |
167 | ns \ | | 167 | ns \ |
168 | objc \ | | 168 | objc \ |
169 | ossaudio \ | | 169 | ossaudio \ |
170 | panel \ | | 170 | panel \ |
171 | pam \ | | 171 | pam \ |
172 | pcap \ | | 172 | pcap \ |
173 | pci \ | | 173 | pci \ |
174 | posix \ | | 174 | posix \ |
175 | pthread \ | | 175 | pthread \ |
176 | puffs \ | | 176 | puffs \ |
177 | quota \ | | 177 | quota \ |
178 | radius \ | | 178 | radius \ |
179 | refuse \ | | 179 | refuse \ |
180 | resolv \ | | 180 | resolv \ |
181 | rmt \ | | 181 | rmt \ |
182 | roken \ | | 182 | roken \ |
183 | rpcsvc \ | | 183 | rpcsvc \ |
184 | rt \ | | 184 | rt \ |
185 | rump \ | | 185 | rump \ |
186 | rumpfs_cd9660 \ | | 186 | rumpfs_cd9660 \ |
187 | rumpfs_efs \ | | 187 | rumpfs_efs \ |
188 | rumpfs_ext2fs \ | | 188 | rumpfs_ext2fs \ |
189 | rumpfs_ffs \ | | 189 | rumpfs_ffs \ |
190 | rumpfs_hfs \ | | 190 | rumpfs_hfs \ |
191 | rumpfs_lfs \ | | 191 | rumpfs_lfs \ |
192 | rumpfs_msdos \ | | 192 | rumpfs_msdos \ |
193 | rumpfs_nfs \ | | 193 | rumpfs_nfs \ |
194 | rumpfs_ntfs \ | | 194 | rumpfs_ntfs \ |
195 | rumpfs_syspuffs \ | | 195 | rumpfs_syspuffs \ |
196 | rumpfs_tmpfs \ | | 196 | rumpfs_tmpfs \ |
197 | rumpfs_udf \ | | 197 | rumpfs_udf \ |
198 | rumpuser \ | | 198 | rumpuser \ |
199 | saslc \ | | 199 | saslc \ |
200 | skey \ | | 200 | skey \ |
201 | sl \ | | 201 | sl \ |
202 | sqlite3 \ | | 202 | sqlite3 \ |
203 | ssh \ | | 203 | ssh \ |
204 | ssl \ | | 204 | ssl \ |
205 | stdc++ \ | | 205 | stdc++ \ |
206 | supc++ \ | | 206 | supc++ \ |
207 | terminfo \ | | 207 | terminfo \ |
208 | tre \ | | 208 | tre \ |
209 | unbound \ | | 209 | unbound \ |
210 | usbhid \ | | 210 | usbhid \ |
211 | util \ | | 211 | util \ |
212 | wind \ | | 212 | wind \ |
213 | wrap \ | | 213 | wrap \ |
214 | y \ | | 214 | y \ |
215 | z | | 215 | z |
216 | | | 216 | |
217 | .for _lib in ${_LIBLIST} | | 217 | .for _lib in ${_LIBLIST} |
218 | .ifndef LIB${_lib:tu} | | 218 | .ifndef LIB${_lib:tu} |
219 | LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib:S/xx/++/:S/atf_c/atf-c/}.a | | 219 | LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib:S/xx/++/:S/atf_c/atf-c/}.a |
220 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded | | 220 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded |
221 | .endif | | 221 | .endif |
222 | .endfor | | 222 | .endfor |
223 | | | 223 | |
224 | .if (${MKKERBEROS} != "no") | | 224 | .if (${MKKERBEROS} != "no") |
225 | # Kerberos5 applications | | 225 | # Kerberos5 applications |
226 | LIBKRB5_LDADD+= -lkrb5 -lcom_err \ | | 226 | LIBKRB5_LDADD+= -lkrb5 -lcom_err \ |
227 | -lhx509 -lcrypto -lasn1 \ | | 227 | -lhx509 -lcrypto -lasn1 \ |
228 | -lwind -lheimbase -lcom_err -lroken \ | | 228 | -lwind -lheimbase -lcom_err -lroken \ |
229 | -lsqlite3 -lcrypt -lutil | | 229 | -lsqlite3 -lm -lcrypt -lutil |
230 | LIBKRB5_DPADD+= ${LIBKRB5} ${LIBCOM_ERR} \ | | 230 | LIBKRB5_DPADD+= ${LIBKRB5} ${LIBCOM_ERR} \ |
231 | ${LIBHX509} ${LIBCRYPTO} ${LIBASN1} \ | | 231 | ${LIBHX509} ${LIBCRYPTO} ${LIBASN1} \ |
232 | ${LIBWIND} ${LIBHEIMBASE} ${LIBCOM_ERR} ${LIBROKEN} \ | | 232 | ${LIBWIND} ${LIBHEIMBASE} ${LIBCOM_ERR} ${LIBROKEN} \ |
233 | ${LIBSQLITE3} ${LIBCRYPT} ${LIBUTIL} | | 233 | ${LIBSQLITE3} ${LIBM} ${LIBCRYPT} ${LIBUTIL} |
234 | .endif | | 234 | .endif |
235 | | | 235 | |
236 | # PAM applications, if linked statically, need more libraries | | 236 | # PAM applications, if linked statically, need more libraries |
237 | .if (${MKPIC} == "no") | | 237 | .if (${MKPIC} == "no") |
238 | PAM_STATIC_LDADD+= -lssh | | 238 | PAM_STATIC_LDADD+= -lssh |
239 | PAM_STATIC_DPADD+= ${LIBSSH} | | 239 | PAM_STATIC_DPADD+= ${LIBSSH} |
240 | .if (${MKKERBEROS} != "no") | | 240 | .if (${MKKERBEROS} != "no") |
241 | PAM_STATIC_LDADD+= -lkafs -lkrb5 -lhx509 -lwind -lasn1 \ | | 241 | PAM_STATIC_LDADD+= -lkafs -lkrb5 -lhx509 -lwind -lasn1 \ |
242 | -lroken -lcom_err -lheimbase -lcrypto -lsqlite3 | | 242 | -lroken -lcom_err -lheimbase -lcrypto -lsqlite3 -lm |
243 | PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBHX509} ${LIBWIND} ${LIBASN1} \ | | 243 | PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBHX509} ${LIBWIND} ${LIBASN1} \ |
244 | ${LIBROKEN} ${LIBCOM_ERR} ${LIBHEIMBASE} ${LIBCRYPTO} ${LIBSQLITE3} | | 244 | ${LIBROKEN} ${LIBCOM_ERR} ${LIBHEIMBASE} ${LIBCRYPTO} ${LIBSQLITE3} \ |
| | | 245 | ${LIBM} |
245 | .endif | | 246 | .endif |
246 | .if (${MKSKEY} != "no") | | 247 | .if (${MKSKEY} != "no") |
247 | PAM_STATIC_LDADD+= -lskey | | 248 | PAM_STATIC_LDADD+= -lskey |
248 | PAM_STATIC_DPADD+= ${LIBSKEY} | | 249 | PAM_STATIC_DPADD+= ${LIBSKEY} |
249 | .endif | | 250 | .endif |
250 | PAM_STATIC_LDADD+= -lradius -lcrypt -lrpcsvc -lutil | | 251 | PAM_STATIC_LDADD+= -lradius -lcrypt -lrpcsvc -lutil |
251 | PAM_STATIC_DPADD+= ${LIBRADIUS} ${LIBCRYPT} ${LIBRPCSVC} ${LIBUTIL} | | 252 | PAM_STATIC_DPADD+= ${LIBRADIUS} ${LIBCRYPT} ${LIBRPCSVC} ${LIBUTIL} |
252 | .else | | 253 | .else |
253 | PAM_STATIC_LDADD= | | 254 | PAM_STATIC_LDADD= |
254 | PAM_STATIC_DPADD= | | 255 | PAM_STATIC_DPADD= |
255 | .endif | | 256 | .endif |
256 | | | 257 | |
257 | # NB: If you are a library here, add it in bsd.README | | 258 | # NB: If you are a library here, add it in bsd.README |
258 | # This list is sorted with -f so that it matches the order in bsd.README | | 259 | # This list is sorted with -f so that it matches the order in bsd.README |
259 | _X11LIBLIST= dps fntstubs fontcache fontconfig fontenc freetype FS GL GLU \ | | 260 | _X11LIBLIST= dps fntstubs fontcache fontconfig fontenc freetype FS GL GLU \ |
260 | ICE lbxutil SM X11 X11_xcb Xau Xaw xcb Xdmcp Xext Xfont Xfont2 Xft Xi \ | | 261 | ICE lbxutil SM X11 X11_xcb Xau Xaw xcb Xdmcp Xext Xfont Xfont2 Xft Xi \ |
261 | Xinerama xkbfile Xmu Xmuu Xpm Xrandr Xrender Xss Xt XTrap Xtst Xv Xxf86dga \ | | 262 | Xinerama xkbfile Xmu Xmuu Xpm Xrandr Xrender Xss Xt XTrap Xtst Xv Xxf86dga \ |
262 | Xxf86misc Xxf86vm Xcomposite Xdamage Xfixes | | 263 | Xxf86misc Xxf86vm Xcomposite Xdamage Xfixes |
263 | | | 264 | |
264 | .for _lib in ${_X11LIBLIST} | | 265 | .for _lib in ${_X11LIBLIST} |
265 | .ifndef LIB${_lib:tu} | | 266 | .ifndef LIB${_lib:tu} |
266 | LIB${_lib:tu}= ${DESTDIR}${X11USRLIBDIR}/lib${_lib}.a | | 267 | LIB${_lib:tu}= ${DESTDIR}${X11USRLIBDIR}/lib${_lib}.a |
267 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded | | 268 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded |
268 | .endif | | 269 | .endif |
269 | .endfor | | 270 | .endfor |
270 | | | 271 | |
271 | # Ugly one-offs | | 272 | # Ugly one-offs |
272 | LIBX11_XCB= ${DESTDIR}${X11USRLIBDIR}/libX11-xcb.a | | 273 | LIBX11_XCB= ${DESTDIR}${X11USRLIBDIR}/libX11-xcb.a |
273 | LIBXCB= ${DESTDIR}${X11USRLIBDIR}/libxcb.a | | 274 | LIBXCB= ${DESTDIR}${X11USRLIBDIR}/libxcb.a |
274 | | | 275 | |
275 | .if defined(RESCUEDIR) | | 276 | .if defined(RESCUEDIR) |
276 | CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\" | | 277 | CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\" |
277 | .endif | | 278 | .endif |
278 | | | 279 | |
279 | _PROGLDOPTS= | | 280 | _PROGLDOPTS= |
280 | .if ${SHLINKDIR} != "/usr/libexec" # XXX: change or remove if ld.so moves | | 281 | .if ${SHLINKDIR} != "/usr/libexec" # XXX: change or remove if ld.so moves |
281 | _PROGLDOPTS+= -Wl,-dynamic-linker=${_SHLINKER} | | 282 | _PROGLDOPTS+= -Wl,-dynamic-linker=${_SHLINKER} |
282 | .endif | | 283 | .endif |
283 | .if ${SHLIBDIR} != "/usr/lib" | | 284 | .if ${SHLIBDIR} != "/usr/lib" |
284 | _PROGLDOPTS+= -Wl,-rpath,${SHLIBDIR} \ | | 285 | _PROGLDOPTS+= -Wl,-rpath,${SHLIBDIR} \ |
285 | -L=${SHLIBDIR} | | 286 | -L=${SHLIBDIR} |
286 | .elif ${SHLIBINSTALLDIR} != "/usr/lib" | | 287 | .elif ${SHLIBINSTALLDIR} != "/usr/lib" |
287 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ | | 288 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ |
288 | -L=${SHLIBINSTALLDIR} | | 289 | -L=${SHLIBINSTALLDIR} |
289 | .endif | | 290 | .endif |
290 | | | 291 | |
291 | __proginstall: .USE | | 292 | __proginstall: .USE |
292 | ${_MKTARGET_INSTALL} | | 293 | ${_MKTARGET_INSTALL} |
293 | ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ | | 294 | ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ |
294 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} | | 295 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} |
295 | | | 296 | |
296 | __progrumpinstall: .USE | | 297 | __progrumpinstall: .USE |
297 | ${_MKTARGET_INSTALL} | | 298 | ${_MKTARGET_INSTALL} |
298 | ${INSTALL_FILE} -o ${RUMPBINOWN} -g ${RUMPBINGRP} -m ${RUMPBINMODE} \ | | 299 | ${INSTALL_FILE} -o ${RUMPBINOWN} -g ${RUMPBINGRP} -m ${RUMPBINMODE} \ |
299 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} | | 300 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} |
300 | | | 301 | |
301 | __progdebuginstall: .USE | | 302 | __progdebuginstall: .USE |
302 | ${_MKTARGET_INSTALL} | | 303 | ${_MKTARGET_INSTALL} |
303 | ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ | | 304 | ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ |
304 | ${.ALLSRC} ${.TARGET} | | 305 | ${.ALLSRC} ${.TARGET} |
305 | | | 306 | |
306 | | | 307 | |
307 | | | 308 | |
308 | # | | 309 | # |
309 | # Backwards compatibility with Makefiles that assume that bsd.prog.mk | | 310 | # Backwards compatibility with Makefiles that assume that bsd.prog.mk |
310 | # can only build a single binary. | | 311 | # can only build a single binary. |
311 | # | | 312 | # |
312 | | | 313 | |
313 | _APPEND_MANS=yes | | 314 | _APPEND_MANS=yes |
314 | _APPEND_SRCS=yes | | 315 | _APPEND_SRCS=yes |
315 | | | 316 | |
316 | _CCLINKFLAGS= | | 317 | _CCLINKFLAGS= |
317 | | | 318 | |
318 | .if defined(PROG_CXX) | | 319 | .if defined(PROG_CXX) |
319 | PROG= ${PROG_CXX} | | 320 | PROG= ${PROG_CXX} |
320 | _CCLINK= ${CXX} ${_CCLINKFLAGS} | | 321 | _CCLINK= ${CXX} ${_CCLINKFLAGS} |
321 | .endif | | 322 | .endif |
322 | | | 323 | |
323 | .if defined(RUMPPRG) | | 324 | .if defined(RUMPPRG) |
324 | CPPFLAGS+= -D_KERNTYPES | | 325 | CPPFLAGS+= -D_KERNTYPES |
325 | PROG= ${RUMPPRG} | | 326 | PROG= ${RUMPPRG} |
326 | . ifndef CRUNCHEDPROG | | 327 | . ifndef CRUNCHEDPROG |
327 | . if (${MKRUMP} != "no") | | 328 | . if (${MKRUMP} != "no") |
328 | PROGS= ${RUMPPRG} rump.${RUMPPRG} | | 329 | PROGS= ${RUMPPRG} rump.${RUMPPRG} |
329 | . else | | 330 | . else |
330 | PROGS= ${RUMPPRG} | | 331 | PROGS= ${RUMPPRG} |
331 | . endif | | 332 | . endif |
332 | . if defined(SRCS) | | 333 | . if defined(SRCS) |
333 | . if (${MKRUMP} != "no") | | 334 | . if (${MKRUMP} != "no") |
334 | SRCS.rump.${PROG}:= ${SRCS} ${PROG}_rumpops.c ${RUMPSRCS} | | 335 | SRCS.rump.${PROG}:= ${SRCS} ${PROG}_rumpops.c ${RUMPSRCS} |
335 | . endif | | 336 | . endif |
336 | SRCS+= ${PROG}_hostops.c | | 337 | SRCS+= ${PROG}_hostops.c |
337 | . else | | 338 | . else |
338 | SRCS= ${PROG}.c ${PROG}_hostops.c | | 339 | SRCS= ${PROG}.c ${PROG}_hostops.c |
339 | . if (${MKRUMP} != "no") | | 340 | . if (${MKRUMP} != "no") |
340 | SRCS.rump.${PROG}= ${PROG}.c ${PROG}_rumpops.c ${RUMPSRCS} | | 341 | SRCS.rump.${PROG}= ${PROG}.c ${PROG}_rumpops.c ${RUMPSRCS} |
341 | . endif | | 342 | . endif |
342 | . endif | | 343 | . endif |
343 | . if (${MKRUMP} != "no") | | 344 | . if (${MKRUMP} != "no") |
344 | DPSRCS+= ${PROG}_rumpops.c ${RUMPSRCS} | | 345 | DPSRCS+= ${PROG}_rumpops.c ${RUMPSRCS} |
345 | LDADD.rump.${PROG}+= ${LDADD.rump} -lrumpclient | | 346 | LDADD.rump.${PROG}+= ${LDADD.rump} -lrumpclient |
346 | DPADD.rump.${PROG}+= ${DPADD.rump} ${LIBRUMPCLIENT} | | 347 | DPADD.rump.${PROG}+= ${DPADD.rump} ${LIBRUMPCLIENT} |
347 | MAN.rump.${PROG}= # defined but feeling empty | | 348 | MAN.rump.${PROG}= # defined but feeling empty |
348 | _RUMPINSTALL.rump.${PROG}=# defined | | 349 | _RUMPINSTALL.rump.${PROG}=# defined |
349 | . endif | | 350 | . endif |
350 | . else # CRUNCHEDPROG | | 351 | . else # CRUNCHEDPROG |
351 | PROGS= ${PROG} | | 352 | PROGS= ${PROG} |
352 | CPPFLAGS+= -DCRUNCHOPS | | 353 | CPPFLAGS+= -DCRUNCHOPS |
353 | . endif | | 354 | . endif |
354 | .endif | | 355 | .endif |
355 | | | 356 | |
356 | .if defined(PROG) | | 357 | .if defined(PROG) |
357 | _CCLINK?= ${CC} ${_CCLINKFLAGS} | | 358 | _CCLINK?= ${CC} ${_CCLINKFLAGS} |
358 | . if defined(MAN) | | 359 | . if defined(MAN) |
359 | MAN.${PROG}= ${MAN} | | 360 | MAN.${PROG}= ${MAN} |
360 | _APPEND_MANS= no | | 361 | _APPEND_MANS= no |
361 | . endif | | 362 | . endif |
362 | . if !defined(OBJS) | | 363 | . if !defined(OBJS) |
363 | OBJS= ${OBJS.${PROG}} | | 364 | OBJS= ${OBJS.${PROG}} |
364 | . endif | | 365 | . endif |
365 | . if defined(PROGNAME) | | 366 | . if defined(PROGNAME) |
366 | PROGNAME.${PROG}= ${PROGNAME} | | 367 | PROGNAME.${PROG}= ${PROGNAME} |
367 | . endif | | 368 | . endif |
368 | . if defined(SRCS) | | 369 | . if defined(SRCS) |
369 | SRCS.${PROG}= ${SRCS} | | 370 | SRCS.${PROG}= ${SRCS} |
370 | _APPEND_SRCS= no | | 371 | _APPEND_SRCS= no |
371 | . endif | | 372 | . endif |
372 | .endif | | 373 | .endif |
373 | | | 374 | |
374 | # Turn the single-program PROG and PROG_CXX variables into their multi-word | | 375 | # Turn the single-program PROG and PROG_CXX variables into their multi-word |
375 | # counterparts, PROGS and PROGS_CXX. | | 376 | # counterparts, PROGS and PROGS_CXX. |
376 | .if !defined(RUMPPRG) | | 377 | .if !defined(RUMPPRG) |
377 | . if defined(PROG_CXX) && !defined(PROGS_CXX) | | 378 | . if defined(PROG_CXX) && !defined(PROGS_CXX) |
378 | PROGS_CXX= ${PROG_CXX} | | 379 | PROGS_CXX= ${PROG_CXX} |
379 | . elif defined(PROG) && !defined(PROGS) | | 380 | . elif defined(PROG) && !defined(PROGS) |
380 | PROGS= ${PROG} | | 381 | PROGS= ${PROG} |
381 | . endif | | 382 | . endif |
382 | .endif | | 383 | .endif |
383 | | | 384 | |
384 | ##### Libraries that this may depend upon. | | 385 | ##### Libraries that this may depend upon. |
385 | .if defined(PROGDPLIBS) # { | | 386 | .if defined(PROGDPLIBS) # { |
386 | .for _lib _dir in ${PROGDPLIBS} | | 387 | .for _lib _dir in ${PROGDPLIBS} |
387 | .if !defined(BINDO.${_lib}) | | 388 | .if !defined(BINDO.${_lib}) |
388 | PROGDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} | | 389 | PROGDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} |
389 | .MAKEOVERRIDES+=PROGDO.${_lib} | | 390 | .MAKEOVERRIDES+=PROGDO.${_lib} |
390 | .endif | | 391 | .endif |
391 | LDADD+= -L${PROGDO.${_lib}} -l${_lib} | | 392 | LDADD+= -L${PROGDO.${_lib}} -l${_lib} |
392 | .if exists(${PROGDO.${_lib}}/lib${_lib}_pic.a) | | 393 | .if exists(${PROGDO.${_lib}}/lib${_lib}_pic.a) |
393 | DPADD+= ${PROGDO.${_lib}}/lib${_lib}_pic.a | | 394 | DPADD+= ${PROGDO.${_lib}}/lib${_lib}_pic.a |
394 | .elif exists(${PROGDO.${_lib}}/lib${_lib}.so) | | 395 | .elif exists(${PROGDO.${_lib}}/lib${_lib}.so) |
395 | DPADD+= ${PROGDO.${_lib}}/lib${_lib}.so | | 396 | DPADD+= ${PROGDO.${_lib}}/lib${_lib}.so |
396 | .else | | 397 | .else |
397 | DPADD+= ${PROGDO.${_lib}}/lib${_lib}.a | | 398 | DPADD+= ${PROGDO.${_lib}}/lib${_lib}.a |
398 | .endif | | 399 | .endif |
399 | .endfor | | 400 | .endfor |
400 | .endif # } | | 401 | .endif # } |
401 | # | | 402 | # |
402 | # Per-program definitions and targets. | | 403 | # Per-program definitions and targets. |
403 | # | | 404 | # |
404 | | | 405 | |
405 | _CCLINK.CDEFAULT= ${CC} ${_CCLINKFLAGS} | | 406 | _CCLINK.CDEFAULT= ${CC} ${_CCLINKFLAGS} |
406 | # Definitions specific to C programs. | | 407 | # Definitions specific to C programs. |
407 | .for _P in ${PROGS} | | 408 | .for _P in ${PROGS} |
408 | SRCS.${_P}?= ${_P}.c | | 409 | SRCS.${_P}?= ${_P}.c |
409 | _CCLINK.${_P}= ${CC} ${_CCLINKFLAGS} | | 410 | _CCLINK.${_P}= ${CC} ${_CCLINKFLAGS} |
410 | _CFLAGS.${_P}= ${CFLAGS} ${CPUFLAGS} | | 411 | _CFLAGS.${_P}= ${CFLAGS} ${CPUFLAGS} |
411 | _CPPFLAGS.${_P}= ${CPPFLAGS} | | 412 | _CPPFLAGS.${_P}= ${CPPFLAGS} |
412 | _COPTS.${_P}= ${COPTS} | | 413 | _COPTS.${_P}= ${COPTS} |
413 | .endfor | | 414 | .endfor |
414 | | | 415 | |
415 | _CCLINK.CXXDEFAULT= ${CXX} ${_CCLINKFLAGS} | | 416 | _CCLINK.CXXDEFAULT= ${CXX} ${_CCLINKFLAGS} |
416 | # Definitions specific to C++ programs. | | 417 | # Definitions specific to C++ programs. |
417 | .for _P in ${PROGS_CXX} | | 418 | .for _P in ${PROGS_CXX} |
418 | SRCS.${_P}?= ${_P}.cc | | 419 | SRCS.${_P}?= ${_P}.cc |
419 | _CCLINK.${_P}= ${CXX} ${_CCLINKFLAGS} | | 420 | _CCLINK.${_P}= ${CXX} ${_CCLINKFLAGS} |
420 | .endfor | | 421 | .endfor |
421 | | | 422 | |
422 | # Language-independent definitions. | | 423 | # Language-independent definitions. |
423 | .for _P in ${PROGS} ${PROGS_CXX} # { | | 424 | .for _P in ${PROGS} ${PROGS_CXX} # { |
424 | | | 425 | |
425 | BINDIR.${_P}?= ${BINDIR} | | 426 | BINDIR.${_P}?= ${BINDIR} |
426 | PROGNAME.${_P}?= ${_P} | | 427 | PROGNAME.${_P}?= ${_P} |
427 | | | 428 | |
428 | .if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) && !commands(${_P}) && \ | | 429 | .if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) && !commands(${_P}) && \ |
429 | empty(SRCS.${_P}:M*.sh) | | 430 | empty(SRCS.${_P}:M*.sh) |
430 | _PROGDEBUG.${_P}:= ${PROGNAME.${_P}}.debug | | 431 | _PROGDEBUG.${_P}:= ${PROGNAME.${_P}}.debug |
431 | .endif | | 432 | .endif |
432 | | | 433 | |
433 | # paxctl specific arguments | | 434 | # paxctl specific arguments |
434 | | | 435 | |
435 | .if defined(PAXCTL_FLAGS) | | 436 | .if defined(PAXCTL_FLAGS) |
436 | PAXCTL_FLAGS.${_P}?= ${PAXCTL_FLAGS} | | 437 | PAXCTL_FLAGS.${_P}?= ${PAXCTL_FLAGS} |
437 | .endif | | 438 | .endif |
438 | | | 439 | |
439 | .if ${MKSANITIZER:Uno} == "yes" && \ | | 440 | .if ${MKSANITIZER:Uno} == "yes" && \ |
440 | (${USE_SANITIZER} == "address" || ${USE_SANITIZER} == "thread" || \ | | 441 | (${USE_SANITIZER} == "address" || ${USE_SANITIZER} == "thread" || \ |
441 | ${USE_SANITIZER} == "memory") | | 442 | ${USE_SANITIZER} == "memory") |
442 | PAXCTL_FLAGS.${_P}= +a | | 443 | PAXCTL_FLAGS.${_P}= +a |
443 | .endif | | 444 | .endif |
444 | | | 445 | |
445 | ##### PROG specific flags. | | 446 | ##### PROG specific flags. |
446 | | | 447 | |
447 | _DPADD.${_P}= ${DPADD} ${DPADD.${_P}} | | 448 | _DPADD.${_P}= ${DPADD} ${DPADD.${_P}} |
448 | _LDADD.${_P}= ${LDADD} ${LDADD.${_P}} | | 449 | _LDADD.${_P}= ${LDADD} ${LDADD.${_P}} |
449 | _LDFLAGS.${_P}= ${LDFLAGS} ${LDFLAGS.${_P}} | | 450 | _LDFLAGS.${_P}= ${LDFLAGS} ${LDFLAGS.${_P}} |
450 | .if ${MKSANITIZER} != "yes" | | 451 | .if ${MKSANITIZER} != "yes" |
451 | # Sanitizers don't support static build. | | 452 | # Sanitizers don't support static build. |
452 | _LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC.${_P}} | | 453 | _LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC.${_P}} |
453 | .endif | | 454 | .endif |
454 | | | 455 | |
455 | ##### Build and install rules | | 456 | ##### Build and install rules |
456 | .if !empty(_APPEND_SRCS:M[Yy][Ee][Ss]) | | 457 | .if !empty(_APPEND_SRCS:M[Yy][Ee][Ss]) |
457 | SRCS+= ${SRCS.${_P}} # For bsd.dep.mk | | 458 | SRCS+= ${SRCS.${_P}} # For bsd.dep.mk |
458 | .endif | | 459 | .endif |
459 | | | 460 | |
460 | _YPSRCS.${_P}= ${SRCS.${_P}:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS.${_P}:M*.y:.y=.h}} | | 461 | _YPSRCS.${_P}= ${SRCS.${_P}:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS.${_P}:M*.y:.y=.h}} |
461 | | | 462 | |
462 | DPSRCS+= ${_YPSRCS.${_P}} | | 463 | DPSRCS+= ${_YPSRCS.${_P}} |
463 | CLEANFILES+= ${_YPSRCS.${_P}} | | 464 | CLEANFILES+= ${_YPSRCS.${_P}} |
464 | | | 465 | |
465 | .if !empty(SRCS.${_P}:N*.h:N*.sh:N*.fth) | | 466 | .if !empty(SRCS.${_P}:N*.h:N*.sh:N*.fth) |
466 | OBJS.${_P}+= ${SRCS.${_P}:N*.h:N*.sh:N*.fth:R:S/$/.o/g} | | 467 | OBJS.${_P}+= ${SRCS.${_P}:N*.h:N*.sh:N*.fth:R:S/$/.o/g} |
467 | LOBJS.${_P}+= ${LSRCS:.c=.ln} ${SRCS.${_P}:M*.c:.c=.ln} | | 468 | LOBJS.${_P}+= ${LSRCS:.c=.ln} ${SRCS.${_P}:M*.c:.c=.ln} |
468 | .endif | | 469 | .endif |
469 | | | 470 | |
470 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) # { | | 471 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) # { |
471 | .NOPATH: ${OBJS.${_P}} ${_P} ${_YPSRCS.${_P}} | | 472 | .NOPATH: ${OBJS.${_P}} ${_P} ${_YPSRCS.${_P}} |
472 | | | 473 | |
473 | .if (defined(USE_COMBINE) && ${USE_COMBINE} != "no" && !commands(${_P}) \ | | 474 | .if (defined(USE_COMBINE) && ${USE_COMBINE} != "no" && !commands(${_P}) \ |
474 | && (${_CCLINK.${_P}} == ${_CCLINK.CDEFAULT} \ | | 475 | && (${_CCLINK.${_P}} == ${_CCLINK.CDEFAULT} \ |
475 | || ${_CCLINK.${_P}} == ${_CCLINK.CXXDEFAULT}) \ | | 476 | || ${_CCLINK.${_P}} == ${_CCLINK.CXXDEFAULT}) \ |
476 | && !defined(NOCOMBINE.${_P}) && !defined(NOCOMBINE)) | | 477 | && !defined(NOCOMBINE.${_P}) && !defined(NOCOMBINE)) |
477 | .for f in ${SRCS.${_P}:N*.h:N*.sh:N*.fth:C/\.[yl]$/.c/g} | | 478 | .for f in ${SRCS.${_P}:N*.h:N*.sh:N*.fth:C/\.[yl]$/.c/g} |
478 | #_XFLAGS.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} \ | | 479 | #_XFLAGS.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} \ |
479 | # ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5} | | 480 | # ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5} |
480 | .if (${CPPFLAGS.$f:D1} == "1" || ${CPUFLAGS.$f:D2} == "2" \ | | 481 | .if (${CPPFLAGS.$f:D1} == "1" || ${CPUFLAGS.$f:D2} == "2" \ |
481 | || ${COPTS.$f:D3} == "3" || ${OBJCOPTS.$f:D4} == "4" \ | | 482 | || ${COPTS.$f:D3} == "3" || ${OBJCOPTS.$f:D4} == "4" \ |
482 | || ${CXXFLAGS.$f:D5} == "5") \ | | 483 | || ${CXXFLAGS.$f:D5} == "5") \ |
483 | || ("${f:M*.[cyl]}" == "" || commands(${f:R:S/$/.o/})) | | 484 | || ("${f:M*.[cyl]}" == "" || commands(${f:R:S/$/.o/})) |
484 | XOBJS.${_P}+= ${f:R:S/$/.o/} | | 485 | XOBJS.${_P}+= ${f:R:S/$/.o/} |
485 | .else | | 486 | .else |
486 | XSRCS.${_P}+= ${f} | | 487 | XSRCS.${_P}+= ${f} |
487 | NODPSRCS+= ${f} | | 488 | NODPSRCS+= ${f} |
488 | .endif | | 489 | .endif |
489 | .endfor | | 490 | .endfor |
490 | | | 491 | |
491 | ${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${XOBJS.${_P}} ${SRCS.${_P}} \ | | 492 | ${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${XOBJS.${_P}} ${SRCS.${_P}} \ |
492 | ${DPSRCS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${_DPADD.${_P}} | | 493 | ${DPSRCS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${_DPADD.${_P}} |
493 | ${_MKTARGET_LINK} | | 494 | ${_MKTARGET_LINK} |
494 | .if defined(DESTDIR) | | 495 | .if defined(DESTDIR) |
495 | ${_CCLINK.${_P}} -Wl,-nostdlib \ | | 496 | ${_CCLINK.${_P}} -Wl,-nostdlib \ |
496 | ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ | | 497 | ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ |
497 | -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \ | | 498 | -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \ |
498 | -MD --combine ${_CPPFLAGS.${_P}} ${_CFLAGS.${_P}} ${_COPTS.${_P}} \ | | 499 | -MD --combine ${_CPPFLAGS.${_P}} ${_CFLAGS.${_P}} ${_COPTS.${_P}} \ |
499 | ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ | | 500 | ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ |
500 | ${_LDADD.${_P}} -L${_GCC_LIBGCCDIR} -L${DESTDIR}/usr/lib | | 501 | ${_LDADD.${_P}} -L${_GCC_LIBGCCDIR} -L${DESTDIR}/usr/lib |
501 | .else | | 502 | .else |
502 | ${_CCLINK.${_P}} ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ | | 503 | ${_CCLINK.${_P}} ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ |
503 | -MD --combine ${_CPPFLAGS.${_P}} ${_COPTS.${_P}} | | 504 | -MD --combine ${_CPPFLAGS.${_P}} ${_COPTS.${_P}} |
504 | ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ | | 505 | ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ |
505 | ${_LDADD.${_P}} | | 506 | ${_LDADD.${_P}} |
506 | .endif # defined(DESTDIR) | | 507 | .endif # defined(DESTDIR) |
507 | .if defined(CTFMERGE) | | 508 | .if defined(CTFMERGE) |
508 | ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} | | 509 | ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} |
509 | .endif | | 510 | .endif |
510 | .if defined(PAXCTL_FLAGS.${_P}) | | 511 | .if defined(PAXCTL_FLAGS.${_P}) |
511 | ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} | | 512 | ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} |
512 | .endif | | 513 | .endif |
513 | .if ${MKSTRIPIDENT} != "no" | | 514 | .if ${MKSTRIPIDENT} != "no" |
514 | ${OBJCOPY} -R .ident ${.TARGET} | | 515 | ${OBJCOPY} -R .ident ${.TARGET} |
515 | .endif | | 516 | .endif |
516 | | | 517 | |
517 | CLEANFILES+= ${_P}.d | | 518 | CLEANFILES+= ${_P}.d |
518 | .if exists(${_P}.d) | | 519 | .if exists(${_P}.d) |
519 | .include "${_P}.d" # include -MD depend for program. | | 520 | .include "${_P}.d" # include -MD depend for program. |
520 | .endif | | 521 | .endif |
521 | .else # USE_COMBINE | | 522 | .else # USE_COMBINE |
522 | | | 523 | |
523 | ${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS} | | 524 | ${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS} |
524 | | | 525 | |
525 | ${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} \ | | 526 | ${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} \ |
526 | ${LIBCRTEND} ${_DPADD.${_P}} | | 527 | ${LIBCRTEND} ${_DPADD.${_P}} |
527 | .if !commands(${_P}) | | 528 | .if !commands(${_P}) |
528 | ${_MKTARGET_LINK} | | 529 | ${_MKTARGET_LINK} |
529 | ${_CCLINK.${_P}} \ | | 530 | ${_CCLINK.${_P}} \ |
530 | ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ | | 531 | ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ |
531 | ${OBJS.${_P}} ${_PROGLDOPTS} ${_LDADD.${_P}} | | 532 | ${OBJS.${_P}} ${_PROGLDOPTS} ${_LDADD.${_P}} |
532 | .if defined(CTFMERGE) | | 533 | .if defined(CTFMERGE) |
533 | ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} | | 534 | ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} |
534 | .endif | | 535 | .endif |
535 | .if defined(PAXCTL_FLAGS.${_P}) | | 536 | .if defined(PAXCTL_FLAGS.${_P}) |
536 | ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} | | 537 | ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} |
537 | .endif | | 538 | .endif |
538 | .if ${MKSTRIPIDENT} != "no" | | 539 | .if ${MKSTRIPIDENT} != "no" |
539 | ${OBJCOPY} -R .ident ${.TARGET} | | 540 | ${OBJCOPY} -R .ident ${.TARGET} |
540 | .endif | | 541 | .endif |
541 | .endif # !commands(${_P}) | | 542 | .endif # !commands(${_P}) |
542 | .endif # USE_COMBINE | | 543 | .endif # USE_COMBINE |
543 | | | 544 | |
544 | ${_P}.ro: ${OBJS.${_P}} ${_DPADD.${_P}} | | 545 | ${_P}.ro: ${OBJS.${_P}} ${_DPADD.${_P}} |
545 | ${_MKTARGET_LINK} | | 546 | ${_MKTARGET_LINK} |
546 | ${CC} ${LDFLAGS:N-pie} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}} | | 547 | ${CC} ${LDFLAGS:N-pie} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}} |
547 | | | 548 | |
548 | .if defined(_PROGDEBUG.${_P}) | | 549 | .if defined(_PROGDEBUG.${_P}) |
549 | ${_PROGDEBUG.${_P}}: ${_P} | | 550 | ${_PROGDEBUG.${_P}}: ${_P} |
550 | ${_MKTARGET_CREATE} | | 551 | ${_MKTARGET_CREATE} |
551 | ( ${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}} \ | | 552 | ( ${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}} \ |
552 | && ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \ | | 553 | && ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \ |
553 | --add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \ | | 554 | --add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \ |
554 | ) || (rm -f ${_PROGDEBUG.${_P}}; false) | | 555 | ) || (rm -f ${_PROGDEBUG.${_P}}; false) |
555 | .endif | | 556 | .endif |
556 | | | 557 | |
557 | .endif # defined(OBJS.${_P}) && !empty(OBJS.${_P}) # } | | 558 | .endif # defined(OBJS.${_P}) && !empty(OBJS.${_P}) # } |
558 | | | 559 | |
559 | .if !defined(MAN.${_P}) | | 560 | .if !defined(MAN.${_P}) |
560 | MAN.${_P}= ${_P}.1 | | 561 | MAN.${_P}= ${_P}.1 |
561 | .endif # !defined(MAN.${_P}) | | 562 | .endif # !defined(MAN.${_P}) |
562 | .if !empty(_APPEND_MANS:M[Yy][Ee][Ss]) | | 563 | .if !empty(_APPEND_MANS:M[Yy][Ee][Ss]) |
563 | MAN+= ${MAN.${_P}} | | 564 | MAN+= ${MAN.${_P}} |
564 | .endif | | 565 | .endif |
565 | | | 566 | |
566 | realall: ${_P} ${_PROGDEBUG.${_P}} | | 567 | realall: ${_P} ${_PROGDEBUG.${_P}} |
567 | | | 568 | |
568 | CLEANFILES+= ${_P} ${_PROGDEBUG.${_P}} | | 569 | CLEANFILES+= ${_P} ${_PROGDEBUG.${_P}} |
569 | | | 570 | |
570 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) | | 571 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) |
571 | CLEANFILES+= ${OBJS.${_P}} ${LOBJS.${_P}} | | 572 | CLEANFILES+= ${OBJS.${_P}} ${LOBJS.${_P}} |
572 | .endif | | 573 | .endif |
573 | | | 574 | |
574 | _PROG_INSTALL+= proginstall-${_P} | | 575 | _PROG_INSTALL+= proginstall-${_P} |
575 | | | 576 | |
576 | .if !target(proginstall-${_P}) # { | | 577 | .if !target(proginstall-${_P}) # { |
577 | proginstall-${_P}:: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ | | 578 | proginstall-${_P}:: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ |
578 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} | | 579 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} |
579 | .PRECIOUS: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ | | 580 | .PRECIOUS: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ |
580 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} | | 581 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} |
581 | | | 582 | |
582 | .if ${MKUPDATE} == "no" | | 583 | .if ${MKUPDATE} == "no" |
583 | .if defined(_RUMPINSTALL.${_P}) | | 584 | .if defined(_RUMPINSTALL.${_P}) |
584 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __progrumpinstall | | 585 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __progrumpinstall |
585 | .else | | 586 | .else |
586 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __proginstall | | 587 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __proginstall |
587 | .endif | | 588 | .endif |
588 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 589 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
589 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! .MADE | | 590 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! .MADE |
590 | .endif | | 591 | .endif |
591 | .if defined(_PROGDEBUG.${_P}) | | 592 | .if defined(_PROGDEBUG.${_P}) |
592 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! ${_PROGDEBUG.${_P}} __progdebuginstall | | 593 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! ${_PROGDEBUG.${_P}} __progdebuginstall |
593 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 594 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
594 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! .MADE | | 595 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! .MADE |
595 | .endif | | 596 | .endif |
596 | .endif # define(_PROGDEBUG.${_P}) | | 597 | .endif # define(_PROGDEBUG.${_P}) |
597 | .else # MKUPDATE != no | | 598 | .else # MKUPDATE != no |
598 | .if defined(_RUMPINSTALL.${_P}) | | 599 | .if defined(_RUMPINSTALL.${_P}) |
599 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __progrumpinstall | | 600 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __progrumpinstall |
600 | .else | | 601 | .else |
601 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __proginstall | | 602 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __proginstall |
602 | .endif | | 603 | .endif |
603 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 604 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
604 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: .MADE | | 605 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: .MADE |
605 | .endif | | 606 | .endif |
606 | .if defined(_PROGDEBUG.${_P}) | | 607 | .if defined(_PROGDEBUG.${_P}) |
607 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: ${_PROGDEBUG.${_P}} __progdebuginstall | | 608 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: ${_PROGDEBUG.${_P}} __progdebuginstall |
608 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 609 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
609 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: .MADE | | 610 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: .MADE |
610 | .endif | | 611 | .endif |
611 | .endif # defined(_PROGDEBUG.${_P}) | | 612 | .endif # defined(_PROGDEBUG.${_P}) |
612 | .endif # MKUPDATE != no | | 613 | .endif # MKUPDATE != no |
613 | | | 614 | |
614 | .endif # !target(proginstall-${_P}) # } | | 615 | .endif # !target(proginstall-${_P}) # } |
615 | | | 616 | |
616 | lint: lint-${_P} | | 617 | lint: lint-${_P} |
617 | lint-${_P}: ${LOBJS.${_P}} | | 618 | lint-${_P}: ${LOBJS.${_P}} |
618 | .if defined(LOBJS.${_P}) && !empty(LOBJS.${_P}) | | 619 | .if defined(LOBJS.${_P}) && !empty(LOBJS.${_P}) |
619 | ${LINT} ${LINTFLAGS} ${_LDFLAGS.${_P}:C/-L[ ]*/-L/Wg:M-L*} ${LOBJS.${_P}} ${_LDADD.${_P}} | | 620 | ${LINT} ${LINTFLAGS} ${_LDFLAGS.${_P}:C/-L[ ]*/-L/Wg:M-L*} ${LOBJS.${_P}} ${_LDADD.${_P}} |
620 | .endif | | 621 | .endif |
621 | | | 622 | |
622 | .endfor # _P in ${PROGS} ${PROGS_CXX} # } | | 623 | .endfor # _P in ${PROGS} ${PROGS_CXX} # } |
623 | | | 624 | |
624 | .if defined(OBJS) && !empty(OBJS) && \ | | 625 | .if defined(OBJS) && !empty(OBJS) && \ |
625 | (empty(PROGS) && empty(PROGS_CXX)) | | 626 | (empty(PROGS) && empty(PROGS_CXX)) |
626 | CLEANFILES+= ${OBJS} ${LOBJS} | | 627 | CLEANFILES+= ${OBJS} ${LOBJS} |
627 | .endif | | 628 | .endif |
628 | | | 629 | |
629 | .if !target(proginstall) | | 630 | .if !target(proginstall) |
630 | proginstall:: ${_PROG_INSTALL} | | 631 | proginstall:: ${_PROG_INSTALL} |
631 | .endif | | 632 | .endif |
632 | .PHONY: proginstall | | 633 | .PHONY: proginstall |
633 | | | 634 | |
634 | | | 635 | |
635 | | | 636 | |
636 | realall: ${SCRIPTS} | | 637 | realall: ${SCRIPTS} |
637 | .if defined(SCRIPTS) && !target(scriptsinstall) # { | | 638 | .if defined(SCRIPTS) && !target(scriptsinstall) # { |
638 | SCRIPTSDIR?=${BINDIR} | | 639 | SCRIPTSDIR?=${BINDIR} |
639 | SCRIPTSOWN?=${BINOWN} | | 640 | SCRIPTSOWN?=${BINOWN} |
640 | SCRIPTSGRP?=${BINGRP} | | 641 | SCRIPTSGRP?=${BINGRP} |
641 | SCRIPTSMODE?=${BINMODE} | | 642 | SCRIPTSMODE?=${BINMODE} |
642 | | | 643 | |
643 | scriptsinstall:: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} | | 644 | scriptsinstall:: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} |
644 | .PRECIOUS: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} | | 645 | .PRECIOUS: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} |
645 | | | 646 | |
646 | __scriptinstall: .USE | | 647 | __scriptinstall: .USE |
647 | ${_MKTARGET_INSTALL} | | 648 | ${_MKTARGET_INSTALL} |
648 | ${INSTALL_FILE} \ | | 649 | ${INSTALL_FILE} \ |
649 | -o ${SCRIPTSOWN_${.ALLSRC:T}:U${SCRIPTSOWN}} \ | | 650 | -o ${SCRIPTSOWN_${.ALLSRC:T}:U${SCRIPTSOWN}} \ |
650 | -g ${SCRIPTSGRP_${.ALLSRC:T}:U${SCRIPTSGRP}} \ | | 651 | -g ${SCRIPTSGRP_${.ALLSRC:T}:U${SCRIPTSGRP}} \ |
651 | -m ${SCRIPTSMODE_${.ALLSRC:T}:U${SCRIPTSMODE}} \ | | 652 | -m ${SCRIPTSMODE_${.ALLSRC:T}:U${SCRIPTSMODE}} \ |
652 | ${.ALLSRC} ${.TARGET} | | 653 | ${.ALLSRC} ${.TARGET} |
653 | | | 654 | |
654 | .for S in ${SCRIPTS:O:u} | | 655 | .for S in ${SCRIPTS:O:u} |
655 | .if ${MKUPDATE} == "no" | | 656 | .if ${MKUPDATE} == "no" |
656 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! ${S} __scriptinstall | | 657 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! ${S} __scriptinstall |
657 | .if !defined(BUILD) && !make(all) && !make(${S}) | | 658 | .if !defined(BUILD) && !make(all) && !make(${S}) |
658 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! .MADE | | 659 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! .MADE |
659 | .endif | | 660 | .endif |
660 | .else | | 661 | .else |
661 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: ${S} __scriptinstall | | 662 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: ${S} __scriptinstall |
662 | .if !defined(BUILD) && !make(all) && !make(${S}) | | 663 | .if !defined(BUILD) && !make(all) && !make(${S}) |
663 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: .MADE | | 664 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: .MADE |
664 | .endif | | 665 | .endif |
665 | .endif | | 666 | .endif |
666 | .endfor | | 667 | .endfor |
667 | .endif # } | | 668 | .endif # } |
668 | | | 669 | |
669 | .if !target(scriptsinstall) | | 670 | .if !target(scriptsinstall) |
670 | scriptsinstall:: | | 671 | scriptsinstall:: |
671 | .endif | | 672 | .endif |
672 | .PHONY: scriptsinstall | | 673 | .PHONY: scriptsinstall |
673 | | | 674 | |
674 | ##### Pull in related .mk logic | | 675 | ##### Pull in related .mk logic |
675 | LINKSOWN?= ${BINOWN} | | 676 | LINKSOWN?= ${BINOWN} |
676 | LINKSGRP?= ${BINGRP} | | 677 | LINKSGRP?= ${BINGRP} |
677 | LINKSMODE?= ${BINMODE} | | 678 | LINKSMODE?= ${BINMODE} |
678 | .include <bsd.man.mk> | | 679 | .include <bsd.man.mk> |
679 | .include <bsd.nls.mk> | | 680 | .include <bsd.nls.mk> |
680 | .include <bsd.files.mk> | | 681 | .include <bsd.files.mk> |
681 | .include <bsd.inc.mk> | | 682 | .include <bsd.inc.mk> |
682 | .include <bsd.links.mk> | | 683 | .include <bsd.links.mk> |
683 | .include <bsd.sys.mk> | | 684 | .include <bsd.sys.mk> |
684 | .include <bsd.dep.mk> | | 685 | .include <bsd.dep.mk> |
685 | .include <bsd.clang-analyze.mk> | | 686 | .include <bsd.clang-analyze.mk> |
686 | .include <bsd.clean.mk> | | 687 | .include <bsd.clean.mk> |
687 | | | 688 | |
688 | ${TARGETS}: # ensure existence | | 689 | ${TARGETS}: # ensure existence |
689 | | | 690 | |
690 | .endif # HOSTPROG | | 691 | .endif # HOSTPROG |