caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Yoann Padioleau <padator@wanadoo.fr>
To: kgo@grant-olson.net
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Building multiple configurations?
Date: Mon, 22 Mar 2010 18:13:54 -0700	[thread overview]
Message-ID: <EC857672-A641-46A1-B320-54D316D00AAC@wanadoo.fr> (raw)
In-Reply-To: <4BA80CB5.4080402@grant-olson.net>


On Mar 22, 2010, at 5:35 PM, Grant Olson wrote:

> 
> I'm doing something weird here and I'm thinking there has to be a better
> way.
> 
> I've got a configuration file that's a .ml file.  And I do want it to be
> an .ml file that gets included at compile time, not some .txt config
> file that gets read in at runtime.  I'm building two different versions
> of my app, with two different configurations.

Why ? Why ? Why not having your app configurable with a txt file
or some command line flags like every other programs ?

> 
> Basically, I want to do the same thing as a C #ifdef:
> 
> #ifdef VERSION2
>   ... include version one
> #else
>   ... include version two
> #endif

People use that because they want to do different things depending on the architecture, or
if some dependencies are present or not. Do you have the same requirement here ?

> 
> And then the two different builds link in two different object files
> that have the same interface, creating the two different versions of the
> app.
> 
> At first I thought I could write out the "module" and "module type"
> stuff manually, giving the same module name in two differently named
> files.  But this of course creates a sub-module that isn't bound to the
> right namespace, and linking fails.
> 
> What I'm doing now is using the -impl flag.  I've got two files:
> config.ml, and config.alt.  The second version builds with "-impl
> config.alt" in the list of files passed to ocamlopt instead of "config.ml"
> 
> This works, but it just seems wrong.  Is there a better way for me to do
> this?
> 
> -Grant
> 
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
> 




  reply	other threads:[~2010-03-23  1:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-23  0:35 Grant Olson
2010-03-23  1:13 ` Yoann Padioleau [this message]
2010-03-23  1:32   ` [Caml-list] " Grant Olson
2010-03-23  1:56     ` Yoann Padioleau
2010-03-23  3:06       ` Grant Olson
2010-03-23  1:37 ` Michael Ekstrand
2010-03-23  1:47   ` [Caml-list] " Grant Olson
2010-03-23  8:54     ` Daniel Bünzli
2010-03-23  5:50 ` [Caml-list] " Martin Jambon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=EC857672-A641-46A1-B320-54D316D00AAC@wanadoo.fr \
    --to=padator@wanadoo.fr \
    --cc=caml-list@inria.fr \
    --cc=kgo@grant-olson.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).