Some commonly encountered problems with build processes include:
The length of the commands executed by build tools can cause problems on different platforms. Shell commands are usually typed in by people, so they remain relatively short. It is not uncommon for commands that are thousands of characters long to be generated by build tools. Some reasons for this are absolute pathnames being used for all files, or long file lists being used to maximize the number of files processed each time that a slow-to-start compiler is invoked. Build tools can sometimes avoid this problem by using a temporary file containing the list of files to be used by another tool.
The names for the same file on different filesystems are quite different. For instance, Windows filesystems have drive letters, plus backslashes separating directories, as opposed to Unix forward slashes. Older Windows filenames could have only up to eight characters, with a three-character extension. Older Unix filesystems did not support spaces in filenames. If you want to build your project on multiple platforms, then a build tool with good support for avoiding filesystem-specific names is helpful. The easiest build tools to use are ones that allow you to specify a filename in one format and then automatically convert the filename to the appropriate format for the intended platform.
If you treat build tools like any other application, you ...