David Thompson wrote:
> This is the problem with your libtool being too old. You will need to
> have 1.4.2 or 1.4.3 at least.
FreeBSD ships with libtool 1.3.4 and bison 1.75.
So that's currently a bad match for getting OpenDX-CVS compiled.
Bison breaks the head-branch, libtool the libtool-branch :(.
Hmm, I've decided to forget about the libtool-branch of CVS for now.
Still remains the following problem: if bison is absent, why does
the head-branch not compile. The "USING_BISON" define is there to
indicate, whether or not we have bison installed. I have deleted
my bison 1.75 package, but the gmake still ends with an error.
This is what I've done and eventually got:
---------------------------------------------
$ cvs update -A -d -P
[...]
$ rm -f config.log config.cache
$ ./CVSMake
configure.in:1053: warning: AC_TRY_RUN called without default to allow cross
compiling
configure.in:1079: warning: AC_TRY_RUN called without default to allow cross
compiling
configure.in:1053: warning: AC_TRY_RUN called without default to allow cross
compiling
configure.in:1079: warning: AC_TRY_RUN called without default to allow cross
compiling
$ ./configure --prefix=/opt
[...]
checking for flex... flex
checking for flex... (cached) flex
checking for yywrap in -lfl... yes
checking lex output file root... lex.yy
checking whether yytext is a pointer... yes
checking for bison... yacc
[...]
$ gmake
[...]
../dxuilib/libDXUI.a(Network.o): In function `Network::parse(__sFILE *)':
/home/lahaye/SOFTWARE/dx/src/uipp/dxuilib/Network.C(.text+0x4634): undefined
reference to `yylineno'
../dxuilib/libDXUI.a(Network.o): In function
`Network::netParseMODULEComment(char const *)':
/home/lahaye/SOFTWARE/dx/src/uipp/dxuilib/Network.C(.text+0x4852): undefined
reference to `yylineno'
../dxuilib/libDXUI.a(Network.o): In function
`Network::netParseMacroComment(char const *)':
/home/lahaye/SOFTWARE/dx/src/uipp/dxuilib/Network.C(.text+0x490e): undefined
reference to `yylineno'
../dxuilib/libDXUI.a(Network.o): In function `Network::parseVersionComment(char
const *, unsigned char)':
/home/lahaye/SOFTWARE/dx/src/uipp/dxuilib/Network.C(.text+0x4d42): undefined
reference to `yylineno'
../dxuilib/libDXUI.a(Network.o): In function
`Network::netParseCATEGORYComment(char const *)':
/home/lahaye/SOFTWARE/dx/src/uipp/dxuilib/Network.C(.text+0x4eea): undefined
reference to `yylineno'
../dxuilib/libDXUI.a(Network.o)(.text+0x4f6a):/home/lahaye/SOFTWARE/dx/src/uipp/dxuilib/Network.C:
more undefined references to `yylineno' follow
gmake[3]: *** [dxui] Error 1
gmake[3]: Leaving directory `/home/lahaye/SOFTWARE/dx/src/uipp/dxui'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/home/lahaye/SOFTWARE/dx/src/uipp'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/lahaye/SOFTWARE/dx/src'
gmake: *** [all-recursive] Error 1
$ grep BISON include/dxconfig.h
/* #undef USING_BISON */
/* #undef USING_BISON */
---------------------------------------------
The very last command shows that none of the USING_BISON defines is set.
(Why are there two entries USING_BISON in include/dxconfig.h.in ?).
My autotool-versions are:
libtoolize (GNU libtool) 1.3.4
aclocal (GNU automake) 1.5
Autoconf version 2.13
The programs flex and yacc are shipped with the OS and as such an
intrinsic part of FreeBSD. When I type "yacc --version", I get:
$ yacc --version
usage: yacc [-dlrtv] [-b file_prefix] [-o output_filename]
[-p symbol_prefix] filename
But I don't think the gmake error above is related to my yacc,
but rather to not properly coding the case that USING_BISON is
not defined. There's an extern declaration, that is not matched
with an actual declaration elsewhere. Is an include forgotten
in case USING_BISON is not set, or something like this?
Any ideas?
Regards,
Rob.
PS: have you tried to compile CVS without bison available?
The problem above may happen to everyone who does just that.