Commit Graph

119 Commits

Author SHA1 Message Date
imp
11e536cc2d Fix ! by not clearing not at the bottom of the loop.
Add a blank line

Submitted by:	bde (blank line)
2014-02-05 00:26:11 +00:00
imp
5250b91b68 Implement the '!' operator for files* files. It means 'include this
only if the specified option is NOT specified.' Bump version because
old config won't be able to cope with files* files that have this
construct in them.
2014-02-04 18:28:58 +00:00
imp
a3e3d7fd2d Convert the loop by gotos into a for loop to improve readability. I
did this only with the inner loop for the token parsing, and not the
outer loop which was understandable enough when the extra layers of
looping went away...
2014-02-03 19:14:36 +00:00
imp
db1869454b Fix a bug introduced in r261437 that failed to honor "optional
profiling-routine" to work, since profiling-routine is not really an
option or a device, but a special case elsewhere in the code.
2014-02-03 19:10:33 +00:00
imp
c59be84822 Slight cleanup to the error messaging to compress code vertically... 2014-02-03 18:56:41 +00:00
imp
2762723467 Better error messages when EOF is hit in the middle of a phrase. 2014-02-03 18:31:51 +00:00
imp
cbd8148f2b Move the check for standard keyword + optional inclusion specifier to
its proper location. Otherwise you could have 'file.c standard pci'
without an error. This construct isn't in our tree, and has no well
defined meaning.
2014-02-03 16:54:53 +00:00
imp
423a8d8f96 Don't believe we have a requirement until after we've checked all the
known key words. This will make error messages slightly better in
weird corner cases, but should otherwise be a nop.
2014-02-03 16:47:10 +00:00
imp
fbdf7f73b5 In the 17 years since r30796, the mandatory keyword has never been used
in any files as far as I can tell, and is currently unused. Retire it.
2014-02-03 16:46:01 +00:00
imp
365ae2b0ed Slightly deobfuscate read_file() and likely pessimize the runtime
performance by epsilon.
(Translation: elminate bogus macros that hid 'returns' making it hard
 to read and moved a block of code inline rather than at the end of the
 fuction where it was effectively a 'gosub' kind of goto).
2014-02-03 15:10:44 +00:00
jhb
5c4def7e52 - Fix the error message when a dependency string is not provided to
reference a missing dependency rather than a missing compile command.
- Don't append a newline to the auto-generated compile command.  The
  compile command has a newline appended when it is later output to the
  Makefile.

MFC after:	2 weeks
2012-10-10 14:47:46 +00:00
kevlo
66ad783672 Fix copyright year
Spotted by:	pluknet
2012-01-13 09:08:41 +00:00
kevlo
96dbfe4e2d fgets(3) returns a pointer, so compare against NULL, not integer 0. 2012-01-13 06:51:15 +00:00
ed
e7e5b53bf1 Replace index() and rindex() calls with strchr() and strrchr().
The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.
2012-01-03 18:51:58 +00:00
fjoe
b1d2a50084 Generate ${NORMAL_CTFCONVERT} invocation without '@' modifier:
- ${NORMAL_CC} is also invoked without '@'
- Userland CTF support was changed previously to echo ctfconvert invocations too
2011-11-30 13:33:09 +00:00
rstone
975afb573a The generated Makefile for the kernel was not running ctfconvert on
object files corresponding to source files that had the compile-with
option set in conf/files.  This means that any fbt probes for functions
in that object file would not have correct argument types.

The fix is to run ctfconvert on any target file that does not have the
no-obj option set in files.

PR:		bin/160275
Reported by:	Paul Ambrose (ambrosehua AT gmail DOT com)
MFC after:	1 week
2011-11-10 21:07:14 +00:00
jeff
2d7d8c05e7 - Merge changes to the base system to support OFED. These include
a wider arg2 for sysctl, updates to vlan code, IFT_INFINIBAND,
   and other miscellaneous small features.
2011-03-21 09:40:01 +00:00
imp
febdd2ffbc Generate MACHINE= and MACHINE_ARCH= lines based on the machine
directive.  Once this is MFC'd, we can move these out of the template
files where they are (incosnsitently) defined.

MFC after:	1 week
2011-02-11 06:35:53 +00:00
obrien
047b6049e9 Give the user a hint as to what config(8) is unhappy with. 2010-11-02 05:27:05 +00:00
imp
bf0075bfec Put warnings out to stderr rather than stdout.
MFC after:	3 days
2010-07-15 22:28:19 +00:00
imp
72eba20f2c style(9) fixes:
o make cmd scoped to the whole do_rules function, since it really is
  scoped to the whole fucnion.  Making it static was the wrong way to
  fix referencing it outside of the block in which it was declared
  (and conforms to the style of the rest of the file).
o remove a couple of meaningless blank lines
o properly wrap one line.
2010-06-13 16:54:11 +00:00
imp
1b05a112d4 Move checking the version up from Makefile generation to just after
we've parsed the config file.  Makefile generation is too late if
we've introduce changes to the syntax of the metafiles to warn about
version skew, since we have to try to parse them and we get an parse
error that's rather baffling to the user rather than a 'your config is
too old, upgrade' which we should get.

We have to defer doing it until after we've read the user's config
file because we define machinename there.  The version required to
compile the kernel is encoded in Makefile.machinename.  There's no
real reason for this to be the case, but changing it now would
introduce some logistical issues that I'd rather avoid for the moment.
I intend to revisit this if we're still using config in FreeBSD 10.

This also means that we cannot introduce any config metafile changes
that result in a syntax error or other error for the user until 9.0 is
released.  Otherwise, we break the upgrade path, or at least reduce
the usefulness of the error messages we generate.

# This implies that the config file option mapping will need to be redone.

MFC after:	3 days
2010-04-27 05:04:32 +00:00
netchild
ec68a94632 Revert r206179 (by imp) and do something similar which is more consistent
with all other corresponding CTF places by changing the corresponding
code which is generated by config(8). Or in short, move the '@' from
the variable definition to the use of the variable. [1]

While I'm here break up a long line. [2]

Discussed with:	imp [1,2], bde [2]
2010-04-22 09:20:17 +00:00
ru
5562af42b4 - Handle calloc() allocation failures.
- Fixed a comment.
- 2 -> EXIT_FAILURE in some places.
- errx() -> err() where appropriate.

PR:		144644
Submitted by:	Garrett Cooper
2010-03-30 13:46:40 +00:00
thompsa
5318a38202 Allow multiple makeoption lines to be used with the += operator, this permits
the following syntax in the kernel config.

 makeoptions MODULES_OVERRIDE=foo
 makeoptions MODULES_OVERRIDE+=bar
 makeoptions MODULES_OVERRIDE+=baz

Bump config minor version to 600007.
2008-11-22 21:12:47 +00:00
jb
081bbc17b6 Revice the way the CTF conversion is done per object. Avoid creating a second
shell (which was the problem with the original implementation) and avoid
letting make see an empty definition (which was the problem with the current
implementation).
2008-06-29 07:15:57 +00:00
jb
2113c65a2d Change the CTF conversion makefile code to use a new line to avoid
spawning another shell.

Requested by: Ed Schouten

M    config/mkmakefile.c
2008-06-09 06:33:26 +00:00
jb
2fda3a0dfb Add the CTF conversion to the generated makefile. In the case where
NO_CTF or !WITH_CTF, the macro is empty.
2008-05-23 03:55:26 +00:00
imp
b55d55f173 Don't leak files.
This also eliminates the need for ifp init.

Submitted by: ru@
2006-10-24 07:12:31 +00:00
imp
340936b70b End my resistance to jmg's multiple hints files and bring in support
for having multiple hints files generate a correct hints.c (eg, with
all the specified ones catenated together).
2006-10-24 00:31:59 +00:00
ru
a8ad84893b Added rudimentary support for the "include" directive (inside "files").
This will be used to split sys/conf/files into multiple files similar
to how this is done in NetBSD.
2006-10-01 17:17:29 +00:00
stefanf
fe8bf26aef Remove an unused variable. 2006-07-19 10:46:38 +00:00
delphij
65d304bb17 Use calloc() instead of zeroing the memory our own. 2006-06-07 01:43:26 +00:00
imp
ea5c1281b0 Allow newer config versions to config older versions with the same
major number.

Reviewed by: ru@, jhb@, arch@ (a few months ago)

# this is subject to refinement based on experience.
2006-02-03 06:12:10 +00:00
ru
59fdf73a63 - Avoid adding devices multiple times to the device list.
- Avoid adding options multiple times to the option list.

Based on a patch by:	Matt Emmerton <matt@gsicomp.on.ca>
2005-12-30 16:28:06 +00:00
ru
9d1801a105 Clean up most of the "XXX"-tagged items:
- The code that creates hints.c and env.c from the skeleton files
  moved into separate functions.

- Sanity checks for missing "ident" and "cputype" directives moved
  into main(), alongside the existing check for "machine".

PR:		bin/90310
Submitted by:	Matt Emmerton <matt@gsicomp.on.ca>
2005-12-30 15:29:50 +00:00
ru
cbff67d85c Make config(8) understand ORed dependecies in "files*" and
improve tracking of known devices.  Bump config(8) version.
2005-11-27 21:41:58 +00:00
ru
1852a934be Clean some code that became obfuscated over the years:
Don't keep duplicate files in the files list just to
mark the device as "known" later.  XXX: Since the
device list isn't unique (there can be two "device foo"
directives, as this the case with LINT+DEFAULTS), we
have to traverse it all to mark all copies of the same
device as "used", but this is not worse than it was.
2005-11-25 22:25:34 +00:00
peter
1d9abdbe78 Kill count device support from config. I've changed the last few
remaining consumers to have the count passed as an option.  This is
i4b, pc98/wdc, and coda.

Bump configvers.h from 500013 to 600000.

Remove heuristics that tried to parse "device ed5" as 5 units of the ed
device.  This broke things like the snd_emu10k1 device, which required
quotes to make it parse right.  The no-longer-needed quotes have been
removed from NOTES, GENERIC etc.  eg, I've removed the quotes from:
   device  snd_maestro
   device  "snd_maestro3"
   device  snd_mss

I believe everything will still compile and work after this.
2004-08-30 23:03:58 +00:00
imp
9c9b6e3045 Per letter dated July 22, 1999, delete clause 3 from code directly
from Berkeley.
2004-08-07 04:19:37 +00:00
cognet
0fb3fb5b41 Fix a few glitches in my previous commit.
This makes config(8) WARNS?=6 compliant.
2004-05-11 15:42:44 +00:00
cognet
00e9b04664 Add a new "files" directive, which allows to include a files.foo file directly
from a kernel config file.
Bump config version to reflect this change.
2004-05-09 22:29:00 +00:00
markm
bdcc4ca5e8 Not particularly pretty hack to generate rules to make .ln files
from .c files. Actually, this is overkill, as the .ln file targets
are assumed from .? (any) files. This is not a problem in practice,
merely a bit untidy, as the linting rules DTRT. See the sys/conf/*
and sys/mk/* files for usage.
2003-06-16 20:08:15 +00:00
des
ace917243e Don't convert the kernel ident to uppercase when writing the Makefile. 2003-04-24 00:52:58 +00:00
phk
4be8e3040a Avoid emitting duplicate makefile entries. 2003-04-12 14:02:03 +00:00
ru
61e9b13e6a Convert to using <sys/queue.h> macros. 2003-02-15 02:26:13 +00:00
bde
d738702902 Moved the setting of all profiling-related variables except the key one
(PROFLEVEL) to kern.pre.mk so that it is easier to manage.  Bumped config
version to match.

Moved the check for cputype being configured to a less bogus place in
mkmakefile.c.
2002-07-13 19:36:14 +00:00
peter
cf06489c2d Commit some infrastructure for turning on -Werror for kernel compiles.
It doesn't actually do it yet though.  This adds a flag to config so
that we can exclude certain vendor files from this even when the rest
of the kernel has it on.  make -DNO_WERROR would also bypass all of it.
2002-02-20 23:35:56 +00:00
peter
552fcc860e Use includes to get prototypes for hints and env arrays.
Submitted by:	bde
2001-09-17 21:25:48 +00:00
peter
e031b90e2a Enable hardwiring of things like tunables from embedded enironments
that do not start from loader(8).
2001-08-27 05:11:53 +00:00