u-boot.inc 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. SUMMARY = "Universal Boot Loader for embedded devices"
  2. PROVIDES = "virtual/bootloader"
  3. PACKAGE_ARCH = "${MACHINE_ARCH}"
  4. DEPENDS += "${@bb.utils.contains('UBOOT_ENV_SUFFIX', 'scr', 'u-boot-mkimage-native', '', d)}"
  5. inherit uboot-config uboot-extlinux-config uboot-sign deploy python3native kernel-arch
  6. DEPENDS += "swig-native"
  7. EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} V=1'
  8. EXTRA_OEMAKE += 'CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP}"'
  9. EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
  10. EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
  11. PACKAGECONFIG ??= "openssl"
  12. # u-boot will compile its own tools during the build, with specific
  13. # configurations (aka when CONFIG_FIT_SIGNATURE is enabled) openssl is needed as
  14. # a host build dependency.
  15. PACKAGECONFIG[openssl] = ",,openssl-native"
  16. CVE_PRODUCT = "denx:u-boot"
  17. # Allow setting an additional version string that will be picked up by the
  18. # u-boot build system and appended to the u-boot version. If the .scmversion
  19. # file already exists it will not be overwritten.
  20. UBOOT_LOCALVERSION ?= ""
  21. # Default name of u-boot initial env, but enable individual recipes to change
  22. # this value.
  23. UBOOT_INITIAL_ENV ?= "${PN}-initial-env"
  24. require u-boot-configure.inc
  25. UBOOT_ARCH_DIR = "${@'arm' if d.getVar('UBOOT_ARCH').startswith('arm') else d.getVar('UBOOT_ARCH')}"
  26. do_compile () {
  27. unset LDFLAGS
  28. unset CFLAGS
  29. unset CPPFLAGS
  30. if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
  31. then
  32. echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
  33. echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
  34. fi
  35. if [ -n "${UBOOT_CONFIG}" -o -n "${UBOOT_DELTA_CONFIG}" ]
  36. then
  37. unset i j
  38. for config in ${UBOOT_MACHINE}; do
  39. i=$(expr $i + 1);
  40. for type in ${UBOOT_CONFIG}; do
  41. j=$(expr $j + 1);
  42. if [ $j -eq $i ]
  43. then
  44. uboot_compile_config $i $config $type
  45. fi
  46. done
  47. unset j
  48. done
  49. unset i
  50. else
  51. uboot_compile
  52. fi
  53. if [ -n "${UBOOT_ENV}" ] && [ "${UBOOT_ENV_SUFFIX}" = "scr" ]
  54. then
  55. ${UBOOT_MKIMAGE} -C none -A ${UBOOT_ARCH} -T script -d ${UNPACKDIR}/${UBOOT_ENV_SRC} ${B}/${UBOOT_ENV_BINARY}
  56. fi
  57. }
  58. uboot_compile_config () {
  59. i=$1
  60. config=$2
  61. type=$3
  62. builddir="${config}-${type}"
  63. unset k
  64. IFS="?"
  65. uboot_config_make_opts="${UBOOT_CONFIG_MAKE_OPTS}"
  66. for config_make_opts in $uboot_config_make_opts; do
  67. k=$(expr $k + 1);
  68. if [ $k -eq $i ]; then
  69. break
  70. fi
  71. done
  72. unset IFS
  73. unset k
  74. oe_runmake -C ${S} O=${B}/${builddir} ${config_make_opts} ${UBOOT_MAKE_OPTS} ${UBOOT_MAKE_TARGET}
  75. unset k
  76. for binary in ${UBOOT_BINARIES}; do
  77. k=$(expr $k + 1);
  78. if [ $k -eq $i ]; then
  79. uboot_compile_config_copy_binary $config $type $binary
  80. fi
  81. done
  82. unset k
  83. # Generate the uboot-initial-env
  84. if [ -n "${UBOOT_INITIAL_ENV}" ]; then
  85. oe_runmake -C ${S} O=${B}/${builddir} u-boot-initial-env
  86. cp ${B}/${builddir}/u-boot-initial-env ${B}/${builddir}/u-boot-initial-env-${type}
  87. fi
  88. }
  89. uboot_compile_config_copy_binary () {
  90. config=$1
  91. type=$2
  92. binary=$3
  93. builddir="${config}-${type}"
  94. cp ${B}/${builddir}/${binary} ${B}/${builddir}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX}
  95. }
  96. uboot_compile () {
  97. oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_OPTS} ${UBOOT_MAKE_TARGET}
  98. # Generate the uboot-initial-env
  99. if [ -n "${UBOOT_INITIAL_ENV}" ]; then
  100. oe_runmake -C ${S} O=${B} u-boot-initial-env
  101. fi
  102. }
  103. do_install () {
  104. if [ -n "${UBOOT_CONFIG}" ]
  105. then
  106. for config in ${UBOOT_MACHINE}; do
  107. i=$(expr $i + 1);
  108. for type in ${UBOOT_CONFIG}; do
  109. j=$(expr $j + 1);
  110. if [ $j -eq $i ]
  111. then
  112. uboot_install_config $config $type
  113. fi
  114. done
  115. unset j
  116. done
  117. unset i
  118. else
  119. uboot_install
  120. fi
  121. if [ -n "${UBOOT_ELF}" ]
  122. then
  123. if [ -n "${UBOOT_CONFIG}" ]
  124. then
  125. for config in ${UBOOT_MACHINE}; do
  126. i=$(expr $i + 1);
  127. for type in ${UBOOT_CONFIG}; do
  128. j=$(expr $j + 1);
  129. if [ $j -eq $i ]
  130. then
  131. uboot_install_elf_config $config $type
  132. fi
  133. done
  134. unset j
  135. done
  136. unset i
  137. else
  138. uboot_install_elf
  139. fi
  140. fi
  141. if [ -e ${UNPACKDIR}/fw_env.config ] ; then
  142. install -d ${D}${sysconfdir}
  143. install -m 644 ${UNPACKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
  144. fi
  145. if [ -n "${SPL_BINARY}" ]
  146. then
  147. if [ -n "${UBOOT_CONFIG}" ]
  148. then
  149. for config in ${UBOOT_MACHINE}; do
  150. i=$(expr $i + 1);
  151. for type in ${UBOOT_CONFIG}; do
  152. j=$(expr $j + 1);
  153. if [ $j -eq $i ]
  154. then
  155. uboot_install_spl_config $config $type
  156. fi
  157. done
  158. unset j
  159. done
  160. unset i
  161. else
  162. uboot_install_spl
  163. fi
  164. fi
  165. if [ -n "${UBOOT_ENV}" ]
  166. then
  167. install -m 644 ${B}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE}
  168. ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY}
  169. fi
  170. if [ "${UBOOT_EXTLINUX}" = "1" ]
  171. then
  172. install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}
  173. fi
  174. }
  175. uboot_install_config () {
  176. config=$1
  177. type=$2
  178. builddir="${config}-${type}"
  179. install -D -m 644 ${B}/${builddir}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX}
  180. ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
  181. ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
  182. # Install the uboot-initial-env
  183. if [ -n "${UBOOT_INITIAL_ENV}" ]; then
  184. install -D -m 644 ${B}/${builddir}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}
  185. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
  186. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
  187. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
  188. fi
  189. }
  190. uboot_install () {
  191. install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
  192. ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
  193. # Install the uboot-initial-env
  194. if [ -n "${UBOOT_INITIAL_ENV}" ]; then
  195. install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}
  196. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
  197. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
  198. fi
  199. }
  200. uboot_install_elf_config () {
  201. config=$1
  202. type=$2
  203. builddir="${config}-${type}"
  204. install -m 644 ${B}/${builddir}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX}
  205. ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
  206. ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
  207. }
  208. uboot_install_elf () {
  209. install -m 644 ${B}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE}
  210. ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY}
  211. }
  212. uboot_install_spl_config () {
  213. config=$1
  214. type=$2
  215. builddir="${config}-${type}"
  216. install -m 644 ${B}/${builddir}/${SPL_BINARY} ${D}/boot/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX}
  217. ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}-${type}
  218. ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}
  219. }
  220. uboot_install_spl () {
  221. install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
  222. ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYFILE}
  223. }
  224. PACKAGE_BEFORE_PN += "${PN}-env ${PN}-extlinux"
  225. RPROVIDES:${PN}-env += "u-boot-default-env"
  226. ALLOW_EMPTY:${PN}-env = "1"
  227. FILES:${PN}-env = " \
  228. ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if d.getVar('UBOOT_INITIAL_ENV') else ''} \
  229. ${sysconfdir}/fw_env.config \
  230. "
  231. FILES:${PN}-extlinux = "${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}"
  232. RDEPENDS:${PN} += "${@bb.utils.contains('UBOOT_EXTLINUX', '1', '${PN}-extlinux', '', d)}"
  233. SYSROOT_DIRS += "/boot"
  234. FILES:${PN} = "/boot ${datadir}"
  235. RDEPENDS:${PN} += "${PN}-env"
  236. do_deploy () {
  237. if [ -n "${UBOOT_CONFIG}" ]
  238. then
  239. unset i j
  240. for config in ${UBOOT_MACHINE}; do
  241. i=$(expr $i + 1);
  242. for type in ${UBOOT_CONFIG}; do
  243. j=$(expr $j + 1);
  244. if [ $j -eq $i ]
  245. then
  246. uboot_deploy_config $config $type
  247. fi
  248. done
  249. unset j
  250. done
  251. unset i
  252. else
  253. uboot_deploy
  254. fi
  255. if [ -e ${UNPACKDIR}/fw_env.config ] ; then
  256. install -D -m 644 ${UNPACKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${UBOOT_VERSION}
  257. cd ${DEPLOYDIR}
  258. ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config-${MACHINE}
  259. ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config
  260. fi
  261. if [ -n "${UBOOT_ELF}" ]
  262. then
  263. if [ -n "${UBOOT_CONFIG}" ]
  264. then
  265. for config in ${UBOOT_MACHINE}; do
  266. i=$(expr $i + 1);
  267. for type in ${UBOOT_CONFIG}; do
  268. j=$(expr $j + 1);
  269. if [ $j -eq $i ]
  270. then
  271. uboot_deploy_elf_config $config $type
  272. fi
  273. done
  274. unset j
  275. done
  276. unset i
  277. else
  278. uboot_deploy_elf
  279. fi
  280. fi
  281. if [ -n "${SPL_BINARY}" ]
  282. then
  283. if [ -n "${UBOOT_CONFIG}" ]
  284. then
  285. for config in ${UBOOT_MACHINE}; do
  286. i=$(expr $i + 1);
  287. for type in ${UBOOT_CONFIG}; do
  288. j=$(expr $j + 1);
  289. if [ $j -eq $i ]
  290. then
  291. uboot_deploy_spl_config $config $type
  292. fi
  293. done
  294. unset j
  295. done
  296. unset i
  297. else
  298. uboot_deploy_spl
  299. fi
  300. fi
  301. if [ -n "${UBOOT_ENV}" ]
  302. then
  303. install -m 644 ${B}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE}
  304. ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY}
  305. ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
  306. fi
  307. if [ "${UBOOT_EXTLINUX}" = "1" ]
  308. then
  309. install -m 644 ${UBOOT_EXTLINUX_CONFIG} ${DEPLOYDIR}/${UBOOT_EXTLINUX_SYMLINK}
  310. ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}
  311. ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}
  312. fi
  313. if [ -n "${UBOOT_DTB}" ]
  314. then
  315. install -m 644 ${B}/arch/${UBOOT_ARCH_DIR}/dts/${UBOOT_DTB_BINARY} ${DEPLOYDIR}/
  316. fi
  317. }
  318. uboot_deploy_config () {
  319. config=$1
  320. type=$2
  321. builddir="${config}-${type}"
  322. install -D -m 644 ${B}/${builddir}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX}
  323. cd ${DEPLOYDIR}
  324. ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
  325. ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
  326. ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
  327. ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
  328. # Deploy the uboot-initial-env
  329. if [ -n "${UBOOT_INITIAL_ENV}" ]; then
  330. install -D -m 644 ${B}/${builddir}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}
  331. cd ${DEPLOYDIR}
  332. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
  333. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${type}
  334. fi
  335. }
  336. uboot_deploy () {
  337. install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
  338. cd ${DEPLOYDIR}
  339. rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
  340. ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
  341. ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
  342. # Deploy the uboot-initial-env
  343. if [ -n "${UBOOT_INITIAL_ENV}" ]; then
  344. install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}
  345. cd ${DEPLOYDIR}
  346. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}
  347. ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}
  348. fi
  349. }
  350. uboot_deploy_elf_config () {
  351. config=$1
  352. type=$2
  353. builddir="${config}-${type}"
  354. install -m 644 ${B}/${builddir}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX}
  355. ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
  356. ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
  357. ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
  358. ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
  359. }
  360. uboot_deploy_elf () {
  361. install -m 644 ${B}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE}
  362. ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
  363. ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
  364. }
  365. uboot_deploy_spl_config () {
  366. config=$1
  367. type=$2
  368. builddir="${config}-${type}"
  369. install -m 644 ${B}/${builddir}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX}
  370. rm -f ${DEPLOYDIR}/${SPL_BINARYFILE} ${DEPLOYDIR}/${SPL_SYMLINK}
  371. ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}-${type}
  372. ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}
  373. ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
  374. ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}
  375. }
  376. uboot_deploy_spl () {
  377. install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
  378. ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARYNAME}
  379. ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK}
  380. }
  381. addtask deploy before do_build after do_compile