xmake.lua 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*
  2. * Copyright (c) 2006-2023, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2024-07-04 rcitach init ver.
  9. */
  10. toolchain("aarch64-smart-musleabi")
  11. set_kind("standalone")
  12. local exec_path = os.getenv("RTT_EXEC_PATH") or "/opt/aarch64-linux-musleabi/bin/"
  13. local sdkdir = exec_path .. "/../"
  14. local incdir = os.curdir() .. "/../include"
  15. local device = '-march=armv8-a -mtune=cortex-a53 -ftree-vectorize -ffast-math -funwind-tables -fno-strict-aliasing'
  16. set_bindir(exec_path)
  17. set_sdkdir(sdkdir)
  18. set_toolset("sh", "aarch64-linux-musleabi-gcc")
  19. on_load(function(toolchain)
  20. toolchain:load_cross_toolchain()
  21. toolchain:add("cxflags", device)
  22. toolchain:add("cxflags", "-Wall -Wno-cpp -std=gnu99")
  23. toolchain:add("cxflags", "-fdiagnostics-color=always")
  24. toolchain:add("cxflags", "-O2")
  25. toolchain:add("cxflags", "-I" .. incdir)
  26. toolchain:add("shflags", device)
  27. toolchain:add("shflags", "-Wl,--gc-sections")
  28. toolchain:add("shflags", "-u,system_vectors")
  29. toolchain:add("shflags", "-T vdso.lds")
  30. end)
  31. toolchain_end()
  32. set_config("plat", "cross")
  33. set_config("target_os", "rt-smart")
  34. set_config("arch", "aarch64")
  35. rule("vdso_lds")
  36. set_extensions(".lds.S")
  37. on_buildcmd_file(function (target, batchcmds, sourcefile, opt)
  38. local incdir = os.curdir() .. "/../include"
  39. local targetfile = path.basename(sourcefile)
  40. local prefix = os.getenv("RTT_CC_PREFIX=") or "aarch64-linux-musleabi-"
  41. batchcmds:vrunv(prefix .. "gcc", {"-E", "-P", sourcefile, "-o", targetfile, "-I", incdir})
  42. end)
  43. target("rtos_vdso")
  44. set_toolchains("aarch64-smart-musleabi")
  45. add_rules("vdso_lds")
  46. set_kind("shared")
  47. add_files("vdso.lds.S")
  48. add_files("vdso_sys.c")
  49. set_targetdir("build")
  50. target_end()