Commit Graph

11 Commits

Author SHA1 Message Date
Peter Wemm
d8f19d9417 Make a little more effort to avoid touching certain generated files if
they were not changed.  This makes 'make depend' more useful.
1996-01-12 08:57:10 +00:00
Peter Wemm
6d41b96fd7 Implement support for conf/options and i386/conf/options.i386
Note that this code is dormant unless the options files exist.
Also, parsing of quoted options in the config files is improved.

What this allows, is all the options in LINT to be specified to be
configured as #defines in a file rather than on the CC command line at
kernel build time.  This means that 'make depend' will catch dependencies
on actual *options*, meaning that you can run 'config' and 'make depend'
in complete safety WITHOUT removing the compile directory each time.

Unfortunately, this requires a pass over the source to get the individual
files to #include the new .h files that would be generated by config.
This has a small compile time penalty (appears up to about 2% slower)
from a "fresh" build.  Of course, you should not be needing to do complete
rebuilds very often once this was completed, so it would be an overall
win for most people.

Since this code is dormant and we've got a lot of other things happening
on the kernel tree at the moment (prototypes, devfs, static declarations
etc) I am not planning on doing any changes to activate this feature just
yet.
1995-12-11 10:52:34 +00:00
Garrett Wollman
8e7fbe0241 If CONFIG_NO_CLOBBER_EVER is defined (e.g., in /etc/make.conf), don't make
it possible for config to ever blow away a work directory.  Default behavior
remains broken.
1995-11-28 20:29:58 +00:00
Jordan K. Hubbard
786a5cad11 Change the perennially annoying reminder to "make depend" (which may or
may not be desired if you're just going to blow the kernel away again later)
and substitute one that tells the user where the new kernel build
directory actually IS, which can at least be argued to be useful information
in all cases.
Reviewed by:	davidg
1995-05-03 20:16:57 +00:00
Jordan K. Hubbard
b5909509ee Make good on my promise to finally clean up the config clobbering.
If you invoke config with the `-n' flag or have NO_CONFIG_CLOBBER in
your environment, config will behave the same way it used to.  This is
now _documented_ as well.  Rip out all the CONFIG_DONT_CLOBBER cruft;
some of it wasn't even correct anyway.
1995-02-22 15:37:32 +00:00
Justin T. Gibbs
80785c507b Add new keywords to config. The options availible in file.i386 are now:
/*
         * filename     [ standard | optional ] [ config-dependent ]
         *      [ dev* | profiling-routine ] [ device-driver] [ no-obj ]
         *      [ compile-with "compile rule" [no-implicit-rule] ]
         *                     [ dependancy "dependancy-list"]
         */

I added

no-obj -  This entry does not create anything linkable to the kernel.
dependancy - Add additional dependancy rules to a target.
no-implicit-rule - Don't assume .c -> .o type rules.  Config is really
             dumb in this area and assumes that everything is a .c file
	     irregarless of extention.  This was the best choice really
	     since there may even be .c file that you don't want to follow
	     the standard rules.

This was all done so that the building to the aic7770 assembler and using
the aic7770 assembler in the building of the aic7770 driver could be config
dependant.  I can now have an entry like this for the driver:

aic7770                         optional        ahc     device-driver   \
        compile-with    "${CC} $> -o $@"                                \
        dependancy      "$S/gnu/misc/aic7770/aic7770.c"                 \
        no-obj no-implicit-rule
aic7770_seq.h                   optional        ahc     device-driver          \
        compile-with "${.CURDIR}/aic7770 -o $@ $S/gnu/misc/aic7770/aic7770.seq"\
        dependancy "$S/gnu/misc/aic7770/aic7770.seq aic7770"                   \
        no-obj no-implicit-rule
i386/isa/aic7770.c              optional        ahc     device-driver   \
        dependancy "aic7770_seq.h"

I also added '\' escaping to newlines so that this doesn't look as gross as
it could have.

Reviewed by: jkh
1994-11-17 20:30:01 +00:00
Jordan K. Hubbard
5464bfda4b Undo the damage done to my previous changes. Whoever added the
conditional did it backwards, thus flipping the behavior back off
again by default (and only re-enableable through a very counter-intuitive
option setting!).  I'm glad I caught this and would merely like to state
again for the record that if you're going to go and modify my changes then
you should at least:

	1. Do it correctly, since to do otherwise is kind of a slap in the
	   face.

	2. TELL me.

This is not me just being compulsive, this is simple courtesy.
I'm speaking just of my own preferences here, not necessarily trying
to impose my standards on the group at large (e.g. some other folks might
not even care).
Submitted by:	jkh
1994-09-08 06:38:55 +00:00
Garrett Wollman
c33f35354b Revert back to old config behavior if compiled with -DCONFIG_DONT_CLOBBER. 1994-09-06 20:04:39 +00:00
Jordan K. Hubbard
2f7b926abd Eradicate my #1 (ok, maybe #2) peeve by making config now blow away
and recreate any previous ../../compile/<blah> directory before laying
down new files.  The depends just aren't smart enough to save
us from the grief that config's old behavior has always caused.
Submitted by:	jkh
1994-09-03 21:23:36 +00:00
Rodney W. Grimes
4eaaddb7ff Upgrade config to be compatible with our i386 port, pull in 95% of the
changes that have been made in FreeBSD 1.x, except for possibly the nfs
diskless support this is a completed config.
1994-05-26 13:24:02 +00:00
Rodney W. Grimes
dea673e932 BSD 4.4 Lite usr.sbin Sources 1994-05-26 05:23:31 +00:00