]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/Makefile
awk: Merge upstream 2nd Edition Awk Book
[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=clibs
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                 pf_nl.h
220 PFPACKAGE=      pf
221 PFDIR=  ${INCLUDEDIR}/netpfil/pf
222
223 .PATH: ${SRCTOP}/sys/rpc
224 RPC=            rpcsec_tls.h \
225                 types.h
226 RPCDIR=         ${INCLUDEDIR}/rpc
227
228 .PATH: ${SRCTOP}/sys/teken
229 TEKEN=          teken.h
230 TEKENDIR=       ${INCLUDEDIR}/teken
231
232 .PATH: ${SRCTOP}/sys/contrib/openzfs/include/sys
233 NVPAIR=         nvpair.h
234 NVPAIRDIR=      ${INCLUDEDIR}/sys
235
236 .PATH: ${SRCTOP}/sys/dev/mlx5
237 MLX5=           mlx5io.h
238 MLX5DIR=        ${INCLUDEDIR}/dev/mlx5
239
240 .PATH: ${SRCTOP}/sys/dev/wg
241 WG=             if_wg.h
242 WGDIR=          ${INCLUDEDIR}/dev/wg
243
244 INCSGROUPS=     INCS \
245                 ACPICA \
246                 AGP \
247                 BSM \
248                 CAM \
249                 CAMATA \
250                 CAMMMC \
251                 CAMNVME \
252                 CAMSCSI \
253                 CRYPTO \
254                 EVDEV \
255                 FS9660 \
256                 HID \
257                 HYPERV \
258                 OPENCRYPTO \
259                 NVME \
260                 PCI \
261                 RPC \
262                 SECAUDIT \
263                 TEKEN \
264                 VERIEXEC \
265                 WG
266
267 .if ${MK_IPFILTER} != "no"
268 INCSGROUPS+=    IPFILTER
269 .endif
270
271 .if ${MK_PF} != "no"
272 INCSGROUPS+=    PF
273 .endif
274
275 .if ${MK_CDDL} != "no"
276 INCSGROUPS+=    NVPAIR
277 .endif
278
279 .if ${MK_MLX5TOOL} != "no"
280 INCSGROUPS+=    MLX5
281 .endif
282
283 .if ${MK_BLUETOOTH} != "no"
284 LSUBSUBDIRS+=   netgraph/bluetooth/include
285 .endif
286
287 .if ${MK_CUSE} != "no"
288 LSUBDIRS+=      fs/cuse
289 .endif
290
291 .if ${MK_GSSAPI} != "no"
292 SUBDIR+=        gssapi
293 INCS+=          gssapi.h
294 .endif
295
296 .if ${MK_HESIOD} != "no"
297 INCS+=  hesiod.h
298 .endif
299
300 # Handle the #define aliases for libiconv
301 .if ${MK_ICONV} == "yes"
302 INCS+=          iconv.h
303 .endif
304
305 .if ${MK_USB} != "no"
306 LSUBDIRS+=      dev/usb
307 .endif
308
309 .if ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH} != "powerpcspe"
310 _dev_powermac_nvram=    dev/powermac_nvram
311 .endif
312
313 # Define SHARED to indicate whether you want symbolic links to the system
314 # source (``symlinks''), or a separate copy (``copies'').  ``symlinks'' is
315 # probably only useful for developers and should be avoided if you do not
316 # wish to tie your /usr/include and /usr/src together.
317 #SHARED=        symlinks
318 SHARED?=        copies
319
320 INCS+=  osreldate.h
321
322 SYSDIR=                 ${SRCTOP}/sys
323 NEWVERS_SH=             ${SYSDIR}/conf/newvers.sh
324 PARAM_H=                ${SYSDIR}/sys/param.h
325 MK_OSRELDATE_SH=        ${.CURDIR}/mk-osreldate.sh
326
327 SYMLINKS+= ${LIBDIR:C,[^/]+,..,g:C,^/,,}${INCLUDEDIR} ${LIBDIR}/include
328
329 osreldate.h: ${NEWVERS_SH} ${PARAM_H} ${MK_OSRELDATE_SH}
330         env NEWVERS_SH=${NEWVERS_SH} PARAMFILE=${PARAM_H} SYSDIR=${SYSDIR} \
331             sh ${MK_OSRELDATE_SH}
332
333 .for i in ${LHDRS}
334 INCSLINKS+=     sys/$i ${INCLUDEDIR}/$i
335 .endfor
336 .for i in ${MHDRS}
337 INCSLINKS+=     machine/$i ${INCLUDEDIR}/$i
338 .endfor
339 .for i in ${PHDRS}
340 INCSLINKS+=     sys/$i ${INCLUDEDIR}/$i
341 .endfor
342
343 .if ${MACHINE} != ${MACHINE_CPUARCH}
344 _MARCHS=        ${MACHINE_CPUARCH}
345 .endif
346 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
347 _MARCHS+=       x86
348 .endif
349
350 META_TARGETS+=  compat
351 stage_includes: ${SHARED}
352 SDESTDIR=       ${SYSROOT:U${DESTDIR}}
353
354 # Take care of stale directory-level symlinks.
355 # Note: The "|| true" after find is needed in case one of the directories does
356 # not exist (yet).
357 compat:
358         cd ${SDESTDIR}${INCLUDEDIR}; find ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} \
359             crypto -maxdepth 0 -mindepth 0 -type l -print -delete || true
360         mtree -deU ${NO_ROOT:D-W} ${MTREE_FOLLOWS_SYMLINKS} \
361             -f ${SRCTOP}/etc/mtree/BSD.include.dist \
362             -p ${SDESTDIR}${INCLUDEDIR} > /dev/null
363 .for d in ${INCLUDE_SUBDIRS}
364         ${INSTALL} -d ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 755 \
365             ${SDESTDIR}${INCLUDEDIR}/${d}
366 .endfor
367
368 copies: .PHONY .META
369         cd ${SDESTDIR}${INCLUDEDIR}; find ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} crypto \
370             machine machine/pc ${_MARCHS} -maxdepth 1 -mindepth 1 -type l \
371             -name "*.h" -print -delete || true
372 .for i in ${LDIRS} ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/evdev:Ndev/hid:Ndev/hyperv:Ndev/pci:Ndev/veriexec:Ndev/wg} ${LSUBSUBDIRS}
373         cd ${SRCTOP}/sys; \
374         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \
375             ${SDESTDIR}${INCLUDEDIR}/$i
376 .endfor
377         cd ${SRCTOP}/sys/${MACHINE}/include; \
378         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
379             ${SDESTDIR}${INCLUDEDIR}/machine
380 .if exists(${SRCTOP}/sys/${MACHINE}/include/pc)
381         cd ${SRCTOP}/sys/${MACHINE}/include/pc; \
382         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
383             ${SDESTDIR}${INCLUDEDIR}/machine/pc
384 .endif
385 .for _MARCH in ${_MARCHS}
386 .if exists(${SRCTOP}/sys/${_MARCH}/include)
387         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
388             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}; \
389         cd ${SRCTOP}/sys/${_MARCH}/include; \
390         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
391             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}
392 .if exists(${SRCTOP}/sys/${_MARCH}/include/pc)
393         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
394             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
395         cd ${SRCTOP}/sys/${_MARCH}/include/pc; \
396         ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
397             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc
398 .endif
399 .endif
400 .endfor
401
402 symlinks: .PHONY .META
403         @${ECHO} "Setting up symlinks to kernel source tree..."
404 .for i in ${LDIRS}
405         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
406             $$(printf '../../../%s ' sys/$i/*.h) ${SDESTDIR}${INCLUDEDIR}/$i
407 .endfor
408 .for i in ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/evdev:Ndev/hid:Ndev/hyperv:Ndev/pci:Ndev/veriexec:Ndev/wg}
409         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
410             $$(printf '../../../../%s ' sys/$i/*.h) ${SDESTDIR}${INCLUDEDIR}/$i
411 .endfor
412         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
413             $$(printf '../../../../sys/dev/acpica/%s ' acpiio.h acpi_hpet.h) \
414             ${SDESTDIR}${INCLUDEDIR}/dev/acpica; \
415         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/agp/agpreg.h \
416             ${SDESTDIR}${INCLUDEDIR}/dev/agp; \
417         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
418             $$(printf '../../../../sys/dev/evdev/%s ' input.h input-event-codes.h uinput.h) \
419             ${SDESTDIR}${INCLUDEDIR}/dev/evdev;
420         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
421             $$(printf '../../../../sys/dev/hid/%s ' hid.h hidraw.h) \
422             ${SDESTDIR}${INCLUDEDIR}/dev/hid; \
423         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/hyperv/include/hyperv.h \
424             ${SDESTDIR}${INCLUDEDIR}/dev/hyperv; \
425         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/hyperv/utilities/hv_snapshot.h \
426             ${SDESTDIR}${INCLUDEDIR}/dev/hyperv; \
427         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/pci/pcireg.h \
428             ${SDESTDIR}${INCLUDEDIR}/dev/pci; \
429         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/veriexec/veriexec_ioctl.h \
430             ${SDESTDIR}${INCLUDEDIR}/dev/veriexec;
431 .for i in ${LSUBSUBDIRS}
432         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
433             $$(printf '../../../../../%s ' sys/$i/*.h) ${SDESTDIR}${INCLUDEDIR}/$i
434 .endfor
435 .if ${MK_IPFILTER} != "no"
436         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
437             $$(printf '../../../%s ' sys/netpfil/ipfilter/netinet/*.h) \
438             ${SDESTDIR}${INCLUDEDIR}/netinet;
439 .endif
440 .if ${MK_PF} != "no"
441         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
442             $$(printf '../../../../%s ' sys/netpfil/pf/*.h) \
443             ${SDESTDIR}${INCLUDEDIR}/netpfil/pf;
444 .endif
445         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../sys/opencrypto/cryptodev.h \
446             ${SDESTDIR}${INCLUDEDIR}/crypto; \
447         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
448             $$(printf '../../../%s ' sys/${MACHINE}/include/*.h) \
449             ${SDESTDIR}${INCLUDEDIR}/machine;
450 .if exists(${SRCTOP}/sys/${MACHINE}/include/pc)
451         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
452             $$(printf '../../../../%s ' sys/${MACHINE}/include/pc/*.h) \
453             ${SDESTDIR}${INCLUDEDIR}/machine/pc;
454 .endif
455 .for _MARCH in ${_MARCHS}
456 .if exists(${SRCTOP}/sys/${_MARCH}/include)
457         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
458             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}; \
459         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
460             $$(printf '../../../%s ' sys/${_MARCH}/include/*.h) \
461             ${SDESTDIR}${INCLUDEDIR}/${_MARCH};
462 .if exists(${SRCTOP}/sys/${_MARCH}/include/pc)
463         ${INSTALL} -d ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m 755 \
464             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
465         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
466             $$(printf '../../../../%s ' sys/${_MARCH}/include/pc/*.h) \
467             ${SDESTDIR}${INCLUDEDIR}/${_MARCH}/pc;
468 .endif
469 .endif
470 .endfor
471         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
472             $$(printf '../../../../%s ' sys/fs/cd9660/*.h) \
473             ${SDESTDIR}${INCLUDEDIR}/isofs/cd9660; \
474         cd ${SRCTOP}; ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
475             $$(printf '../../../sys/rpc/%s ' rpcsec_tls.h types.h) \
476             ${SDESTDIR}${INCLUDEDIR}/rpc;
477         cd ${SRCTOP}/sys/rpc;
478 .if ${MK_CDDL} != "no"
479         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} \
480             ../../../sys/contrib/openzfs/include/sys/nvpair.h \
481             ${SDESTDIR}${INCLUDEDIR}/sys
482 .endif
483 .if ${MK_MLX5TOOL} != "no"
484         ${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},dev} ../../../../sys/dev/mlx5/mlx5io.h \
485             ${SDESTDIR}${INCLUDEDIR}/dev/mlx5
486 .endif
487
488 .include <bsd.prog.mk>
489
490 installincludes: ${SHARED}
491 ${SHARED}: compat
492
493 .if ${MACHINE} == "host" && !defined(_SKIP_BUILD)
494 # we're here because we are building a sysroot...
495 # we need MACHINE et al set correctly
496 HOST_MACHINE!= uname -m
497 HOST_MACHINE_ARCH!= uname -p
498 MACHINE:= ${HOST_MACHINE}
499 MACHINE_ARCH:= ${HOST_MACHINE_ARCH}
500 .endif
501
502 check-ldirs:
503         missing_dirs=""; \
504         for dir in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS}; do \
505                 if [ ! -d ${SRCTOP}/sys/$$dir ]; then \
506                         echo "${SRCTOP}/sys/$$dir"; \
507                         missing_dirs="$$missing_dirs $$dir"; \
508                 fi; \
509         done; \
510         if [ -n "$$missing_dirs" ]; then \
511                 echo "Nonexistant directories:" $$missing_dirs; \
512                 false; \
513         fi