[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2006-08-11 (05:56) |
From: | Nathaniel Gray <n8gray@g...> |
Subject: | Re: [Caml-list] otags and OMakefile |
On 8/10/06, Sam Steingold <sds@gnu.org> wrote: > what is the correct entry for TAGS in OMakefile? Well, OMake doesn't have any special support for otags, so the first question is, can you build the tags file outside of OMake? > I have this in the top-level OMakefile: > ------------------------------------------------------------------ > TAGS: > otags -r $(SRC_DIRS) > ------------------------------------------------------------------ > (where SRC_DIRS are also the dependencies of .SUBDIRS). > this is deficient for 2 reasons: > > 1. somehow otags tries to read non-ml files (despite "otags -h" claiming > that suffixes are [.mli; .ml]) and fails on especially large ones: > ------------------------------------------------------------------ > otags: Unix error > Syscall: stat > Arg: ./run/scan/top-20060612.log > Error: Value too large for defined data type > ------------------------------------------------------------------ The otags author(s) will have to answer that one. > 2. otags does not respect the pre-processors used for some files, > resulting in many errors: Does otags get called with -pp flags? > despite this, a valid TAGS file is created. But surely it is incomplete. > the preprocessing is specified in OMakeroot: > ------------------------------------------------------------------ > # Preprocess OCaml-files with a given OCaml-preprocessor > OCamlMakePPDeps(pps, names) = > pp_cmos = $(addsuffix .cmo, $(pps)) > deps = > foreach(pp_cmo, $(pp_cmos)) > deps += $(OCamlAddLibDir $(pp_cmos)) > export deps > pp_cmd = camlp4o $(PREFIXED_OCAMLINCLUDES) $(pp_cmos) > OCAMLPPFLAGS = -pp "$(pp_cmd)" > OCAMLDEPFLAGS = $(OCAMLPPFLAGS) > foreach(name, $(names)) > tgts = $(addsuffixes .cmi .cmo .cmx .o, $(name)) > scan_deps = scan-ocaml-$(name).ml scan-ocaml-$(name).mli > Capture_deps(__ENV, \ > OCAMLPPFLAGS OCAMLDEPFLAGS, $(tgts), $(deps), $(scan_deps)) > tgts = $(addsuffix .auto.mli, $(name)) > Capture_deps(__ENV, \ > OCAMLPPFLAGS OCAMLDEPFLAGS, $(tgts), $(deps), $(scan_deps)) > export __ENV > export __ENV > ------------------------------------------------------------------ > and in OMakefile: > ------------------------------------------------------------------ > OCamlMakePPDeps(pa_sexp_conv, foo bar baz) > ------------------------------------------------------------------ I'm not enough of an OMake guru to comment on this, so I'll just say again that you should make sure you know how to get the result you want outside of OMake before you worry about how to do it inside of OMake. Cheers, -n8 -- >>>-- Nathaniel Gray -- Caltech Computer Science ------> >>>-- Mojave Project -- http://mojave.cs.caltech.edu -->