Commit Graph

59 Commits

Author SHA1 Message Date
agc 326b2259b7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22366, verified by myself.
2003-08-07 11:25:11 +00:00
itojun e8f0e61fd7 use bounded string op 2003-07-13 12:29:20 +00:00
atatat 399c5e40ce Define KERNEL_BUILD at the top of the emitted kernel Makefile. This
means that the appropriate combination of checking for KERNEL_BUILD,
RELEASEDIR, DESTDIR, and/or BSD_PKG_MK, can allow the setting of COPTS
or CFLAGS (or anything else) depending on the specific task at hand.
Personally, I think that per-kernel install rules are the best part.
2002-11-19 04:24:16 +00:00
thorpej aceaa7e184 When emitting -I directives for prefix'd paths, use EXTRA_INCLUDES
rathern than INCLUDES, so that it works with sys/conf/Makefile.kern.inc.
2002-11-17 22:10:05 +00:00
lukem 90028da4e1 Functionality improvements:
- Add `no' keyword, which can be used in the following ways:
	no file-system SOMEFS
	no makeoptions FOO
	no options OPT1[,OPT2[,...]]
	no pseudo-device somepseudo
  This turns off a previous file-system/makeoptions/options/pseudo-device
  entry for the same item.
  Grammar support for 'no device DEV at ATTACH' added, but not
  implemented yet.

Code changes:
- Convert many simple lists to TAILQs
- Convert prefix to SLIST
- Remove argument names from prototypes.
- Don't bother with custom alloc code for hashtables; just use emalloc()
  like everything else.
- Implement ht_remove(), to remove an entry from a hash table.
  Add removed entries to a freelist for later reuse.
- Don't selectbase() devices and pseudo-devices at definition time; instead
  do it at one pass after the config file has been parsed in fixdevis().
- Rename nvhead to nvfreelist; a more apt name...
- Minor code cleanups.
2002-06-05 10:56:17 +00:00
atatat 714a76fd97 Avoid needlessly recreating the Makefile, ioconf.c, or any of the
swap*.c files if they haven't changed from the last time config was
run, so that less stuff will need to be rebuilt (ie, assym.h, upon
which many other things depend) each time config is rerun.
2002-02-12 23:20:11 +00:00
tv a328e34106 Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)
2002-01-29 10:20:28 +00:00
atatat 6dce2e2bec Make the kernel depend on `vers.o' instead of `newvers'. This
eliminates the need to unconditionally rebuild vers.o and subsequently
to relink the kernel every time you type make, even if you just
finished one.
2001-12-09 16:04:03 +00:00
atatat 73aae2a161 Stuff the target names (the kernel names) into a make variable so that
ports that build "alternate" versions of the same target can clean up
properly.
2001-12-04 17:53:40 +00:00
atatat 3b7ac0bb5f Stuff the "swapxxx.o" object name into a make variable that can be
used in build rules.
2001-11-27 14:04:05 +00:00
thorpej b2cb6c26ef Don't set TARGET_MACHINE, set MACHINE, instead. MACHINE is consistent
with what other Makefiles use, and as a result, make cross-compiling
kernels a little easier.
2001-10-23 18:56:42 +00:00
bjh21 a9e45dc961 Put both .S and .s files in SFILES. Fixes bin/12051. Patch from Richard
Earnshaw via Chris Gilbert.

The right solution here is to have every port use .S, but that might take a
while...
2001-01-31 00:15:40 +00:00
matt a2877b394c Don't emit MACHINE/MACHINE_ARCH. Instead emit a TARGET_MACHINE=machine
instead.
2000-12-03 07:06:15 +00:00
matt 5cde4cf735 If a port-specific Makefile.<port> doesn't exist, try a arch-specific
Makefile.<arch>.
Emit MACHINE=<port> and MACHINE_ARCH=<arch> to the emitted Makefile.
2000-12-02 23:01:54 +00:00
cgd 463d864ef0 nuke __P, and convert all functions to use ANSI-style declarations.
Also, do a few trivial KNF cleanups (e.g. newline at start of fn if no
locals).  Verified to have no effect via diff on new and old compiled
binaries.
2000-10-02 19:48:34 +00:00
enami 1b1b19c5c5 Emit `.MAIN: all' to force the target `all' as default target. 2000-02-01 05:13:17 +00:00
thorpej aa1aaac03e Allow abolute pathnames as prefixes. 2000-01-20 00:08:08 +00:00
thorpej 64f20db21b Make the outputted INCLUDES directives a bit more cosmetically appealing. 1999-07-09 18:45:31 +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
mycroft 01e0430cea Allow absolute path names for `object' files. 1999-05-23 19:30:30 +00:00
mycroft afd308129a Output a dependency on `newvers' for *every* kernel. It only gets run at most
once per make(1) invocation anyway, and not doing this screwed up parallel
makes.
1999-03-30 12:36:50 +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
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 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
ghudson e312e1563e Don't canonicalize relative paths to the source tree any more; libkern
and libcompat can handle them as long as they begin with '.'.  If a
relative path doesn't begin with '.', add a "./" before it.
1996-09-23 05:04:23 +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 9c4f9d2daa spaces vs. tabs, spaces/tabs at EOL bogons. 1996-03-17 06:29:19 +00:00
thorpej c5f7cf3a9e RCS id police. 1996-03-03 17:21:25 +00:00
cgd 7d351bb3f4 fix thinkos in emitobjs() and emitfiles() that would cause empty files
lists to not have a newline properly emitted.  (It was emitting a
newline only if the line position was != 7.  However, the only time the
line position was 7 was right after the initial variable assignment
string (e.g. "OBJS=\t") was printed.)
1996-02-23 00:39:42 +00:00
cgd 064307e690 config.new has been moved here. names updated to match. 1995-04-28 06:54:58 +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 0d7f067f06 Fix `all:' line. 1994-03-10 22:09:51 +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
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
brezak 0c27d6751c Only output load address is using 'at'. 1993-09-13 15:27:38 +00:00
brezak e443c955ff Need to define load address in PARAM. 1993-08-28 00:03:51 +00:00
mycroft 0534b030d1 Don't include PROFILING type files in OBJS and SRCS, and don't partially output
dependencies for them.
1993-08-03 00:02:01 +00:00
mycroft e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
brezak 19049fea1a Add option dependency generation. 1993-07-23 03:01:47 +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 f0e2d2191c changes from mw to support nfs swap/root specification 1993-07-07 10:47:00 +00:00