将Makefile转换为Bazel?

将Makefile转换为Bazel?,makefile,xgboost,bazel,Makefile,Xgboost,Bazel,Bazel说最佳实践是不使用二进制依赖项。我有一个依赖项--使用Makefiles构建,我想知道将Makefiles转换为Bazel的规范策略是什么,以及程序员是否有任何标准工具作为转换的一部分。现在没有“规范方法”来做这件事。最简单的方法可能是直接使用非密封的泛型并声明规则所需的输出,例如: genrule( name = "xgboost", srcs = glob(["xgboost/**"]), cmd = "\n".join([ "DIR=$$(mk

Bazel说最佳实践是不使用二进制依赖项。我有一个依赖项--使用Makefiles构建,我想知道将Makefiles转换为Bazel的规范策略是什么,以及程序员是否有任何标准工具作为转换的一部分。

现在没有“规范方法”来做这件事。最简单的方法可能是直接使用非密封的泛型并声明规则所需的输出,例如:

genrule(
   name = "xgboost",
   srcs = glob(["xgboost/**"]),
   cmd = "\n".join([
         "DIR=$$(mktemp -d $${TMPDIR-/tmp}/tmp.XXXXXXX)",
         "(cd $(execution_root)/xgboost && cp -fr . \"$${DIR}\")",
         "(cd \"$${DIR}\" && make target)",
         "cp $${DIR}/output $@",
         ]),
   outs = ["xgboost-output"],
   local = 1,
)
当然,
target
output
xgboost output
将被适合您的内容所取代