Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Feb 2015 15:25:20 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r278958 - in head/sys: conf modules
Message-ID:  <201502181525.t1IFPK2H030924@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Wed Feb 18 15:25:19 2015
New Revision: 278958
URL: https://svnweb.freebsd.org/changeset/base/278958

Log:
  Populate new KERN_OPTS from all the opt_*.h files in
  KERNBUILDDIR. Come up with some sensible defaults (though listing them
  in kmod.mk may be unwise -- we have no easy way to know what are the
  best sensible defaults for everything so we just catch the big stuff).
  Append SRCS.${opt} for each option in KERN_OPTS to SRCS to allow easy
  conditional compilation. Append any notion of KERN_OPTS_EXTRA to the
  list of kernel opts.
  
  Differential Revision:    https://reviews.freebsd.org/D1530

Added:
  head/sys/conf/config.mk   (contents, props changed)
Modified:
  head/sys/conf/kmod.mk
  head/sys/modules/Makefile

Added: head/sys/conf/config.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/conf/config.mk	Wed Feb 18 15:25:19 2015	(r278958)
@@ -0,0 +1,54 @@
+# $FreeBSD$
+#
+# Common code to marry kernel config(8) goo and module building goo.
+#
+
+# Generate options files that otherwise would be built
+# in substantially similar ways through the tree. Move
+# the code here when they all produce identical results
+# (or should)
+.if !defined(KERNBUILDDIR)
+opt_bpf.h:
+	echo "#define DEV_BPF 1" > ${.TARGET}
+.if ${MK_INET_SUPPORT} != "no"
+opt_inet.h:
+	@echo "#define INET 1" > ${.TARGET}
+	@echo "#define TCP_OFFLOAD 1" >> ${.TARGET}
+.endif
+.if ${MK_INET6_SUPPORT} != "no"
+opt_inet6.h:
+	@echo "#define INET6 1" > ${.TARGET}
+.endif
+.if ${MK_EISA} != "no"
+opt_eisa.h:
+	@echo "#define DEV_EISA 1" > ${.TARGET}
+.endif
+opt_mrouting.h:
+	echo "#define MROUTING 1" > ${.TARGET}
+opt_natm.h:
+	echo "#define NATM 1" > ${.TARGET}
+opt_scsi.h:
+	echo "#define SCSI_DELAY 15000" > ${.TARGET}
+opt_wlan.h:
+	echo "#define IEEE80211_DEBUG 1" > ${.TARGET}
+	echo "#define IEEE80211_AMPDU_AGE 1" >> ${.TARGET}
+	echo "#define IEEE80211_SUPPORT_MESH 1" >> ${.TARGET}
+KERN_OPTS.i386=NEW_PCIB DEV_PCI
+KERN_OPTS.pc98=NEW_PCIB DEV_PCI
+KERN_OPTS.amd64=NEW_PCIB DEV_PCI
+KERN_OPTS.powerpc=NEW_PCIB DEV_PCI
+KERN_OPTS=MROUTING NATM IEEE80211_DEBUG \
+	IEEE80211_AMPDU_AGE IEEE80211_SUPPORT_MESH DEV_BPF \
+	${KERN_OPTS.${MACHINE}} ${KERN_OPTS_EXTRA}
+.if ${MK_INET_SUPPORT} != "no"
+KERN_OPTS+= INET TCP_OFFLOAD
+.endif
+.if ${MK_INET6_SUPPORT} != "no"
+KERN_OPTS+= INET6
+.endif
+.if ${MK_EISA} != "no"
+KERN_OPTS+= DEV_EISA
+.endif
+.else
+KERN_OPTS!=cat ${KERNBUILDDIR}/opt*.h | awk '{print $$2;}' | sort -u
+.endif

Modified: head/sys/conf/kmod.mk
==============================================================================
--- head/sys/conf/kmod.mk	Wed Feb 18 14:33:33 2015	(r278957)
+++ head/sys/conf/kmod.mk	Wed Feb 18 15:25:19 2015	(r278958)
@@ -70,6 +70,7 @@ OBJCOPY?=	objcopy
 # do this after bsd.own.mk.
 .include "kern.opts.mk"
 .include <bsd.compiler.mk>
+.include "config.mk"
 
 .SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S
 
@@ -163,6 +164,11 @@ OBJS+=	${_firmw:C/\:.*$/.fwo/}
 .endfor
 .endif
 
+# Conditionally include SRCS based on kernel config options.
+.for _o in ${KERN_OPTS}
+SRCS+=${SRCS.${_o}}
+.endfor
+
 OBJS+=	${SRCS:N*.h:R:S/$/.o/g}
 
 .if !defined(PROG)
@@ -316,34 +322,6 @@ unload:
 	${KMODUNLOAD} -v ${PROG}
 .endif
 
-# Generate options files that otherwise would be built
-# in substantially similar ways through the tree. Move
-# the code here when they all produce identical results
-# (or should)
-.if !defined(KERNBUILDDIR)
-opt_bpf.h:
-	echo "#define DEV_BPF 1" > ${.TARGET}
-.if ${MK_INET_SUPPORT} != "no"
-opt_inet.h:
-	@echo "#define INET 1" > ${.TARGET}
-	@echo "#define TCP_OFFLOAD 1" >> ${.TARGET}
-.endif
-.if ${MK_INET6_SUPPORT} != "no"
-opt_inet6.h:
-	@echo "#define INET6 1" > ${.TARGET}
-.endif
-opt_mrouting.h:
-	echo "#define MROUTING 1" > ${.TARGET}
-opt_natm.h:
-	echo "#define NATM 1" > ${.TARGET}
-opt_scsi.h:
-	echo "#define SCSI_DELAY 15000" > ${.TARGET}
-opt_wlan.h:
-	echo "#define IEEE80211_DEBUG 1" > ${.TARGET}
-	echo "#define IEEE80211_AMPDU_AGE 1" >> ${.TARGET}
-	echo "#define IEEE80211_SUPPORT_MESH 1" >> ${.TARGET}
-.endif
-
 .if defined(KERNBUILDDIR)
 .PATH: ${KERNBUILDDIR}
 CFLAGS+=	-I${KERNBUILDDIR}

Modified: head/sys/modules/Makefile
==============================================================================
--- head/sys/modules/Makefile	Wed Feb 18 14:33:33 2015	(r278957)
+++ head/sys/modules/Makefile	Wed Feb 18 15:25:19 2015	(r278958)
@@ -751,4 +751,8 @@ afterinstall:
 	fi
 .endif
 
+.include "${SYSDIR}/conf/config.mk"
+
+SUBDIR:= ${SUBDIR:u:O}
+
 .include <bsd.subdir.mk>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201502181525.t1IFPK2H030924>