I roughly understand that cc, ld and other parts are called in a certain sequence according to schemes like Makefiles etc. Some of those commands are used to generate those configs and Makefiles. And some other tools are used to deal with libraries. But what are other parts used for? How are they called in this process? Which tool would use various parser generators? Which part is optional? Why?Is there a brief summary get these explained on how the tools in a GNU or LLVM/Clang toolchain are organised and called in a C/C++ project building?Thanks in advance.EDIT:Here is a list of executables for Clang/LLVM on Mac OS X:ar          clang           dsymutil        gperf           libtool         nmedit          rpcgen          unwinddumpas          clang++         dwarfdump       gprof           lorder          otool           segedit         vgrindasa         cmpdylib        dyldinfo        indent          m4          pagestuff       size            whatbison           codesign_allocate   flex            install_name_tool   mig         ranlib          strip           yaccc++         ctags           flex++          ld          mkdep           rebase          unifdefcc          ctf_insert      gm4         lex         nm          redo_prebinding     unifdefall
Brief explanation for executables in a GNU/Clang Toolchain?
c++;c;compiler;commandline build tool