### Default environment

Import qw( env );

## Cons environments come from the cons module.
## Apparently, we need byte code output instead of native,
## so we have to go through all these definitions again.
$env = new cons(
    ## Overrides
    OCAMLC      => $env->{OCAMLC_BYTE},     # The OCaml compiler
    OCAMLLINK   => $env->{OCAMLLINK_BYTE},  # The OCaml compiler
    SUFOBJ      => $env->{SUFOBJ_BYTE},     # Object suffix
    SUFLIB      => $env->{SUFLIB_BYTE},     # Library suffix

    SUFSRC      => $env->{SUFSRC},
    SUFSIG      => $env->{SUFSIG},
    SUFCSIG     => $env->{SUFCSIG},

    OCAMLCFLAGS => "-pp '%CAMLP4 pa_extend.cmo q_MLast.cmo' -I $env->{CAMLP4STDLIB}",
    OCAMLCOM    => "%OCAMLC %OCAMLCFLAGS %_IFLAGS -c %1", # How to compile files
    SIGCOM      => "%OCAMLC %OCAMLCFLAGS %_IFLAGS -c %1", # How to compile signatures
    LINKCOM     => "%OCAMLLINK %OCAMLCFLAGS -o %> %MLLIBS %< %CCLIBS", # How to link objects
    ARCOM       => "%OCAMLLINK %OCAMLCFLAGS -a -o %> %<", # How to archive objects
    LEXCOM      => $env->{LEXCOM},                        # How to lex a file
    YACCCOM     => $env->{YACCCOM},                       # How to yacc a file

    CAMLP4      => $env->{CAMLP4},
    PPFLAGS     => $env->{PPFLAGS},
    CAMLP4MACRO => $env->{CAMLP4MACRO},
    CAMLP4MACROPRINT => $env->{CAMLP4MACROPRINT},

    ENV  => {
      PATH      => $ENV{'PATH'} # Use user's path instead of the cons default
    },

);

OCamlSources $env
   'ocamldep.mll',
   'misc.ml',
   'macro.ml';

OCamlLibrary $env 'util',
   'macro';

OCamlProgram $env 'ocamldep', 'ocamldep';

## Add the program to the default target list
#Default qw( util.cma ocamldep );
