obazl / rules_ocaml

A Bazel Language Support Package for OCaml

Home Page:https://obazl.github.io/docs_obazl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OCaml compiler bazelization

mobileink opened this issue · comments

Preprocessing

utils/config.mlp files is preprocessed with sed, using makefiles. See utils/Makefile target config.ml.

Platform-specific directories under asmcomp contain emit.mlp, e.g. asmcomp/i386/emit.mlp. These are processed by a rule in asmcomp/dune:

(rule
 (targets emit.ml)
 (mode    fallback)
 (deps    (:conf ../Makefile.config)
          amd64/emit.mlp
          arm/emit.mlp
          arm64/emit.mlp
          i386/emit.mlp
          power/emit.mlp
          riscv/emit.mlp
          s390x/emit.mlp)
 (action
   (progn
     (with-stdout-to contains-input-name
       (bash "echo `grep '^ARCH=' %{conf} | cut -d'=' -f2`/emit.mlp"))
     (with-stdout-to %{targets}
       (progn
         (bash "echo \\# 1 \\\"`cat contains-input-name`\\\"")
         (bash "%{dep:../tools/cvt_emit.exe} < `cat contains-input-name`"))))))