From nobody@FreeBSD.org  Thu Jan 13 22:46:05 2005
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id E944F16A4CE
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 Jan 2005 22:46:05 +0000 (GMT)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D168543D2F
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 Jan 2005 22:46:05 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id j0DMk5Bq079936
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 Jan 2005 22:46:05 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id j0DMk533079935;
	Thu, 13 Jan 2005 22:46:05 GMT
	(envelope-from nobody)
Message-Id: <200501132246.j0DMk533079935@www.freebsd.org>
Date: Thu, 13 Jan 2005 22:46:05 GMT
From: David Yeske <dyeske@yahoo.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: WITHOUT_MODULES option for sys/modules/Makefile
X-Send-Pr-Version: www-2.3

>Number:         76225
>Category:       kern
>Synopsis:       [modules] [patch] WITHOUT_MODULES option for sys/modules/Makefile
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 13 22:50:25 GMT 2005
>Closed-Date:    Wed Dec 14 05:12:13 GMT 2005
>Last-Modified:  Wed Dec 14 05:12:13 GMT 2005
>Originator:     David Yeske
>Release:        HEAD
>Organization:
>Environment:
FreeBSD laptop 6.0-CURRENT FreeBSD 6.0-CURRENT #13: Thu Jan 13 10:46:40 EST 2005     root@laptop:/usr/obj/usr/src/sys/LAPTOP  i386

>Description:
      WITHOUT_MODULES is a list that can be set in /etc/make.conf or per build so that the directorys in that list will be removed from the list of directorys to build.  This vastly speeds up kernel compile time by allowing the user to specify to not build certain modules.  It is also useful to cherry pick a certain module and not build it similar to the NO_PF and NO_IPFILTER options.  The NO_PF and NO_IPFILTER options could in theory be removed and set via WITHOUT_MODULES= pf ipfilter
>How-To-Repeat:
      
>Fix:
http://futurebsd.sourceforge.net/freebsd/src/patch-sys_modules_Makefile
>Release-Note:
>Audit-Trail:

From: Ceri Davies <ceri@submonkey.net>
To: David Yeske <dyeske@yahoo.com>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: kern/76225: WITHOUT_MODULES option for sys/modules/Makefile
Date: Thu, 13 Jan 2005 22:57:47 +0000

 On Thu, Jan 13, 2005 at 10:46:05PM +0000, David Yeske wrote:
 
 >       WITHOUT_MODULES is a list that can be set in /etc/make.conf or
 > per build so that the directorys in that list will be removed from the
 > list of directorys to build.  This vastly speeds up kernel compile time
 > by allowing the user to specify to not build certain modules.  It is
 > also useful to cherry pick a certain module and not build it similar to
 > the NO_PF and NO_IPFILTER options.  The NO_PF and NO_IPFILTER options
 > could in theory be removed and set via WITHOUT_MODULES= pf ipfilter
 
 NO_PF and NO_IPFILTER are not quite the same, as they also prevent the
 userland components (pfctl, ipf, etc.) from being built.
 
 Ceri

From: David Yeske <dyeske@yahoo.com>
To: Ceri Davies <ceri@submonkey.net>
Cc: freebsd-gnats-submit@FreeBSD.org, wes@freebsd.org
Subject: Re: kern/76225: WITHOUT_MODULES option for sys/modules/Makefile
Date: Thu, 13 Jan 2005 15:10:28 -0800 (PST)

 Would this be any cleaner or dirtier?
 
 .if !defined(NO_PF) || defined(ALL_MODULES)
 WITHOUT_MODULES+= pf
 .endif
 
 How about a global flag for src and src/sys?  For example
 WITHOUT_FOO= acpi boot cvs cxx bluetooth, etc...
 
 to replace this
 
 #NO_ACPI=       true    # do not build acpiconf(8) and related programs
 #NO_BOOT=       true    # do not build boot blocks and loader
 #NO_CVS=        true    # do not build CVS
 #NO_CXX=        true    # do not build C++ and friends
 #NO_BLUETOOTH=  true    # do not build Bluetooth related stuff
 #NO_DYNAMICROOT=true    # do not link /bin and /sbin dynamically
 #NO_FORTRAN=    true    # do not build g77 and related libraries
 #NO_GDB=        true    # do not build GDB
 #NO_I4B=        true    # do not build isdn4bsd package
 #NO_IPFILTER=   true    # do not build IP Filter package
 #NO_PF=         true    # do not build PF firewall package
 #NO_AUTHPF=     true    # do not build and install authpf (setuid/gid)
 #NO_KERBEROS=   true    # do not build and install Kerberos 5 (KTH Heimdal)
 #NO_LPR=        true    # do not build lpr and related programs
 #NO_MAILWRAPPER=true    # do not build the mailwrapper(8) MTA selector
 #NO_MODULES=    true    # do not build modules with the kernel
 #NO_NIS=        true    # do not build NIS support and related programs
 #NO_OBJC=       true    # do not build Objective C support
 #NO_OPENSSH=    true    # do not build OpenSSH
 #NO_OPENSSL=    true    # do not build OpenSSL (implies NO_KERBEROS/NO_OPENSSH)
 #NO_SENDMAIL=   true    # do not build sendmail and related programs
 #NO_SHAREDOCS=  true    # do not build the 4.4BSD legacy docs
 #NO_TCSH=       true    # do not build and install /bin/csh (which is tcsh)
 #NO_TOOLCHAIN=  true    # do not build programs for program development
 #NO_USB=        true    # do not build usbd(8) and related programs
 #NO_VINUM=      true    # do not build Vinum utilities
 #NOATM=         true    # do not build ATM related programs and libraries
 #NOCRYPT=       true    # do not build any crypto code
 #NOGAMES=       true    # do not build games (games/ subdir)
 #NOINET6=       true    # do not build IPv6 related programs and libraries
 #NOINFO=        true    # do not make or install info files
 #NOLIBC_R=      true    # do not build libc_r (re-entrant version of libc)
 #NOLIBPTHREAD=  true    # do not build libpthread (M:N threading library)
 #NOLIBTHR=      true    # do not build libthr (1:1 threading library)
 #NOMAN=         true    # do not build manual pages
 #NOPROFILE=     true    # Avoid compiling profiled libraries
 #NOSHARE=       true    # do not go into the share subdir
 
 --- Ceri Davies <ceri@submonkey.net> wrote:
 
 > On Thu, Jan 13, 2005 at 10:46:05PM +0000, David Yeske wrote:
 > 
 > >       WITHOUT_MODULES is a list that can be set in /etc/make.conf or
 > > per build so that the directorys in that list will be removed from the
 > > list of directorys to build.  This vastly speeds up kernel compile time
 > > by allowing the user to specify to not build certain modules.  It is
 > > also useful to cherry pick a certain module and not build it similar to
 > > the NO_PF and NO_IPFILTER options.  The NO_PF and NO_IPFILTER options
 > > could in theory be removed and set via WITHOUT_MODULES= pf ipfilter
 > 
 > NO_PF and NO_IPFILTER are not quite the same, as they also prevent the
 > userland components (pfctl, ipf, etc.) from being built.
 > 
 > Ceri
 > 
 
 
 
 		
 __________________________________ 
 Do you Yahoo!? 
 Yahoo! Mail - 250MB free storage. Do more. Manage less. 
 http://info.mail.yahoo.com/mail_250

From: Edwin Groothuis <edwin@mavetju.org>
To: David Yeske <dyeske@yahoo.com>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: kern/76225: WITHOUT_MODULES option for sys/modules/Makefile
Date: Fri, 14 Jan 2005 18:29:44 +1100

 On Thu, Jan 13, 2005 at 10:46:05PM +0000, David Yeske wrote:
 >       WITHOUT_MODULES is a list that can be set in /etc/make.conf
 > or per build so that the directorys in that list will be removed
 > from the list of directorys to build.  This vastly speeds up kernel
 > compile time by allowing the user to specify to not build certain
 > modules.  It is also useful to cherry pick a certain module and not
 > build it similar to the NO_PF and NO_IPFILTER options.  The NO_PF
 > and NO_IPFILTER options could in theory be removed and set via
 > WITHOUT_MODULES= pf ipfilter
 
 If you add this to the Makefile in every subdirectory (this is for
 netgraph, for each directory please replace the string netgraph
 with the name of the current directory):
 
  .if ${MACHINE_ARCH} == "i386"
  # Things that don't compile on alpha or are aout specific:
  SUBDIR+= bluetooth
  .endif
  
 +CURDIR:=${.CURDIR:C/^.*\/modules\///}
 +.for d in ${SUBDIR}
 +.if ${WITHOUT_MODULES:Mnetgraph/${d}}!=""
 +SUBDIR:= ${SUBDIR:N${d}}
 +.endif
 +.endfor
  
  .include <bsd.subdir.mk>
 
 you can do:
 
 WITHOUT_MODULES= netgraph/one2many syscons/fire
 
 and then the modules netgraph/one2man and syscons/fire are ignored,
 while the rest is happily made.
 
 Edwin
 
 -- 
 Edwin Groothuis      |            Personal website: http://www.mavetju.org
 edwin@mavetju.org    |          Weblog: http://weblog.barnet.com.au/edwin/

From: Edwin Groothuis <edwin@mavetju.org>
To: FreeBSD Gnats Submit <freebsd-gnats-submit@freebsd.org>
Cc:  
Subject: Re: kern/76225: WITHOUT_MODULES option for sys/modules/Makefile
Date: Fri, 14 Jan 2005 18:38:01 +1100

 On Fri, Jan 14, 2005 at 07:30:27AM +0000, Edwin Groothuis wrote:
 >  If you add this to the Makefile in every subdirectory (this is for
 >  netgraph, for each directory please replace the string netgraph
 >  with the name of the current directory):
 
 This is for the framework makefile, not for a module makefile:
 
 That means, these directories:
 	aac, aic7xxx, bios, bktr, digi, drm, firewire, geon, hfa,
 	i2c, netgraph, sound, splash, syscons, sysvipc
 
 -- 
 Edwin Groothuis      |            Personal website: http://www.mavetju.org
 edwin@mavetju.org    |          Weblog: http://weblog.barnet.com.au/edwin/
State-Changed-From-To: open->closed 
State-Changed-By: wes 
State-Changed-When: Wed Dec 14 05:08:34 UTC 2005 
State-Changed-Why:  
Fixed ages ago, in src/sys/modules/Makefile Revision 1.414, Thu Jan 
20 05:43:24 2005 UTC; MFC'd to RELENG_5 in Revision 1.393.2.9, Tue 
Mar 1 04:49:36 2005 UTC.  Thanks for reminding me to close the PR, 
Spike. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=76225 
>Unformatted:
