Makefile revision 228863
1285169Scy# @(#)Makefile 8.2 (Berkeley) 1/4/94 2275970Scy# $FreeBSD: head/include/Makefile 228863 2011-12-24 15:31:06Z theraven $ 3275970Scy# 4285169Scy# Doing a "make install" builds /usr/include. 5285169Scy 6275970Scy.include <bsd.own.mk> 7275970Scy 8275970ScyCLEANFILES= osreldate.h version vers.c 9275970ScySUBDIR= arpa gssapi protocols rpcsvc rpc 10275970ScyINCS= a.out.h ar.h assert.h bitstring.h complex.h cpio.h _ctype.h ctype.h \ 11275970Scy db.h \ 12275970Scy dirent.h dlfcn.h elf.h elf-hints.h err.h fmtmsg.h fnmatch.h fstab.h \ 13275970Scy fts.h ftw.h getopt.h glob.h grp.h gssapi.h \ 14275970Scy ieeefp.h ifaddrs.h \ 15275970Scy inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \ 16275970Scy locale.h malloc.h malloc_np.h memory.h monetary.h mpool.h mqueue.h \ 17275970Scy ndbm.h netconfig.h \ 18275970Scy netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \ 19285169Scy printf.h proc_service.h pthread.h \ 20285169Scy pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h \ 21285169Scy res_update.h resolv.h runetype.h search.h semaphore.h setjmp.h \ 22285169Scy signal.h spawn.h stab.h stdatomic.h \ 23285169Scy stdbool.h stddef.h stdio.h stdlib.h string.h stringlist.h \ 24285169Scy strings.h sysexits.h tar.h termios.h tgmath.h \ 25285169Scy time.h timeconv.h timers.h ttyent.h \ 26285169Scy ulimit.h unistd.h utime.h utmpx.h uuid.h varargs.h vis.h \ 27285169Scy wchar.h wctype.h wordexp.h xlocale.h _xlocale_ctype.h 28285169Scy 29285169ScyMHDRS= float.h floatingpoint.h stdarg.h 30285169Scy 31285169ScyPHDRS= sched.h _semaphore.h 32285169Scy 33285169ScyLHDRS= aio.h errno.h fcntl.h linker_set.h poll.h stdint.h syslog.h \ 34285169Scy ucontext.h 35285169Scy 36285169ScyLDIRS= bsm cam geom net net80211 netatalk netgraph netinet netinet6 \ 37285169Scy netipsec ${_netipx} netnatm ${_netncp} netsmb \ 38285169Scy nfs nfsclient nfsserver \ 39285169Scy sys vm 40285169Scy 41285169ScyLSUBDIRS= cam/ata cam/scsi \ 42285169Scy dev/acpica dev/an dev/bktr dev/ciss dev/firewire dev/hwpmc \ 43285169Scy dev/ic dev/iicbus ${_dev_ieee488} dev/io dev/lmc dev/mfi dev/ofw \ 44285169Scy dev/pbio ${_dev_powermac_nvram} dev/ppbus dev/smbus \ 45285169Scy dev/speaker dev/usb dev/utopia dev/vkbd dev/wi \ 46285169Scy fs/devfs fs/fdescfs fs/fifofs fs/msdosfs fs/nfs fs/ntfs fs/nullfs \ 47285169Scy ${_fs_nwfs} fs/portalfs fs/procfs fs/smbfs fs/udf fs/unionfs \ 48285169Scy geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \ 49285169Scy geom/mirror geom/mountver geom/multipath geom/nop \ 50285169Scy geom/raid geom/raid3 geom/shsec geom/stripe geom/virstor \ 51285169Scy netgraph/atm netgraph/netflow \ 52285169Scy security/audit \ 53285169Scy security/mac_biba security/mac_bsdextended security/mac_lomac \ 54285169Scy security/mac_mls security/mac_partition \ 55285169Scy ufs/ffs ufs/ufs 56285169Scy 57285169ScyLSUBSUBDIRS= dev/mpt/mpilib 58285169Scy 59285169Scy.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" 60285169Scy_dev_powermac_nvram= dev/powermac_nvram 61285169Scy.endif 62285169Scy 63285169Scy.if ${MK_GPIB} != "no" 64285169Scy_dev_ieee488= dev/ieee488 65285169Scy.endif 66285169Scy 67285169Scy.if ${MK_HESIOD} != "no" 68285169ScyINCS+= hesiod.h 69285169Scy.endif 70285169Scy 71285169Scy.if ${MK_ICONV} != "no" 72285169ScyINCS+= iconv.h 73285169Scy.endif 74275970Scy 75275970Scy.if ${MK_BLUETOOTH} != "no" 76275970ScyLSUBSUBDIRS+= netgraph/bluetooth/include 77275970Scy.endif 78275970Scy 79275970Scy# XXX unconditionally needed by <netsmb/netbios.h> 80275970Scy#.if ${MK_IPX} != "no" 81275970Scy_netipx= netipx 82275970Scy#.endif 83275970Scy 84275970Scy.if ${MK_NCP} != "no" 85275970Scy_netncp= netncp 86275970Scy_fs_nwfs= fs/nwfs 87275970Scy.endif 88275970Scy 89275970Scy# Define SHARED to indicate whether you want symbolic links to the system 90275970Scy# source (``symlinks''), or a separate copy (``copies''). ``symlinks'' is 91275970Scy# probably only useful for developers and should be avoided if you do not 92275970Scy# wish to tie your /usr/include and /usr/src together. 93275970Scy#SHARED= symlinks 94275970ScySHARED?= copies 95275970Scy 96282408ScyINCS+= osreldate.h 97275970Scy 98275970Scyosreldate.h: ${.CURDIR}/../sys/conf/newvers.sh ${.CURDIR}/../sys/sys/param.h \ 99275970Scy ${.CURDIR}/Makefile 100275970Scy @${ECHO} creating osreldate.h from newvers.sh 101275970Scy @MAKE=${MAKE}; \ 102275970Scy PARAMFILE=${.CURDIR}/../sys/sys/param.h; \ 103275970Scy . ${.CURDIR}/../sys/conf/newvers.sh; \ 104275970Scy echo "$$COPYRIGHT" > osreldate.h; \ 105275970Scy echo "#ifdef _KERNEL" >> osreldate.h; \ 106275970Scy echo "#error \"<osreldate.h> cannot be used in the kernel, use <sys/param.h>\"" >> osreldate.h; \ 107275970Scy echo "#else" >> osreldate.h; \ 108275970Scy echo "#undef __FreeBSD_version" >> osreldate.h; \ 109275970Scy echo "#define __FreeBSD_version $$RELDATE" >> osreldate.h; \ 110275970Scy echo "#endif" >> osreldate.h 111275970Scy 112316722Sdelphij.for i in ${LHDRS} 113275970ScyINCSLINKS+= sys/$i ${INCLUDEDIR}/$i 114275970Scy.endfor 115275970Scy.for i in ${MHDRS} 116275970ScyINCSLINKS+= machine/$i ${INCLUDEDIR}/$i 117275970Scy.endfor 118275970Scy.for i in ${PHDRS} 119275970ScyINCSLINKS+= sys/$i ${INCLUDEDIR}/$i 120275970Scy.endfor 121289764Sglebius 122275970Scy.if ${MACHINE} != ${MACHINE_CPUARCH} 123275970Scy_MARCHS= ${MACHINE_CPUARCH} 124275970Scy.endif 125285169Scy.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" 126275970Scy_MARCHS+= x86 127275970Scy.endif 128282408Scy 129282408Scy.include <bsd.prog.mk> 130275970Scy 131275970Scyinstallincludes: ${SHARED} 132275970Scy${SHARED}: compat 133275970Scy 134275970Scy# Take care of stale directory-level symlinks. 135285169Scycompat: 136275970Scy.for i in ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} crypto 137275970Scy if [ -L ${DESTDIR}${INCLUDEDIR}/$i ]; then \ 138275970Scy rm -f ${DESTDIR}${INCLUDEDIR}/$i; \ 139275970Scy fi 140275970Scy.endfor 141275970Scy mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \ 142275970Scy -f ${.CURDIR}/../etc/mtree/BSD.include.dist \ 143275970Scy -p ${DESTDIR}${INCLUDEDIR} 144275970Scy.if ${MK_BIND_LIBS} != "no" 145275970Scy mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \ 146275970Scy -f ${.CURDIR}/../etc/mtree/BIND.include.dist \ 147275970Scy -p ${DESTDIR}${INCLUDEDIR} 148275970Scy.endif 149275970Scy 150275970Scycopies: 151275970Scy.for i in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} altq crypto machine machine/pc \ 152275970Scy ${_MARCHS} 153275970Scy.if exists(${DESTDIR}${INCLUDEDIR}/$i) 154275970Scy cd ${DESTDIR}${INCLUDEDIR}/$i; \ 155275970Scy for h in *.h; do \ 156275970Scy if [ -L $$h ]; then rm -f $$h; fi; \ 157275970Scy done 158275970Scy.endif 159275970Scy.endfor 160275970Scy.for i in ${LDIRS} ${LSUBDIRS:Ndev/acpica:Ndev/bktr} ${LSUBSUBDIRS} 161285169Scy cd ${.CURDIR}/../sys; \ 162285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \ 163285169Scy ${DESTDIR}${INCLUDEDIR}/$i 164285169Scy.endfor 165285169Scy cd ${.CURDIR}/../sys/dev/acpica; \ 166285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 acpiio.h \ 167275970Scy ${DESTDIR}${INCLUDEDIR}/dev/acpica 168275970Scy cd ${.CURDIR}/../sys/dev/bktr; \ 169275970Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ioctl_*.h \ 170275970Scy ${DESTDIR}${INCLUDEDIR}/dev/bktr 171275970Scy cd ${.CURDIR}/../sys/contrib/altq/altq; \ 172285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 173285169Scy ${DESTDIR}${INCLUDEDIR}/altq 174285169Scy cd ${.CURDIR}/../sys/fs/cd9660/; \ 175285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 176285169Scy ${DESTDIR}${INCLUDEDIR}/isofs/cd9660 177285169Scy.if ${MK_IPFILTER} != "no" 178285169Scy cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ 179285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 180285169Scy ${DESTDIR}${INCLUDEDIR}/netinet 181285169Scy.endif 182275970Scy cd ${.CURDIR}/../sys/contrib/pf/net; \ 183285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 184275970Scy ${DESTDIR}${INCLUDEDIR}/net 185275970Scy cd ${.CURDIR}/../sys/crypto; \ 186285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 rijndael/rijndael.h \ 187285169Scy ${DESTDIR}${INCLUDEDIR}/crypto 188285169Scy cd ${.CURDIR}/../sys/opencrypto; \ 189285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 190285169Scy ${DESTDIR}${INCLUDEDIR}/crypto 191275970Scy cd ${.CURDIR}/../sys/${MACHINE}/include; \ 192275970Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 193275970Scy ${DESTDIR}${INCLUDEDIR}/machine 194275970Scy.if exists(${.CURDIR}/../sys/${MACHINE}/include/pc) 195275970Scy cd ${.CURDIR}/../sys/${MACHINE}/include/pc; \ 196285169Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 197285169Scy ${DESTDIR}${INCLUDEDIR}/machine/pc 198275970Scy.endif 199275970Scy.for _MARCH in ${_MARCHS} 200275970Scy.if exists(${.CURDIR}/../sys/${_MARCH}/include) 201275970Scy ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \ 202275970Scy ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \ 203275970Scy cd ${.CURDIR}/../sys/${_MARCH}/include; \ 204275970Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 205275970Scy ${DESTDIR}${INCLUDEDIR}/${_MARCH} 206275970Scy.if exists(${.CURDIR}/../sys/${_MARCH}/include/pc) 207275970Scy ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \ 208289764Sglebius ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \ 209275970Scy cd ${.CURDIR}/../sys/${_MARCH}/include/pc; \ 210275970Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ 211275970Scy ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc 212275970Scy.endif 213275970Scy.endif 214275970Scy.endfor 215275970Scy cd ${.CURDIR}/../sys/rpc; \ 216275970Scy ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 types.h \ 217289764Sglebius ${DESTDIR}${INCLUDEDIR}/rpc 218275970Scy 219275970Scysymlinks: 220275970Scy @${ECHO} "Setting up symlinks to kernel source tree..." 221275970Scy.for i in ${LDIRS} 222275970Scy cd ${.CURDIR}/../sys/$i; \ 223280849Scy for h in *.h; do \ 224275970Scy ln -fs ../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ 225275970Scy done 226275970Scy.endfor 227275970Scy.for i in ${LSUBDIRS:Ndev/acpica:Ndev/bktr} 228275970Scy cd ${.CURDIR}/../sys/$i; \ 229275970Scy for h in *.h; do \ 230275970Scy ln -fs ../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ 231275970Scy done 232275970Scy.endfor 233275970Scy cd ${.CURDIR}/../sys/dev/acpica; \ 234275970Scy for h in acpiio.h; do \ 235275970Scy ln -fs ../../../../sys/dev/acpica/$$h \ 236275970Scy ${DESTDIR}${INCLUDEDIR}/dev/acpica; \ 237275970Scy done 238275970Scy cd ${.CURDIR}/../sys/dev/bktr; \ 239275970Scy for h in ioctl_*.h; do \ 240275970Scy ln -fs ../../../../sys/dev/bktr/$$h \ 241275970Scy ${DESTDIR}${INCLUDEDIR}/dev/bktr; \ 242275970Scy done 243275970Scy.for i in ${LSUBSUBDIRS} 244275970Scy cd ${.CURDIR}/../sys/$i; \ 245275970Scy for h in *.h; do \ 246285169Scy ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ 247275970Scy done 248275970Scy.endfor 249275970Scy cd ${.CURDIR}/../sys/contrib/altq/altq; \ 250275970Scy for h in *.h; do \ 251275970Scy ln -fs ../../../sys/contrib/altq/altq/$$h \ 252275970Scy ${DESTDIR}${INCLUDEDIR}/altq; \ 253275970Scy done 254275970Scy.if ${MK_IPFILTER} != "no" 255280849Scy cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ 256275970Scy for h in *.h; do \ 257280849Scy ln -fs ../../../sys/contrib/ipfilter/netinet/$$h \ 258275970Scy ${DESTDIR}${INCLUDEDIR}/netinet; \ 259275970Scy done 260275970Scy.endif 261275970Scy cd ${.CURDIR}/../sys/contrib/pf/net; \ 262275970Scy for h in *.h; do \ 263275970Scy ln -fs ../../../sys/contrib/pf/net/$$h \ 264275970Scy ${DESTDIR}${INCLUDEDIR}/net; \ 265275970Scy done 266275970Scy cd ${.CURDIR}/../sys/crypto; \ 267275970Scy for h in rijndael/rijndael.h; do \ 268275970Scy ln -fs ../../../sys/crypto/$$h \ 269275970Scy ${DESTDIR}${INCLUDEDIR}/crypto; \ 270275970Scy done 271275970Scy cd ${.CURDIR}/../sys/opencrypto; \ 272275970Scy for h in *.h; do \ 273275970Scy ln -fs ../../../sys/opencrypto/$$h \ 274275970Scy ${DESTDIR}${INCLUDEDIR}/crypto; \ 275289764Sglebius done 276275970Scy cd ${.CURDIR}/../sys/${MACHINE}/include; \ 277316722Sdelphij for h in *.h; do \ 278275970Scy ln -fs ../../../sys/${MACHINE}/include/$$h \ 279275970Scy ${DESTDIR}${INCLUDEDIR}/machine; \ 280275970Scy done 281275970Scy.if exists(${.CURDIR}/../sys/${MACHINE}/include/pc) 282275970Scy cd ${.CURDIR}/../sys/${MACHINE}/include/pc; \ 283275970Scy for h in *.h; do \ 284275970Scy ln -fs ../../../../sys/${MACHINE}/include/pc/$$h \ 285275970Scy ${DESTDIR}${INCLUDEDIR}/machine/pc; \ 286275970Scy done 287275970Scy.endif 288275970Scy.for _MARCH in ${_MARCHS} 289275970Scy.if exists(${.CURDIR}/../sys/${_MARCH}/include) 290275970Scy ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \ 291275970Scy ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \ 292275970Scy cd ${.CURDIR}/../sys/${_MARCH}/include; \ 293275970Scy for h in *.h; do \ 294275970Scy ln -fs ../../../sys/${_MARCH}/include/$$h \ 295275970Scy ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \ 296275970Scy done 297275970Scy.if exists(${.CURDIR}/../sys/${_MARCH}/include/pc) 298275970Scy ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \ 299275970Scy ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \ 300275970Scy cd ${.CURDIR}/../sys/${_MARCH}/include/pc; \ 301275970Scy for h in *.h; do \ 302275970Scy ln -fs ../../../../sys/${_MARCH}/include/pc/$$h \ 303275970Scy ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \ 304275970Scy done 305275970Scy.endif 306275970Scy.endif 307275970Scy.endfor 308275970Scy cd ${.CURDIR}/../sys/fs/cd9660; \ 309275970Scy for h in *.h; do \ 310275970Scy ln -fs ../../../../sys/fs/cd9660/$$h \ 311275970Scy ${DESTDIR}${INCLUDEDIR}/isofs/cd9660; \ 312275970Scy done 313275970Scy cd ${.CURDIR}/../sys/rpc; \ 314275970Scy for h in types.h; do \ 315275970Scy ln -fs ../../../sys/rpc/$$h \ 316275970Scy ${DESTDIR}${INCLUDEDIR}/rpc; \ 317275970Scy done 318275970Scy