| 1 | # @(#)Makefile 8.2 (Berkeley) 1/4/94 |
| 2 | # $FreeBSD: src/include/Makefile,v 1.109.2.27 2003/01/24 05:12:29 sam Exp $ |
| 3 | # |
| 4 | # Doing a ``make install`` builds /usr/include |
| 5 | # |
| 6 | # The ``rm -rf''s used below are safe because rm doesn't follow symbolic |
| 7 | # links. |
| 8 | |
| 9 | CLEANFILES= osreldate.h version vers.c vers.txt |
| 10 | SUBDIR= arpa protocols rpc rpcsvc xlocale |
| 11 | INCS= a.out.h alloca.h ar.h assert.h bitstring.h byteswap.h \ |
| 12 | cpio.h ctype.h db.h dirent.h disktab.h \ |
| 13 | dlfcn.h elf.h elf-hints.h endian.h err.h \ |
| 14 | float.h fmtmsg.h fnmatch.h fstab.h fts.h ftw.h \ |
| 15 | getopt.h glob.h grp.h \ |
| 16 | iconv.h ieeefp.h ifaddrs.h iso646.h inttypes.h kenv.h \ |
| 17 | langinfo.h libgen.h limits.h link.h locale.h malloc_np.h \ |
| 18 | memory.h mntopts.h mpool.h mqueue.h monetary.h ndbm.h \ |
| 19 | netconfig.h netdb.h nl_types.h nlist.h nss.h nsswitch.h \ |
| 20 | objformat.h paths.h printf.h pthread.h pthread_np.h pwd.h \ |
| 21 | ranlib.h readpassphrase.h \ |
| 22 | re_comp.h resolv.h res_update.h runetype.h \ |
| 23 | search.h semaphore.h setjmp.h signal.h spawn.h \ |
| 24 | stdalign.h stdarg.h stdbool.h \ |
| 25 | stddef.h stdint.h stdio.h stdlib.h stdnoreturn.h \ |
| 26 | string.h stringlist.h strings.h sysexits.h \ |
| 27 | tar.h termios.h time.h \ |
| 28 | timeconv.h \ |
| 29 | timers.h ttyent.h \ |
| 30 | uchar.h unistd.h ulimit.h utime.h utmpx.h \ |
| 31 | uuid.h vis.h \ |
| 32 | wchar.h wctype.h wordexp.h xlocale.h |
| 33 | |
| 34 | .if defined(WANT_HESIOD) |
| 35 | INCS+= hesiod.h |
| 36 | .endif |
| 37 | |
| 38 | # Only for default SHARED=copies case |
| 39 | SHDRS= soundcard.h joystick.h |
| 40 | |
| 41 | LHDRS= aio.h errno.h fcntl.h linker_set.h poll.h sched.h syslog.h ucontext.h |
| 42 | |
| 43 | # directories which also contain header files that need to be copied. |
| 44 | # Other directories, like 'bus' and 'netproto', are created using mtree. |
| 45 | # |
| 46 | # XXX allow these directories to not contain header files. |
| 47 | LDIRS= net netbt netgraph netgraph7 netinet netinet6 sys vm |
| 48 | |
| 49 | # Subdirectories containing header files to copy. In symlink mode |
| 50 | # the subdirectory will be symlinked. |
| 51 | # |
| 52 | # NOTE: Care must be taken to adjust LSYMSUBDIRS below to remove |
| 53 | # subdirectories whos parent directory is also listed. |
| 54 | # If you make a mistake, part of your source tree might get |
| 55 | # overwritten when buildworld is run. |
| 56 | # |
| 57 | LSUBDIRS= \ |
| 58 | bus/cam bus/cam/scsi \ |
| 59 | bus/isa bus/pccard bus/pci bus/ppbus bus/smbus bus/u4b \ |
| 60 | dev/disk/dm \ |
| 61 | dev/disk/mpt/mpilib \ |
| 62 | dev/misc/lpt dev/misc/ppi \ |
| 63 | dev/netif/wi \ |
| 64 | dev/raid/ciss dev/raid/mfi \ |
| 65 | dev/smbus/smb \ |
| 66 | dev/video/bktr dev/video/meteor \ |
| 67 | dev/virtual/nvmm dev/virtual/nvmm/x86 \ |
| 68 | libprop \ |
| 69 | net/altq net/bridge \ |
| 70 | net/dummynet net/dummynet3 \ |
| 71 | net/ip_mroute \ |
| 72 | net/ip6fw net/ipfw \ |
| 73 | net/ipfw3 net/ipfw3_basic net/ipfw3_layer2 net/ipfw3_layer4 \ |
| 74 | net/ipfw3_nat \ |
| 75 | net/lagg \ |
| 76 | net/pf \ |
| 77 | net/ppp_layer \ |
| 78 | net/sl net/sppp \ |
| 79 | net/tap net/tun \ |
| 80 | net/vlan \ |
| 81 | net/wg \ |
| 82 | netgraph/UI netgraph/async netgraph/bpf netgraph/bridge \ |
| 83 | netgraph/cisco netgraph/echo netgraph/eiface netgraph/etf \ |
| 84 | netgraph/ether netgraph/fec netgraph/frame_relay netgraph/hole \ |
| 85 | netgraph/iface netgraph/ksocket netgraph/l2tp netgraph/lmi \ |
| 86 | netgraph/mppc netgraph/one2many netgraph/ppp \ |
| 87 | netgraph/pppoe netgraph/pptpgre netgraph/rfc1490 netgraph/socket \ |
| 88 | netgraph/tee netgraph/tty netgraph/vjc \ |
| 89 | netgraph7/UI netgraph7/async netgraph7/bpf \ |
| 90 | netgraph7/bridge netgraph7/cisco netgraph7/deflate netgraph7/echo \ |
| 91 | netgraph7/eiface netgraph7/etf netgraph7/ether \ |
| 92 | netgraph7/frame_relay netgraph7/hole netgraph7/hub \ |
| 93 | netgraph7/iface netgraph7/ksocket netgraph7/l2tp netgraph7/lmi \ |
| 94 | netgraph7/mppc netgraph7/one2many netgraph7/ppp netgraph7/pppoe \ |
| 95 | netgraph7/pptpgre netgraph7/rfc1490 netgraph7/socket \ |
| 96 | netgraph7/tcpmss netgraph7/tee netgraph7/tty netgraph7/vjc \ |
| 97 | netproto/802_11 netproto/mpls netproto/smb \ |
| 98 | vfs/isofs/cd9660 \ |
| 99 | vfs/msdosfs vfs/nfs vfs/ntfs \ |
| 100 | vfs/smbfs vfs/udf vfs/ufs vfs/hammer vfs/hammer2 \ |
| 101 | vfs/autofs vfs/fuse vfs/tmpfs vfs/ext2fs |
| 102 | |
| 103 | # For SHARED=symlinks, adjust LSYMSUBDIRS to remove subdirectories whos |
| 104 | # parent directory is also symlinked, avoiding the source tree being |
| 105 | # overwritten. For example, 'bus/cam' is a symlink, so 'bus/cam/scsi' |
| 106 | # is also taken care of. |
| 107 | LSYMSUBDIRS:= ${LSUBDIRS:Nnet/*:Nnetgraph/*:Nnetgraph7/*} |
| 108 | LSYMSUBDIRS:= ${LSYMSUBDIRS:Nbus/cam/scsi} |
| 109 | LSYMSUBDIRS:= ${LSYMSUBDIRS:Ndev/virtual/nvmm/x86} |
| 110 | |
| 111 | # Define SHARED to indicate whether you want symbolic links to the system |
| 112 | # source (``symlinks''), or a separate copy (``copies''). ``symlinks'' is |
| 113 | # probably only useful for developers and should be avoided if you do not |
| 114 | # wish to tie your /usr/include and /usr/src together. |
| 115 | #SHARED= symlinks |
| 116 | SHARED?= copies |
| 117 | |
| 118 | INCS+= osreldate.h |
| 119 | |
| 120 | osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh \ |
| 121 | ${.CURDIR}/../sys/sys/param.h |
| 122 | @${ECHO} creating osreldate.h from newvers.sh |
| 123 | setvar PARAMFILE ${.CURDIR}/../sys/sys/param.h; \ |
| 124 | . ${.CURDIR}/../sys/conf/newvers.sh "${.CURDIR}/.." ; \ |
| 125 | echo "$$COPYRIGHT" > osreldate.h; \ |
| 126 | echo "#ifdef _KERNEL" >> osreldate.h; \ |
| 127 | echo '#error "osreldate.h must not be used in the kernel, use sys/param.h"' >> osreldate.h; \ |
| 128 | echo "#else" >> osreldate.h; \ |
| 129 | echo "#undef __DragonFly_version" >> osreldate.h; \ |
| 130 | echo "#define __DragonFly_version $$RELDATE" >> osreldate.h; \ |
| 131 | echo "#endif" >> osreldate.h |
| 132 | |
| 133 | .for i in ${LHDRS} |
| 134 | INCSLINKS+= sys/$i ${INCLUDEDIR}/$i |
| 135 | .endfor |
| 136 | .for i in ${MHDRS} |
| 137 | INCSLINKS+= machine/$i ${INCLUDEDIR}/$i |
| 138 | .endfor |
| 139 | # For smbfs contrib. |
| 140 | INCSLINKS+= netproto/smb ${INCLUDEDIR}/netsmb |
| 141 | # Some 3rd party software looks for <floatingpoint.h> |
| 142 | INCSLINKS+= ieeefp.h ${INCLUDEDIR}/floatingpoint.h |
| 143 | |
| 144 | # NOTE! |
| 145 | # |
| 146 | # machine/ header files come from the platform architecture and |
| 147 | # cpu/ header files come from the cpu architecture. All code outside |
| 148 | # of the machine header files ALWAYS #include's <machine/blah.h>. So |
| 149 | # if the platform architecture is missing a header file we have to |
| 150 | # copy it in from the cpu architecture. This way we do not have to |
| 151 | # create dozens of pure forwarding headers for files that platform |
| 152 | # architecture does not need to enhance. |
| 153 | |
| 154 | mtree_setup: |
| 155 | .for i in ${LDIRS} ${LSYMSUBDIRS} machine cpu crypto dev/acpica |
| 156 | if [ -h ${DESTDIR}/usr/include/$i ]; then \ |
| 157 | rm -f ${DESTDIR}/usr/include/$i; \ |
| 158 | fi |
| 159 | .endfor |
| 160 | mtree -deU -f ${.CURDIR}/../etc/mtree/BSD.include.dist \ |
| 161 | -p ${DESTDIR}/usr/include |
| 162 | |
| 163 | copies: mtree_setup |
| 164 | .for i in ${LDIRS} ${LSUBDIRS} |
| 165 | cd ${.CURDIR}/../sys; \ |
| 166 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \ |
| 167 | ${DESTDIR}/usr/include/$i |
| 168 | .endfor |
| 169 | cd ${.CURDIR}/../sys; \ |
| 170 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 crypto/rijndael/rijndael.h \ |
| 171 | ${DESTDIR}/usr/include/crypto; \ |
| 172 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 opencrypto/*.h \ |
| 173 | ${DESTDIR}/usr/include/crypto |
| 174 | cd ${.CURDIR}/../sys/dev/acpica; \ |
| 175 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 acpiio.h \ |
| 176 | ${DESTDIR}/usr/include/dev/acpica |
| 177 | cd ${.CURDIR}/../sys/dev/misc/evdev; \ |
| 178 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 input.h \ |
| 179 | ${DESTDIR}/usr/include/dev/misc/evdev |
| 180 | cd ${.CURDIR}/../sys/dev/misc/evdev; \ |
| 181 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 input-event-codes.h \ |
| 182 | ${DESTDIR}/usr/include/dev/misc/evdev |
| 183 | cd ${.CURDIR}/../sys/dev/misc/evdev; \ |
| 184 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 input.h \ |
| 185 | ${DESTDIR}/usr/include/compat/linux |
| 186 | cd ${.CURDIR}/../sys/dev/misc/evdev; \ |
| 187 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 input-event-codes.h \ |
| 188 | ${DESTDIR}/usr/include/compat/linux |
| 189 | cd ${.CURDIR}/../sys/dev/drm/include/linux; \ |
| 190 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 compiler.h \ |
| 191 | ${DESTDIR}/usr/include/compat/linux |
| 192 | cd ${.CURDIR}/../sys/dev/drm/include/linux; \ |
| 193 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 posix_types.h \ |
| 194 | ${DESTDIR}/usr/include/compat/linux |
| 195 | cd ${.CURDIR}/../sys/dev/drm/include/linux; \ |
| 196 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 types.h \ |
| 197 | ${DESTDIR}/usr/include/compat/linux |
| 198 | cd ${.CURDIR}/../sys/dev/drm/include/uapi; \ |
| 199 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 asm-generic/int-ll64.h \ |
| 200 | ${DESTDIR}/usr/include/compat/uapi/asm-generic |
| 201 | cd ${.CURDIR}/../sys/dev/drm/include/uapi; \ |
| 202 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 linux/types.h \ |
| 203 | ${DESTDIR}/usr/include/compat/uapi/linux |
| 204 | cd ${.CURDIR}/../sys/dev/drm/include/asm; \ |
| 205 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 bitsperlong.h \ |
| 206 | ${DESTDIR}/usr/include/compat/asm |
| 207 | cd ${.CURDIR}/../sys/dev/drm/include/asm; \ |
| 208 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 int-ll64.h \ |
| 209 | ${DESTDIR}/usr/include/compat/asm |
| 210 | cd ${.CURDIR}/../sys/dev/drm/include/asm; \ |
| 211 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ioctl.h \ |
| 212 | ${DESTDIR}/usr/include/compat/asm |
| 213 | .if exists(${.CURDIR}/../sys/cpu/${MACHINE_ARCH}/include) |
| 214 | cd ${.CURDIR}/../sys/cpu/${MACHINE_ARCH}/include; \ |
| 215 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ |
| 216 | ${DESTDIR}/usr/include/cpu |
| 217 | # XXX this will cause quickworld to rebuild more junk |
| 218 | # then it needs to. |
| 219 | cpdup -o ${DESTDIR}/usr/include/cpu ${DESTDIR}/usr/include/machine |
| 220 | .endif |
| 221 | .if exists(${.CURDIR}/../sys/platform/${MACHINE_PLATFORM}/include) |
| 222 | cd ${.CURDIR}/../sys/platform/${MACHINE_PLATFORM}/include; \ |
| 223 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ |
| 224 | ${DESTDIR}/usr/include/machine |
| 225 | .if exists(${.CURDIR}/../sys/platform/${MACHINE_PLATFORM}/include/pc) |
| 226 | cd ${.CURDIR}/../sys/platform/${MACHINE_PLATFORM}/include/pc; \ |
| 227 | ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ |
| 228 | ${DESTDIR}/usr/include/machine/pc |
| 229 | .endif |
| 230 | .endif |
| 231 | .for i in ${SHDRS} |
| 232 | ${LN} -sf ../sys/$i ${DESTDIR}/usr/include/machine/$i |
| 233 | .endfor |
| 234 | |
| 235 | symlinks: mtree_setup |
| 236 | @${ECHO} "Setting up symlinks to kernel source tree..." |
| 237 | .for i in ${LDIRS} |
| 238 | rm -rf ${DESTDIR}/usr/include/$i |
| 239 | ${LN} -s ../../sys/$i ${DESTDIR}/usr/include/$i |
| 240 | .endfor |
| 241 | rm -rf ${DESTDIR}/usr/include/crypto |
| 242 | ${LN} -s ../../sys/opencrypto ${DESTDIR}/usr/include/crypto |
| 243 | .for i in ${LSYMSUBDIRS} |
| 244 | rm -rf ${DESTDIR}/usr/include/$i |
| 245 | ${LN} -s ${i:C;[^/]+/?;../;g}../sys/$i ${DESTDIR}/usr/include/$i |
| 246 | .endfor |
| 247 | rm -rf ${DESTDIR}/usr/include/cpu |
| 248 | ${LN} -s ../../sys/cpu/${MACHINE_ARCH}/include ${DESTDIR}/usr/include/cpu |
| 249 | rm -rf ${DESTDIR}/usr/include/machine |
| 250 | cpdup ${.CURDIR}/../sys/cpu/${MACHINE_ARCH}/include \ |
| 251 | ${DESTDIR}/usr/include/machine |
| 252 | cpdup -o ${.CURDIR}/../sys/platform/${MACHINE_PLATFORM}/include \ |
| 253 | ${DESTDIR}/usr/include/machine |
| 254 | |
| 255 | .include <bsd.prog.mk> |
| 256 | |
| 257 | installincludes: ${SHARED} |