(rule (targets int63_backend.ml)
 (deps (:first_dep select-int63-backend/select.ml))
 (action
  (run %{ocaml} %{first_dep} -portable-int63
   !%{lib-available:base-native-int63} -arch-sixtyfour %{arch_sixtyfour} -o
   %{targets})))

(rule (targets bytes_set_primitives.ml)
 (deps (:first_dep select-bytes-set-primitives/select.ml))
 (action
  (run %{ocaml} %{first_dep} -ocaml-version %{ocaml_version} -o %{targets})))

(rule (targets pow_overflow_bounds.ml)
 (deps (:first_dep ../generate/generate_pow_overflow_bounds.exe))
 (action (run %{first_dep} -atomic -o %{targets})) (mode fallback))

(library (name base) (public_name base)
 (libraries caml sexplib0 shadow_stdlib) (install_c_headers internalhash)
 (c_flags :standard -D_LARGEFILE64_SOURCE (:include mpopcnt.sexp))
 (c_names exn_stubs int_math_stubs internalhash_stubs hash_stubs am_testing)
 (preprocess no_preprocessing)
  (lint 
  (pps ppx_base ppx_base_lint -check-doc-comments -type-conv-keep-w32=impl
   -apply=js_style,base_lint,type_conv))
 (js_of_ocaml (javascript_files runtime.js)))

(rule (targets mpopcnt.sexp) (deps discover/discover.exe)
 (action (run ./discover/discover.exe -o %{targets})))

(ocamllex hex_lexer)
