SConscript 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. import os
  2. from building import *
  3. objs = []
  4. cwd = GetCurrentDir()
  5. PORT_DRV_DIR = cwd + '/drivers'
  6. PHYTIUM_SDK_DIR = cwd + '/phytium_standalone_sdk'
  7. COMMON_DIR = cwd + '/common'
  8. # common source
  9. src = Glob(PHYTIUM_SDK_DIR+'/common/fassert.c')
  10. path = [PHYTIUM_SDK_DIR + '/common/']
  11. src += Glob(COMMON_DIR+'/*.c')
  12. path += [COMMON_DIR ]
  13. # arch port
  14. path += [PHYTIUM_SDK_DIR + '/arch/armv8/gcc']
  15. if GetDepend(['TARGET_ARMV8_AARCH32']):
  16. src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/gcc/fcpu_asm.S')
  17. path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch32']
  18. elif GetDepend(['TARGET_ARMV8_AARCH64']):
  19. src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/gcc/fcpu_asm.S')
  20. path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch64']
  21. # soc & soc_port
  22. src += Glob(PHYTIUM_SDK_DIR+'/soc/common/fcpu_info.c')
  23. path += [PHYTIUM_SDK_DIR + '/soc/common']
  24. if GetDepend(['TARGET_F2000_4']):
  25. src += Glob(cwd+'/port/soc_port/ft2004/*.c')
  26. path += [PHYTIUM_SDK_DIR + '/soc/ft2004']
  27. if GetDepend(['TARGET_E2000Q']):
  28. src += Glob(cwd+'/port/soc_port/e2000/*.c') + Glob(cwd+'/port/soc_port/e2000/q/*.c')
  29. path += [PHYTIUM_SDK_DIR + '/soc/e2000'] + [PHYTIUM_SDK_DIR + '/soc/e2000/q']
  30. if GetDepend(['TARGET_E2000D']):
  31. src += Glob(cwd+'/port/soc_port/e2000/*.c') + Glob(cwd+'/port/soc_port/e2000/d/*.c')
  32. path += [PHYTIUM_SDK_DIR + '/soc/e2000'] + [PHYTIUM_SDK_DIR + '/soc/e2000/d']
  33. if GetDepend(['TARGET_PHYTIUMPI']):
  34. src += Glob(cwd+'/port/soc_port/phytiumpi/*.c')
  35. path += [PHYTIUM_SDK_DIR + '/soc/phytiumpi']
  36. if GetDepend(['TARGET_D2000']):
  37. src += Glob(cwd+'/port/soc_port/d2000/*.c')
  38. path += [PHYTIUM_SDK_DIR + '/soc/d2000']
  39. # driver
  40. path += [PORT_DRV_DIR]
  41. ## spim
  42. if GetDepend(['BSP_USING_SPI']):
  43. src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim/*.c') + Glob(PORT_DRV_DIR+'/drv_spi.c')
  44. path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim']
  45. ## serial
  46. if GetDepend(['BSP_USING_UART']):
  47. src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fpl011/*.c') + Glob(PORT_DRV_DIR+'/drv_usart.c')
  48. path += [PHYTIUM_SDK_DIR + '/drivers/serial/fpl011']
  49. ## can
  50. if GetDepend(['BSP_USING_CAN']):
  51. src += Glob(PHYTIUM_SDK_DIR+'/drivers/can/fcan/*.c') + Glob(PORT_DRV_DIR+'/drv_can.c')
  52. path += [PHYTIUM_SDK_DIR + '/drivers/can/fcan/']
  53. ## qspi
  54. if GetDepend(['BSP_USING_QSPI']):
  55. src += Glob(PHYTIUM_SDK_DIR+'/drivers/qspi/fqspi/*.c') + Glob(PORT_DRV_DIR+'/drv_qspi.c')
  56. path += [PHYTIUM_SDK_DIR + '/drivers/qspi/fqspi/']
  57. ## eth
  58. if GetDepend(['BSP_USING_ETH']):
  59. src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac.c')
  60. path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/'] + [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/phy/']
  61. ## sdif
  62. if GetDepend(['BSP_USING_SDIF']):
  63. src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif.c')
  64. path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif/']
  65. ## gpio
  66. if GetDepend(['BSP_USING_GPIO']):
  67. src += Glob(PHYTIUM_SDK_DIR+'/drivers/pin/fgpio/*.c') + Glob(PORT_DRV_DIR+'/drv_gpio.c')
  68. path += [PHYTIUM_SDK_DIR + '/drivers/pin/fgpio/']
  69. ## pwm
  70. if GetDepend(['BSP_USING_PWM']):
  71. src += Glob(PHYTIUM_SDK_DIR+'/drivers/pwm/fpwm/*.c') + Glob(PORT_DRV_DIR+'/drv_pwm.c')
  72. path += [PHYTIUM_SDK_DIR + '/drivers/pwm/fpwm/']
  73. ## i2C
  74. if GetDepend(['BSP_USING_I2C']):
  75. src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c.c')
  76. path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/']
  77. ## iopad
  78. if GetDepend(['BSP_USING_IOPAD']):
  79. src += Glob(PHYTIUM_SDK_DIR+'/drivers/iomux/fiopad/*.c')
  80. path += [PHYTIUM_SDK_DIR + '/drivers/iomux/fiopad/']
  81. ## mio
  82. if GetDepend(['I2C_USE_MIO']):
  83. src += Glob(PHYTIUM_SDK_DIR+'/drivers/mio/fmio/*.c')
  84. path += [PHYTIUM_SDK_DIR + '/drivers/mio/fmio/']
  85. ## board
  86. if GetDepend(['E2000D_DEMO_BOARD']):
  87. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fio_mux.c')
  88. path += [PHYTIUM_SDK_DIR + '/board/e2000d_demo/']
  89. if GetDepend(['BSP_USING_SDIF']):
  90. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fsdif_timing.c')
  91. if GetDepend(['E2000Q_DEMO_BOARD']):
  92. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fio_mux.c')
  93. path += [PHYTIUM_SDK_DIR + '/board/e2000q_demo/']
  94. if GetDepend(['BSP_USING_SDIF']):
  95. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fsdif_timing.c')
  96. if GetDepend(['FIREFLY_DEMO_BOARD']):
  97. src += Glob(PHYTIUM_SDK_DIR+'/board/firefly/fio_mux.c')
  98. path += [PHYTIUM_SDK_DIR + '/board/firefly/']
  99. if GetDepend(['BSP_USING_SDIF']):
  100. src += Glob(PHYTIUM_SDK_DIR+'/board/firefly/fsdif_timing.c')
  101. LIBS = []
  102. LIBPATH = []
  103. # fdriver dc
  104. if GetDepend(['BSP_USING_DC']):
  105. src += Glob(PORT_DRV_DIR+'/drv_dc.c')
  106. path += [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp_lib/inc']
  107. if GetDepend(['TARGET_ARMV8_AARCH64']):
  108. LIBPATH = [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp_lib/']
  109. LIBS = ['libfdcdp_standalone_a64.a']
  110. elif GetDepend(['TARGET_ARMV8_AARCH32']):
  111. LIBPATH = [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp_lib/']
  112. LIBS = ['libfdcdp_standalone_soft_a32.a']
  113. ## fdriver port
  114. src += Glob(cwd+'/port/fdriver_port/*.c')
  115. path += [cwd + '/port/fdriver_port']
  116. ## fboard port
  117. src += Glob(cwd+'/port/fboard_port/*.c')
  118. path += [cwd + '/port/fboard_port']
  119. ## lwip port
  120. src += Glob(cwd+'/port/lwip_port/*.c')
  121. path += [cwd + '/port/lwip_port']
  122. ## cherryusb port
  123. if GetDepend(['BSP_USING_XHCI']):
  124. src += Glob(cwd +'/port/cherryusb_port/drv_xhci.c')
  125. path += [cwd + '/port/cherryusb_port']
  126. if GetDepend(['BSP_USING_PUSB2']):
  127. if GetDepend(['PKG_CHERRYUSB_HOST_PUSB2']):
  128. src += Glob(cwd +'/port/cherryusb_port/drv_pusb2_hc.c')
  129. if GetDepend(['PKG_CHERRYUSB_DEVICE_PUSB2']):
  130. src += Glob(cwd +'/port/cherryusb_port/drv_pusb2_dc.c')
  131. path += [cwd + '/port/cherryusb_port']
  132. # phytium ports rt-thread examples
  133. PORT_DRV_DIR = cwd + '/examples'
  134. src += Glob(PORT_DRV_DIR + '/*.c')
  135. # sdkcomfig.h
  136. path += [cwd]
  137. # add group
  138. ASFLAGS = ''
  139. group = DefineGroup('FT_DRIVER', src, depend=[
  140. ''],LIBS = LIBS,LIBPATH=LIBPATH, CPPPATH=path, ASFLAGS = ASFLAGS)
  141. Return('group')