xref: /freebsd/sys/conf/config.mk (revision 5f31d14a92353b6b0acf6960511b3acf3911d163)
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}
41.if ${MK_FDT} != "no"
42opt_platform.h:
43	@echo "#define FDT 1" > ${.TARGET}
44.endif
45opt_printf.h:
46	echo "#define PRINTF_BUFR_SIZE 128" > ${.TARGET}
47opt_scsi.h:
48	echo "#define SCSI_DELAY 15000" > ${.TARGET}
49.if ${MK_SCTP_SUPPORT} != "no"
50opt_sctp.h:
51	@echo "#define SCTP_SUPPORT 1" > ${.TARGET}
52.endif
53opt_wlan.h:
54	echo "#define IEEE80211_DEBUG 1" > ${.TARGET}
55	echo "#define IEEE80211_SUPPORT_MESH 1" >> ${.TARGET}
56KERN_OPTS.i386=NEW_PCIB DEV_PCI
57KERN_OPTS.amd64=NEW_PCIB DEV_PCI
58KERN_OPTS.powerpc=NEW_PCIB DEV_PCI
59KERN_OPTS=MROUTING IEEE80211_DEBUG \
60	IEEE80211_SUPPORT_MESH DEV_BPF \
61	${KERN_OPTS.${MACHINE}} ${KERN_OPTS_EXTRA}
62.if ${MK_BHYVE_SNAPSHOT} != "no"
63KERN_OPTS+= BHYVE_SNAPSHOT
64.endif
65.if ${MK_INET_SUPPORT} != "no"
66KERN_OPTS+= INET TCP_OFFLOAD
67.endif
68.if ${MK_INET6_SUPPORT} != "no"
69KERN_OPTS+= INET6
70.endif
71.if ${MK_IPSEC_SUPPORT} != "no"
72KERN_OPTS+= IPSEC_SUPPORT
73.endif
74.if ${MK_SCTP_SUPPORT} != "no"
75KERN_OPTS+= SCTP_SUPPORT
76.endif
77.elif !defined(KERN_OPTS)
78# Add all the options that are mentioned in any opt_*.h file when we
79# have a kernel build directory to pull them from.
80KERN_OPTS!=cat ${KERNBUILDDIR}/opt*.h | awk '{print $$2;}' | sort -u
81.export KERN_OPTS
82.endif
83
84.if !defined(NO_MODULES) && !defined(__MPATH) && !make(install) && \
85    (empty(.MAKEFLAGS:M-V) || defined(NO_SKIP_MPATH))
86__MPATH!=find ${SYSDIR:tA}/ -name \*_if.m
87.export __MPATH
88.endif
89