thoughts about including PCCTS header files?


Subject: thoughts about including PCCTS header files?
From: Dale E Martin (dmartin@cliftonlabs.com)
Date: Fri Nov 09 2001 - 09:09:45 MST


Hello! I had an issue that came up with a user that I wanted to discuss
with the other SAVANT developers.

When we build a distribution via "make dist", part of what is included in
that distribution is the code generated by flex and antlr. This is a good
thing because it potentially decreases the tool burden on the end-user; in
theory all they need is a c++ compiler to build and install.

This is only partially true though; the code generated by both flex and
antlr #includes some stuff distributed with those tools. So they do have
to have those headers to compile, even if we ship generated code. Another
issue is that there have been changes to the generated code that makes it
so that if you've got an older version of the PCCTS header files, you can't
build out of the box.

This is because the code distributed was emitted by a new version, and even
if you have antlr installed, the code that's distributed is compiled. So
if there's a header file mismatch, the compile bombs.

Here are some proposed solutions:
1) Ship the PCCTS and flex headers with the SAVANT archive. There is also
a small amount of .cpp code from PCCTS that we compile from the PCCTSROOT
dir - we could ship that too.

Doing all of this should eliminate the need for the PCCTSROOT environment
variable.

2) Don't ship generated code. Force the user to have PCCTS and flex
installed if they want to build.

3) Ship the generate code; however, if flex/antlr is found, then
automagically regenerate the relevant files. This sounds appealing, but
currently there is no official version of flex that generates code accepted
by g++ 3.0. The Debian package does, because I submitted a patch to Debian
to fix the problem. This patch went upstream but last time I checked it
had not been integrated into the upstream version.

Any thoughts about this? Long term I'd like to get rid of all of the
"<X>ROOT" environment variables, and go with a more standard "CPPFLAGS="
type build...

Thanks,
        Dale

-- 
Dale E. Martin, Clifton Labs, Inc.
Senior Computer Engineer
dmartin@cliftonlabs.com
http://www.cliftonlabs.com
pgp key available



This archive was generated by hypermail 2b25 : Mon Mar 18 2002 - 13:00:02 MST