【问题标题】:scons help for alternate build toolsscons 对替代构建工具的帮助
【发布时间】:2009-08-24 18:47:42
【问题描述】:

我正在为 TI DSP 使用编译器,因此默认的 CC 和 LINK 以及 AS 工具没有意义。下面是一个适合我的 SConstruct 文件,我想知道是否有人有建议让它变得更好。一些问题:

  1. 我想以某种方式告诉它,我的 .obj 文件应该位于与源 .c 文件不同的目录中。 (它需要知道在哪里,以便找出链接步骤的 SOURCES 以及编译/链接的依赖项)将其与编译器的“-fr”和“-fs”参数联系起来会很好,但我不介意手动操作。
  2. 下面的SConstruct文件中有一些常用的C文件,都是以DSP2804x_前缀开头的。现在 scons 无法弄清楚这些的依赖关系,因为我猜它期望 .obj 文件位于同一目录中,而我对编译器使用“-fr”和“-fs”意味着那些 .obj 文件最终位于与 SConstruct 文件相同的目录中。有一个更好的方法吗?我猜我可能应该有一个将这些参考文件复制到本地目录的构建步骤:如果我更改它们,我希望这些更改传播到使用它们的所有项目。

叹息....

env = Environment(
   CC = 'C:/appl/ti/ccs/3.3/C2000/cgtools/bin/cl2000',
   CCCOM = '$CC $CFLAGS $CCFLAGS $SOURCES',
   CCFLAGS = Split('-g -q -pdr -d"_DEBUG" -d"LARGE_MODEL" -ml -mt -v28'),

   LINKCOM = '$LINK $LINKFLAGS ${SOURCES.file} -o ${TARGET.base}.out',
   LINK = 'C:/appl/ti/ccs/3.3/C2000/cgtools/bin/cl2000',
   LINKFLAGS = Split('-z -q -c -ecode_start -stack0x200 -w -x'),

   ASCOM = '$CC $CFLAGS $CCFLAGS $SOURCES',
#Bizarre but true. assembly is just like compiling C.
   );


includes = {'CCFLAGS' : [
  '-i../common/headers/include',
  '-i../common/include',
  '-fr.',
  '-fs.'
  ]};
env.MergeFlags(includes);

links = {'LINKFLAGS' : [
  '-m./Debug/Example_2804xGpioToggle.map',
  '-i../common/headers/include', 
  '-iC:/appl/ti/ccs/3.3/C2000/xdais/lib',
  '-iC:/appl/ti/ccs/3.3/C2000/cgtools/lib', 
  '-lrts2800_ml.lib',
  '../common/cmd/28044_RAM_lnk.cmd',
  '../common/headers/cmd/DSP2804x_Headers_nonBIOS.cmd'
  ]};
env.MergeFlags(links);

print "CCCOM is:", env['CCCOM'], "\n", env['LINKCOM'], '\n', env['ASCOM'];

env.Program('blink_gpio', [
  'Example_2804xGpioToggle.c',
  '../common/headers/source/DSP2804x_GlobalVariableDefs.c',
  '../common/source/DSP2804x_CodeStartBranch.asm',
  '../common/source/DSP2804x_DefaultIsr.c',
  '../common/source/DSP2804x_PieCtrl.c',
  '../common/source/DSP2804x_PieVect.c',
  '../common/source/DSP2804x_SysCtrl.c'
  ]);

【问题讨论】:

    标签: scons ti-dsp


    【解决方案1】:

    我通过执行hierarchical build 并在我的编译器标志中使用-fr=${TARGET.dir} 解决了这两个问题。

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      相关资源
      最近更新 更多