* [Caml-list] pa_macro to substitute a constant?
@ 2004-08-27 16:32 Richard Jones
2004-08-27 18:24 ` Michel Mauny
0 siblings, 1 reply; 2+ messages in thread
From: Richard Jones @ 2004-08-27 16:32 UTC (permalink / raw)
To: caml-list
[-- Attachment #1: Type: text/plain, Size: 1073 bytes --]
How can I use pa_macro to substitute in a constant into a program?
A real example:
Makefile ------------------------------------------------------------
PACKAGE = foo
VERSION = 1.0.0
version.cmo: version.ml Makefile
ocamlc -I +camlp4 -pp 'camlp4o pa_macro.cmo -DPACKAGE="$(PACKAGE)" -DVERSION="$(VERSION)"' $< -o $@
version.ml ----------------------------------------------------------
let package = PACKAGE
let version = VERSION
---------------------------------------------------------------------
Needless to say this example doesn't work, and looking at the thin
documentation for pa_macro, I'm not even sure it's possible. Is it?
Rich.
--
Richard Jones. http://www.annexia.org/ http://www.j-london.com/
Merjis Ltd. http://www.merjis.com/ - improving website return on investment
MONOLITH is an advanced framework for writing web applications in C, easier
than using Perl & Java, much faster and smaller, reusable widget-based arch,
database-backed, discussion, chat, calendaring:
http://www.annexia.org/freeware/monolith/
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Caml-list] pa_macro to substitute a constant?
2004-08-27 16:32 [Caml-list] pa_macro to substitute a constant? Richard Jones
@ 2004-08-27 18:24 ` Michel Mauny
0 siblings, 0 replies; 2+ messages in thread
From: Michel Mauny @ 2004-08-27 18:24 UTC (permalink / raw)
To: Richard Jones; +Cc: caml-list
Richard Jones wrote/écrivait (Fri, Aug 27, 2004 at 05:32:32PM +0100):
> How can I use pa_macro to substitute in a constant into a program?
> ocamlc -I +camlp4 -pp 'camlp4o pa_macro.cmo -D "PACKAGE="$(PACKAGE)"
> Needless to say this example doesn't work, and looking at the thin
> documentation for pa_macro, I'm not even sure it's possible. Is it?
I'm afraid not. The "-D" option to pa_macro is followed by an UIDENT,
there is no room for a value for it: in pa_macro.ml, there are two
lines saying
Pcaml.add_option "-D" (Arg.String (define None))
"<string> Define for IFDEF instruction."
and the None means "no associated value", here.
However, allowing -D "UIDENT=something" looks like a feature wish I
could try to implement for a future OCaml major release.
-- Michel Mauny
-------------------
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-08-27 18:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-27 16:32 [Caml-list] pa_macro to substitute a constant? Richard Jones
2004-08-27 18:24 ` Michel Mauny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox