MPC - tool name invocation mpc.pl mpb file -- "make project base" This is a file type that includes information that is applicable to all sub-projects. Things such as include paths, library paths and inter-project dependencies could be described in this base project. The config directory has many such files. mpc file -- "generic input file" or "project files" mpd file -- "template file" provides the generator with the necessary information to fill platform and build tool specific information for dynamic and static library and binary executable projects. mwc -- "work space file" Workspaces are defined by providing a list of mpc files in a single file. The contents of a mwc file look like this: workspace(workspace_name) { file.mpc directory relative/path/to/another/mwc_file } MPC expects all files to be listed with forward slashes (/) if a file name contains a directory. Providing files with back slashes (\) can cause unexpected results during generation. You can exclude directories from a workspace using the 'exclude' scope operator: workspace { dir1 dir2 // exclude this_dir for all project types exclude { dir2/this_dir } // exclude other_dir for vc6, vc71 and vc8 types exclude(vc6, vc71, vc8) { dir2/other_dir } // exclude unix_only for every type except gnuace and make exclude(!gnuace, !make) { dir2/unix_only } dir3 } ---------------- note that the final set of Makefiles sometimes has several different configuration options. These would be in the lowest level of Makefile of the dependency tree, where each Makefile corresponds to a specific target. For example in the makefiles generated for nmake you will see the following lines: !IF "$(CFG)" == "Win32 Debug" || "$(CFG)" == "Win32 Release" || "$(CFG)" == "Win32 Static Debug" || "$(CFG)" == "Win32 Static Release" !ELSE !MESSAGE Invalid configuration "$(CFG)" specified.