Commit Graph

47 Commits

Author SHA1 Message Date
hubertf 764307a5a1 Keeping my kernel config files under RCS control, I always wished to
have a way to embed the revision number into the kernel's "uname -v"
output. The patch below does this, by generating a new keyword "ident"
that can be followed by any string, e.g.

        ident   "NOON-$Revision$"

will lead to
                                           vvvvvvvvvvvvvvvvvvvvvv
        char version[] =     "NetBSD 1.4P (NOON-$Revision: 1.21 $) #37: Thu Jan
20 02:01:23 MET 2000\n    feyrer@noon:/usr/cvs.local/src-current/sys/arch/i386/c
ompile/NOON\n";

This will lead to a version of "MYMACHINE-$Revision$" instead of the
kernel config file name. If "ident" is not present, the current behaviour
of using the kernel config file's name as identifier is used.

Implement by writing the ident to a file ("ident") in the compile dir,
which newvers.sh will pick up for generating the ident.
2000-01-23 23:37:42 +00:00
ws b17a1042ba Allow mutual dependencies.
Output string-valued options reasonably to option files.
1999-09-22 14:23:03 +00:00
mrg ecdad0ec33 clean up a bit after jason :)
- fix emitrules() like emitfiles() to deal with the prefix (otherwise it
  would attempt to find the file in the normal base for the NORMAL_C rule).
- add emitincludes() which adds include directives for each prefix to the
  $INCLUDES variable in the makefile.
- add %INCLUDES to each Makefile.arch to deal with the above.

this makes "prefix" actually work in a usable manner, and now i can move
on to fixing compiler warnings (errors) in the ESP code. :)
1999-07-09 09:52:55 +00:00
thorpej 152af09e65 Add a mechanism to specify prefixes that are transparently prepended
to file specifications.  The prefixes are arranged in a stack, and
nest, so that file, object, and include specifications are normalized,
and all end up relative to the kernel compile directory.

For example, in the kernel config file:

# Pull in config fragments for kernel crypto
prefix ../crypto-us/sys 			# push it
cinclude "conf/files.crypto-us"			# include it if it's there
prefix						# pop it

and in files.crypto-us:

file netinet6/esp_core.c                ipsec & ipsec_esp
file netinet6/esp_output.c              ipsec & ipsec_esp
file netinet6/esp_input.c               ipsec & ipsec_esp

...generates the following in the kernel Makefile:

        $S/../crypto-us/sys/netinet6/esp_core.c \
        $S/../crypto-us/sys/netinet6/esp_output.c \
        $S/../crypto-us/sys/netinet6/esp_input.c \

By placing this all in the kernel config file, all the magic involved in
reaching into non-standard kernel source directories is placed into a file
that the user is expected to edit anyway, and reasonable examples (and
sane defaults, for typical source checkouts) can be provided.
1999-07-09 06:44:58 +00:00
thorpej 0ee6c639c7 Add a mechanism for files.* files to be included, in the kernel configuration
file, conditional on their existence.  For example:

[ in ../conf/GENERIC ]
cinclude "../crypto-intl/sys/conf/files.crypto-intl"

This required a change to the files.* grammar; pseudo-device in that
context has been changed to defpseudo, to avoid a conflicting rule
for pseudo-device in the kernel config files.

The same grammar change allows vendors to ship files.* files for
commercial drivers, rather than diffs to e.g. files.pci, i.e.:

include "arch/i386/pci/files.zap"
zap* at pci? device ? function ?

Where files.zap might contain:

device zap: ether, ifnet, arp, mii
attach zap at pci
object	arch/i386/pci/zap.o	zap
1999-07-07 00:02:09 +00:00
gwr 5a4e7b6de7 Make this build on Solaris (make -f Makefile.boot) 1999-04-02 06:36:30 +00:00
pk 74098ab84e Lennart Augustsson's multi-valued locator code. 1999-01-21 13:10:08 +00:00
jonathan eaa351c789 * Check that any declared option (def{opt,param,flag}, filesystem
is declared at most once.
* Do option dependency across all def{opt,param, flag}.
* Make the default value of otherwise-unspecified defopt's be 1,
  for consistency with non-defopt'ed options.
* Wrap an abstraction layer (macros) around tests for defopt, filesystem,
  defparam, etc. to catch outdated  defopt-vs-filesystem tests.
1998-06-30 03:30:56 +00:00
jonathan 0925cf4fda Stronger checking of options:
* machinery for nonfatal warnings.
* new backend config-file keywords:
     defparam -- like defopt, but each defparam option is required
		 to have a value when configured via "options".
     defflag -- like defopt, but defflag options may not have a value.
		 Also, on "option FOO",  a needs-count style flag
		 (NFOO, either 0 or 1)  is emitted to the .h file.

* Warn about old-style options that aren't defined via def{opt,param,flag}
  and which are  added to IDENT. (These behave subtly differently
  to defopt options when  no explicit value is given.)
1998-06-24 11:20:54 +00:00
scottr e6eb7d0530 Implement option dependencies as part of the defopt action. We currently
restrict depended-on (or "implied") options to those that have been
previously defopt'ed, which inherently eliminates any cycles in the option
graph.
1998-06-10 04:33:31 +00:00
thorpej d12d850cfe Add a "deffs" keyword, similar to "defopt", that defines file systems.
Only things defined with this keyword will be allowed on "file-system"
lines in the kernel config files.

By default, -D... directives for file systems are not generated, since
they are not needed for most file systems now that vfs_conf.c is gone.
However, some file systems must have dependencies generated on them
(e.g. NFS, UNION).  So, provide a way to specify an option file for
these file systems.
1998-02-19 00:27:00 +00:00
thorpej ea4d1b7ea1 Rather than using a separate "class" keyword, treat device classes like
special attributes.  From Chris Demetriou.
1998-02-16 22:05:35 +00:00
thorpej bc1733bc88 Add code to emit the cfdriver structures into ioconf.c. This requires
a change to the config grammar, to specify a device's class (i.e. DV_xxx)
like:

device	sd class disk: ...

Also emit an ioconf.h, which contains extern declarations of the
cfdriver structures.

While I'm here, add support for specifying multiple options per defopt
line, as well as specifying the file name in which the options will
appear.

defopt	foo bar baz

generates "opt_foo.h", "opt_bar.h", and "opt_baz.h"

defopt	opt_mumble.h foo bar baz

generates "opt_mumble.h" which contains all three options.

Also, clean up and fix some bugs in the code that generates header files.
1998-01-12 07:37:40 +00:00
lukem 73d91b2129 WARNSify, deprecate register, remove unused functions 1997-10-18 07:58:56 +00:00
mycroft 7d58ce9471 Add `object' and `library' keywords to pull in precompiled .o and .a files.
Syntax is like the `file' keyword; e.g.:
object	arch/i386/i386/mumble.o		[mumble] [needs-flag]
Largely from Michael Richardson in PR 3833, with some changes by me.
1997-10-10 10:27:53 +00:00
thorpej 267e8357fc Implement an unfortunate, and temporary, kludge to address the problem
reported in PR #3668 from maximum entropy <entropy@tanstaafl.bernstein.com>.

The problem: The unit number is not being conveyed to the configuration
crosscheck with root is a network interface; the device number is set
to NODEV, which sets up the (correct) defaults for swap/dump devices.
We can't change NODEV to a unit number, as the PR's patch suggests, as
this breaks the swap/dump defaults.  Rewriting that code is not really
justified, since it's soon to be obsoleted.

The kludge: add an "nv_ifunit" member to struct nvlist, which convey's
a network interface's unit number to the crosscheck routine.  It's not
pretty, but it's not terribly invasive, and can be garbage-collected
easily when the swap/dump goo is obsoleted.
1997-05-25 18:42:54 +00:00
jtk 0f6d8d88b8 Add hash table walking functions to emit manifest constants for locator
offsets within cf->cf_loc[].
Also include locator names as strings in ioconf.c.

Still to do: wire the locator names into the cfdata.
1997-03-14 00:14:09 +00:00
thorpej e14a0d029f Add support for generating "option headers". These allow options to
be included in object dependencies.  config(8) is told to generate
a header for a particular option with the new "defopt" keyword, used
in the files.* system description files.  Options that are placed in
header files are not given -D... cpp flags.

This approach allows options to be turned into headers incrementally,
rather than all at once, and allows for non-header options, as well.
1997-02-02 21:12:30 +00:00
thorpej 07c71aa7f7 Implement new grammar and semantics for specifying file systems
and the root device:

- New "file-system" keyword is used to configure file systems into
  the kernel.
- New way of specifying root device, which allows root file system
  type to always be specified.  Examples:

	config gennetbsd swap generic
	config sdnetbsd root on sd0a swap on sd0b
	config nfsnetbsd root on nfs

  are replaced by:

	config gennetbsd root on ? type ?
	config sdnetbsd root on sd0a type ffs swap on sd0b
	config nfsnetbsd root on ? type nfs
	config lenetbsd root on le0 type nfs

  Note that specific network interfaces may now be specified as
  the root device.
- swapgeneric.c is no longer used; generate a swap*.c file for each
  "config" line in the kernel configuration file.
1997-01-31 03:12:30 +00:00
gwr 1ed260c698 Move some externs to where they are needed. 1996-11-11 23:40:09 +00:00
gwr 26793c36d4 Minor changes to support building on other systems (i.e. SunOS). 1996-11-07 22:59:39 +00:00
mycroft 8441b8f88d Remove interrupt vector handling. This is done dynamically by all ports now. 1996-08-31 21:15:05 +00:00
mycroft ab6ebadde6 Add `source' and `build' directives, and corresponding options, per discussion
on tech-kern.  (See man page.)  Implementation by Greg Hudson.
Also, remove special case for i386 in vector handling, although this code isn't
actually used any more.
1996-08-31 20:58:16 +00:00
mycroft b9ae4a5e3f Remove `config-dependent' and `device-driver' flags. 1996-08-12 00:55:54 +00:00
cgd 3ac7667c57 add BSDI-style expression support to optional file specifiers. Code mostly
taken from the parts of BSDI's 'config' which are freely-distributable
(under the LBL/UC Regents license), and adjusted to fit into our version.
1996-03-17 13:18:15 +00:00
cgd 50b3b61ea3 simplify nvlist creation slightly; change newnv() to take another arg: next 1996-03-17 11:50:09 +00:00
cgd 9c4f9d2daa spaces vs. tabs, spaces/tabs at EOL bogons. 1996-03-17 06:29:19 +00:00
thorpej cb6211e540 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 02:08:22 +00:00
thorpej c5f7cf3a9e RCS id police. 1996-03-03 17:21:25 +00:00
cgd 064307e690 config.new has been moved here. names updated to match. 1995-04-28 06:54:58 +00:00
hpeyerl 9cbb13a30b Config support for ccd driver. (from 4.4Lite) 1994-06-24 14:22:08 +00:00
cgd f39163138d maxfdescs checks out 1994-05-21 08:32:32 +00:00
deraadt 4b24a3521e rainse() -> raisestr(), per <arnej@fm.unit.no> 1994-04-05 23:57:26 +00:00
mycroft 166515d156 Output only one table of ISA devices, add parent pointers, remove id_masunit,
and add a pointer to the interrupt mask for simplicity.
1994-03-12 03:26:52 +00:00
mycroft 26731dd3eb Support device drivers with multiple names, and do the right thing for fd and
wd.
1994-03-10 19:50:43 +00:00
cgd 91068203d6 changes for amiga 1994-02-01 02:07:11 +00:00
cgd 2dae0c7cb0 add support for "machinearch" internal variable. if "machinearch"
is different than the "machinename" internal variable, read
machinearch's files.${machinearch} and add it to the list of files
for the machine.  Also, regardless of whether or not they're different,
create a ${machinearch} sylink (or directory) pointing to the machinearch
include files (or containing them).
1994-01-08 10:33:43 +00:00
cgd 59ebb74a4b did *you* know that PMAX's weren't PC532's? 1993-10-15 23:26:39 +00:00
deraadt 9ae8a636f9 Add MACHINE_PMAX support from rick & ralph. 1993-10-14 01:22:27 +00:00
phil 4c44872dde Adding changes for the pc532 machine. The NO_SYMLINK is for compilation
under Minix on the pc532, which has no symlinks.
1993-09-15 21:15:19 +00:00
mycroft e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
mycroft b0c70a21fe Hmmm. I suppose loadaddress really should be an int... 1993-07-18 10:33:46 +00:00
mycroft 97159f53d2 Allow specifying the load address in the config file. Again, defaults to
KERNBASE.

To use this, on the `config' line you specify, `at address'.  For example:

config          netbsd  at 0xfe100000 root on sd0 swap on sd0 and sd1
1993-07-18 10:07:36 +00:00
cgd 0b8e25b695 add "needs-count" specifier, which means "make a .h file if you otherwise
wouldn't".  this is overridden by (and is a subset of "device-driver".
if you have a "standard" file, you can also do: "standard foo needs-count"
to get a foo.h file.  (for the hp300 stuff)
1993-05-29 18:50:37 +00:00
glass fea6b7920f Welcome to the new order. config(8)'s code for reading files, files.i386,
and files.kernel has now been completely replaced.
features supported: not nearly as broken as the stuff before
		    expression support for dependencies
		    support for 'requires'
		    no longer generates lots of stupid unnecessary .h files
		    broke lots of broken stuff, and forced fixing it.
(docs to arrive later)
		    added '-k' option for continue even after error
		    documented '-g'
1993-04-10 12:11:55 +00:00
cgd 83bb0a658b now can config `maxfdescs number', similar to `maxusers' to set
the max. number of fd's a user is limited to.
1993-04-04 04:33:03 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00