Makefile revision 142992
1227614Sluigi#	@(#)Makefile	8.2 (Berkeley) 1/4/94
2260368Sluigi# $FreeBSD: head/include/Makefile 142992 2005-03-02 07:40:18Z ru $
3259412Sluigi#
4227614Sluigi# Doing a "make install" builds /usr/include.
5259412Sluigi
6259412SluigiCLEANFILES= osreldate.h version vers.c
7259412SluigiSUBDIR= arpa protocols rpcsvc rpc
8227614SluigiINCS=	a.out.h ar.h assert.h bitstring.h complex.h cpio.h _ctype.h ctype.h \
9227614Sluigi	db.h \
10227614Sluigi	dirent.h dlfcn.h elf.h elf-hints.h err.h fmtmsg.h fnmatch.h fstab.h \
11227614Sluigi	fts.h ftw.h getopt.h glob.h grp.h \
12259412Sluigi	hesiod.h histedit.h ieeefp.h ifaddrs.h \
13259412Sluigi	inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \
14259412Sluigi	locale.h malloc.h memory.h monetary.h mpool.h ndbm.h netconfig.h \
15227614Sluigi	netdb.h nl_types.h nlist.h nss.h nsswitch.h objformat.h paths.h \
16259412Sluigi	proc_service.h pthread.h \
17259412Sluigi	pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h regexp.h \
18259412Sluigi	resolv.h runefile.h runetype.h search.h setjmp.h sgtty.h \
19259412Sluigi	signal.h stab.h \
20259412Sluigi	stdbool.h stddef.h stdio.h stdlib.h string.h stringlist.h \
21259412Sluigi	strings.h sysexits.h tar.h tgmath.h \
22259412Sluigi	time.h timeconv.h timers.h ttyent.h \
23259412Sluigi	ulimit.h unistd.h utime.h utmp.h uuid.h varargs.h vis.h wchar.h \
24259412Sluigi	wctype.h wordexp.h
25227614Sluigi
26227614SluigiMHDRS=	float.h floatingpoint.h stdarg.h
27227614Sluigi
28227614Sluigi# posix4/mqueue.h is useless without an implementation and isn't installed:
29227614SluigiPHDRS=	sched.h semaphore.h _semaphore.h # mqueue.h
30232238Sluigi
31232238SluigiLHDRS=	aio.h errno.h fcntl.h linker_set.h poll.h stdint.h syslog.h \
32232238Sluigi	termios.h ucontext.h
33259412Sluigi
34232238SluigiLDIRS=	cam geom net net80211 netatalk netatm netgraph netinet netinet6 \
35257529Sluigi	netipsec netipx netkey netnatm netncp netsmb nfs nfsclient nfsserver \
36257529Sluigi	pccard posix4 sys vm
37227614Sluigi
38227614SluigiLSUBDIRS=	cam/scsi \
39227614Sluigi	dev/acpica dev/an dev/bktr dev/firewire \
40227614Sluigi	dev/ic dev/iicbus ${_dev_ieee488} dev/ofw \
41227614Sluigi	dev/pbio dev/ppbus dev/smbus dev/usb dev/wi dev/utopia \
42261909Sluigi	fs/devfs fs/fdescfs fs/fifofs fs/msdosfs fs/ntfs fs/nullfs \
43260368Sluigi	fs/nwfs fs/portalfs fs/procfs fs/smbfs fs/udf fs/umapfs \
44261909Sluigi	fs/unionfs \
45261909Sluigi	geom/concat geom/gate geom/label geom/mirror geom/nop geom/raid3 \
46227614Sluigi	geom/shsec geom/stripe \
47260368Sluigi	isofs/cd9660 \
48260368Sluigi	netatm/ipatm netatm/sigpvc netatm/spans netatm/uni \
49260368Sluigi	netgraph/atm netgraph/netflow \
50260368Sluigi	security/mac_biba security/mac_bsdextended security/mac_lomac \
51260368Sluigi	security/mac_mls security/mac_partition \
52260368Sluigi	ufs/ffs ufs/ufs
53260368Sluigi
54260368Sluigi.if !defined(NO_GPIB)
55227614Sluigi_dev_ieee488=	dev/ieee488
56227614Sluigi.endif
57257529Sluigi
58257529Sluigi.if !defined(NO_BLUETOOTH)
59257529SluigiLSUBSUBDIRS=	netgraph/bluetooth/include
60257529Sluigi.endif
61227614Sluigi
62257529Sluigi# Define SHARED to indicate whether you want symbolic links to the system
63227614Sluigi# source (``symlinks''), or a separate copy (``copies'').  ``symlinks'' is
64232238Sluigi# probably only useful for developers and should be avoided if you do not
65232238Sluigi# wish to tie your /usr/include and /usr/src together.
66257529Sluigi#SHARED=	symlinks
67260368SluigiSHARED?=	copies
68260368Sluigi
69260368SluigiINCS+=	osreldate.h
70260368Sluigi
71260368Sluigiosreldate.h:	${.CURDIR}/../sys/conf/newvers.sh \
72260368Sluigi		${.CURDIR}/../sys/sys/param.h \
73260368Sluigi		${.CURDIR}/Makefile
74260368Sluigi	@${ECHO} creating osreldate.h from newvers.sh
75260368Sluigi	@setvar PARAMFILE ${.CURDIR}/../sys/sys/param.h; \
76260368Sluigi	MAKE=${MAKE} . ${.CURDIR}/../sys/conf/newvers.sh;	\
77260368Sluigi	echo "$$COPYRIGHT" > osreldate.h;			\
78261909Sluigi	echo "#ifdef _KERNEL" >> osreldate.h;			\
79260368Sluigi	echo '#error "<osreldate.h> cannot be used in the kernel, use <sys/param.h>"' >> osreldate.h; \
80260368Sluigi	echo "#else" >> osreldate.h;				\
81260368Sluigi	echo \#'undef __FreeBSD_version' >> osreldate.h;	\
82227614Sluigi	echo \#'define __FreeBSD_version' $$RELDATE >> osreldate.h; \
83261909Sluigi	echo "#endif" >> osreldate.h
84257529Sluigi
85227614Sluigi.for i in ${LHDRS}
86227614SluigiINCSLINKS+=	sys/$i ${INCLUDEDIR}/$i
87261909Sluigi.endfor
88261909Sluigi.for i in ${MHDRS}
89257529SluigiINCSLINKS+=	machine/$i ${INCLUDEDIR}/$i
90261909Sluigi.endfor
91257529Sluigi.for i in ${PHDRS}
92261909SluigiINCSLINKS+=	posix4/$i ${INCLUDEDIR}/$i
93257529Sluigi.endfor
94257529Sluigi
95257529Sluigi.include <bsd.prog.mk>
96257529Sluigi
97257529Sluigiinstallincludes: ${SHARED}
98257529Sluigi${SHARED}: compat
99257529Sluigi
100257529Sluigi# Take care of stale directory-level symlinks.
101257529Sluigicompat:
102257529Sluigi.for i in ${LDIRS} ${LSUBDIRS} machine crypto
103227614Sluigi	if [ -L ${DESTDIR}${INCLUDEDIR}/$i ]; then \
104261909Sluigi		rm -f ${DESTDIR}${INCLUDEDIR}/$i; \
105261909Sluigi	fi
106261909Sluigi.endfor
107261909Sluigi	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \
108261909Sluigi	    -f ${.CURDIR}/../etc/mtree/BSD.include.dist \
109261909Sluigi	    -p ${DESTDIR}${INCLUDEDIR}
110261909Sluigi.if defined(WITH_BIND_LIBS) && !defined(NO_BIND)
111261909Sluigi	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \
112261909Sluigi	    -f ${.CURDIR}/../etc/mtree/BIND.include.dist \
113261909Sluigi	    -p ${DESTDIR}${INCLUDEDIR}
114261909Sluigi.endif
115261909Sluigi
116261909Sluigicopies:
117261909Sluigi.for i in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} altq crypto machine machine/pc
118261909Sluigi.if exists(${DESTDIR}${INCLUDEDIR}/$i)
119261909Sluigi	cd ${DESTDIR}${INCLUDEDIR}/$i; \
120261909Sluigi	for h in *.h; do \
121261909Sluigi		if [ -L $$h ]; then rm -f $$h; fi; \
122261909Sluigi	done
123261909Sluigi.endif
124261909Sluigi.endfor
125261909Sluigi.for i in ${LDIRS} ${LSUBDIRS:Ndev/bktr} ${LSUBSUBDIRS}
126261909Sluigi	cd ${.CURDIR}/../sys; \
127261909Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \
128261909Sluigi	    ${DESTDIR}${INCLUDEDIR}/$i
129261909Sluigi.endfor
130261909Sluigi	cd ${.CURDIR}/../sys/dev/bktr; \
131261909Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ioctl_*.h \
132261909Sluigi	    ${DESTDIR}${INCLUDEDIR}/dev/bktr
133261909Sluigi	cd ${.CURDIR}/../sys/contrib/altq/altq; \
134261909Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
135261909Sluigi	    ${DESTDIR}${INCLUDEDIR}/altq
136261909Sluigi	cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \
137261909Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
138261909Sluigi	    ${DESTDIR}${INCLUDEDIR}/netinet
139261909Sluigi	cd ${.CURDIR}/../sys/contrib/pf/net; \
140257529Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
141257529Sluigi	    ${DESTDIR}${INCLUDEDIR}/net
142257529Sluigi	cd ${.CURDIR}/../sys/opencrypto; \
143257529Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
144227614Sluigi	    ${DESTDIR}${INCLUDEDIR}/crypto
145227614Sluigi	cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include; \
146257529Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
147260368Sluigi	    ${DESTDIR}${INCLUDEDIR}/machine
148257529Sluigi.if exists(${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc)
149260368Sluigi	cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc; \
150260368Sluigi	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
151260368Sluigi	    ${DESTDIR}${INCLUDEDIR}/machine/pc
152260368Sluigi.endif
153260368Sluigi
154260368Sluigisymlinks:
155260368Sluigi	@${ECHO} "Setting up symlinks to kernel source tree..."
156257529Sluigi.for i in ${LDIRS}
157260368Sluigi	cd ${.CURDIR}/../sys/$i; \
158260368Sluigi	for h in *.h; do \
159260368Sluigi		ln -fs ../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \
160260368Sluigi	done
161260368Sluigi.endfor
162260368Sluigi.for i in ${LSUBDIRS:Ndev/bktr}
163260368Sluigi	cd ${.CURDIR}/../sys/$i; \
164260368Sluigi	for h in *.h; do \
165260368Sluigi		ln -fs ../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \
166260368Sluigi	done
167260368Sluigi.endfor
168260368Sluigi	cd ${.CURDIR}/../sys/dev/bktr; \
169260368Sluigi	for h in ioctl_*.h; do \
170260368Sluigi		ln -fs ../../../../sys/dev/bktr/$$h \
171260368Sluigi		    ${DESTDIR}${INCLUDEDIR}/dev/bktr; \
172260368Sluigi	done
173260368Sluigi.for i in ${LSUBSUBDIRS}
174260368Sluigi	cd ${.CURDIR}/../sys/$i; \
175260368Sluigi	for h in *.h; do \
176260368Sluigi		ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \
177260368Sluigi	done
178260368Sluigi.endfor
179260368Sluigi	cd ${.CURDIR}/../sys/contrib/altq/altq; \
180260368Sluigi	for h in *.h; do \
181260368Sluigi		ln -fs ../../../sys/contrib/altq/altq/$$h \
182260368Sluigi		    ${DESTDIR}${INCLUDEDIR}/altq; \
183260368Sluigi	done
184260368Sluigi	cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \
185260368Sluigi	for h in *.h; do \
186260368Sluigi		ln -fs ../../../sys/contrib/ipfilter/netinet/$$h \
187260368Sluigi		    ${DESTDIR}${INCLUDEDIR}/netinet; \
188260368Sluigi	done
189260368Sluigi	cd ${.CURDIR}/../sys/contrib/pf/net; \
190260368Sluigi	for h in *.h; do \
191260368Sluigi		ln -fs ../../../sys/contrib/pf/net/$$h \
192260368Sluigi		    ${DESTDIR}${INCLUDEDIR}/net; \
193260368Sluigi	done
194260368Sluigi	cd ${.CURDIR}/../sys/opencrypto; \
195260368Sluigi	for h in *.h; do \
196260368Sluigi		ln -fs ../../../sys/opencrypto/$$h \
197260368Sluigi		    ${DESTDIR}${INCLUDEDIR}/crypto; \
198245834Sluigi	done
199245834Sluigi	cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include; \
200260368Sluigi	for h in *.h; do \
201260368Sluigi		ln -fs ../../../sys/${MACHINE_ARCH}/include/$$h \
202260368Sluigi		    ${DESTDIR}${INCLUDEDIR}/machine; \
203260368Sluigi	done
204260368Sluigi.if exists(${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc)
205260368Sluigi	cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc; \
206257529Sluigi	for h in *.h; do \
207260368Sluigi		ln -fs ../../../../sys/${MACHINE_ARCH}/include/pc/$$h \
208260368Sluigi		    ${DESTDIR}${INCLUDEDIR}/machine/pc; \
209260368Sluigi	done
210260368Sluigi.endif
211227614Sluigi