diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1997-11-13 08:21:57 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1997-11-13 08:21:57 +0000 |
commit | 48eccfca3321f7c88e1a2107e3170d2194904baa (patch) | |
tree | 17a96bd2b69fb2909e92878bac4405df70db3be8 /usr.sbin/config/config.h | |
parent | 1844aacc1c369617474ad3fd76dc9a310d05db20 (diff) |
from mycroft;
Allow options and makeoptions to take an empty string as a value.
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.
Diffstat (limited to 'usr.sbin/config/config.h')
-rw-r--r-- | usr.sbin/config/config.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/usr.sbin/config/config.h b/usr.sbin/config/config.h index 5212203fc13..30e989ef97d 100644 --- a/usr.sbin/config/config.h +++ b/usr.sbin/config/config.h @@ -1,4 +1,4 @@ -/* $OpenBSD: config.h,v 1.11 1997/08/07 10:36:57 deraadt Exp $ */ +/* $OpenBSD: config.h,v 1.12 1997/11/13 08:21:53 deraadt Exp $ */ /* $NetBSD: config.h,v 1.30 1997/02/02 21:12:30 thorpej Exp $ */ /* @@ -244,6 +244,25 @@ struct files { struct nvlist *fi_optf;/* flattened version of above, if needed */ const char *fi_mkrule; /* special make rule, if any */ }; + +/* + * Objects and libraries. This allows precompiled object and library + * files (e.g. binary-only device drivers) to be linked in. + */ +struct objects { + struct objects *oi_next;/* linked list */ + const char *oi_srcfile; /* the name of the "objects" file that got us */ + u_short oi_srcline; /* and the line number */ + u_char oi_flags; /* as below */ + char oi_lastc; /* last char from path */ + const char *oi_path; /* full object path */ + struct nvlist *oi_optx;/* options expression */ + struct nvlist *oi_optf;/* flattened version of above, if needed */ +}; + +#define OI_SEL 0x01 /* selected */ +#define OI_NEEDSFLAG 0x02 /* needs-flag */ + #define FX_ATOM 0 /* atom (in nv_name) */ #define FX_NOT 1 /* NOT expr (subexpression in nv_next) */ #define FX_AND 2 /* AND expr (lhs in nv_ptr, rhs in nv_next) */ @@ -294,6 +313,7 @@ int ndevi; /* number of devi's (before packing) */ int npseudo; /* number of pseudo's */ struct files *allfiles; /* list of all kernel source files */ +struct objects *allobjects; /* list of all kernel object and library files */ struct devi **packed; /* arrayified table for packed devi's */ int npacked; /* size of packed table, <= ndevi */ @@ -311,7 +331,9 @@ struct { /* loc[] table for config */ void initfiles __P((void)); void checkfiles __P((void)); int fixfiles __P((void)); /* finalize */ +int fixobjects __P((void)); void addfile __P((const char *, struct nvlist *, int, const char *)); +void addobject __P((const char *, struct nvlist *, int)); /* hash.c */ struct hashtab *ht_new __P((void)); @@ -347,6 +369,7 @@ void pack __P((void)); /* scan.l */ int currentline __P((void)); +int firstfile __P((const char *)); int include __P((const char *, int)); /* sem.c, other than for yacc actions */ |