UBOOT功能强大,适用于多种操作系统,多种处理器架构。
在阅读它的源码时,可以看到cpu目录有各种处理器,而board目录有各种开发板。但是,对于一个特定的实验平台,例如TQ2440开发板,它用到的只是cpu、board等目录中的一个或者部分文件和文件夹。
不同的处理器,它们的架构不一样,所以编译器肯定也不一样。但是,对于一个特定的实验平台,例如S3C2440,它用到的arm-linux-gcc编译器。
UBOOT可以应用于多种平台,但是对于特定的平台,它只会用到部分文件和文件夹,也只会用到一种编译器。
UBOOT目录中有大量的Makefile文件和配置文件,我想就是为了从众多的文件中只选择有用的文件,而放弃不属于的文件,就是为了选择适合的编译器等等。
编译预处理的选择虽比不上Makefile文件和配置文件,但是它们具有相似性。编译预处理可以实现选择编译不同的代码。
结论
Makefile文件和配置文件以及编译预处理都是为了实现程序的更广的适应性,配置的方便性。