[login] Add "login" command and UI
[people/asdlkf/gpxe.git] / src / core / config.c
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License as
4  * published by the Free Software Foundation; either version 2, or (at
5  * your option) any later version.
6  */
7
8 #include <config/general.h>
9 #include <config/console.h>
10
11 /*
12  * Build ID string calculations
13  *
14  */
15 #undef XSTR
16 #undef STR
17 #define XSTR(s) STR(s)
18 #define STR(s) #s
19
20 #ifdef BUILD_SERIAL
21 #include "config/.buildserial.h"
22 #define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM)
23 #else
24 #define BUILD_SERIAL_STR ""
25 #endif
26
27 #ifdef BUILD_ID
28 #define BUILD_ID_STR " " BUILD_ID
29 #else
30 #define BUILD_ID_STR ""
31 #endif
32
33 #if defined(BUILD_ID) || defined(BUILD_SERIAL)
34 #define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]"
35 #else
36 #define BUILD_STRING ""
37 #endif
38
39 /*
40  * Drag in all requested console types
41  *
42  */
43
44 #ifdef CONSOLE_PCBIOS
45 REQUIRE_OBJECT ( bios_console );
46 #endif
47 #ifdef CONSOLE_SERIAL
48 REQUIRE_OBJECT ( serial_console );
49 #endif
50 #ifdef CONSOLE_DIRECT_VGA
51 REQUIRE_OBJECT ( video_subr );
52 #endif
53 #ifdef CONSOLE_BTEXT
54 REQUIRE_OBJECT ( btext );
55 #endif
56 #ifdef CONSOLE_PC_KBD
57 REQUIRE_OBJECT ( pc_kbd );
58 #endif
59 #ifdef CONSOLE_SYSLOG
60 REQUIRE_OBJECT ( syslog );
61 #endif
62 #ifdef CONSOLE_EFI
63 REQUIRE_OBJECT ( efi_console );
64 #endif
65
66 /*
67  * Drag in all requested network protocols
68  *
69  */
70 #ifdef NET_PROTO_IPV4
71 REQUIRE_OBJECT ( ipv4 );
72 #endif
73
74 /*
75  * Drag in all requested download protocols
76  *
77  */
78 #ifdef DOWNLOAD_PROTO_TFTP
79 REQUIRE_OBJECT ( tftp );
80 #endif
81 #ifdef DOWNLOAD_PROTO_NFS
82 REQUIRE_OBJECT ( nfs );
83 #endif
84 #ifdef DOWNLOAD_PROTO_HTTP
85 REQUIRE_OBJECT ( http );
86 #endif
87 #ifdef DOWNLOAD_PROTO_HTTPS
88 REQUIRE_OBJECT ( https );
89 #endif
90 #ifdef DOWNLOAD_PROTO_FTP
91 REQUIRE_OBJECT ( ftp );
92 #endif
93 #ifdef DOWNLOAD_PROTO_TFTM
94 REQUIRE_OBJECT ( tftm );
95 #endif
96 #ifdef DOWNLOAD_PROTO_SLAM
97 REQUIRE_OBJECT ( slam );
98 #endif
99
100 /*
101  * Drag in all requested SAN boot protocols
102  *
103  */
104 #ifdef SANBOOT_PROTO_ISCSI
105 REQUIRE_OBJECT ( iscsiboot );
106 #endif
107 #ifdef SANBOOT_PROTO_AOE
108 REQUIRE_OBJECT ( aoeboot );
109 #endif
110
111 /*
112  * Drag in all requested resolvers
113  *
114  */
115 #ifdef DNS_RESOLVER
116 REQUIRE_OBJECT ( dns );
117 #endif
118 #ifdef NMB_RESOLVER
119 REQUIRE_OBJECT ( nmb );
120 #endif
121
122 /*
123  * Drag in all requested image formats
124  *
125  */
126 #ifdef IMAGE_NBI
127 REQUIRE_OBJECT ( nbi );
128 #endif
129 #ifdef IMAGE_ELF
130 REQUIRE_OBJECT ( elfboot );
131 #endif
132 #ifdef IMAGE_FREEBSD
133 REQUIRE_OBJECT ( freebsd );
134 #endif
135 #ifdef IMAGE_MULTIBOOT
136 REQUIRE_OBJECT ( multiboot );
137 #endif
138 #ifdef IMAGE_AOUT
139 REQUIRE_OBJECT ( aout );
140 #endif
141 #ifdef IMAGE_WINCE
142 REQUIRE_OBJECT ( wince );
143 #endif
144 #ifdef IMAGE_PXE
145 REQUIRE_OBJECT ( pxe_image );
146 #endif
147 #ifdef IMAGE_SCRIPT
148 REQUIRE_OBJECT ( script );
149 #endif
150 #ifdef IMAGE_BZIMAGE
151 REQUIRE_OBJECT ( bzimage );
152 #endif
153 #ifdef IMAGE_ELTORITO
154 REQUIRE_OBJECT ( eltorito );
155 #endif
156 #ifdef IMAGE_COMBOOT
157 REQUIRE_OBJECT ( comboot );
158 REQUIRE_OBJECT ( com32 );
159 REQUIRE_OBJECT ( comboot_call );
160 REQUIRE_OBJECT ( com32_call );
161 REQUIRE_OBJECT ( com32_wrapper );
162 REQUIRE_OBJECT ( comboot_resolv );
163 #endif
164 #ifdef IMAGE_EFI
165 REQUIRE_OBJECT ( efi_image );
166 #endif
167
168 /*
169  * Drag in all requested commands
170  *
171  */
172 #ifdef AUTOBOOT_CMD
173 REQUIRE_OBJECT ( autoboot_cmd );
174 #endif
175 #ifdef NVO_CMD
176 REQUIRE_OBJECT ( nvo_cmd );
177 #endif
178 #ifdef CONFIG_CMD
179 REQUIRE_OBJECT ( config_cmd );
180 #endif
181 #ifdef IFMGMT_CMD
182 REQUIRE_OBJECT ( ifmgmt_cmd );
183 #endif
184 #ifdef ROUTE_CMD
185 REQUIRE_OBJECT ( route_cmd );
186 #endif
187 #ifdef IMAGE_CMD
188 REQUIRE_OBJECT ( image_cmd );
189 #endif
190 #ifdef DHCP_CMD
191 REQUIRE_OBJECT ( dhcp_cmd );
192 #endif
193 #ifdef SANBOOT_CMD
194 REQUIRE_OBJECT ( sanboot_cmd );
195 #endif
196 #ifdef LOGIN_CMD
197 REQUIRE_OBJECT ( login_cmd );
198 #endif
199
200 /*
201  * Drag in miscellaneous objects
202  *
203  */
204 #ifdef NULL_TRAP
205 REQUIRE_OBJECT ( nulltrap );
206 #endif
207 #ifdef GDBSERIAL
208 REQUIRE_OBJECT ( gdbidt );
209 REQUIRE_OBJECT ( gdbserial );
210 REQUIRE_OBJECT ( gdbstub_cmd );
211 #endif
212 #ifdef GDBUDP
213 REQUIRE_OBJECT ( gdbidt );
214 REQUIRE_OBJECT ( gdbudp );
215 REQUIRE_OBJECT ( gdbstub_cmd );
216 #endif
217
218 /*
219  * Drag in objects that are always required, but not dragged in via
220  * symbol dependencies.
221  *
222  */
223 REQUIRE_OBJECT ( device );
224 REQUIRE_OBJECT ( embedded );