On 2011-01-08 at 17:30:40 [+0100], Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> wrote: > Ingo Weinhold <ingo_weinhold@xxxxxx> wrote: > > BTW, unless you used MakeLocateArch intentionally, I'd recommend > > MakeLocateDebug even if the file in question isn't debug flag > > dependent > > (yet). > > What does MakeLocateDebug exactly, and why is it called that way? > I used MakeLocateArch as the output is architecture depending, and is > only used for x86. There are different levels at which generated files can be shared. For each of them there's a MakeLocate* rule: MakeLocateCommonPlatform: The file is shared between all target platforms. MakeLocatePlatform: The file is specific for the target platform, but architecture independent. Usually the right rule for generated sources, though sometimes sources can be architecture specific. MakeLocateArch: The file is platform+architecture specific, but is debug level independent. This is usually the right rule for generated architecture specific data or source files. MakeLocateDebug: The file is platform+architecture+debug level specific. That's what should be used for compiled code. Each rule implicitly uses a respective base dir in the "generated/<platform>/<arch>/<debug>" hierarchy -- at the first shared level (if any) the path is cut and a subdir named "common" is appended instead. So, stricly speaking MakeLocateArch is OK for your rule, since it ignores the DEBUG variable anyway, but I'd generally use MakeLocateDebug for compiled code to avoid surprises in case support for DEBUG is added in the future. > I don't have any real clue what I'm doing when I do Jam, though :-) Good to know. ;-) CU, Ingo