]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/Makefile
libarchive: merge security fix from vendor branch
[FreeBSD/FreeBSD.git] / include / Makefile
1 #       @(#)Makefile    8.2 (Berkeley) 1/4/94
2 #
3 # Doing a "make install" builds /usr/include.
4
5 .include <src.opts.mk>
6
7 PACKAGE=runtime
8 CLEANFILES= osreldate.h version
9 SUBDIR= arpa protocols rpcsvc rpc xlocale
10 .if ${MACHINE_CPUARCH} == "amd64"
11 SUBDIR+=                i386
12 INCLUDE_SUBDIRS+=       i386
13 .endif
14 .if ${MACHINE_CPUARCH} == "aarch64"
15 SUBDIR+=                arm
16 INCLUDE_SUBDIRS+=       arm
17 .endif
18 SUBDIR_PARALLEL=
19 INCS=   a.out.h ar.h assert.h bitstring.h byteswap.h \
20         complex.h cpio.h _ctype.h ctype.h \
21         db.h \
22         dirent.h dlfcn.h elf.h elf-hints.h endian.h err.h fmtmsg.h fnmatch.h \
23         fstab.h fts.h ftw.h getopt.h glob.h grp.h \
24         ieeefp.h ifaddrs.h \
25         inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \
26         locale.h malloc.h malloc_np.h memory.h monetary.h mpool.h mqueue.h \
27         ndbm.h netconfig.h \
28         netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \
29         printf.h proc_service.h pthread.h \
30         pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h \
31         res_update.h resolv.h runetype.h sched.h \
32         search.h semaphore.h setjmp.h \
33         signal.h spawn.h stab.h stdalign.h stdbool.h stdckdint.h stddef.h \
34         stdnoreturn.h stdio.h stdlib.h string.h stringlist.h \
35         strings.h sysexits.h tar.h termios.h tgmath.h \
36         time.h timeconv.h timers.h ttyent.h \
37         uchar.h ulimit.h unistd.h utime.h utmpx.h uuid.h varargs.h \
38         wchar.h wctype.h wordexp.h xlocale.h
39
40 .PATH: ${SRCTOP}/contrib/libc-vis
41 INCS+=  vis.h
42
43 MHDRS=  float.h floatingpoint.h stdarg.h
44
45 PHDRS=  _semaphore.h
46
47 LHDRS=  aio.h errno.h fcntl.h linker_set.h poll.h stdatomic.h stdint.h \
48         syslog.h ucontext.h
49
50 LDIRS=  geom net net80211 netgraph netinet netinet6 \
51         netipsec netlink netsmb nfs nfsclient nfsserver sys vm
52
53 LSUBDIRS=       dev/acpica dev/agp dev/ciss dev/filemon dev/firewire \
54         dev/hwpmc dev/hyperv \
55         dev/ic dev/iicbus dev/io dev/mfi dev/mmc \
56         dev/ofw dev/pbio dev/pci ${_dev_powermac_nvram} dev/ppbus dev/pwm \
57         dev/smbus dev/speaker dev/tcp_log dev/veriexec dev/vkbd dev/wg \
58         fs/devfs fs/fdescfs fs/msdosfs fs/nfs fs/nullfs \
59         fs/procfs fs/smbfs fs/udf fs/unionfs \
60         geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \
61         geom/mirror geom/mountver geom/multipath geom/nop \
62         geom/raid geom/raid3 geom/shsec geom/stripe geom/union geom/virstor \
63         net/altq \
64         net/route \
65         netgraph/netflow \
66         netinet/cc \
67         netinet/netdump \
68         netinet/tcp_stacks \
69         netlink/route \
70         security/mac_biba security/mac_bsdextended \
71         security/mac_grantbylabel \
72         security/mac_lomac \
73         security/mac_mls security/mac_partition \
74         security/mac_veriexec \
75         sys/disk \
76         ufs/ffs ufs/ufs
77
78 LSUBSUBDIRS=    dev/mpt/mpilib
79
80 .PATH: ${SRCTOP}/sys/dev/acpica
81 ACPICA=         acpi_hpet.h \
82                 acpiio.h
83 ACPICADIR=      ${INCLUDEDIR}/dev/acpica
84
85 .PATH: ${SRCTOP}/sys/dev/agp
86 AGP=            agpreg.h
87 AGPDIR=         ${INCLUDEDIR}/dev/agp
88
89 .PATH: ${SRCTOP}/sys/bsm
90 BSM=            audit.h \
91                 audit_errno.h \
92                 audit_internal.h \
93                 audit_record.h \
94                 audit_domain.h \
95                 audit_fcntl.h \
96                 audit_kevents.h \
97                 audit_socket_type.h
98 BSMPACKAGE=     libbsm
99 BSMDIR=         ${INCLUDEDIR}/bsm
100
101 .PATH: ${SRCTOP}/sys/security/audit
102 SECAUDIT=       audit.h \
103                 audit_ioctl.h \
104                 audit_private.h
105 SECAUDITPACKAGE=        libbsm
106 SECAUDITDIR=    ${INCLUDEDIR}/security/audit
107
108 .PATH:  ${SRCTOP}/sys/cam
109 CAM=    cam.h \
110         cam_ccb.h \
111         cam_compat.h \
112         cam_debug.h \
113         cam_iosched.h \
114         cam_periph.h \
115         cam_queue.h \
116         cam_sim.h \
117         cam_xpt.h \
118         cam_xpt_internal.h \
119         cam_xpt_periph.h \
120         cam_xpt_sim.h
121 CAMDIR= ${INCLUDEDIR}/cam
122
123 .PATH: ${SRCTOP}/sys/cam/ata
124 CAMATA=         ata_all.h
125 CAMATADIR=      ${INCLUDEDIR}/cam/ata
126
127 .PATH: ${SRCTOP}/sys/cam/mmc
128 CAMMMC=         mmc.h \
129                 mmc_bus.h \
130                 mmc_all.h
131 CAMMMCDIR=      ${INCLUDEDIR}/cam/mmc
132
133 .PATH: ${SRCTOP}/sys/cam/nvme
134 CAMNVME=        nvme_all.h
135 CAMNVMEDIR=     ${INCLUDEDIR}/cam/nvme
136
137 .PATH: ${SRCTOP}/sys/cam/scsi
138 CAMSCSI=        scsi_all.h \
139                 scsi_cd.h \
140                 scsi_ch.h \
141                 scsi_da.h \
142                 scsi_enc.h \
143                 scsi_enc_internal.h \
144                 scsi_iu.h \
145                 scsi_message.h \
146                 scsi_pass.h \
147                 scsi_pt.h \
148                 scsi_sa.h \
149                 scsi_ses.h \
150                 scsi_sg.h \
151                 scsi_targetio.h \
152                 smp_all.h
153 CAMSCSIDIR=     ${INCLUDEDIR}/cam/scsi
154
155 .PATH: ${SRCTOP}/sys/fs/cd9660
156 FS9660=         cd9660_mount.h \
157                 cd9660_node.h \
158                 cd9660_rrip.h \
159                 iso.h \
160                 iso_rrip.h
161 FS9660DIR=      ${INCLUDEDIR}/isofs/cd9660
162
163 .PATH: ${SRCTOP}/sys/dev/evdev
164 EVDEV=          input.h \
165                 input-event-codes.h \
166                 uinput.h
167 EVDEVDIR=       ${INCLUDEDIR}/dev/evdev
168
169 .PATH: ${SRCTOP}/sys/dev/hid
170 HID=            hid.h \
171                 hidraw.h
172 HIDDIR=         ${INCLUDEDIR}/dev/hid
173
174 .PATH: ${SRCTOP}/sys/dev/hyperv/include ${SRCTOP}/sys/dev/hyperv/utilities
175 HYPERV=         hv_snapshot.h \
176                 hyperv.h
177 HYPERVDIR=      ${INCLUDEDIR}/dev/hyperv
178
179 .PATH: ${SRCTOP}/sys/opencrypto
180 OPENCRYPTO=     cryptodev.h
181 OPENCRYPTODIR=  ${INCLUDEDIR}/crypto
182
183 .PATH: ${SRCTOP}/sys/dev/nvme
184 NVME=           nvme.h
185 NVMEDIR=        ${INCLUDEDIR}/dev/nvme
186
187 .PATH: ${SRCTOP}/sys/dev/pci
188 PCI=            pcireg.h
189 PCIDIR=         ${INCLUDEDIR}/dev/pci
190
191 .PATH: ${SRCTOP}/sys/dev/veriexec
192 VERIEXEC=       veriexec_ioctl.h
193 VERIEXECDIR=    ${INCLUDEDIR}/dev/veriexec
194
195 .PATH: ${SRCTOP}/sys/netpfil/ipfilter/netinet
196 IPFILTER=       ip_auth.h \
197                 ip_compat.h \
198                 ip_dstlist.h \
199                 ip_fil.h \
200                 ip_frag.h \
201                 ip_htable.h \
202                 ip_lookup.h \
203                 ip_nat.h \
204                 ip_pool.h \
205                 ip_proxy.h \
206                 ip_rules.h \
207                 ip_scan.h \
208                 ip_state.h \
209                 ip_sync.h \
210                 ipf_rb.h \
211                 ipl.h \
212                 radix_ipf.h
213 IPFILTERDIR=    ${INCLUDEDIR}/netinet
214
215 .PATH: ${SRCTOP}/sys/netpfil/pf
216 PF=             pf.h \
217                 pf_altq.h \
218                 pf_mtag.h
219 PFPACKAGE=      pf
220 PFDIR=  ${INCLUDEDIR}/netpfil/pf
221
222 .PATH: ${SRCTOP}/sys/rpc
223 RPC=            rpcsec_tls.h \
224                 types.h
225 RPCDIR=         ${INCLUDEDIR}/rpc
226
227 .PATH: ${SRCTOP}/sys/teken
228 TEKEN=          teken.h
229 TEKENDIR=       ${INCLUDEDIR}/teken
230
231 .PATH: ${SRCTOP}/sys/contrib/openzfs/include/sys
232 NVPAIR=         nvpair.h
233 NVPAIRDIR=      ${INCLUDEDIR}/sys
234
235 .PATH: ${SRCTOP}/sys/dev/mlx5
236 MLX5=           mlx5io.h
237 MLX5DIR=        ${INCLUDEDIR}/dev/mlx5
238
239 .PATH: ${SRCTOP}/sys/dev/wg
240 WG=             if_wg.h
241 WGDIR=          ${INCLUDEDIR}/dev/wg
242
243 INCSGROUPS=     INCS \
244                 ACPICA \
245                 AGP \
246                 BSM \
247                 CAM \
248                 CAMATA \
249                 CAMMMC \
250                 CAMNVME \
251                 CAMSCSI \
252                 CRYPTO \
253                 EVDEV \
254                 FS9660 \
255                 HID \
256                 HYPERV \
257                 OPENCRYPTO \
258                 NVME \
259                 PCI \
260                 RPC \
261                 SECAUDIT \
262                 TEKEN \
263                 VERIEXEC \
264                 WG
265
266 .if ${MK_IPFILTER} != "no"
267 INCSGROUPS+=    IPFILTER
268 .endif
269
270 .if ${MK_PF} != "no"
271 INCSGROUPS+=    PF
272 .endif
273
274 .if ${MK_CDDL} != "no"
275 INCSGROUPS+=    NVPAIR
276 .endif
277
278 .if ${MK_MLX5TOOL} != "no"
279 INCSGROUPS+=    MLX5
280 .endif
281
282 .if ${MK_BLUETOOTH} != "no"
283 LSUBSUBDIRS+=   netgraph/bluetooth/include
284 .endif
285
286 .if ${MK_CUSE} != "no"
287 LSUBDIRS+=      fs/cuse
288 .endif
289
290 .if ${MK_GSSAPI} != "no"
291 SUBDIR+=        gssapi
292 INCS+=          gssapi.h
293 .endif
294
295 .if ${MK_HESIOD} != "no"
296 INCS+=  hesiod.h
297 .endif
298
299 # Handle the #define aliases for libiconv
300 .if ${MK_ICONV} == "yes"
301 INCS+=          iconv.h
302 .endif
303
304 .if ${MK_USB} != "no"
305 LSUBDIRS+=      dev/usb
306 .endif
307
308 .if ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH} != "powerpcspe"
309 _dev_powermac_nvram=    dev/powermac_nvram
310 .endif
311
312 # Define SHARED to indicate whether you want symbolic links to the system
313 # source (``symlinks''), or a separate copy (``copies'').  ``symlinks'' is
314 # probably only useful for developers and should be avoided if you do not
315 # wish to tie your /usr/include and /usr/src together.
316 #SHARED=        symlinks
317 SHARED?=        copies
318
319 INCS+=  osreldate.h
320
321 SYSDIR=                 ${SRCTOP}/sys
322 NEWVERS_SH=             ${SYSDIR}/conf/newvers.sh
323 PARAM_H=                ${SYSDIR}/sys/param.h
324 MK_OSRELDATE_SH=        ${.CURDIR}/mk-osreldate.sh
325
326 SYMLINKS+= ${LIBDIR:C,[^/]+,..,g:C,^/,,}${INCLUDEDIR} ${LIBDIR}/include
327
328 osreldate.h: ${NEWVERS_SH} ${PARAM_H} ${MK_OSRELDATE_SH}
329         env NEWVERS_SH=${NEWVERS_SH} PARAMFILE=${PARAM_H} SYSDIR=${SYSDIR} \
330             sh ${MK_OSRELDATE_SH}
331
332 .for i in ${LHDRS}
333 INCSLINKS+=     sys/$i ${INCLUDEDIR}/$i
334 .endfor
335 .for i in ${MHDRS}
336 INCSLINKS+=     machine/$i ${INCLUDEDIR}/$i
337 .endfor
338 .for i in ${PHDRS}
339 INCSLINKS+=     sys/$i ${INCLUDEDIR}/$i
340 .endfor
341
342 .if ${MACHINE} != ${MACHINE_CPUARCH}
343 _MARCHS=        ${MACHINE_CPUARCH}
344 .endif
345 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
346 _MARCHS+=       x86
347 .endif
348
349 META_TARGETS+=  compat
350 stage_includes: ${SHARED}
351 SDESTDIR=       ${SYSROOT:U${DESTDIR}}
352
353 # Take care of stale directory-level symlinks.
354 # Note: The "|| true" after find is needed in case one of the directories does
355 # not exist (yet).
356 compat:
357         cd ${SDESTDIR}${INCLUDEDIR}; find ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} \
358             crypto -maxdepth 0 -mindepth 0 -type l -print -delete || true
359         mtree -deU ${NO_ROOT:D-W} ${MTREE_FOLLOWS_SYMLINKS} \
360             -f ${SRCTOP}/etc/mtree/BSD.include.dist \
361             -p ${SDESTDIR}${INCLUDEDIR} > /dev/null
362 .for d in ${INCLUDE_SUBDIRS}
363         ${INSTALL} -d ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 755 \
364             ${SDESTDIR}${INCLUDEDIR}/${d}
365 .endfor
366
367 copies: .PHONY .META
368         cd ${SDESTDIR}${INCLUDEDIR}; find ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} crypto \
369             machine machine/pc ${_MARCHS} -maxdepth 1 -mindepth 1 -type l \
370             -name "*.h" -print -delete || true
371 .for i in ${LDIRS} ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/evdev:Ndev/hid:Ndev/hyperv:Ndev/pci:Ndev/veriexec:Ndev/wg} ${LSUBSUBDIRS}
372         cd ${SRCTOP}/sys; \
373         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \
374             ${SDESTDIR}${INCLUDEDIR}/$i
375 .endfor
376         cd ${SRCTOP}/sys/${MACHINE}/include; \
377         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
378             ${SDESTDIR}${INCLUDEDIR}/machine
379 .if exists(${SRCTOP}/sys/${MACHINE}/include/pc)
380         cd ${SRCTOP}/sys/${MACHINE}/include/pc; \
381         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
382             ${SDESTDIR}${INCLUDEDIR}/machine/pc
383 .endif
384 .for _MARCH in ${_MARCHS}
385 .if exists(${SRCTOP}/sys/${_MARCH}/include)
386         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
387             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}; \
388         cd ${SRCTOP}/sys/${_MARCH}/include; \
389         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
390             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}
391 .if exists(${SRCTOP}/sys/${_MARCH}/include/pc)
392         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
393             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
394         cd ${SRCTOP}/sys/${_MARCH}/include/pc; \
395         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
396             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc
397 .endif
398 .endif
399 .endfor
400
401 symlinks: .PHONY .META
402         @${ECHO} "Setting up symlinks to kernel source tree..."
403 .for i in ${LDIRS}
404         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
405             $$(printf '../../../%s ' sys/$i/*.h) ${SDESTDIR}${INCLUDEDIR}/$i
406 .endfor
407 .for i in ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/evdev:Ndev/hid:Ndev/hyperv:Ndev/pci:Ndev/veriexec:Ndev/wg}
408         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
409             $$(printf '../../../../%s ' sys/$i/*.h) ${SDESTDIR}${INCLUDEDIR}/$i
410 .endfor
411         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
412             $$(printf '../../../../sys/dev/acpica/%s ' acpiio.h acpi_hpet.h) \
413             ${SDESTDIR}${INCLUDEDIR}/dev/acpica; \
414         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/agp/agpreg.h \
415             ${SDESTDIR}${INCLUDEDIR}/dev/agp; \
416         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
417             $$(printf '../../../../sys/dev/evdev/%s ' input.h input-event-codes.h uinput.h) \
418             ${SDESTDIR}${INCLUDEDIR}/dev/evdev;
419         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
420             $$(printf '../../../../sys/dev/hid/%s ' hid.h hidraw.h) \
421             ${SDESTDIR}${INCLUDEDIR}/dev/hid; \
422         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/hyperv/include/hyperv.h \
423             ${SDESTDIR}${INCLUDEDIR}/dev/hyperv; \
424         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/hyperv/utilities/hv_snapshot.h \
425             ${SDESTDIR}${INCLUDEDIR}/dev/hyperv; \
426         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/pci/pcireg.h \
427             ${SDESTDIR}${INCLUDEDIR}/dev/pci; \
428         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/veriexec/veriexec_ioctl.h \
429             ${SDESTDIR}${INCLUDEDIR}/dev/veriexec;
430 .for i in ${LSUBSUBDIRS}
431         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
432             $$(printf '../../../../../%s ' sys/$i/*.h) ${SDESTDIR}${INCLUDEDIR}/$i
433 .endfor
434 .if ${MK_IPFILTER} != "no"
435         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
436             $$(printf '../../../%s ' sys/netpfil/ipfilter/netinet/*.h) \
437             ${SDESTDIR}${INCLUDEDIR}/netinet;
438 .endif
439 .if ${MK_PF} != "no"
440         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
441             $$(printf '../../../../%s ' sys/netpfil/pf/*.h) \
442             ${SDESTDIR}${INCLUDEDIR}/netpfil/pf;
443 .endif
444         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../sys/opencrypto/cryptodev.h \
445             ${SDESTDIR}${INCLUDEDIR}/crypto; \
446         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
447             $$(printf '../../../%s ' sys/${MACHINE}/include/*.h) \
448             ${SDESTDIR}${INCLUDEDIR}/machine;
449 .if exists(${SRCTOP}/sys/${MACHINE}/include/pc)
450         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
451             $$(printf '../../../../%s ' sys/${MACHINE}/include/pc/*.h) \
452             ${SDESTDIR}${INCLUDEDIR}/machine/pc;
453 .endif
454 .for _MARCH in ${_MARCHS}
455 .if exists(${SRCTOP}/sys/${_MARCH}/include)
456         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
457             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}; \
458         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
459             $$(printf '../../../%s ' sys/${_MARCH}/include/*.h) \
460             ${SDESTDIR}${INCLUDEDIR}/${_MARCH};
461 .if exists(${SRCTOP}/sys/${_MARCH}/include/pc)
462         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
463             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
464         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
465             $$(printf '../../../../%s ' sys/${_MARCH}/include/pc/*.h) \
466             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc;
467 .endif
468 .endif
469 .endfor
470         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
471             $$(printf '../../../../%s ' sys/fs/cd9660/*.h) \
472             ${SDESTDIR}${INCLUDEDIR}/isofs/cd9660; \
473         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
474             $$(printf '../../../sys/rpc/%s ' rpcsec_tls.h types.h) \
475             ${SDESTDIR}${INCLUDEDIR}/rpc;
476         cd ${SRCTOP}/sys/rpc;
477 .if ${MK_CDDL} != "no"
478         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
479             ../../../sys/contrib/openzfs/include/sys/nvpair.h \
480             ${SDESTDIR}${INCLUDEDIR}/sys
481 .endif
482 .if ${MK_MLX5TOOL} != "no"
483         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/mlx5/mlx5io.h \
484             ${SDESTDIR}${INCLUDEDIR}/dev/mlx5
485 .endif
486
487 .include <bsd.prog.mk>
488
489 installincludes: ${SHARED}
490 ${SHARED}: compat
491
492 .if ${MACHINE} == "host" && !defined(_SKIP_BUILD)
493 # we're here because we are building a sysroot...
494 # we need MACHINE et al set correctly
495 HOST_MACHINE!= uname -m
496 HOST_MACHINE_ARCH!= uname -p
497 MACHINE:= ${HOST_MACHINE}
498 MACHINE_ARCH:= ${HOST_MACHINE_ARCH}
499 .endif
500
501 check-ldirs:
502         missing_dirs=""; \
503         for dir in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS}; do \
504                 if [ ! -d ${SRCTOP}/sys/$$dir ]; then \
505                         echo "${SRCTOP}/sys/$$dir"; \
506                         missing_dirs="$$missing_dirs $$dir"; \
507                 fi; \
508         done; \
509         if [ -n "$$missing_dirs" ]; then \
510                 echo "Nonexistant directories:" $$missing_dirs; \
511                 false; \
512         fi