3.1 Building multiple architectures

The build tools use EDK II meta-data files (INF, DEC, DSC and, optionally, the FDF) to create Makefiles that are then processed by third party tools. The third party utility that is called after all pre-work has been completed is define in the Conf/tools_def.txt file using the tool code of MAKE. On Windows systems, this will typically point to the (with the fully qualified path) utility "nmake.exe", while on *NIX systems, the utility is typically just "make". The build system will also generate a single master makefile, one Makefile per architecture specified on the command-line or listed in the Conf/target.txt file and one Makefile for each for each module or library instance within the architectural tree. Therefore, the build system must be capable of processing and keeping track of common items and architecturally specific content. Common content (not architecturally dependent) will be processed for each architecture. For example, if -a IA32 -a X64 appear on the command line, all modules that do not specify an architecture modifier in the [Components], [Libraries] or [LibraryClasses] sections will be processed so that makefiles for the module entries appear under IA32 and under X64 sub-directories in the build output tree. Where architectural modifiers are used, the build tools will process content such that the modules (and their makefiles) are only under the corresponding architecture trees.