Compilations errors
by Corin · in · 03/16/2005 (9:02 am) · 2 replies
About the author
#2
Sure thing - the makefiles are setup to create a tree of temp directories to store the compiled objects file. The root of the tree is located in 'engine/out..<(RELEASE or DEBUG)>/', for instance your GCC3 RELEASE build will be located at 'engine/out.GCC3.RELEASE/'. The makefiles create subdirectories in the tree that mirror the directories in the 'engine/' directory, so the object files for source code from 'engine/console/' are placed in 'engine/out.GCC3.RELEASE/console/'. The makefiles create these directories using the 'MKDIR' define (the line you've changed).
With the current 'MKDIR' define the makefiles assume that all directories are only one level deep, source files two levels deep such as in 'engine/game/fx/' compile because 'engine/game/' is compiled first creating the 'engine/out.GCC3.RELEASE/game/' directory before trying to create 'engine/out.GCC3.RELEASE/game/fx/'. The Synapse Gaming source tree is several levels deep, and doesn't have source files on every level, so the 'MKDIR' was changed to add the '-p' flag, which allows the makefiles to create all missing directories in a tree. For instance when the makefiles try to create 'engine/out.GCC3.RELEASE/synapseGaming/contentPacks/lightingPack/' they'll create 'synapseGaming', 'contentPacks', and 'lightingPack', in one pass instead of just trying to create 'lightingPack' and complaining that the path 'engine/out.GCC3.RELEASE/synapseGaming/contentPacks/' doesn't exist yet.
Sorry if this is information overload, but it's hard to explain why the directory creation doesn't work without explaining what the makefiles are trying to do with the files. Let me know if this helps!
-John
03/17/2005 (6:14 am)
Looks good to me, but your file has a lot of GCC related info after the bit you posted right?Sure thing - the makefiles are setup to create a tree of temp directories to store the compiled objects file. The root of the tree is located in 'engine/out.
With the current 'MKDIR' define the makefiles assume that all directories are only one level deep, source files two levels deep such as in 'engine/game/fx/' compile because 'engine/game/' is compiled first creating the 'engine/out.GCC3.RELEASE/game/' directory before trying to create 'engine/out.GCC3.RELEASE/game/fx/'. The Synapse Gaming source tree is several levels deep, and doesn't have source files on every level, so the 'MKDIR' was changed to add the '-p' flag, which allows the makefiles to create all missing directories in a tree. For instance when the makefiles try to create 'engine/out.GCC3.RELEASE/synapseGaming/contentPacks/lightingPack/' they'll create 'synapseGaming', 'contentPacks', and 'lightingPack', in one pass instead of just trying to create 'lightingPack' and complaining that the path 'engine/out.GCC3.RELEASE/synapseGaming/contentPacks/' doesn't exist yet.
Sorry if this is information overload, but it's hard to explain why the directory creation doesn't work without explaining what the makefiles are trying to do with the files. Let me know if this helps!
-John
Torque Owner John Kabus (BobTheCBuilder)
You need to update 'mk/conf.GCC3.Win32.mk' and 'mk/conf.UNIX.mk' with the following:
-John