Makefile revision 241641
1169689Skan#	@(#)Makefile	8.2 (Berkeley) 1/4/94
2169689Skan# $FreeBSD: head/include/Makefile 241641 2012-10-17 13:04:05Z attilio $
3169689Skan#
4169689Skan# Doing a "make install" builds /usr/include.
5169689Skan
6169689Skan.include <bsd.own.mk>
7169689Skan
8169689SkanCLEANFILES= osreldate.h version vers.c
9169689SkanSUBDIR= arpa gssapi protocols rpcsvc rpc xlocale
10169689SkanINCS=	a.out.h ar.h assert.h bitstring.h complex.h cpio.h _ctype.h ctype.h \
11169689Skan	db.h \
12169689Skan	dirent.h dlfcn.h elf.h elf-hints.h err.h fmtmsg.h fnmatch.h fstab.h \
13169689Skan	fts.h ftw.h getopt.h glob.h grp.h gssapi.h \
14169689Skan	ieeefp.h ifaddrs.h \
15169689Skan	inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \
16169689Skan	locale.h malloc.h malloc_np.h memory.h monetary.h mpool.h mqueue.h \
17169689Skan	ndbm.h netconfig.h \
18169689Skan	netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \
19169689Skan	printf.h proc_service.h pthread.h \
20169689Skan	pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h \
21169689Skan	res_update.h resolv.h runetype.h search.h semaphore.h setjmp.h \
22169689Skan	signal.h spawn.h stab.h stdalign.h stdatomic.h stdbool.h stddef.h \
23169689Skan	stdnoreturn.h stdio.h stdlib.h string.h stringlist.h \
24169689Skan	strings.h sysexits.h tar.h termios.h tgmath.h \
25169689Skan	time.h timeconv.h timers.h ttyent.h \
26169689Skan	ulimit.h unistd.h utime.h utmpx.h uuid.h varargs.h vis.h \
27169689Skan	wchar.h wctype.h wordexp.h xlocale.h
28169689Skan
29169689SkanMHDRS=	float.h floatingpoint.h stdarg.h
30169689Skan
31169689SkanPHDRS=	sched.h _semaphore.h
32169689Skan
33169689SkanLHDRS=	aio.h errno.h fcntl.h linker_set.h poll.h stdint.h syslog.h \
34169689Skan	ucontext.h
35169689Skan
36169689SkanLDIRS=	bsm cam geom net net80211 netatalk netgraph netinet netinet6 \
37169689Skan	netipsec ${_netipx} netnatm netsmb \
38169689Skan	nfs nfsclient nfsserver \
39169689Skan	sys vm
40169689Skan
41169689SkanLSUBDIRS=	cam/ata cam/scsi \
42169689Skan	dev/acpica dev/an dev/bktr dev/ciss dev/filemon dev/firewire dev/hwpmc \
43169689Skan	dev/ic dev/iicbus ${_dev_ieee488} dev/io dev/lmc dev/mfi dev/nvme \
44169689Skan	dev/ofw dev/pbio ${_dev_powermac_nvram} dev/ppbus dev/smbus \
45169689Skan	dev/speaker dev/usb dev/utopia dev/vkbd dev/wi \
46169689Skan	fs/devfs fs/fdescfs fs/msdosfs fs/nandfs fs/nfs fs/nullfs \
47169689Skan	fs/procfs fs/smbfs fs/udf fs/unionfs \
48169689Skan	geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \
49169689Skan	geom/mirror geom/mountver geom/multipath geom/nop \
50169689Skan	geom/raid geom/raid3 geom/shsec geom/stripe geom/virstor \
51169689Skan	netgraph/atm netgraph/netflow \
52169689Skan	security/audit \
53169689Skan	security/mac_biba security/mac_bsdextended security/mac_lomac \
54169689Skan	security/mac_mls security/mac_partition \
55169689Skan	ufs/ffs ufs/ufs
56169689Skan
57169689SkanLSUBSUBDIRS=	dev/mpt/mpilib
58169689Skan
59169689Skan.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64"
60169689Skan_dev_powermac_nvram=	dev/powermac_nvram
61169689Skan.endif
62169689Skan
63169689Skan.if ${MK_GPIB} != "no"
64169689Skan_dev_ieee488=	dev/ieee488
65169689Skan.endif
66169689Skan
67169689Skan.if ${MK_HESIOD} != "no"
68169689SkanINCS+=	hesiod.h
69169689Skan.endif
70169689Skan
71169689Skan.if ${MK_ICONV} != "no"
72169689SkanINCS+=	iconv.h
73169689Skan.endif
74169689Skan
75169689Skan.if ${MK_BLUETOOTH} != "no"
76169689SkanLSUBSUBDIRS+=	netgraph/bluetooth/include
77169689Skan.endif
78169689Skan
79169689Skan# XXX unconditionally needed by <netsmb/netbios.h>
80169689Skan#.if ${MK_IPX} != "no"
81169689Skan_netipx=	netipx
82169689Skan#.endif
83169689Skan
84169689Skan# Define SHARED to indicate whether you want symbolic links to the system
85169689Skan# source (``symlinks''), or a separate copy (``copies'').  ``symlinks'' is
86169689Skan# probably only useful for developers and should be avoided if you do not
87169689Skan# wish to tie your /usr/include and /usr/src together.
88169689Skan#SHARED=	symlinks
89169689SkanSHARED?=	copies
90169689Skan
91169689SkanINCS+=	osreldate.h
92169689Skan
93169689Skanosreldate.h: ${.CURDIR}/../sys/conf/newvers.sh ${.CURDIR}/../sys/sys/param.h \
94169689Skan    ${.CURDIR}/Makefile
95169689Skan	@${ECHO} creating osreldate.h from newvers.sh
96169689Skan	@MAKE=${MAKE}; \
97169689Skan	PARAMFILE=${.CURDIR}/../sys/sys/param.h; \
98169689Skan	. ${.CURDIR}/../sys/conf/newvers.sh; \
99169689Skan	echo "$$COPYRIGHT" > osreldate.h; \
100169689Skan	echo "#ifdef _KERNEL" >> osreldate.h; \
101169689Skan	echo "#error \"<osreldate.h> cannot be used in the kernel, use <sys/param.h>\"" >> osreldate.h; \
102169689Skan	echo "#else" >> osreldate.h; \
103169689Skan	echo "#undef __FreeBSD_version" >> osreldate.h; \
104169689Skan	echo "#define __FreeBSD_version $$RELDATE" >> osreldate.h; \
105169689Skan	echo "#endif" >> osreldate.h
106169689Skan
107169689Skan.for i in ${LHDRS}
108169689SkanINCSLINKS+=	sys/$i ${INCLUDEDIR}/$i
109169689Skan.endfor
110169689Skan.for i in ${MHDRS}
111169689SkanINCSLINKS+=	machine/$i ${INCLUDEDIR}/$i
112169689Skan.endfor
113169689Skan.for i in ${PHDRS}
114169689SkanINCSLINKS+=	sys/$i ${INCLUDEDIR}/$i
115169689Skan.endfor
116169689Skan
117169689Skan.if ${MACHINE} != ${MACHINE_CPUARCH}
118169689Skan_MARCHS=	${MACHINE_CPUARCH}
119169689Skan.endif
120169689Skan.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
121169689Skan_MARCHS+=	x86
122169689Skan.endif
123169689Skan
124169689Skan.include <bsd.prog.mk>
125169689Skan
126169689Skaninstallincludes: ${SHARED}
127169689Skan${SHARED}: compat
128169689Skan
129169689Skan# Take care of stale directory-level symlinks.
130169689Skancompat:
131169689Skan.for i in ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} crypto
132169689Skan	if [ -L ${DESTDIR}${INCLUDEDIR}/$i ]; then \
133169689Skan		rm -f ${DESTDIR}${INCLUDEDIR}/$i; \
134169689Skan	fi
135169689Skan.endfor
136169689Skan	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \
137169689Skan	    -f ${.CURDIR}/../etc/mtree/BSD.include.dist \
138169689Skan	    -p ${DESTDIR}${INCLUDEDIR}
139169689Skan.if ${MK_BIND_LIBS} != "no"
140169689Skan	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \
141169689Skan	    -f ${.CURDIR}/../etc/mtree/BIND.include.dist \
142169689Skan	    -p ${DESTDIR}${INCLUDEDIR}
143169689Skan.endif
144169689Skan
145169689Skancopies:
146169689Skan.for i in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} altq crypto machine machine/pc \
147169689Skan	${_MARCHS}
148169689Skan.if exists(${DESTDIR}${INCLUDEDIR}/$i)
149169689Skan	cd ${DESTDIR}${INCLUDEDIR}/$i; \
150169689Skan	for h in *.h; do \
151169689Skan		if [ -L $$h ]; then rm -f $$h; fi; \
152169689Skan	done
153169689Skan.endif
154169689Skan.endfor
155169689Skan.for i in ${LDIRS} ${LSUBDIRS:Ndev/acpica:Ndev/bktr:Ndev/nand} ${LSUBSUBDIRS}
156169689Skan	cd ${.CURDIR}/../sys; \
157169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \
158169689Skan	    ${DESTDIR}${INCLUDEDIR}/$i
159169689Skan.endfor
160169689Skan	cd ${.CURDIR}/../sys/dev/acpica; \
161169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 acpiio.h \
162169689Skan	    ${DESTDIR}${INCLUDEDIR}/dev/acpica
163169689Skan	cd ${.CURDIR}/../sys/dev/bktr; \
164169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ioctl_*.h \
165169689Skan	    ${DESTDIR}${INCLUDEDIR}/dev/bktr
166169689Skan.if ${MK_NAND} != "no"
167169689Skan	cd ${.CURDIR}/../sys/dev/nand; \
168169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 nandsim.h \
169169689Skan	    ${DESTDIR}${INCLUDEDIR}/dev/nand; \
170169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 nand_dev.h \
171169689Skan	    ${DESTDIR}${INCLUDEDIR}/dev/nand
172169689Skan.endif
173169689Skan	cd ${.CURDIR}/../sys/contrib/altq/altq; \
174169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
175169689Skan	    ${DESTDIR}${INCLUDEDIR}/altq
176169689Skan	cd ${.CURDIR}/../sys/fs/cd9660/; \
177169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
178169689Skan	    ${DESTDIR}${INCLUDEDIR}/isofs/cd9660
179169689Skan.if ${MK_IPFILTER} != "no"
180169689Skan	cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \
181169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
182169689Skan	    ${DESTDIR}${INCLUDEDIR}/netinet
183169689Skan.endif
184169689Skan	cd ${.CURDIR}/../sys/crypto; \
185169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 rijndael/rijndael.h \
186169689Skan	    ${DESTDIR}${INCLUDEDIR}/crypto
187169689Skan	cd ${.CURDIR}/../sys/opencrypto; \
188169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
189169689Skan	    ${DESTDIR}${INCLUDEDIR}/crypto
190169689Skan	cd ${.CURDIR}/../sys/${MACHINE}/include; \
191169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
192169689Skan	    ${DESTDIR}${INCLUDEDIR}/machine
193169689Skan.if exists(${.CURDIR}/../sys/${MACHINE}/include/pc)
194169689Skan	cd ${.CURDIR}/../sys/${MACHINE}/include/pc; \
195169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
196169689Skan	    ${DESTDIR}${INCLUDEDIR}/machine/pc
197169689Skan.endif
198169689Skan.for _MARCH in ${_MARCHS}
199169689Skan.if exists(${.CURDIR}/../sys/${_MARCH}/include)
200169689Skan	${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
201169689Skan	    ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
202169689Skan	cd ${.CURDIR}/../sys/${_MARCH}/include; \
203169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
204169689Skan	    ${DESTDIR}${INCLUDEDIR}/${_MARCH}
205169689Skan.if exists(${.CURDIR}/../sys/${_MARCH}/include/pc)
206169689Skan	${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
207169689Skan	    ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
208169689Skan	cd ${.CURDIR}/../sys/${_MARCH}/include/pc; \
209169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
210169689Skan	    ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc
211169689Skan.endif
212169689Skan.endif
213169689Skan.endfor
214169689Skan	cd ${.CURDIR}/../sys/rpc; \
215169689Skan	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 types.h \
216169689Skan	    ${DESTDIR}${INCLUDEDIR}/rpc
217169689Skan
218169689Skansymlinks:
219169689Skan	@${ECHO} "Setting up symlinks to kernel source tree..."
220169689Skan.for i in ${LDIRS}
221169689Skan	cd ${.CURDIR}/../sys/$i; \
222169689Skan	for h in *.h; do \
223169689Skan		ln -fs ../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \
224169689Skan	done
225169689Skan.endfor
226169689Skan.for i in ${LSUBDIRS:Ndev/acpica:Ndev/bktr:Ndev/nand}
227169689Skan	cd ${.CURDIR}/../sys/$i; \
228169689Skan	for h in *.h; do \
229169689Skan		ln -fs ../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \
230169689Skan	done
231169689Skan.endfor
232169689Skan	cd ${.CURDIR}/../sys/dev/acpica; \
233169689Skan	for h in acpiio.h; do \
234169689Skan		ln -fs ../../../../sys/dev/acpica/$$h \
235169689Skan		    ${DESTDIR}${INCLUDEDIR}/dev/acpica; \
236169689Skan	done
237169689Skan	cd ${.CURDIR}/../sys/dev/bktr; \
238169689Skan	for h in ioctl_*.h; do \
239169689Skan		ln -fs ../../../../sys/dev/bktr/$$h \
240169689Skan		    ${DESTDIR}${INCLUDEDIR}/dev/bktr; \
241169689Skan	done
242169689Skan.if ${MK_NAND} != "no"
243169689Skan	cd ${.CURDIR}/../sys/dev/nand; \
244169689Skan	for h in nandsim.h nand_dev.h; do \
245169689Skan		ln -fs ../../../../sys/dev/nand/$$h \
246169689Skan		    ${DESTDIR}${INCLUDEDIR}/dev/nand; \
247169689Skan	done
248169689Skan.endif
249169689Skan.for i in ${LSUBSUBDIRS}
250169689Skan	cd ${.CURDIR}/../sys/$i; \
251169689Skan	for h in *.h; do \
252169689Skan		ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \
253169689Skan	done
254169689Skan.endfor
255169689Skan	cd ${.CURDIR}/../sys/contrib/altq/altq; \
256169689Skan	for h in *.h; do \
257169689Skan		ln -fs ../../../sys/contrib/altq/altq/$$h \
258169689Skan		    ${DESTDIR}${INCLUDEDIR}/altq; \
259169689Skan	done
260169689Skan.if ${MK_IPFILTER} != "no"
261169689Skan	cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \
262169689Skan	for h in *.h; do \
263169689Skan		ln -fs ../../../sys/contrib/ipfilter/netinet/$$h \
264169689Skan		    ${DESTDIR}${INCLUDEDIR}/netinet; \
265169689Skan	done
266169689Skan.endif
267169689Skan	cd ${.CURDIR}/../sys/crypto; \
268169689Skan	for h in rijndael/rijndael.h; do \
269169689Skan		ln -fs ../../../sys/crypto/$$h \
270169689Skan		    ${DESTDIR}${INCLUDEDIR}/crypto; \
271169689Skan	done
272169689Skan	cd ${.CURDIR}/../sys/opencrypto; \
273169689Skan	for h in *.h; do \
274169689Skan		ln -fs ../../../sys/opencrypto/$$h \
275169689Skan		    ${DESTDIR}${INCLUDEDIR}/crypto; \
276169689Skan	done
277169689Skan	cd ${.CURDIR}/../sys/${MACHINE}/include; \
278169689Skan	for h in *.h; do \
279169689Skan		ln -fs ../../../sys/${MACHINE}/include/$$h \
280169689Skan		    ${DESTDIR}${INCLUDEDIR}/machine; \
281169689Skan	done
282169689Skan.if exists(${.CURDIR}/../sys/${MACHINE}/include/pc)
283169689Skan	cd ${.CURDIR}/../sys/${MACHINE}/include/pc; \
284169689Skan	for h in *.h; do \
285169689Skan		ln -fs ../../../../sys/${MACHINE}/include/pc/$$h \
286169689Skan		    ${DESTDIR}${INCLUDEDIR}/machine/pc; \
287169689Skan	done
288169689Skan.endif
289169689Skan.for _MARCH in ${_MARCHS}
290169689Skan.if exists(${.CURDIR}/../sys/${_MARCH}/include)
291169689Skan	${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
292169689Skan	    ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
293169689Skan	cd ${.CURDIR}/../sys/${_MARCH}/include; \
294169689Skan	for h in *.h; do \
295169689Skan		ln -fs ../../../sys/${_MARCH}/include/$$h \
296169689Skan		    ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
297169689Skan	done
298169689Skan.if exists(${.CURDIR}/../sys/${_MARCH}/include/pc)
299169689Skan	${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
300169689Skan	    ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
301169689Skan	cd ${.CURDIR}/../sys/${_MARCH}/include/pc; \
302169689Skan	for h in *.h; do \
303169689Skan		ln -fs ../../../../sys/${_MARCH}/include/pc/$$h \
304169689Skan		    ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
305169689Skan	done
306169689Skan.endif
307169689Skan.endif
308169689Skan.endfor
309169689Skan	cd ${.CURDIR}/../sys/fs/cd9660; \
310169689Skan	for h in *.h; do \
311169689Skan		ln -fs ../../../../sys/fs/cd9660/$$h \
312169689Skan		    ${DESTDIR}${INCLUDEDIR}/isofs/cd9660; \
313169689Skan	done
314169689Skan	cd ${.CURDIR}/../sys/rpc; \
315169689Skan	for h in types.h; do \
316169689Skan		ln -fs ../../../sys/rpc/$$h \
317169689Skan		    ${DESTDIR}${INCLUDEDIR}/rpc; \
318169689Skan	done
319169689Skan