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