diff options
author | Thomas Refis <refis.thomas@gmail.com> | 2018-10-10 16:16:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-10 16:16:00 +0100 |
commit | d68e0e207765350eb42fed37444d643669f98cee (patch) | |
tree | 5b5b289543b450cdbadacc15518876c60f87f86e /dune | |
parent | 8e801959e84e73219190dedad0b5b62b1f4f50a3 (diff) | |
download | ocaml-d68e0e207765350eb42fed37444d643669f98cee.tar.gz |
Provide a way to build the bytecode compiler using Dune (#2093)
Diffstat (limited to 'dune')
-rw-r--r-- | dune | 175 |
1 files changed, 175 insertions, 0 deletions
@@ -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 + )) |