Skip to content

Latest commit

 

History

History
95 lines (80 loc) · 4.95 KB

BOOTSTRAPPING.org

File metadata and controls

95 lines (80 loc) · 4.95 KB

boot

The bootstrap uses the file src/Makefile and src/Makefile.nt with default options, like CC=cc. If something goes wrong, you can edit these files by hand to suit your taste. However, the src/Makefiles are generated, and they will be clobbered when you run omake for the first time.

make bootstrap

omake_gen_parse

library

lm

ocamlc -g  -a -o lm.cma lm_printf.cmo lm_debug.cmo lm_heap.cmo lm_list_util.cmo lm_array_util.cmo lm_set_sig.cmo lm_set.cmo lm_map_sig.cmo lm_map.cmo lm_int_set.cmo lm_termsize.cmo lm_terminfo.cmo lm_arg.cmo lm_index.cmo lm_thread_sig.cmo lm_thread_core.cmo lm_thread.cmo lm_string_util.cmo lm_string_set.cmo lm_hash_sig.cmo lm_hash.cmo lm_symbol.cmo lm_location.cmo lm_position.cmo lm_filename_util.cmo lm_uname.cmo lm_thread_pool.cmo lm_channel.cmo lm_lexer.cmo lm_parser.cmo lm_unix_util.cmo lm_glob.cmo lm_db.cmo lm_notify.cmo lm_fs_case_sensitive.cmo
ocamlc -g -custom -o omake_gen_magic  unix.cma  lm.cma omake_gen_magic.cmo

omake_gen_magic

src/magic/omake_gen_magic.ml

ocamlc -g -custom -o omake_gen_magic  unix.cma  lm.cma omake_gen_magic.cmo

magic

boot/omake_magic.ml

./omake_gen_magic -o omake_magic.ml --version version.txt --magic --cache-files lm_filename_util.ml lm_hash.ml lm_location.ml lm_map.ml lm_position.ml lm_set.ml lm_symbol.ml omake_value_type.ml omake_cache.ml omake_cache_type.ml omake_node.ml omake_command_digest.ml    --omc-files lm_filename_util.ml lm_hash.ml lm_location.ml lm_symbol.ml lm_map.ml lm_set.ml omake_node.ml omake_ir.ml    --omo-files lm_filename_util.ml lm_hash.ml lm_lexer.ml lm_location.ml lm_map.ml lm_parser.ml lm_position.ml lm_set.ml lm_symbol.ml omake_value_type.ml omake_cache_type.ml omake_ir.ml omake_node.ml omake_env.ml
ocamlc -g -c omake_magic.ml
ocamlc -g  -a -o magic.cma omake_magic.cmo

util

ocamlc -g  -a -o util.cma fmarshal.cmo ocaml_patch.cmo omake_util.cmo omake_wild.cmo omake_print_util.cmo omake_readline.cmo omake_printf.cmo omake_marshal.cmo omake_handle_table.cmo

ast

ocamlc -g  -a -o ast.cma omake_ast.cmo omake_ast_util.cmo omake_ast_print.cmo   

ir

ocamlc -g  -a -o ir.cma omake_options.cmo omake_symbol.cmo omake_state.cmo omake_node_type.cmo omake_node_sig.cmo omake_node.cmo omake_virtual_id.cmo omake_install.cmo omake_ir.cmo omake_var.cmo omake_ir_util.cmo omake_ir_print.cmo omake_ir_free_vars.cmo omake_lexer.cmo omake_parser.cmo omake_value_type.cmo omake_command_type.cmo omake_value_print.cmo omake_pos.cmo omake_shell_type.cmo omake_command.cmo omake_cache_type.cmo omake_cache.cmo

env

ocamlc -g  -a -o env.cma omake_env.cmo omake_exn_print.cmo omake_ast_parse.cmo omake_ast_lex.cmo omake_exp_parse.cmo omake_exp_lex.cmo omake_ir_ast.cmo omake_ir_semant.cmo omake_command_digest.cmo   

eval

ocamlc -g  -a -o eval.cma omake_eval.cmo omake_value.cmo   

shell

ocamlc -g  -a -o shell.cma omake_shell_parse.cmo omake_shell_lex.cmo omake_shell_sys_type.cmo omake_shell_sys.cmo omake_shell_job.cmo omake_shell_completion.cmo

builtin

ocamlc -g -linkall -a -o builtin.cma omake_builtin_base.cmo omake_builtin_arith.cmo omake_builtin_file.cmo omake_builtin_fun.cmo omake_builtin_io.cmo omake_builtin_io_fun.cmo omake_builtin_sys.cmo omake_builtin_target.cmo omake_builtin_shell.cmo omake_builtin_rule.cmo omake_builtin_test.cmo omake_builtin_object.cmo

clib

cc  -I"`ocamlc -where`" -c lm_heap.c
cc  -I"`ocamlc -where`" -c lm_channel.c
cc  -I"`ocamlc -where`" -c lm_printf.c
cc  -I"`ocamlc -where`" -c lm_ctype.c
cc  -I"`ocamlc -where`" -c lm_uname_ext.c
cc  -I"`ocamlc -where`" -c lm_unix_cutil.c
cc  -I"`ocamlc -where`" -c lm_compat_win32.c
cc  -I"`ocamlc -where`" -c readline.c
cc  -I"`ocamlc -where`" -c omake_shell_sys.c
cc  -I"`ocamlc -where`" -c fam_win32.c
cc  -I"`ocamlc -where`" -c fam_kqueue.c
cc  -I"`ocamlc -where`" -c fam_inotify.c
cc  -I"`ocamlc -where`" -c lm_notify.c
cc  -I"`ocamlc -where`" -c lm_termsize.c
cc  -I"`ocamlc -where`" -c lm_terminfo.c
cc  -I"`ocamlc -where`" -c lm_fs_case_sensitive.c
rm -f clib.a
ar cq clib.a lm_heap.o lm_channel.o lm_printf.o lm_ctype.o lm_uname_ext.o lm_unix_cutil.o lm_compat_win32.o readline.o omake_shell_sys.o fam_win32.o fam_kqueue.o fam_inotify.o lm_notify.o lm_termsize.o lm_terminfo.o lm_fs_case_sensitive.o

boot/omake

ocamlc -g -custom -o omake -cclib clib.a unix.cma  lm.cma util.cma magic.cma ast.cma ir.cma env.cma exec.cma eval.cma shell.cma build.cma builtin.cma omake_shell.cmo omake_main.cmo   

exe