Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] OCamlMakefile mly/mll interdependency
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jeff Henrikson <jehenrik@y...>
Subject: [Caml-list] OCamlMakefile mly/mll interdependency

To help me with the aforementioned release, anybody want to help me 
figure out why my OCamlMakefile isn't doing well on compling frontc?  
No ordering of the source files seems to work:


> ocamlc -c cabs.mli
> ocamlc -c cabs.ml
> ocamlc -c cparser.mli
> ocamlc -c clexer.ml
> File "clexer.mll", line 378, characters 1-16:
> Warning: this expression should have type unit.
> ocamlc -c cparser.ml
> ocamlc -c frontc.mli
> ocamlc -c frontc.ml
> ocamlc -c cprint.mli
> ocamlc -c cprint.ml
> ocamlc -a             \
>                           -o frontc.cma  cabs.cmo cparser.cmo 
> clexer.cmo frontc.cmo cprint.cmo


However, when I run a toplevel


> bash on ttyp4, ~/src/forklift/frontc$ ocaml
>         Objective Caml version 3.06
>
> # #load "frontc.cma";;
> Reference to undefined global `Clexer'
> #


I can work around by shelling this:


> ocamlc -a                                       -o frontc.cma  
> cabs.cmo clexer.cmo cparser.cmo frontc.cmo cprint.cmo


But if I try to correct this in the Makefile:


> OCAMLMAKEFILE = OCamlMakefile
>
> SOURCES =  cabs.ml clexer.mll cparser.mly frontc.ml cprint.ml cabs.mli 
> cprint.m\
> li frontc.mli
> RESULT = frontc
> all: byte-code-library
>
> -include $(OCAMLMAKEFILE)


Then it causes the build to break:


> bash on ttyp4, ~/src/forklift/frontc$ make
> ocamllex clexer.mll
> 125 states, 1674 transitions, table size 7446 bytes
> ocamlyacc  cparser.mly
> making ._bcdi/cparser.di from cparser.mli
> making ._bcdi/frontc.di from frontc.mli
> making ._bcdi/cprint.di from cprint.mli
> making ._bcdi/cabs.di from cabs.mli
> making ._d/cparser.d from cparser.ml
> making ._d/clexer.d from clexer.ml
> making ._d/cprint.d from cprint.ml
> making ._d/frontc.d from frontc.ml
> making ._d/cabs.d from cabs.ml
> ocamlc -c cabs.mli
> ocamlc -c cabs.ml
> ocamlc -c clexer.ml
> File "clexer.mll", line 22, characters 0-12:
> Unbound module Cparser
> make[1]: *** [clexer.cmi] Error 2
> make: *** [byte-code-library] Error 2


Thanks for any help,


Jeff Henrikson

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners