caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Conditional compilation
@ 2009-08-18  2:00 Edgar Friendly
  2009-08-18  2:26 ` [Caml-list] " Andre Nathan
  2009-08-18 10:20 ` Richard Jones
  0 siblings, 2 replies; 6+ messages in thread
From: Edgar Friendly @ 2009-08-18  2:00 UTC (permalink / raw)
  To: caml-list

I'm working on a project that has significant build infrastructure using
autoconf, make and ocamlbuild.  I want to have a reasonably simple
trigger, such as a command-line argument to autoconf.  The result of
activating this trigger would be to drastically reduce what gets
compiled -- many files wouldn't need to be compiled, and many sections
of files should be commented out.

The project already uses optcomp for some conditional compilation based
on ocaml version.  I've learned that optcomp creates a new camlp4
command-line flag, [-let], which accepts a "var=value" pair and sets
that for use in [#if var = value] triggers.  I've also dug into
ocamlbuild and found a way to set this flag within the [-pp] argument to
ocamlc.  I've hit some hurdles, and wonder how to overcome them:

1) optcomp is sometimes used as a standalone camlp4 executable (-pp
'build/optcomp/optcomp_o.byte') - in this mode, it seems to accept only
the name of a file as input, and doesn't take the [-let] argument.  What
is the difference between this and "-pp 'camlp4oof
build/optcomp/pa_optcomp.cmo'"?

2) I'm using the identifier "AAA" for my trigger, and I can use
ocamlbuild's tags system to set "-let AAA=true" when the tag "AAA" is
set - is there any way to do "-let AAA=false" when tag "AAA" is unset?
Optcomp gives a compilation error on bound identifiers, so I have to set
it in both cases.

Is there a better way to do this?  The path I'm following is looking
very byzantine compared to C's [-DFOO] + [#ifdef FOO].

E


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-08-21  9:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-18  2:00 Conditional compilation Edgar Friendly
2009-08-18  2:26 ` [Caml-list] " Andre Nathan
2009-08-18  2:37   ` Edgar Friendly
2009-08-18  7:00     ` Olivier Andrieu
2009-08-21  9:39   ` Pietro Abate
2009-08-18 10:20 ` Richard Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).