|
|
1.1 ! root 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: FILE_LICENCE ( GPL2_OR_LATER ); ! 9: ! 10: #include <config/general.h> ! 11: #include <config/console.h> ! 12: #include <config/sideband.h> ! 13: ! 14: /** @file ! 15: * ! 16: * Configuration options ! 17: * ! 18: * This file contains macros that pull various objects into the link ! 19: * based on definitions in configuration header files. Ideally it ! 20: * should be the only place in iPXE where one might need to use #ifdef ! 21: * for compile-time options. ! 22: * ! 23: * In the fairly common case where an object should only be considered ! 24: * for inclusion if the subsystem it depends on is present, its ! 25: * configuration macros should be placed in a file named ! 26: * <tt>config_<i>subsystem</i>.c</tt>, where @e subsystem is the ! 27: * object basename of the main source file for that subsystem. The ! 28: * build system will pull in that file if @c subsystem.c is included ! 29: * in the final iPXE executable built. ! 30: */ ! 31: ! 32: /* ! 33: * Build ID string calculations ! 34: * ! 35: */ ! 36: #undef XSTR ! 37: #undef STR ! 38: #define XSTR(s) STR(s) ! 39: #define STR(s) #s ! 40: ! 41: #ifdef BUILD_SERIAL ! 42: #include "config/.buildserial.h" ! 43: #define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM) ! 44: #else ! 45: #define BUILD_SERIAL_STR "" ! 46: #endif ! 47: ! 48: #ifdef BUILD_ID ! 49: #define BUILD_ID_STR " " BUILD_ID ! 50: #else ! 51: #define BUILD_ID_STR "" ! 52: #endif ! 53: ! 54: #if defined(BUILD_ID) || defined(BUILD_SERIAL) ! 55: #define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]" ! 56: #else ! 57: #define BUILD_STRING "" ! 58: #endif ! 59: ! 60: /* ! 61: * Drag in all requested console types ! 62: * ! 63: */ ! 64: ! 65: #ifdef CONSOLE_PCBIOS ! 66: REQUIRE_OBJECT ( bios_console ); ! 67: #endif ! 68: #ifdef CONSOLE_SERIAL ! 69: REQUIRE_OBJECT ( serial_console ); ! 70: #endif ! 71: #ifdef CONSOLE_DIRECT_VGA ! 72: REQUIRE_OBJECT ( video_subr ); ! 73: #endif ! 74: #ifdef CONSOLE_BTEXT ! 75: REQUIRE_OBJECT ( btext ); ! 76: #endif ! 77: #ifdef CONSOLE_PC_KBD ! 78: REQUIRE_OBJECT ( pc_kbd ); ! 79: #endif ! 80: #ifdef CONSOLE_SYSLOG ! 81: REQUIRE_OBJECT ( syslog ); ! 82: #endif ! 83: #ifdef CONSOLE_EFI ! 84: REQUIRE_OBJECT ( efi_console ); ! 85: #endif ! 86: #ifdef CONSOLE_LINUX ! 87: REQUIRE_OBJECT ( linux_console ); ! 88: #endif ! 89: ! 90: /* ! 91: * Drag in all requested network protocols ! 92: * ! 93: */ ! 94: #ifdef NET_PROTO_IPV4 ! 95: REQUIRE_OBJECT ( ipv4 ); ! 96: #endif ! 97: ! 98: /* ! 99: * Drag in all requested PXE support ! 100: * ! 101: */ ! 102: #ifdef PXE_MENU ! 103: REQUIRE_OBJECT ( pxemenu ); ! 104: #endif ! 105: #ifdef PXE_STACK ! 106: REQUIRE_OBJECT ( pxe_call ); ! 107: #endif ! 108: ! 109: /* ! 110: * Drag in all requested download protocols ! 111: * ! 112: */ ! 113: #ifdef DOWNLOAD_PROTO_TFTP ! 114: REQUIRE_OBJECT ( tftp ); ! 115: #endif ! 116: #ifdef DOWNLOAD_PROTO_HTTP ! 117: REQUIRE_OBJECT ( http ); ! 118: #endif ! 119: #ifdef DOWNLOAD_PROTO_HTTPS ! 120: REQUIRE_OBJECT ( https ); ! 121: #endif ! 122: #ifdef DOWNLOAD_PROTO_FTP ! 123: REQUIRE_OBJECT ( ftp ); ! 124: #endif ! 125: #ifdef DOWNLOAD_PROTO_TFTM ! 126: REQUIRE_OBJECT ( tftm ); ! 127: #endif ! 128: #ifdef DOWNLOAD_PROTO_SLAM ! 129: REQUIRE_OBJECT ( slam ); ! 130: #endif ! 131: ! 132: /* ! 133: * Drag in all requested SAN boot protocols ! 134: * ! 135: */ ! 136: #ifdef SANBOOT_PROTO_ISCSI ! 137: REQUIRE_OBJECT ( iscsi ); ! 138: #endif ! 139: ! 140: /* ! 141: * Drag in all requested resolvers ! 142: * ! 143: */ ! 144: #ifdef DNS_RESOLVER ! 145: REQUIRE_OBJECT ( dns ); ! 146: #endif ! 147: ! 148: /* ! 149: * Drag in all requested image formats ! 150: * ! 151: */ ! 152: #ifdef IMAGE_NBI ! 153: REQUIRE_OBJECT ( nbi ); ! 154: #endif ! 155: #ifdef IMAGE_ELF ! 156: REQUIRE_OBJECT ( elfboot ); ! 157: #endif ! 158: #ifdef IMAGE_FREEBSD ! 159: REQUIRE_OBJECT ( freebsd ); ! 160: #endif ! 161: #ifdef IMAGE_MULTIBOOT ! 162: REQUIRE_OBJECT ( multiboot ); ! 163: #endif ! 164: #ifdef IMAGE_AOUT ! 165: REQUIRE_OBJECT ( aout ); ! 166: #endif ! 167: #ifdef IMAGE_WINCE ! 168: REQUIRE_OBJECT ( wince ); ! 169: #endif ! 170: #ifdef IMAGE_PXE ! 171: REQUIRE_OBJECT ( pxe_image ); ! 172: #endif ! 173: #ifdef IMAGE_SCRIPT ! 174: REQUIRE_OBJECT ( script ); ! 175: #endif ! 176: #ifdef IMAGE_BZIMAGE ! 177: REQUIRE_OBJECT ( bzimage ); ! 178: #endif ! 179: #ifdef IMAGE_ELTORITO ! 180: REQUIRE_OBJECT ( eltorito ); ! 181: #endif ! 182: #ifdef IMAGE_COMBOOT ! 183: REQUIRE_OBJECT ( comboot ); ! 184: REQUIRE_OBJECT ( com32 ); ! 185: REQUIRE_OBJECT ( comboot_call ); ! 186: REQUIRE_OBJECT ( com32_call ); ! 187: REQUIRE_OBJECT ( com32_wrapper ); ! 188: REQUIRE_OBJECT ( comboot_resolv ); ! 189: #endif ! 190: #ifdef IMAGE_EFI ! 191: REQUIRE_OBJECT ( efi_image ); ! 192: #endif ! 193: ! 194: /* ! 195: * Drag in all requested commands ! 196: * ! 197: */ ! 198: #ifdef AUTOBOOT_CMD ! 199: REQUIRE_OBJECT ( autoboot_cmd ); ! 200: #endif ! 201: #ifdef NVO_CMD ! 202: REQUIRE_OBJECT ( nvo_cmd ); ! 203: #endif ! 204: #ifdef CONFIG_CMD ! 205: REQUIRE_OBJECT ( config_cmd ); ! 206: #endif ! 207: #ifdef IFMGMT_CMD ! 208: REQUIRE_OBJECT ( ifmgmt_cmd ); ! 209: #endif ! 210: /* IWMGMT_CMD is brought in by net80211.c if requested */ ! 211: #ifdef ROUTE_CMD ! 212: REQUIRE_OBJECT ( route_cmd ); ! 213: #endif ! 214: #ifdef IMAGE_CMD ! 215: REQUIRE_OBJECT ( image_cmd ); ! 216: #endif ! 217: #ifdef DHCP_CMD ! 218: REQUIRE_OBJECT ( dhcp_cmd ); ! 219: #endif ! 220: #ifdef SANBOOT_CMD ! 221: REQUIRE_OBJECT ( sanboot_cmd ); ! 222: #endif ! 223: #ifdef LOGIN_CMD ! 224: REQUIRE_OBJECT ( login_cmd ); ! 225: #endif ! 226: #ifdef TIME_CMD ! 227: REQUIRE_OBJECT ( time_cmd ); ! 228: #endif ! 229: #ifdef DIGEST_CMD ! 230: REQUIRE_OBJECT ( digest_cmd ); ! 231: #endif ! 232: #ifdef PXE_CMD ! 233: REQUIRE_OBJECT ( pxe_cmd ); ! 234: #endif ! 235: #ifdef LOTEST_CMD ! 236: REQUIRE_OBJECT ( lotest_cmd ); ! 237: #endif ! 238: #ifdef VLAN_CMD ! 239: REQUIRE_OBJECT ( vlan_cmd ); ! 240: #endif ! 241: #ifdef REBOOT_CMD ! 242: REQUIRE_OBJECT ( reboot_cmd ); ! 243: #endif ! 244: ! 245: /* ! 246: * Drag in miscellaneous objects ! 247: * ! 248: */ ! 249: #ifdef NULL_TRAP ! 250: REQUIRE_OBJECT ( nulltrap ); ! 251: #endif ! 252: #ifdef GDBSERIAL ! 253: REQUIRE_OBJECT ( gdbidt ); ! 254: REQUIRE_OBJECT ( gdbserial ); ! 255: REQUIRE_OBJECT ( gdbstub_cmd ); ! 256: #endif ! 257: #ifdef GDBUDP ! 258: REQUIRE_OBJECT ( gdbidt ); ! 259: REQUIRE_OBJECT ( gdbudp ); ! 260: REQUIRE_OBJECT ( gdbstub_cmd ); ! 261: #endif ! 262: ! 263: /* ! 264: * Drag in objects that are always required, but not dragged in via ! 265: * symbol dependencies. ! 266: * ! 267: */ ! 268: REQUIRE_OBJECT ( device ); ! 269: REQUIRE_OBJECT ( embedded ); ! 270: ! 271: /* linux drivers aren't picked up by the parserom utility so drag them in here */ ! 272: #ifdef DRIVERS_LINUX ! 273: REQUIRE_OBJECT ( tap ); ! 274: #endif ! 275: ! 276: /* ! 277: * Drag in relevant BOFM entry points ! 278: */ ! 279: #ifdef CONFIG_BOFM ! 280: #ifdef BOFM_EFI ! 281: REQUIRE_OBJECT ( efi_bofm ); ! 282: #endif /* BOFM_EFI */ ! 283: #endif /* CONFIG_BOFM */ ! 284: ! 285: /* ! 286: * Drag in selected keyboard map ! 287: */ ! 288: #define REQUIRE_KEYMAP_OBJECT( _map ) REQUIRE_OBJECT ( keymap_ ## _map ) ! 289: #define REQUIRE_KEYMAP( _map ) REQUIRE_KEYMAP_OBJECT ( _map ) ! 290: REQUIRE_KEYMAP ( KEYBOARD_MAP );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.