Provide a way to build the bytecode compiler using Dune (#2093)
parent
8e801959e8
commit
d68e0e2077
|
@ -34,6 +34,8 @@
|
|||
_ocamltest
|
||||
_ocamltestd
|
||||
*.odoc
|
||||
.merlin
|
||||
_build
|
||||
|
||||
# local to root directory
|
||||
|
||||
|
|
59
.merlin
59
.merlin
|
@ -1,59 +0,0 @@
|
|||
S ./asmcomp
|
||||
B ./asmcomp
|
||||
|
||||
S ./asmcomp/debug
|
||||
B ./asmcomp/debug
|
||||
|
||||
S ./middle_end
|
||||
B ./middle_end
|
||||
|
||||
S ./middle_end/base_types
|
||||
B ./middle_end/base_types
|
||||
|
||||
S ./bytecomp
|
||||
B ./bytecomp
|
||||
|
||||
S ./driver
|
||||
B ./driver
|
||||
|
||||
S ./lex
|
||||
B ./lex
|
||||
|
||||
S ./otherlibs/bigarray
|
||||
B ./otherlibs/bigarray
|
||||
|
||||
S ./otherlibs/dynlink
|
||||
B ./otherlibs/dynlink
|
||||
|
||||
S ./otherlibs/graph
|
||||
B ./otherlibs/graph
|
||||
|
||||
S ./otherlibs/str
|
||||
B ./otherlibs/str
|
||||
|
||||
S ./otherlibs/systhreads
|
||||
B ./otherlibs/systhreads
|
||||
|
||||
S ./otherlibs/threads
|
||||
B ./otherlibs/threads
|
||||
|
||||
S ./otherlibs/unix
|
||||
B ./otherlibs/unix
|
||||
|
||||
S ./parsing
|
||||
B ./parsing
|
||||
|
||||
STDLIB ./stdlib
|
||||
FLG -open Stdlib -nopervasives
|
||||
|
||||
S ./toplevel
|
||||
B ./toplevel
|
||||
|
||||
S ./typing
|
||||
B ./typing
|
||||
|
||||
S ./utils
|
||||
B ./utils
|
||||
|
||||
S ./ocamltest
|
||||
B ./ocamltest
|
75
Makefile
75
Makefile
|
@ -298,68 +298,8 @@ endif
|
|||
|
||||
# The configuration file
|
||||
|
||||
# SUBST generates the sed substitution for the variable *named* in $1
|
||||
# SUBST_QUOTE does the same, adding double-quotes around non-empty strings
|
||||
# (see FLEXDLL_DIR which must empty if FLEXDLL_DIR is empty but an OCaml
|
||||
# string otherwise)
|
||||
SUBST_ESCAPE=$(subst ",\\",$(subst \,\\,$(if $2,$2,$($1))))
|
||||
SUBST=-e 's|%%$1%%|$(call SUBST_ESCAPE,$1,$2)|'
|
||||
SUBST_QUOTE2=-e 's|%%$1%%|$(if $2,"$2")|'
|
||||
SUBST_QUOTE=$(call SUBST_QUOTE2,$1,$(call SUBST_ESCAPE,$1,$2))
|
||||
FLEXLINK_LDFLAGS=$(if $(OC_LDFLAGS), -link "$(OC_LDFLAGS)")
|
||||
utils/config.ml: utils/config.mlp Makefile.config Makefile
|
||||
sed $(call SUBST,AFL_INSTRUMENT) \
|
||||
$(call SUBST,ARCH) \
|
||||
$(call SUBST,ARCMD) \
|
||||
$(call SUBST,ASM) \
|
||||
$(call SUBST,ASM_CFI_SUPPORTED) \
|
||||
$(call SUBST,BYTECCLIBS) \
|
||||
$(call SUBST,CC) \
|
||||
$(call SUBST,CCOMPTYPE) \
|
||||
$(call SUBST,CC_PROFILE) \
|
||||
$(call SUBST,OUTPUTOBJ) \
|
||||
$(call SUBST,EXT_ASM) \
|
||||
$(call SUBST,EXT_DLL) \
|
||||
$(call SUBST,EXE) \
|
||||
$(call SUBST,EXT_LIB) \
|
||||
$(call SUBST,EXT_OBJ) \
|
||||
$(call SUBST,FLAMBDA) \
|
||||
$(call SUBST,WITH_FLAMBDA_INVARIANTS) \
|
||||
$(call SUBST,FLEXLINK_FLAGS) \
|
||||
$(call SUBST_QUOTE,FLEXDLL_DIR) \
|
||||
$(call SUBST,HOST) \
|
||||
$(call SUBST,LIBDIR) \
|
||||
$(call SUBST,LIBUNWIND_AVAILABLE) \
|
||||
$(call SUBST,LIBUNWIND_LINK_FLAGS) \
|
||||
$(call SUBST,MKDLL) \
|
||||
$(call SUBST,MKEXE) \
|
||||
$(call SUBST,FLEXLINK_LDFLAGS) \
|
||||
$(call SUBST,MKMAINDLL) \
|
||||
$(call SUBST,MODEL) \
|
||||
$(call SUBST,NATIVECCLIBS) \
|
||||
$(call SUBST,OCAMLC_CFLAGS) \
|
||||
$(call SUBST,OCAMLC_CPPFLAGS) \
|
||||
$(call SUBST,OCAMLOPT_CFLAGS) \
|
||||
$(call SUBST,OCAMLOPT_CPPFLAGS) \
|
||||
$(call SUBST,PACKLD) \
|
||||
$(call SUBST,PROFILING) \
|
||||
$(call SUBST,PROFINFO_WIDTH) \
|
||||
$(call SUBST,RANLIBCMD) \
|
||||
$(call SUBST,FORCE_SAFE_STRING) \
|
||||
$(call SUBST,DEFAULT_SAFE_STRING) \
|
||||
$(call SUBST,WINDOWS_UNICODE) \
|
||||
$(call SUBST,SUPPORTS_SHARED_LIBRARIES) \
|
||||
$(call SUBST,SYSTEM) \
|
||||
$(call SUBST,SYSTHREAD_SUPPORT) \
|
||||
$(call SUBST,TARGET) \
|
||||
$(call SUBST,WITH_FRAME_POINTERS) \
|
||||
$(call SUBST,WITH_PROFINFO) \
|
||||
$(call SUBST,WITH_SPACETIME) \
|
||||
$(call SUBST,ENABLE_CALL_COUNTS) \
|
||||
$(call SUBST,FLAT_FLOAT_ARRAY) \
|
||||
$(call SUBST,CC_HAS_DEBUG_PREFIX_MAP) \
|
||||
$(call SUBST,AS_HAS_DEBUG_PREFIX_MAP) \
|
||||
$< > $@
|
||||
utils/config.ml:
|
||||
$(MAKE) -C utils config.ml
|
||||
|
||||
ifeq "$(UNIX_OR_WIN32)" "unix"
|
||||
.PHONY: reconfigure
|
||||
|
@ -908,14 +848,9 @@ $(COMMON:.cmo=.cmx) $(BYTECOMP:.cmo=.cmx) $(OPTCOMP:.cmo=.cmx): ocamlopt
|
|||
runtime/primitives:
|
||||
$(MAKE) -C runtime primitives
|
||||
|
||||
bytecomp/runtimedef.ml: runtime/primitives runtime/caml/fail.h
|
||||
(echo 'let builtin_exceptions = [|'; \
|
||||
cat runtime/caml/fail.h | tr -d '\r' | \
|
||||
sed -n -e 's|.*/\* \("[A-Za-z_]*"\) \*/$$| \1;|p'; \
|
||||
echo '|]'; \
|
||||
echo 'let builtin_primitives = [|'; \
|
||||
sed -e 's/.*/ "&";/' runtime/primitives; \
|
||||
echo '|]') > $@
|
||||
bytecomp/runtimedef.ml: bytecomp/generate_runtimedef.sh runtime/caml/fail.h \
|
||||
runtime/primitives
|
||||
$^ > $@
|
||||
|
||||
partialclean::
|
||||
rm -f bytecomp/runtimedef.ml
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(rule
|
||||
(targets arch.ml CSE.ml proc.ml reload.ml scheduling.ml selection.ml)
|
||||
(mode fallback)
|
||||
(deps (:conf ../Makefile.config)
|
||||
(glob_files amd64/*.ml)
|
||||
(glob_files arm/*.ml)
|
||||
(glob_files arm64/*.ml)
|
||||
(glob_files i386/*.ml)
|
||||
(glob_files power/*.ml)
|
||||
(glob_files s390x/*.ml))
|
||||
(action (bash "cp `grep 'ARCH=' %{conf} | cut -d'=' -f2`/*.ml .")))
|
||||
|
||||
(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
|
||||
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`"))))))
|
|
@ -0,0 +1,28 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(rule
|
||||
(targets opcodes.ml)
|
||||
(mode fallback)
|
||||
(deps (:instr (file ../runtime/caml/instruct.h)))
|
||||
(action
|
||||
(bash "%{dep:../tools/make_opcodes.exe} -opcodes < %{instr} > %{targets}")))
|
||||
|
||||
(rule
|
||||
(targets runtimedef.ml)
|
||||
(mode fallback)
|
||||
(deps (:fail (file ../runtime/caml/fail.h))
|
||||
(:prim (file ../runtime/primitives)))
|
||||
(action (with-stdout-to %{targets}
|
||||
(run ./generate_runtimedef.sh %{fail} %{prim}))))
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
#**************************************************************************
|
||||
#* *
|
||||
#* OCaml *
|
||||
#* *
|
||||
#* Xavier Leroy, projet Cristal, INRIA Rocquencourt *
|
||||
#* *
|
||||
#* Copyright 1999 Institut National de Recherche en Informatique et *
|
||||
#* en Automatique. *
|
||||
#* *
|
||||
#* All rights reserved. This file is distributed under the terms of *
|
||||
#* the GNU Lesser General Public License version 2.1, with the *
|
||||
#* special exception on linking described in the file LICENSE. *
|
||||
#* *
|
||||
#**************************************************************************
|
||||
|
||||
echo 'let builtin_exceptions = [|'
|
||||
cat "$1" | tr -d '\r' | \
|
||||
sed -n -e 's|.*/\* \("[A-Za-z_]*"\) \*/$| \1;|p'
|
||||
echo '|]'
|
||||
|
||||
echo 'let builtin_primitives = [|'
|
||||
sed -e 's/.*/ "&";/' "$2"
|
||||
echo '|]'
|
|
@ -0,0 +1,25 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(ocamllex lexer)
|
||||
(ocamlyacc parser)
|
||||
|
||||
(executable
|
||||
(name main)
|
||||
(modes byte)
|
||||
(flags (:standard -w -9))
|
||||
(modules_without_implementation parser_aux)
|
||||
(libraries ocamlcommon ocamltoplevel runtime stdlib unix))
|
||||
|
||||
(rule (copy main.exe ocamldebug.byte))
|
|
@ -0,0 +1,6 @@
|
|||
(rule
|
||||
(targets compdynlink.ml)
|
||||
(deps (:ml (file ../otherlibs/dynlink/dynlink.ml)))
|
||||
(action
|
||||
(with-stdout-to %{targets}
|
||||
(bash "grep -v 'REMOVE_ME for ../../debugger/dynlink.ml' %{ml}"))))
|
|
@ -0,0 +1,175 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(env
|
||||
(dev (flags (:standard -w +a-4-9-41-42-44-45-48)))
|
||||
(release (flags (:standard -w +a-4-9-41-42-44-45-48))))
|
||||
|
||||
;; Too annoying to get to work. Use (copy_files# ...) instead
|
||||
; (include_subdirs unqualified)
|
||||
; (ignored_subdirs (lex yacc testsuite ocamldoc ocamltest toplevel otherlibs))
|
||||
|
||||
(copy_files# utils/*.ml{,i})
|
||||
(copy_files# parsing/*.ml{,i})
|
||||
(copy_files# typing/*.ml{,i})
|
||||
(copy_files# bytecomp/*.ml{,i})
|
||||
(copy_files# driver/*.ml{,i})
|
||||
(copy_files# asmcomp/*.ml{,i})
|
||||
(copy_files# asmcomp/debug/*.ml{,i})
|
||||
(copy_files# middle_end/*.ml{,i})
|
||||
(copy_files# middle_end/base_types/*.ml{,i})
|
||||
|
||||
(library
|
||||
(name ocamlcommon)
|
||||
(wrapped false)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries stdlib)
|
||||
(modules_without_implementation
|
||||
annot asttypes cmo_format outcometree parsetree)
|
||||
(modules
|
||||
;; UTILS
|
||||
config build_path_prefix_map misc identifiable numbers arg_helper clflags
|
||||
profile terminfo ccomp warnings consistbl strongly_connected_components
|
||||
targetint
|
||||
|
||||
;; PARSING
|
||||
location longident docstrings syntaxerr ast_helper camlinternalMenhirLib
|
||||
parser lexer parse printast pprintast ast_mapper ast_iterator attr_helper
|
||||
builtin_attributes ast_invariants depend
|
||||
; manual update: mli only files
|
||||
asttypes parsetree
|
||||
|
||||
;; TYPING
|
||||
ident path primitive types btype oprint subst predef datarepr cmi_format env
|
||||
typedtree printtyped ctype printtyp includeclass mtype envaux includecore
|
||||
typedtreeIter typedtreeMap tast_mapper cmt_format untypeast includemod
|
||||
typetexp printpat parmatch stypes typedecl typeopt rec_check typecore
|
||||
typeclass typemod
|
||||
; manual update: mli only files
|
||||
annot outcometree
|
||||
|
||||
;; COMP
|
||||
lambda printlambda semantics_of_primitives switch matching translobj
|
||||
translattribute translprim translcore translclass translmod simplif
|
||||
runtimedef meta opcodes bytesections dll symtable pparse main_args compenv
|
||||
compmisc compdynlink compplugin makedepend compile_common
|
||||
; manual update: mli only files
|
||||
cmo_format
|
||||
; manual update: this is required.
|
||||
instruct
|
||||
))
|
||||
|
||||
(library
|
||||
(name ocamlbytecomp)
|
||||
(wrapped false)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries stdlib ocamlcommon)
|
||||
(modules
|
||||
bytegen printinstr emitcode bytelink bytelibrarian bytepackager errors
|
||||
compile))
|
||||
|
||||
(library
|
||||
(name ocamloptcomp)
|
||||
(wrapped false)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries stdlib ocamlcommon)
|
||||
(modules_without_implementation
|
||||
cmx_format x86_ast backend_intf inlining_decision_intf
|
||||
simplify_boxed_integer_ops_intf)
|
||||
(modules
|
||||
;; ASMCOMP
|
||||
arch backend_var cmm printcmm reg reg_with_debug_info reg_availability_set
|
||||
mach proc clambda printclambda export_info export_info_for_pack compilenv
|
||||
closure traverse_for_exported_symbols build_export_info closure_offsets
|
||||
flambda_to_clambda import_approx un_anf afl_instrument strmatch cmmgen
|
||||
interval printmach selectgen spacetime_profiling selection comballoc CSEgen
|
||||
CSE liveness spill split interf coloring linscan reloadgen reload deadcode
|
||||
printlinear linearize available_regs schedgen scheduling
|
||||
branch_relaxation_intf branch_relaxation emitaux emit asmgen asmlink
|
||||
asmlibrarian asmpackager opterrors optcompile
|
||||
; manual update: mli only files
|
||||
cmx_format
|
||||
|
||||
; arch specific files: we always include them even though depending on the
|
||||
; target architecture they might not be used.
|
||||
x86_ast
|
||||
x86_proc
|
||||
x86_dsl
|
||||
x86_gas
|
||||
x86_masm
|
||||
|
||||
;; MIDDLE_END
|
||||
int_replace_polymorphic_compare debuginfo tag linkage_name compilation_unit
|
||||
internal_variable_names variable mutable_variable id_types set_of_closures_id
|
||||
set_of_closures_origin closure_element closure_id closure_origin
|
||||
var_within_closure static_exception export_id symbol pass_wrapper
|
||||
allocated_const parameter projection flambda flambda_iterators flambda_utils
|
||||
inlining_cost effect_analysis freshening simple_value_approx lift_code
|
||||
closure_conversion_aux closure_conversion initialize_symbol_to_let_symbol
|
||||
lift_let_to_initialize_symbol find_recursive_functions invariant_params
|
||||
inconstant_idents alias_analysis lift_constants share_constants
|
||||
simplify_common remove_unused_arguments remove_unused_closure_vars
|
||||
remove_unused_program_constructs simplify_boxed_integer_ops
|
||||
simplify_primitives inlining_stats_types inlining_stats
|
||||
inline_and_simplify_aux remove_free_vars_equal_to_args extract_projections
|
||||
augment_specialised_args unbox_free_vars_of_closures unbox_specialised_args
|
||||
unbox_closures inlining_transforms inlining_decision inline_and_simplify
|
||||
ref_to_variables flambda_invariants middle_end
|
||||
; manual update: mli only files
|
||||
backend_intf inlining_decision_intf simplify_boxed_integer_ops_intf
|
||||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;
|
||||
;;; ocamlc ;;;
|
||||
;;;;;;;;;;;;;;
|
||||
|
||||
(executable
|
||||
(name main)
|
||||
(modes byte)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries ocamlbytecomp ocamlcommon runtime stdlib)
|
||||
(modules main))
|
||||
|
||||
(rule
|
||||
(copy main.exe ocamlc.byte))
|
||||
|
||||
;;;;;;;;;;;;;;;;
|
||||
;;; ocamlopt ;;;
|
||||
;;;;;;;;;;;;;;;;
|
||||
|
||||
(executable
|
||||
(name optmain)
|
||||
(modes byte)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries ocamloptcomp ocamlcommon runtime stdlib)
|
||||
(modules optmain))
|
||||
|
||||
(rule
|
||||
(copy optmain.exe ocamlopt.byte))
|
||||
|
||||
;;;;;;;;;;;;;;;
|
||||
;;; aliases ;;;
|
||||
;;;;;;;;;;;;;;;
|
||||
|
||||
(alias
|
||||
(name world)
|
||||
(deps ocamlc.byte
|
||||
ocamlopt.byte
|
||||
debugger/ocamldebug.byte
|
||||
ocamldoc/ocamldoc.byte
|
||||
ocamltest/ocamltest.byte
|
||||
toplevel/ocaml.byte
|
||||
toplevel/expunge.exe
|
||||
))
|
|
@ -0,0 +1,2 @@
|
|||
(lang dune 1.3)
|
||||
(using experimental_building_ocaml_compiler_with_dune 0.1)
|
|
@ -0,0 +1,25 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(ocamllex odoc_lexer odoc_ocamlhtml odoc_see_lexer odoc_text_lexer)
|
||||
(ocamlyacc odoc_parser odoc_text_parser)
|
||||
|
||||
(executable
|
||||
(name odoc)
|
||||
(modes byte)
|
||||
(flags (:standard -nostdlib -w -9-32))
|
||||
(libraries dynlink ocamlcommon stdlib runtime str unix))
|
||||
|
||||
(rule
|
||||
(copy odoc.exe ocamldoc.byte))
|
|
@ -0,0 +1,52 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(ocamllex
|
||||
(modules tsl_lexer)
|
||||
(mode fallback))
|
||||
|
||||
(ocamlyacc
|
||||
(modules tsl_parser)
|
||||
(mode fallback))
|
||||
|
||||
(rule
|
||||
(targets ocamltest_config.ml)
|
||||
(deps ../Makefile.config ../Makefile.common Makefile
|
||||
./ocamltest_config.ml.in ./getocamloptdefaultflags)
|
||||
(action (run make %{targets})))
|
||||
|
||||
;; FIXME: handle UNIX_OR_WIN32 or something similar
|
||||
(library
|
||||
(name ocamltest_core_and_plugin)
|
||||
(modes byte)
|
||||
(wrapped false)
|
||||
(flags (:standard -nostdlib))
|
||||
(libraries ocamlcommon stdlib)
|
||||
(modules (:standard \ options main))
|
||||
(c_flags (-DCAML_INTERNALS -I%{project_root}/runtime)) ; fixme
|
||||
(c_names run_unix run_stubs ocamltest_stdlib_stubs))
|
||||
|
||||
(rule
|
||||
(targets empty.ml)
|
||||
(deps (source_tree %{project_root}/runtime/caml))
|
||||
(action (write-file %{targets} "(* hack *)")))
|
||||
|
||||
(executable
|
||||
(name main)
|
||||
(modes byte)
|
||||
(flags (:standard -nostdlib))
|
||||
(modules options main)
|
||||
(libraries ocamltest_core_and_plugin runtime stdlib))
|
||||
|
||||
(rule (copy main.exe ocamltest.byte))
|
|
@ -0,0 +1,26 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(library
|
||||
(name dynlink)
|
||||
(wrapped false)
|
||||
(modules dynlink dynlinkaux)
|
||||
; the -33 is specific to the hackery done with dune.
|
||||
(flags (:standard -nostdlib -w -33))
|
||||
(libraries ocamlcommon stdlib))
|
||||
|
||||
(rule
|
||||
(targets dynlinkaux.ml)
|
||||
(action (write-file %{targets}
|
||||
"(* empty because we are linking with ocamlcommon *)")))
|
|
@ -0,0 +1,20 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(library
|
||||
(name str)
|
||||
(modes byte)
|
||||
(flags (:standard -nostdlib))
|
||||
(libraries stdlib)
|
||||
(c_names strstubs))
|
|
@ -0,0 +1,33 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(library
|
||||
(name unix)
|
||||
(wrapped false)
|
||||
(modes byte)
|
||||
(flags (:standard -nostdlib -nolabels))
|
||||
(c_flags (-I %{project_root}/runtime))
|
||||
(libraries stdlib)
|
||||
(c_names
|
||||
accept access addrofstr alarm bind channels chdir chmod chown chroot close
|
||||
fsync closedir connect cst2constr cstringv dup dup2 envir errmsg execv execve
|
||||
execvp exit fchmod fchown fcntl fork ftruncate getaddrinfo getcwd getegid
|
||||
geteuid getgid getgr getgroups gethost gethostname getlogin getnameinfo
|
||||
getpeername getpid getppid getproto getpw gettimeofday getserv getsockname
|
||||
getuid gmtime initgroups isatty itimer kill link listen lockf lseek mkdir
|
||||
mkfifo mmap mmap_ba nice open opendir pipe putenv read readdir readlink
|
||||
rename rewinddir rmdir select sendrecv setgid setgroups setsid setuid
|
||||
shutdown signals sleep socket socketaddr socketpair sockopt stat strofaddr
|
||||
symlink termios time times truncate umask unixsupport unlink utimes wait
|
||||
write))
|
|
@ -0,0 +1,48 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
;; We're just reusing the stuff from boot/ here.
|
||||
;; One could add a dune file in boot/menhir/ with the appropriate rules if we
|
||||
;; want to regenerate the parser while building with dune, but it doesn't seem
|
||||
;; essential right now.
|
||||
|
||||
(rule
|
||||
(targets camlinternalMenhirLib.ml)
|
||||
(mode fallback)
|
||||
(action (copy# ../boot/menhir/menhirLib.ml %{targets})))
|
||||
|
||||
(rule
|
||||
(targets camlinternalMenhirLib.mli)
|
||||
(mode fallback)
|
||||
(action (copy# ../boot/menhir/menhirLib.mli %{targets})))
|
||||
|
||||
(rule
|
||||
(targets parser.ml)
|
||||
(mode fallback)
|
||||
(deps (:dep ../boot/menhir/parser.ml))
|
||||
(action
|
||||
(with-stdout-to %{targets}
|
||||
(bash "cat %{dep} | sed 's/MenhirLib/CamlinternalMenhirLib/g'"))))
|
||||
|
||||
(rule
|
||||
(targets parser.mli)
|
||||
(mode fallback)
|
||||
(deps (:dep ../boot/menhir/parser.mli))
|
||||
(action
|
||||
(with-stdout-to %{targets}
|
||||
(bash "cat %{dep} | sed 's/MenhirLib/CamlinternalMenhirLib/g'"))))
|
||||
|
||||
(ocamllex
|
||||
(modules lexer)
|
||||
(mode fallback))
|
|
@ -0,0 +1,29 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(rule
|
||||
(targets jumptbl.h)
|
||||
(mode fallback)
|
||||
(deps (:h instruct.h))
|
||||
(action
|
||||
(with-stdout-to %{targets}
|
||||
(bash "cat %{h} | tr -d '\\r' | \
|
||||
sed -n -e '/^ /s/ \\([A-Z]\\)/ \\&\\&lbl_\\1/gp' -e '/^}/q'"))))
|
||||
|
||||
(rule
|
||||
(targets version.h)
|
||||
(mode fallback)
|
||||
(action
|
||||
(with-stdout-to %{targets}
|
||||
(run %{dep:../../tools/make-version-header.sh} %{dep:../../VERSION}))))
|
|
@ -0,0 +1,58 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(rule
|
||||
(targets primitives)
|
||||
(mode fallback)
|
||||
(deps alloc.c array.c compare.c extern.c floats.c gc_ctrl.c hash.c intern.c
|
||||
interp.c ints.c io.c lexing.c md5.c meta.c obj.c parsing.c signals.c
|
||||
str.c sys.c callback.c weak.c finalise.c stacks.c dynlink.c
|
||||
backtrace_byt.c backtrace.c spacetime_byt.c afl.c bigarray.c)
|
||||
(action (with-stdout-to %{targets} (run %{dep:gen_primitives.sh}))))
|
||||
|
||||
(rule
|
||||
(targets libcamlrun.a)
|
||||
(mode fallback)
|
||||
(deps ../Makefile.config ../Makefile.common Makefile
|
||||
(glob_files caml/*.h)
|
||||
interp.c misc.c stacks.c fix_code.c startup_aux.c startup_byt.c
|
||||
freelist.c major_gc.c minor_gc.c memory.c alloc.c roots_byt.c
|
||||
globroots.c fail_byt.c signals.c signals_byt.c printexc.c
|
||||
backtrace_byt.c backtrace.c compare.c ints.c floats.c str.c array.c
|
||||
io.c extern.c intern.c hash.c sys.c meta.c parsing.c gc_ctrl.c md5.c
|
||||
obj.c lexing.c callback.c debugger.c weak.c compact.c finalise.c
|
||||
custom.c dynlink.c spacetime_byt.c afl.c unix.c win32.c bigarray.c
|
||||
main.c)
|
||||
(action
|
||||
(progn
|
||||
(bash "touch .depend") ; hack.
|
||||
(run make %{targets})
|
||||
(bash "rm .depend"))))
|
||||
|
||||
;; HACK
|
||||
(library
|
||||
(name runtime)
|
||||
(modes byte)
|
||||
(wrapped false)
|
||||
(modules runtime)
|
||||
(flags (-nostdlib -nopervasives))
|
||||
(self_build_stubs_archive (runtime)))
|
||||
|
||||
(rule
|
||||
(targets libruntime_stubs.a)
|
||||
(action (copy libcamlrun.a %{targets})))
|
||||
|
||||
(rule
|
||||
(targets runtime.ml)
|
||||
(action (write-file %{targets} "let linkme = ()")))
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
|
||||
#**************************************************************************
|
||||
#* *
|
||||
#* OCaml *
|
||||
#* *
|
||||
#* Xavier Leroy, projet Cristal, INRIA Rocquencourt *
|
||||
#* *
|
||||
#* Copyright 1999 Institut National de Recherche en Informatique et *
|
||||
#* en Automatique. *
|
||||
#* *
|
||||
#* All rights reserved. This file is distributed under the terms of *
|
||||
#* the GNU Lesser General Public License version 2.1, with the *
|
||||
#* special exception on linking described in the file LICENSE. *
|
||||
#* *
|
||||
#**************************************************************************
|
||||
|
||||
# duplicated from $(ROOTDIR)/runtime/Makefile
|
||||
|
||||
(
|
||||
for prim in \
|
||||
alloc array compare extern floats gc_ctrl hash intern interp ints io \
|
||||
lexing md5 meta obj parsing signals str sys callback weak finalise \
|
||||
stacks dynlink backtrace_byt backtrace spacetime_byt afl bigarray
|
||||
do
|
||||
sed -n -e "s/CAMLprim value \([a-z0-9_][a-z0-9_]*\).*/\1/p" "$prim.c"
|
||||
done
|
||||
) | LC_ALL=C sort | uniq
|
|
@ -0,0 +1,91 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(library
|
||||
(name stdlib)
|
||||
(stdlib
|
||||
(exit_module std_exit)
|
||||
(internal_modules Camlinternal*)
|
||||
(modules_before_stdlib
|
||||
camlinternalFormatBasics))
|
||||
(flags (:standard -w -9))
|
||||
;; We're listing the modules here to avoid building the Labels ones.
|
||||
(modules
|
||||
spacetime
|
||||
arg
|
||||
array
|
||||
bigarray
|
||||
buffer
|
||||
bytes
|
||||
callback
|
||||
camlinternalFormat
|
||||
camlinternalFormatBasics
|
||||
camlinternalLazy
|
||||
camlinternalMod
|
||||
camlinternalOO
|
||||
char
|
||||
complex
|
||||
digest
|
||||
ephemeron
|
||||
filename
|
||||
float
|
||||
format
|
||||
gc
|
||||
genlex
|
||||
hashtbl
|
||||
int32
|
||||
int64
|
||||
lazy
|
||||
lexing
|
||||
list
|
||||
map
|
||||
marshal
|
||||
nativeint
|
||||
obj
|
||||
oo
|
||||
option
|
||||
parsing
|
||||
pervasives
|
||||
printexc
|
||||
printf
|
||||
queue
|
||||
random
|
||||
result
|
||||
scanf
|
||||
seq
|
||||
set
|
||||
stack
|
||||
stdlib
|
||||
stream
|
||||
string
|
||||
sys
|
||||
uchar
|
||||
weak
|
||||
;; booh
|
||||
std_exit
|
||||
)
|
||||
(preprocess
|
||||
(per_module
|
||||
((action
|
||||
(run awk -v dune_wrapped=true
|
||||
-f %{dep:expand_module_aliases.awk} %{input-file}))
|
||||
stdlib))))
|
||||
|
||||
(rule
|
||||
(targets sys.ml)
|
||||
(deps (:version ../VERSION) (:p sys.mlp))
|
||||
(action
|
||||
(with-stdout-to %{targets}
|
||||
(bash
|
||||
"sed -e \"s|%%VERSION%%|`sed -e 1q %{version} | tr -d '\r'`|\" %{p}"))))
|
|
@ -23,8 +23,10 @@ NR == 1 { printf ("# 1 \"%s\"\n", FILENAME) }
|
|||
state=2;
|
||||
else if ($1 == "module")
|
||||
{ if (ocamldoc!="true") printf("\n(** @canonical %s *)", $2);
|
||||
printf("\nmodule %s = Stdlib__%s%s\n", $2,
|
||||
tolower(substr($4,1,1)), substr($4,2));
|
||||
first_letter=substr($4,1,1);
|
||||
if (dune_wrapped!="true")
|
||||
first_letter=tolower(first_letter);
|
||||
printf("\nmodule %s = Stdlib__%s%s\n", $2, first_letter, substr($4,2));
|
||||
}
|
||||
else
|
||||
print
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(executables
|
||||
(names make_opcodes cvt_emit)
|
||||
(modules make_opcodes cvt_emit))
|
||||
|
||||
(ocamllex
|
||||
(modules make_opcodes)
|
||||
(mode fallback))
|
||||
|
||||
(ocamllex
|
||||
(modules cvt_emit)
|
||||
(mode fallback))
|
|
@ -0,0 +1,98 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(library
|
||||
(name ocamltoplevel)
|
||||
(wrapped false)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries stdlib ocamlcommon ocamlbytecomp)
|
||||
(modules genprintval toploop trace topdirs topmain))
|
||||
|
||||
(executable
|
||||
(name topstart)
|
||||
(modes byte)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries ocamlbytecomp ocamlcommon ocamltoplevel runtime stdlib)
|
||||
(modules topstart))
|
||||
|
||||
(executable
|
||||
(name expunge)
|
||||
(modes byte)
|
||||
(flags (:standard -principal -nostdlib))
|
||||
(libraries ocamlbytecomp ocamlcommon runtime stdlib)
|
||||
(modules expunge))
|
||||
|
||||
(rule
|
||||
(targets ocaml.byte)
|
||||
(action (run %{ocaml_where}/expunge %{dep:topstart.exe} %{targets}
|
||||
; FIXME: inlined $(STDLIB_MODULES) ... minus Labels ones ...
|
||||
stdlib__Spacetime
|
||||
stdlib__Arg
|
||||
stdlib__Array
|
||||
; stdlib__ArrayLabels
|
||||
stdlib__Bigarray
|
||||
stdlib__Buffer
|
||||
stdlib__Bytes
|
||||
; stdlib__BytesLabels
|
||||
stdlib__Callback
|
||||
camlinternalFormat
|
||||
camlinternalFormatBasics
|
||||
camlinternalLazy
|
||||
camlinternalMod
|
||||
camlinternalOO
|
||||
stdlib__Char
|
||||
stdlib__Complex
|
||||
stdlib__Digest
|
||||
stdlib__Ephemeron
|
||||
stdlib__Filename
|
||||
stdlib__Float
|
||||
stdlib__Format
|
||||
stdlib__Gc
|
||||
stdlib__Genlex
|
||||
stdlib__Hashtbl
|
||||
stdlib__Int32
|
||||
stdlib__Int64
|
||||
stdlib__Lazy
|
||||
stdlib__Lexing
|
||||
stdlib__List
|
||||
; stdlib__ListLabels
|
||||
stdlib__Map
|
||||
stdlib__Marshal
|
||||
; stdlib__MoreLabels
|
||||
stdlib__Nativeint
|
||||
stdlib__Obj
|
||||
stdlib__Oo
|
||||
stdlib__Option
|
||||
stdlib__Parsing
|
||||
stdlib__Pervasives
|
||||
stdlib__Printexc
|
||||
stdlib__Printf
|
||||
stdlib__Queue
|
||||
stdlib__Random
|
||||
stdlib__Result
|
||||
stdlib__Scanf
|
||||
stdlib__Seq
|
||||
stdlib__Set
|
||||
stdlib__Stack
|
||||
; stdlib__StdLabels
|
||||
stdlib
|
||||
stdlib__Stream
|
||||
stdlib__String
|
||||
; stdlib__StringLabels
|
||||
stdlib__Sys
|
||||
stdlib__Uchar
|
||||
stdlib__Weak
|
||||
; the rest
|
||||
outcometree topdirs toploop
|
||||
)))
|
|
@ -0,0 +1,83 @@
|
|||
#**************************************************************************
|
||||
#* *
|
||||
#* OCaml *
|
||||
#* *
|
||||
#* Xavier Leroy, projet Cristal, INRIA Rocquencourt *
|
||||
#* *
|
||||
#* Copyright 1999 Institut National de Recherche en Informatique et *
|
||||
#* en Automatique. *
|
||||
#* *
|
||||
#* All rights reserved. This file is distributed under the terms of *
|
||||
#* the GNU Lesser General Public License version 2.1, with the *
|
||||
#* special exception on linking described in the file LICENSE. *
|
||||
#* *
|
||||
#**************************************************************************
|
||||
|
||||
# The Makefile for generating the configuration file
|
||||
|
||||
ROOTDIR = ..
|
||||
|
||||
include $(ROOTDIR)/Makefile.config
|
||||
|
||||
# SUBST generates the sed substitution for the variable *named* in $1
|
||||
# SUBST_QUOTE does the same, adding double-quotes around non-empty strings
|
||||
# (see FLEXDLL_DIR which must empty if FLEXDLL_DIR is empty but an OCaml
|
||||
# string otherwise)
|
||||
SUBST_ESCAPE=$(subst ",\\",$(subst \,\\,$(if $2,$2,$($1))))
|
||||
SUBST=-e 's|%%$1%%|$(call SUBST_ESCAPE,$1,$2)|'
|
||||
SUBST_QUOTE2=-e 's|%%$1%%|$(if $2,"$2")|'
|
||||
SUBST_QUOTE=$(call SUBST_QUOTE2,$1,$(call SUBST_ESCAPE,$1,$2))
|
||||
FLEXLINK_LDFLAGS=$(if $(OC_LDFLAGS), -link "$(OC_LDFLAGS)")
|
||||
config.ml: config.mlp $(ROOTDIR)/Makefile.config
|
||||
sed $(call SUBST,AFL_INSTRUMENT) \
|
||||
$(call SUBST,ARCH) \
|
||||
$(call SUBST,ARCMD) \
|
||||
$(call SUBST,ASM) \
|
||||
$(call SUBST,ASM_CFI_SUPPORTED) \
|
||||
$(call SUBST,BYTECCLIBS) \
|
||||
$(call SUBST,CC) \
|
||||
$(call SUBST,CCOMPTYPE) \
|
||||
$(call SUBST,CC_PROFILE) \
|
||||
$(call SUBST,OUTPUTOBJ) \
|
||||
$(call SUBST,EXT_ASM) \
|
||||
$(call SUBST,EXT_DLL) \
|
||||
$(call SUBST,EXE) \
|
||||
$(call SUBST,EXT_LIB) \
|
||||
$(call SUBST,EXT_OBJ) \
|
||||
$(call SUBST,FLAMBDA) \
|
||||
$(call SUBST,WITH_FLAMBDA_INVARIANTS) \
|
||||
$(call SUBST,FLEXLINK_FLAGS) \
|
||||
$(call SUBST_QUOTE,FLEXDLL_DIR) \
|
||||
$(call SUBST,HOST) \
|
||||
$(call SUBST,LIBDIR) \
|
||||
$(call SUBST,LIBUNWIND_AVAILABLE) \
|
||||
$(call SUBST,LIBUNWIND_LINK_FLAGS) \
|
||||
$(call SUBST,MKDLL) \
|
||||
$(call SUBST,MKEXE) \
|
||||
$(call SUBST,FLEXLINK_LDFLAGS) \
|
||||
$(call SUBST,MKMAINDLL) \
|
||||
$(call SUBST,MODEL) \
|
||||
$(call SUBST,NATIVECCLIBS) \
|
||||
$(call SUBST,OCAMLC_CFLAGS) \
|
||||
$(call SUBST,OCAMLC_CPPFLAGS) \
|
||||
$(call SUBST,OCAMLOPT_CFLAGS) \
|
||||
$(call SUBST,OCAMLOPT_CPPFLAGS) \
|
||||
$(call SUBST,PACKLD) \
|
||||
$(call SUBST,PROFILING) \
|
||||
$(call SUBST,PROFINFO_WIDTH) \
|
||||
$(call SUBST,RANLIBCMD) \
|
||||
$(call SUBST,FORCE_SAFE_STRING) \
|
||||
$(call SUBST,DEFAULT_SAFE_STRING) \
|
||||
$(call SUBST,WINDOWS_UNICODE) \
|
||||
$(call SUBST,SUPPORTS_SHARED_LIBRARIES) \
|
||||
$(call SUBST,SYSTEM) \
|
||||
$(call SUBST,SYSTHREAD_SUPPORT) \
|
||||
$(call SUBST,TARGET) \
|
||||
$(call SUBST,WITH_FRAME_POINTERS) \
|
||||
$(call SUBST,WITH_PROFINFO) \
|
||||
$(call SUBST,WITH_SPACETIME) \
|
||||
$(call SUBST,ENABLE_CALL_COUNTS) \
|
||||
$(call SUBST,FLAT_FLOAT_ARRAY) \
|
||||
$(call SUBST,CC_HAS_DEBUG_PREFIX_MAP) \
|
||||
$(call SUBST,AS_HAS_DEBUG_PREFIX_MAP) \
|
||||
$< > $@
|
|
@ -0,0 +1,21 @@
|
|||
;**************************************************************************
|
||||
;* *
|
||||
;* OCaml *
|
||||
;* *
|
||||
;* Thomas Refis, Jane Street Europe *
|
||||
;* *
|
||||
;* Copyright 2018 Jane Street Group LLC *
|
||||
;* *
|
||||
;* All rights reserved. This file is distributed under the terms of *
|
||||
;* the GNU Lesser General Public License version 2.1, with the *
|
||||
;* special exception on linking described in the file LICENSE. *
|
||||
;* *
|
||||
;**************************************************************************
|
||||
|
||||
(rule
|
||||
(targets config.ml)
|
||||
(mode fallback)
|
||||
(deps (:mk Makefile)
|
||||
../Makefile.config
|
||||
config.mlp)
|
||||
(action (system "make -f %{mk} %{targets}")))
|
Loading…
Reference in New Issue