yann@1
|
1 |
/*
|
yann@1
|
2 |
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
|
yann@1
|
3 |
* Released under the terms of the GNU GPL v2.0.
|
yann@1
|
4 |
*/
|
yann@1
|
5 |
|
yann@1
|
6 |
#ifndef LKC_H
|
yann@1
|
7 |
#define LKC_H
|
yann@1
|
8 |
|
yann@1
|
9 |
#include "expr.h"
|
yann@1
|
10 |
|
yann@1
|
11 |
#ifndef KBUILD_NO_NLS
|
yann@1
|
12 |
# include <libintl.h>
|
yann@1
|
13 |
#else
|
yann@1
|
14 |
# define gettext(Msgid) ((const char *) (Msgid))
|
yann@1
|
15 |
# define textdomain(Domainname) ((const char *) (Domainname))
|
yann@1
|
16 |
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
|
yann@1
|
17 |
#endif
|
yann@1
|
18 |
|
yann@1
|
19 |
#ifdef __cplusplus
|
yann@1
|
20 |
extern "C" {
|
yann@1
|
21 |
#endif
|
yann@1
|
22 |
|
yann@1
|
23 |
#ifdef LKC_DIRECT_LINK
|
yann@1
|
24 |
#define P(name,type,arg) extern type name arg
|
yann@1
|
25 |
#else
|
yann@1
|
26 |
#include "lkc_defs.h"
|
yann@1
|
27 |
#define P(name,type,arg) extern type (*name ## _p) arg
|
yann@1
|
28 |
#endif
|
yann@1
|
29 |
#include "lkc_proto.h"
|
yann@1
|
30 |
#undef P
|
yann@1
|
31 |
|
yann@1
|
32 |
#define SRCTREE "srctree"
|
yann@1
|
33 |
|
yann@39
|
34 |
#define PROJECT_NAME "crosstool-NG"
|
yann@1
|
35 |
#define PACKAGE "crosstool-NG"
|
yann@1
|
36 |
#define LOCALEDIR "/usr/share/locale"
|
yann@1
|
37 |
|
yann@1
|
38 |
#define _(text) gettext(text)
|
yann@1
|
39 |
#define N_(text) (text)
|
yann@1
|
40 |
|
yann@1
|
41 |
|
yann@1
|
42 |
#define TF_COMMAND 0x0001
|
yann@1
|
43 |
#define TF_PARAM 0x0002
|
yann@1
|
44 |
#define TF_OPTION 0x0004
|
yann@1
|
45 |
|
yann@1
|
46 |
#define T_OPT_MODULES 1
|
yann@1
|
47 |
#define T_OPT_DEFCONFIG_LIST 2
|
yann@1
|
48 |
|
yann@1
|
49 |
struct kconf_id {
|
yann@1
|
50 |
int name;
|
yann@1
|
51 |
int token;
|
yann@1
|
52 |
unsigned int flags;
|
yann@1
|
53 |
enum symbol_type stype;
|
yann@1
|
54 |
};
|
yann@1
|
55 |
|
yann@1
|
56 |
int zconfparse(void);
|
yann@1
|
57 |
void zconfdump(FILE *out);
|
yann@1
|
58 |
|
yann@1
|
59 |
extern int zconfdebug;
|
yann@1
|
60 |
void zconf_starthelp(void);
|
yann@1
|
61 |
FILE *zconf_fopen(const char *name);
|
yann@1
|
62 |
void zconf_initscan(const char *name);
|
yann@1
|
63 |
void zconf_nextfile(const char *name);
|
yann@1
|
64 |
int zconf_lineno(void);
|
yann@1
|
65 |
char *zconf_curname(void);
|
yann@1
|
66 |
|
yann@1
|
67 |
/* confdata.c */
|
yann@1
|
68 |
char *conf_get_default_confname(void);
|
yann@39
|
69 |
void sym_set_change_count(int count);
|
yann@39
|
70 |
void sym_add_change_count(int count);
|
yann@1
|
71 |
|
yann@1
|
72 |
/* kconfig_load.c */
|
yann@1
|
73 |
void kconfig_load(void);
|
yann@1
|
74 |
|
yann@1
|
75 |
/* menu.c */
|
yann@1
|
76 |
void menu_init(void);
|
yann@1
|
77 |
struct menu *menu_add_menu(void);
|
yann@1
|
78 |
void menu_end_menu(void);
|
yann@1
|
79 |
void menu_add_entry(struct symbol *sym);
|
yann@1
|
80 |
void menu_end_entry(void);
|
yann@1
|
81 |
void menu_add_dep(struct expr *dep);
|
yann@1
|
82 |
struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
|
yann@1
|
83 |
struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
|
yann@1
|
84 |
void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
|
yann@1
|
85 |
void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
|
yann@1
|
86 |
void menu_add_option(int token, char *arg);
|
yann@1
|
87 |
void menu_finalize(struct menu *parent);
|
yann@1
|
88 |
void menu_set_type(int type);
|
yann@1
|
89 |
|
yann@1
|
90 |
/* util.c */
|
yann@1
|
91 |
struct file *file_lookup(const char *name);
|
yann@1
|
92 |
int file_write_dep(const char *name);
|
yann@1
|
93 |
|
yann@1
|
94 |
struct gstr {
|
yann@1
|
95 |
size_t len;
|
yann@1
|
96 |
char *s;
|
yann@1
|
97 |
};
|
yann@1
|
98 |
struct gstr str_new(void);
|
yann@1
|
99 |
struct gstr str_assign(const char *s);
|
yann@1
|
100 |
void str_free(struct gstr *gs);
|
yann@1
|
101 |
void str_append(struct gstr *gs, const char *s);
|
yann@1
|
102 |
void str_printf(struct gstr *gs, const char *fmt, ...);
|
yann@1
|
103 |
const char *str_get(struct gstr *gs);
|
yann@1
|
104 |
|
yann@1
|
105 |
/* symbol.c */
|
yann@1
|
106 |
void sym_init(void);
|
yann@1
|
107 |
void sym_clear_all_valid(void);
|
yann@1
|
108 |
void sym_set_all_changed(void);
|
yann@1
|
109 |
void sym_set_changed(struct symbol *sym);
|
yann@1
|
110 |
struct symbol *sym_check_deps(struct symbol *sym);
|
yann@1
|
111 |
struct property *prop_alloc(enum prop_type type, struct symbol *sym);
|
yann@1
|
112 |
struct symbol *prop_get_symbol(struct property *prop);
|
yann@1
|
113 |
|
yann@1
|
114 |
static inline tristate sym_get_tristate_value(struct symbol *sym)
|
yann@1
|
115 |
{
|
yann@1
|
116 |
return sym->curr.tri;
|
yann@1
|
117 |
}
|
yann@1
|
118 |
|
yann@1
|
119 |
|
yann@1
|
120 |
static inline struct symbol *sym_get_choice_value(struct symbol *sym)
|
yann@1
|
121 |
{
|
yann@1
|
122 |
return (struct symbol *)sym->curr.val;
|
yann@1
|
123 |
}
|
yann@1
|
124 |
|
yann@1
|
125 |
static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
|
yann@1
|
126 |
{
|
yann@1
|
127 |
return sym_set_tristate_value(chval, yes);
|
yann@1
|
128 |
}
|
yann@1
|
129 |
|
yann@1
|
130 |
static inline bool sym_is_choice(struct symbol *sym)
|
yann@1
|
131 |
{
|
yann@1
|
132 |
return sym->flags & SYMBOL_CHOICE ? true : false;
|
yann@1
|
133 |
}
|
yann@1
|
134 |
|
yann@1
|
135 |
static inline bool sym_is_choice_value(struct symbol *sym)
|
yann@1
|
136 |
{
|
yann@1
|
137 |
return sym->flags & SYMBOL_CHOICEVAL ? true : false;
|
yann@1
|
138 |
}
|
yann@1
|
139 |
|
yann@1
|
140 |
static inline bool sym_is_optional(struct symbol *sym)
|
yann@1
|
141 |
{
|
yann@1
|
142 |
return sym->flags & SYMBOL_OPTIONAL ? true : false;
|
yann@1
|
143 |
}
|
yann@1
|
144 |
|
yann@1
|
145 |
static inline bool sym_has_value(struct symbol *sym)
|
yann@1
|
146 |
{
|
yann@1
|
147 |
return sym->flags & SYMBOL_DEF_USER ? true : false;
|
yann@1
|
148 |
}
|
yann@1
|
149 |
|
yann@1
|
150 |
#ifdef __cplusplus
|
yann@1
|
151 |
}
|
yann@1
|
152 |
#endif
|
yann@1
|
153 |
|
yann@1
|
154 |
#endif /* LKC_H */
|