summaryrefslogtreecommitdiff
path: root/usr.sbin/config/config.h
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1997-11-13 08:21:57 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1997-11-13 08:21:57 +0000
commit48eccfca3321f7c88e1a2107e3170d2194904baa (patch)
tree17a96bd2b69fb2909e92878bac4405df70db3be8 /usr.sbin/config/config.h
parent1844aacc1c369617474ad3fd76dc9a310d05db20 (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.h25
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 */