Commit Graph

395 Commits

Author SHA1 Message Date
uebayasi bc2bf167eb Now Makefile.kern.inc handles swap<kernel>.c compiling/linking nicely,
config(1) can become less hackish.
2015-09-04 05:13:32 +00:00
uebayasi dc9cfb5d59 Share more code by making *.o handling less special. 2015-09-04 01:24:01 +00:00
uebayasi bc619545b7 Add generated *.c files (devsw.c and ioconf.c) to ${CFILES} by config(1)
internally.  ${MI_CFILES} in Makefile.kern.inc is no longer needed.
2015-09-03 14:23:52 +00:00
uebayasi b5b4952dae After thought, revert "Generate *.c files under conf/". Generate *.c files
under top build directory.  *.c files are never placed just under $S/.  Keep
this exclusiveness.
2015-09-03 13:53:36 +00:00
uebayasi 9d10d0209d Pretty-print `Makefile' output. 2015-09-03 13:32:07 +00:00
uebayasi eaa72931c4 Move `all' target definition to Makefile.kern.inc. 2015-09-03 09:28:00 +00:00
uebayasi d891b756ba Define kernel dependency in Makefile.kern.inc. 2015-09-03 06:09:46 +00:00
uebayasi dfa246e2cf Fix build. 2015-09-03 06:08:38 +00:00
mrg aa0a9ba7c2 remove these items:
o Disallow unknown options.
 o Kill makeoptions.

because they're overly strict and i use these both regularly
to do stuff that isn't in the base src, and i'm quite sure
i am not the only one.
2015-09-03 05:45:16 +00:00
uebayasi 77d324a2b9 In `-S' mode, create symlinks from outside of $S to build directory, for
files that are placed outside of $S, so that `Makefile.kern.inc' can see all
files under either $S or build directory.
2015-09-03 02:45:24 +00:00
uebayasi a453d60989 Fix build. 2015-09-02 16:29:44 +00:00
uebayasi 7a8426662a Define ${OBJS} in `Makefile.kern.inc'. Relative paths are not truncated
(a/b/c/x.c -> x.c) in `-S' mode.  Don't provide some explicit rules for `-S'
mode for safety.
2015-09-02 14:17:03 +00:00
uebayasi 558aab1be0 Output relative path for ${CFILES} and ${SFILES} in generated `Makefile'.
`Makefile.kern.inc' knows how to deal with $S prefix, so don't bother it in
config(1).
2015-09-02 13:42:14 +00:00
uebayasi 7db0c115b3 Simplify generated `Makefile' by calculating ${OBJS} from merging ${CFILES},
${SFILES}, and ${OFILES} except swap<kernel>.o excluded.
2015-09-02 13:06:06 +00:00
uebayasi dccd2cf552 In `-S' mode, generate *.c files under conf/ subdirectory. Register generated
.c files to the `files' list internally.
2015-09-02 05:09:25 +00:00
uebayasi e53d4b70ba Fix build. 2015-09-01 20:18:41 +00:00
uebayasi b06817457f Experimental ``suffix rules + subdirectories'' build support (-S). 2015-09-01 16:01:23 +00:00
uebayasi 64903d9c8f Prepare to build subdirectories. Not enabled yet. 2015-09-01 14:32:20 +00:00
uebayasi 57eaa88e97 Bump version for "buildprefix". 2015-09-01 13:45:52 +00:00
uebayasi 2cb009cdd9 Introduce a new syntax, "buildprefix", to specify prefix of files under kernel
build subdirectory.  This is not used now that everything is built at the
top of kernel build directory.  It will become mandatory for source/object
files put out of kernel source tree to specify corresponding build subdirectory.
Only ``no dots''  relative path is accepted as "buildprefix".
2015-09-01 13:42:48 +00:00
uebayasi 974426dd69 Keep track of directory of files internally. 2015-09-01 12:46:20 +00:00
uebayasi 3f0546850b Clean up struct files. 2015-09-01 12:32:26 +00:00
uebayasi 3374c75eeb Use per-suffix lists where appropriate. 2015-09-01 12:10:56 +00:00
uebayasi f5d74fcda3 Abstract struct filetype is no longer needed. 2015-09-01 11:35:46 +00:00
uebayasi 0b130540fb Merge struct objects into struct files. Keep per-suffix file lists. 2015-09-01 11:22:59 +00:00
uebayasi a0ed6f857a Start merging struct files and struct objects. 2015-09-01 10:37:48 +00:00
pgoyette 06cd199b91 Allow redefinition of options (with only a warning message). Removal
of non-included options was already only a warning.

This also affects redefinition and removal of file-system and makeoption
entries.

Reviewed and OKd by uebayasi@
2015-09-01 01:50:14 +00:00
uebayasi 5f38d8b6fe Properly handle absolute prefix. 2015-09-01 01:17:56 +00:00
uebayasi 4c482b808f Refactor emit file functions. No functional changes. 2015-09-01 00:38:30 +00:00
pgoyette b899b8fdca Need to read closer - there was another occurrence of the same tyepo 2015-08-31 12:00:12 +00:00
pgoyette 2ff0a553cb Tyepo 2015-08-31 11:52:37 +00:00
uebayasi b877b4042a Restore the old behavior of "maxusers" to allow the value to be overriden.
Problem reported by John D. Baker.
2015-08-31 02:58:25 +00:00
uebayasi cf356c3efd Revert "Accept only relative paths ...". This will be redone in much better,
stricter way.
2015-08-30 21:58:19 +00:00
wiz 7cb8e9f6ca Fix a macro usage. Add more markup. 2015-08-30 06:57:51 +00:00
uebayasi 623bd6b2aa Define compile rules in sys/conf/Makefile.kern.inc except those overriden by
"file ... compile-with ...".  As rules are still explicit, be careful to not
override by checking .if !target(xxx.o).
2015-08-30 05:12:00 +00:00
uebayasi 0fac7c8310 Define `makeoptions' values as parameters with "makeoptions_" prefix too.
C sources are encouraged to include relevant opt_*.h files rather than relying
on -DXXX passed via makefiles.
2015-08-30 01:33:20 +00:00
uebayasi 8c9276859d No need to define swap<kernel>.o build rule. 2015-08-29 17:42:05 +00:00
uebayasi b6c3503b87 Define ``normal'' .c/.S rules as .for loops. Still explicit and ugly, but
these will be eventually replaced with suffix rules.  Tested x68k where .c/.S
rules are overriden with "compile-with".
2015-08-29 17:35:23 +00:00
uebayasi 75298111a7 Convert MAXUSERS, take 2.
Define MAXUSERS in opt_param.h and include it from sys/param.h, for more
accurate dependency.  Don't define -DMAXUSERS and add it to ${CPPFLAGS}.
config(5)'s "maxusers" syntax doesn't change.

(The version just before revert was OK, but I had something bad in my obj
dirs.)
2015-08-29 14:07:45 +00:00
uebayasi 95712061f0 Revert MAXUSERS. CVS is hard. 2015-08-29 13:34:21 +00:00
uebayasi 9d7c5e580c Revert MAXUSERS changes. Need fresh air. 2015-08-29 07:33:18 +00:00
uebayasi 8b68b0de02 Fix previous. 2015-08-29 07:24:49 +00:00
uebayasi 4401376950 Define MAXUXERS in opt_param.h. Bump config(1) version. 2015-08-29 07:08:38 +00:00
uebayasi ca847f032e Revert "Retire optional `rule' argument of `file' command". It is still used
in m68k ports.
2015-08-29 02:54:07 +00:00
uebayasi b5595827d0 Simplify. 2015-08-28 09:16:29 +00:00
uebayasi 54e231918a Retire optional `rule' argument of `file' command.
This has existed since Rev. 1.1 of Torek's config(8) [1], but probably has
never been used by anyone.

(I can not imagine how a `file' like look like if `rule' is specified.)

[1] http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.sbin/config.new/Attic/files.c?rev=1.1
2015-08-28 09:04:02 +00:00
uebayasi 36644ae2ff Error out if a given path is absolute. 2015-08-28 08:56:39 +00:00
uebayasi 47065f5afc Accept only relative paths (from $S) for `file' and `object'. Simplify code.
config(1) does not need to be super-smart about path handling, because it is
usually used with make(1), that is much smarter.

Pre-compiled object files, specified using `object', are regarded as read-only
input, thus they should be put under $S (or $S/..), as part of a source tree.
2015-08-28 08:31:28 +00:00
uebayasi 50408f97eb Global paths looked up at output stage (mk*()) are relative to `srcdir'.
Ignore "prefix" by not calling sourcepath().
2015-08-28 03:55:15 +00:00
uebayasi 0b9ddf3cc0 Paths given to "file" and "object" are relative from "prefix" if defined. 2015-08-28 02:59:09 +00:00
uebayasi a72d45f1a5 + suffix rules 2015-08-28 01:01:57 +00:00
uebayasi 5e9af25b8a + copy symtab 2015-08-27 10:22:12 +00:00
uebayasi 1e1f20e153 One more about linker script, another about genassym. 2015-08-26 06:38:57 +00:00
uebayasi 14880f9a49 I don't like -Ttext . 2015-08-25 13:13:54 +00:00
uebayasi 39d2263741 + kill makeoptions 2015-08-25 09:01:28 +00:00
uebayasi 7722a65218 TODOs about kernel options. 2015-08-23 01:30:21 +00:00
uebayasi 9c743328e7 Linker script TODO items. 2015-08-22 14:47:05 +00:00
christos 92a97b467e move driver attach declarations to ioconf.h 2015-08-20 09:44:24 +00:00
pgoyette b0e637a9da Insert comment regarding PR/48571 so it doesn't get lost.
config(1) ioconf is insufficient for pseudo-devices

config_{init,fini}_component
2015-08-19 03:39:45 +00:00
uebayasi 3dbb19470d + pseudo(dev) attach 2015-08-19 03:23:34 +00:00
shm 13fc423c66 Add missed munmap(2) in extract_config 2015-08-08 15:52:41 +00:00
dholland 7fee31e593 Document previously secret -d debug option. Bump date. 2015-07-16 08:42:53 +00:00
christos b921b70209 remove stray newlines from errors/warnings 2015-06-16 21:12:19 +00:00
uebayasi c59f84ea6d Typo in previous. 2015-04-10 03:51:44 +00:00
uebayasi e29416eeae More about attribute -> bus, and child configuration. 2015-04-10 03:30:09 +00:00
christos 93da4522d3 appease gcc-4.5.4 2015-01-22 20:01:22 +00:00
uebayasi d8aa702d35 Revert debug code. Simplify. 2014-12-15 15:49:25 +00:00
uebayasi fc1f7728b8 config(1): Fix build of old trees (bin/49389) (take 2)
Look into sys/conf/Makefile.kern.inc to check if "build_kernel" .USE target
is defined.  If not (== old source trees), generate one on the fly.
2014-12-15 15:41:18 +00:00
uebayasi 10b064f35c config(1): Fix build of old tree (bin/49389)
Define the default, empty "build_kernel" target, so that old source trees,
whose sys/conf/Makefile.kern.inc don't have "build_kernel" .USE target, can
be built.

(When "build_kernel" is defined, the target is overriden, as far as
sys/conf/Makefile.kern.inc is included later than the "netbsd: ..." definition
in sys/arch/*/conf/Makefile.*.)

This should address PR bin/49389.
2014-12-15 10:10:24 +00:00
christos c8da6eb49b Use proper index types, delete casts, use correct sizeof() in allocations. 2014-11-21 20:46:56 +00:00
uebayasi 57751c8485 Pre-calc file path len/suffix. Misc. clean up. 2014-11-17 00:53:15 +00:00
uebayasi 9eb1865390 Fix oops in r1.30. 2014-11-16 15:10:54 +00:00
uebayasi d2824e0952 Simpfily code by assuming suffix is a single character. 2014-11-16 14:57:59 +00:00
uebayasi 8a0d672c53 Refactor. 2014-11-16 14:49:12 +00:00
uebayasi 20fd8a9d0f Consistently wrap long lines in ioconf.c. 2014-11-16 14:26:14 +00:00
uebayasi 73810e5d00 config(1): TODO about namespace (esp. options vs. module) 2014-11-16 07:12:34 +00:00
uebayasi 79fcd6c2d2 config(1): TODO item about swapnetbsd.c 2014-11-16 04:28:09 +00:00
uebayasi dfd51da465 config(1): Avoid buffer overrun (modular build) 2014-11-15 12:18:55 +00:00
uebayasi 70dd8e7d2a config(1): Sort objects by weight in modular build
Sort per-module kernel objects (*.ko) by dependency weight.  Important modules
are placed in lower addresses.  The ``machdep'' module will be always placed
in the lowest.

(At this moment, the order is not exact because dependency information is
incomplete in config files (files.*).  Thus ``sysmon_power.ko'' comes lower
than ``machdep.ko'' and/or ``uvm.ko''; but still much better than alphabetical
sort.)
2014-11-15 08:21:38 +00:00
uebayasi 2f06dcafd4 Revise a plan about link-set.
(I was ignorant 2 weeks ago.)
2014-11-13 15:25:48 +00:00
christos b552d112cd merge a bit of duplicated code. 2014-11-10 21:13:04 +00:00
uebayasi 28fcb3ecde config(1): Note a little more about linkage 2014-11-08 05:57:41 +00:00
christos 727f236228 - simplify string parsing
- emalloc + sprintf = easprintf
2014-11-07 17:50:14 +00:00
uebayasi 701e371cb2 config(1): TODO about kernel linkage 2014-11-07 16:41:17 +00:00
uebayasi 7710d317bc config(1): Rename internal flag to enable modular build 2014-11-06 11:40:32 +00:00
joerg 4e288682c2 nv_num is not a dev_t, so add explicit cast for the sake of
-Wconversion.
2014-11-04 23:02:14 +00:00
joerg fdcb5b3398 makedev returns ~uint64_t, but val is int64_t. Cast for -Wconversion. 2014-11-04 23:01:23 +00:00
joerg e7051a1953 To make -Wconversion happy, cast return value of tolower/toupper to
char.
2014-11-04 23:00:35 +00:00
uebayasi e8a6d4b70c config(1): Start calling module as module 2014-11-01 14:24:45 +00:00
uebayasi 6c852b2895 config(1): More TODO description. 2014-11-01 14:15:31 +00:00
uebayasi fe2a50734b config(1): Don't emit unused empty loc[] 2014-11-01 11:02:41 +00:00
uebayasi c62ce2631a config(1): One more TODO about retiring direct attachment 2014-11-01 08:13:11 +00:00
uebayasi 6c283bdad1 config(1): Emit pdevinit[] into .rodata 2014-11-01 07:26:11 +00:00
uebayasi def3cecb48 config(1): Set NULL to unused cfdata::cf_loc 2014-11-01 06:20:24 +00:00
uebayasi e1a6328057 config(1): KNF 2014-11-01 04:34:27 +00:00
uebayasi 304be40991 config(1): Better indent of cfdata in ioconf.c 2014-10-31 18:26:06 +00:00
uebayasi 084f527f2d config(1): KNF generated ioconf.c 2014-10-31 17:58:02 +00:00
uebayasi 374e86cbe4 config(1): Emit only referenced interface attributes in ioconf.c 2014-10-31 17:43:55 +00:00
uebayasi c42523f496 config(1), config(5): Introduce "select"
o Introduce a new selection directive "select" to select an attribute (as a
  module) and its dependencies.
o Support "no select" too.
o Stop abusing "options" to select an attribute.
o Bump config(1) version.
2014-10-31 07:38:36 +00:00
wiz 75f5ef0d24 Spelling fixes. 2014-10-30 23:18:02 +00:00