Graphviz Issue Tracker
Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000437graphvizGraph Librariespublic2004-07-20 10:562011-04-28 04:02
ReporterRob Emerson 
Assigned Toellson 
PlatformOSSparc-SunOS-5.8OS Version
Summary0000437: agraph fails to build on Solaris 2.8 when used with /usr/ccs/bin/lex

The auto generated makefile for agraph defines LEX and YACC variables
but doesn't actually use them and instead names 'lex' and 'yacc' literals
directly. This causes an issue on Sun Solaris 2.8 because the default
lex implementation supplied in /usr/ccs/bin doesn't support the -i
flag that the makefile passes, the result is the error:
cc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../cdt -I/usr/local/include -g -c refstr.c -KPIC -DPIC -o refstr.o
mv -f refstr.o refstr.lo
lex -i ../agraph/scan.l
lex: illegal option -- i
Usage: lex [-ewctvnVY] [-Q(y/n)] [file]
*** Error code 1
make: Fatal error: Command failed for target `scan.c'

The offending generated makefile rules fragment (presumably direct from the
template) are for scan.c and output.y i.e.

scan.c: ${top_srcdir}/agraph/scan.l
        lex -i ${top_srcdir}/agraph/scan.l
        /usr/bin/sed "s/yy/aag/g" < lex.yy.c > scan.c
        rm lex.yy.c

y.output: ${top_srcdir}/agraph/grammar.y
        yacc -dv ${top_srcdir}/agraph/grammar.y

Note the hardcoded parser names. If these are replaced with ${LEX} and
${YACC} respectively then another scanner generator which does
understand the -i option (e.g. flex) can be substituted. This is was
my workaround.

A more robust fix would be to have configure properly check that lex -i
is supported.
Additional Information

[ellson] As far as I can see we use @[email protected] and @[email protected] in all (and distributed in graphviz-1.12 ????

To use an alternate lexer, set LEX in your environment and rerun configure:

   export LEX=/usr/local/bin/mylex

In addition, I think since 1.12 I fixed a bug in the distribution such that
now the lex/yacc products are shipped in the tar file.
TagsNo tags attached.
a) Correctly use $LEX and $YACC in the makefile template. This doesn't
'properly' fix the issue but allows for a less hacky workaround.

b) Better: Get configure to properly check that lex -i is supported on
the target platform (beyond my cosmetic attit
VERSION     1.12
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2011-04-28 04:02 user1 New Issue
2011-04-28 04:02 user1 Assigned To => user695

MantisBT 1.2.5[^]
Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker