From owner-svn-src-head@FreeBSD.ORG Wed Feb 18 15:25:21 2015 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 27A8F484; Wed, 18 Feb 2015 15:25:21 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 122157D4; Wed, 18 Feb 2015 15:25:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t1IFPKtr030927; Wed, 18 Feb 2015 15:25:20 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t1IFPK2H030924; Wed, 18 Feb 2015 15:25:20 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201502181525.t1IFPK2H030924@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 18 Feb 2015 15:25:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r278958 - in head/sys: conf modules X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2015 15:25:21 -0000 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 +.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