If you’re used to building software with Unix tools like
make, odds are you don’t quite trust IDEs like Xcode. In a makefile, you can directly set compiler options, even file by file. You can designate build dependencies, so a change to a header file will force recompilations of the implementation files that depend on it—
clang even has a mode that generates the dependency trees.
At first glance, Xcode doesn’t give you that control. It’s “magic,” and while you’re proud to make magic for your users, you don’t trust it for yourself.
This chapter aims to take some of the magic out of the Xcode build system. Even if you aren’t a veteran of
make-based projects, you’ll gain a better understanding of what Xcode does for you ...