xref: /freebsd/sys/conf/config.mk (revision 8881d206f4e68b564c2c5f50fc717086fc3e827a)
1# $FreeBSD$
2#
3# Common code to marry kernel config(8) goo and module building goo.
4#
5
6# Generate options files that otherwise would be built
7# in substantially similar ways through the tree. Move
8# the code here when they all produce identical results
9# (or should)
10.if !defined(KERNBUILDDIR)
11opt_global.h:
12	touch ${.TARGET}
13	@echo "#define SMP 1" >> ${.TARGET}
14	@echo "#define MAC 1" >> ${.TARGET}
15	@echo "#define VIMAGE 1" >> ${.TARGET}
16.if ${MK_BHYVE_SNAPSHOT} != "no"
17opt_bhyve_snapshot.h:
18	@echo "#define BHYVE_SNAPSHOT 1" > ${.TARGET}
19.endif
20opt_bpf.h:
21	echo "#define DEV_BPF 1" > ${.TARGET}
22.if ${MK_INET_SUPPORT} != "no"
23opt_inet.h:
24	@echo "#define INET 1" > ${.TARGET}
25	@echo "#define TCP_OFFLOAD 1" >> ${.TARGET}
26.endif
27.if ${MK_INET6_SUPPORT} != "no"
28opt_inet6.h:
29	@echo "#define INET6 1" > ${.TARGET}
30.endif
31.if ${MK_IPSEC_SUPPORT} != "no"
32opt_ipsec.h:
33	@echo "#define IPSEC_SUPPORT 1" > ${.TARGET}
34.endif
35.if ${MK_RATELIMIT} != "no"
36opt_ratelimit.h:
37	@echo "#define RATELIMIT 1" > ${.TARGET}
38.endif
39opt_mrouting.h:
40	echo "#define MROUTING 1" > ${.TARGET}
41opt_printf.h:
42	echo "#define PRINTF_BUFR_SIZE 128" > ${.TARGET}
43opt_scsi.h:
44	echo "#define SCSI_DELAY 15000" > ${.TARGET}
45.if ${MK_SCTP_SUPPORT} != "no"
46opt_sctp.h:
47	@echo "#define SCTP_SUPPORT 1" > ${.TARGET}
48.endif
49opt_wlan.h:
50	echo "#define IEEE80211_DEBUG 1" > ${.TARGET}
51	echo "#define IEEE80211_SUPPORT_MESH 1" >> ${.TARGET}
52KERN_OPTS.i386=NEW_PCIB DEV_PCI
53KERN_OPTS.amd64=NEW_PCIB DEV_PCI
54KERN_OPTS.powerpc=NEW_PCIB DEV_PCI
55KERN_OPTS=MROUTING IEEE80211_DEBUG \
56	IEEE80211_SUPPORT_MESH DEV_BPF \
57	${KERN_OPTS.${MACHINE}} ${KERN_OPTS_EXTRA}
58.if ${MK_BHYVE_SNAPSHOT} != "no"
59KERN_OPTS+= BHYVE_SNAPSHOT
60.endif
61.if ${MK_INET_SUPPORT} != "no"
62KERN_OPTS+= INET TCP_OFFLOAD
63.endif
64.if ${MK_INET6_SUPPORT} != "no"
65KERN_OPTS+= INET6
66.endif
67.if ${MK_IPSEC_SUPPORT} != "no"
68KERN_OPTS+= IPSEC_SUPPORT
69.endif
70.if ${MK_SCTP_SUPPORT} != "no"
71KERN_OPTS+= SCTP_SUPPORT
72.endif
73.elif !defined(KERN_OPTS)
74# Add all the options that are mentioned in any opt_*.h file when we
75# have a kernel build directory to pull them from.
76KERN_OPTS!=cat ${KERNBUILDDIR}/opt*.h | awk '{print $$2;}' | sort -u
77.export KERN_OPTS
78.endif
79
80.if !defined(NO_MODULES) && !defined(__MPATH) && !make(install) && \
81    (empty(.MAKEFLAGS:M-V) || defined(NO_SKIP_MPATH))
82__MPATH!=find ${SYSDIR:tA}/ -name \*_if.m
83.export __MPATH
84.endif
85