OCAMLINCLUDES[] +=
    ../libmojave
    ../util
    ../ast
    ../ir
    ../env

FILES[] =
    omake_shell_type
    omake_shell_parse
    omake_shell_lex
    omake_shell_sys_type
    omake_shell_sys
    omake_shell_job

MakeOCamlLibrary(shell, $(FILES))

#
# Generated files
#
GENERATED_FILES[] =
    omake_shell_lex.ml
    omake_shell_parse.mli
    omake_shell_parse.ml
    omake_shell_sys.ml

OCamlGeneratedFiles($(GENERATED_FILES))

OMAKE_SHELL_SYS = $(if $(THREADS_ENABLED), omake_shell_sys_win32, omake_shell_sys_unix).ml

omake_shell_sys.ml: $(OMAKE_SHELL_SYS)
    $(symlink $<, $@)

clean:
    $(CLEAN) $(GENERATED_FILES)

########################################################################
# Generate a Makefile
#
win32 = $'$(win32)'

MAKEFILE_TEXT += $"""
omake_shell_lex.ml: omake_shell_lex.mll
omake_shell_lex.cmo: omake_shell_lex.cmi omake_shell_parse.cmi
omake_shell_parse.ml: omake_shell_parse.mly
omake_shell_parse.mli: omake_shell_parse.mly
omake_shell_parse.cmo: omake_shell_parse.cmi
"""

MakeLinkFiles(omake_shell_lex.mll omake_shell_parse.mly)
MakeLinkFile(omake_shell_sys.ml, omake_shell_sys_$(win32).ml)
MakeDontLink($(GENERATED_FILES))
MakeMakefile()

