java parser intentionally in builddir?
Robert Lipe
robertl@dgii.com
Fri Oct 16 17:50:00 GMT 1998
The gcc/java Makefile.in is different than all the other languages
in that a prebuilt parser isn't in the srcdir and it looks like it's
intentionally build in the builddir. This means that it gets run built
(with identical flags) for each target that gets built and it requires
BISON be on the build system. This is inconsistent with other languages
that require uncommon tools to build files. I would say that it's an
accident, but the code goes to some trouble to do this.
# CYGNUS LOCAL: we put these files into the build dir.
PARSE_C = parse.c
PARSE_SCAN_C = parse-scan.c
PARSE_H = $(srcdir)/parse.h
$(PARSE_C): $(srcdir)/parse.y $(srcdir)/lex.c $(PARSE_H) $(srcdir)/lex.h
$(BISON) -t -v $(BISONFLAGS) $(JAVABISONFLAGS) -o $(PARSE_C) \
$(srcdir)/parse.y
$(PARSE_SCAN_C): $(srcdir)/parse-scan.y $(srcdir)/lex.c $(PARSE_H) \
$(srcdir)/lex.h
$(BISON) -t -v $(BISONFLAGS) -o $(PARSE_SCAN_C) $(srcdir)/parse-scan.y
We have some combination of options:
1) Checkin prebuilt parse-scan.y and lex.c in gcc/java.
B) Document BISON as a requirement.
III) Modify Makefile.in fragment above to generate these in $(srcdir)/blah.
4) Leave it alone as this really is how it's intended to work.
E) Others.
If my understanding of things is correct (hardly a given) I suspect 1
and III are in order. It seems to be as simple as making
PARSE_C = $(srcdir)/parse.c
Also, I don't find anything depending upon PARSE_SCAN_C. Is it
vestigal?
Suggestions?
RJL
More information about the Gcc
mailing list