BUILD.dtc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. load("@//build/kernel/kleaf:hermetic_tools.bzl", "hermetic_genrule")
  2. cc_library(
  3. name = "libfdt",
  4. copts = [
  5. "-Werror",
  6. "-Wno-macro-redefined",
  7. "-Wno-sign-compare",
  8. ],
  9. includes = ["libfdt"],
  10. srcs = glob([
  11. "libfdt/*.h",
  12. "libfdt/*.c",
  13. ]),
  14. target_compatible_with = ["@platforms//os:linux"],
  15. visibility = ["//visibility:public"],
  16. )
  17. copts = [
  18. "-Wall",
  19. "-Werror",
  20. "-Wno-sign-compare",
  21. "-Wno-missing-field-initializers",
  22. "-Wno-unused-parameter",
  23. ]
  24. hermetic_genrule(
  25. name = "lexer",
  26. srcs = ["dtc-lexer.l"],
  27. outs = ["dtc-lexer.lex.c"],
  28. cmd = "flex -o$@ $(location dtc-lexer.l)"
  29. )
  30. hermetic_genrule(
  31. name = "parser",
  32. srcs = ["dtc-parser.y"],
  33. outs = ["dtc-parser.tab.c", "dtc-parser.tab.h"],
  34. cmd = """
  35. bison -b dtc-parser -d $(location dtc-parser.y)
  36. cp ./*.tab.c $(location dtc-parser.tab.c)
  37. cp ./*.tab.h $(location dtc-parser.tab.h)
  38. """,
  39. )
  40. cc_library(
  41. name = "dtc_gen",
  42. copts = copts,
  43. srcs = [
  44. ":lexer",
  45. ":parser",
  46. ] + glob(["*.h"]),
  47. includes = ["."],
  48. deps = [":libfdt"],
  49. target_compatible_with = ["@platforms//os:linux"],
  50. visibility = ["//visibility:public"],
  51. )
  52. cc_binary(
  53. name = "dtc",
  54. copts = copts,
  55. defines = ["NO_YAML"],
  56. srcs = [
  57. "checks.c",
  58. "data.c",
  59. "dtc.c",
  60. "flattree.c",
  61. "fstree.c",
  62. "livetree.c",
  63. "srcpos.c",
  64. "treesource.c",
  65. "util.c",
  66. ] + glob(["*.h"]),
  67. includes = ["."],
  68. deps = [":libfdt", ":dtc_gen"],
  69. target_compatible_with = ["@platforms//os:linux"],
  70. visibility = ["//visibility:public"],
  71. )
  72. cc_binary(
  73. name = "fdtget",
  74. copts = copts,
  75. defines = ["NO_YAML"],
  76. srcs = [
  77. "fdtget.c",
  78. "util.c",
  79. "util.h",
  80. "version_non_gen.h",
  81. ],
  82. deps = [":libfdt"],
  83. target_compatible_with = ["@platforms//os:linux"],
  84. visibility = ["//visibility:public"],
  85. )
  86. cc_binary(
  87. name = "fdtput",
  88. copts = copts,
  89. defines = ["NO_YAML"],
  90. srcs = [
  91. "fdtput.c",
  92. "util.c",
  93. "util.h",
  94. "version_non_gen.h",
  95. ],
  96. deps = [":libfdt"],
  97. target_compatible_with = ["@platforms//os:linux"],
  98. visibility = ["//visibility:public"],
  99. )
  100. cc_binary(
  101. name = "fdtdump",
  102. copts = copts,
  103. defines = ["NO_YAML"],
  104. srcs = [
  105. "fdtdump.c",
  106. "util.c",
  107. "util.h",
  108. "version_non_gen.h",
  109. ],
  110. deps = [":libfdt"],
  111. target_compatible_with = ["@platforms//os:linux"],
  112. visibility = ["//visibility:public"],
  113. )
  114. cc_binary(
  115. name = "fdtoverlay",
  116. copts = copts,
  117. defines = ["NO_YAML"],
  118. srcs = [
  119. "fdtoverlay.c",
  120. "util.c",
  121. "util.h",
  122. "version_non_gen.h",
  123. ],
  124. deps = [":libfdt"],
  125. target_compatible_with = ["@platforms//os:linux"],
  126. visibility = ["//visibility:public"],
  127. )
  128. cc_binary(
  129. name = "fdtoverlaymerge",
  130. copts = copts,
  131. defines = ["NO_YAML"],
  132. srcs = [
  133. "fdtoverlaymerge.c",
  134. "util.c",
  135. "util.h",
  136. "version_non_gen.h",
  137. ],
  138. deps = [":libfdt"],
  139. target_compatible_with = ["@platforms//os:linux"],
  140. visibility = ["//visibility:public"],
  141. )
  142. exports_files([
  143. "libfdt/fdt.h",
  144. "libfdt/libfdt.h",
  145. "libfdt/libfdt_env.h",
  146. ])