Added network interface management commands
[people/dverkamp/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 "etherboot.h"
9 #include "dev.h"
10 #include "console.h"
11 #include "image.h"
12
13 #include "config/general.h"
14
15 /*
16  * Build ID string calculations
17  *
18  */
19 #undef XSTR
20 #undef STR
21 #define XSTR(s) STR(s)
22 #define STR(s) #s
23
24 #ifdef BUILD_SERIAL
25 #include "config/.buildserial.h"
26 #define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM)
27 #else
28 #define BUILD_SERIAL_STR ""
29 #endif
30
31 #ifdef BUILD_ID
32 #define BUILD_ID_STR " " BUILD_ID
33 #else
34 #define BUILD_ID_STR ""
35 #endif
36
37 #if defined(BUILD_ID) || defined(BUILD_SERIAL)
38 #define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]"
39 #else
40 #define BUILD_STRING ""
41 #endif
42
43 /*
44  * Drag in all requested console types
45  *
46  * CONSOLE_DUAL sets both CONSOLE_FIRMWARE and CONSOLE_SERIAL for
47  * legacy compatibility.
48  *
49  */
50
51 #ifdef  CONSOLE_DUAL
52 #undef  CONSOLE_FIRMWARE
53 #define CONSOLE_FIRMWARE        1
54 #undef  CONSOLE_SERIAL
55 #define CONSOLE_SERIAL          1
56 #endif
57
58 #ifdef CONSOLE_FIRMWARE
59 REQUIRE_OBJECT ( bios_console );
60 #endif
61
62 #ifdef CONSOLE_SERIAL
63 REQUIRE_OBJECT ( serial );
64 #endif
65
66 #ifdef CONSOLE_DIRECT_VGA
67 REQUIRE_OBJECT ( video_subr );
68 #endif
69
70 #ifdef CONSOLE_BTEXT
71 REQUIRE_OBJECT ( btext );
72 #endif
73
74 #ifdef CONSOLE_PC_KBD
75 REQUIRE_OBJECT ( pc_kbd );
76 #endif
77
78 /*
79  * Drag in all requested protocols
80  *
81  */
82 #ifdef DOWNLOAD_PROTO_TFTP
83 REQUIRE_OBJECT ( tftp );
84 #endif
85 #ifdef DOWNLOAD_PROTO_NFS
86 REQUIRE_OBJECT ( nfs );
87 #endif
88 #ifdef DOWNLOAD_PROTO_HTTP
89 REQUIRE_OBJECT ( http );
90 #endif
91 #ifdef DOWNLOAD_PROTO_TFTM
92 REQUIRE_OBJECT ( tftm );
93 #endif
94 #ifdef DOWNLOAD_PROTO_SLAM
95 REQUIRE_OBJECT ( slam );
96 #endif
97
98 /*
99  * Drag in any required resolvers
100  *
101  */
102 #ifdef DNS_RESOLVER
103 REQUIRE_OBJECT ( dns );
104 #endif
105
106 #ifdef NMB_RESOLVER
107 REQUIRE_OBJECT ( nmb );
108 #endif
109
110 /*
111  * Drag in all requested image formats
112  *
113  */
114 #ifdef TAGGED_IMAGE
115 REQUIRE_OBJECT ( nbi );
116 #endif
117 #ifdef ELF64_IMAGE
118 REQUIRE_OBJECT ( elf64 );
119 #endif
120 #ifdef ELF_IMAGE
121 REQUIRE_OBJECT ( elf );
122 #endif
123 #ifdef COFF_IMAGE
124 REQUIRE_OBJECT ( coff );
125 #endif
126 #ifdef IMAGE_FREEBSD
127 REQUIRE_OBJECT ( freebsd );
128 #endif
129 #ifdef  IMAGE_MULTIBOOT
130 REQUIRE_OBJECT ( multiboot );
131 #endif
132 #ifdef  AOUT_IMAGE
133 REQUIRE_OBJECT ( aout );
134 #endif
135 #ifdef  WINCE_IMAGE
136 REQUIRE_OBJECT ( wince );
137 #endif
138 #ifdef  PXE_IMAGE
139 REQUIRE_OBJECT ( pxe );
140 #endif
141
142 /*
143  * Drag in all requested commands
144  *
145  */
146 #ifdef BOOT_CMD
147 REQUIRE_OBJECT ( boot_cmd );
148 #endif
149 #ifdef NVO_CMD
150 REQUIRE_OBJECT ( nvo_cmd );
151 #endif
152 #ifdef CONFIG_CMD
153 REQUIRE_OBJECT ( config_cmd );
154 #endif
155 #ifdef IFMGMT_CMD
156 REQUIRE_OBJECT ( ifmgmt_cmd );
157 #endif
158
159 /*
160  * Drag in miscellaneous objects
161  *
162  */
163 #ifdef  NULL_TRAP
164 REQUIRE_OBJECT ( nulltrap );
165 #endif