makefile.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import os
  2. import sys
  3. from utils import *
  4. from utils import _make_path_relative
  5. import rtconfig
  6. def TargetMakefile(env):
  7. project = ProjectInfo(env)
  8. make = open('config.mk', 'w')
  9. BSP_ROOT = os.path.abspath(env['BSP_ROOT'])
  10. RTT_ROOT = os.path.abspath(env['RTT_ROOT'])
  11. make.write('BSP_ROOT ?= %s\n' % BSP_ROOT.replace('\\', '\\\\'))
  12. make.write('RTT_ROOT ?= %s\n' % RTT_ROOT.replace('\\', '\\\\'))
  13. make.write('\n')
  14. cross = os.path.abspath(rtconfig.EXEC_PATH)
  15. cross = os.path.join(cross, rtconfig.PREFIX)
  16. make.write('CROSS_COMPILE ?=%s' % cross.replace('\\', '\\\\'))
  17. make.write('\n')
  18. make.write('\n')
  19. make.write('CFLAGS :=%s' % (rtconfig.CFLAGS))
  20. make.write('\n')
  21. make.write('AFLAGS :=%s' % (rtconfig.AFLAGS))
  22. make.write('\n')
  23. make.write('LFLAGS :=%s' % (rtconfig.LFLAGS))
  24. make.write('\n')
  25. if 'CXXFLAGS' in dir(rtconfig):
  26. make.write('CXXFLAGS :=%s' % (rtconfig.CXXFLAGS))
  27. make.write('\n')
  28. make.write('\n')
  29. Files = project['FILES']
  30. Headers = project['HEADERS']
  31. CPPDEFINES = project['CPPDEFINES']
  32. path = ''
  33. paths = [_make_path_relative(BSP_ROOT, os.path.normpath(i)) for i in project['CPPPATH']]
  34. for item in paths:
  35. path += '\t-I%s \\\n' % item
  36. make.write('CPPPATHS :=')
  37. if path[0] == '\t': path = path[1:]
  38. length = len(path)
  39. if path[length - 2] == '\\': path = path[:length - 2]
  40. make.write(path)
  41. make.write('\n')
  42. make.write('\n')
  43. defines = ''
  44. for item in project['CPPDEFINES']:
  45. defines += ' -D%s' % item
  46. make.write('DEFINES :=')
  47. make.write(defines)
  48. make.write('\n')
  49. src = open('src.mk', 'w')
  50. files = [_make_path_relative(BSP_ROOT, os.path.normpath(i)) for i in Files]
  51. src.write('SRC_FILES :=\n')
  52. for item in files:
  53. src.write('SRC_FILES +=%s\n' % item)
  54. return