summaryrefslogtreecommitdiff
path: root/rules/qdox/generated-sourced.mk
blob: 350512e5d2808c00e8de947f63bdc984b89e409c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
BYACCJ = byaccj
JAVA = java
JFLEX = $(JAVA) -jar $(call jarfind,jflex)
qdox.javaparser.stack = 500

basedir = $(shell pwd)
jarfind = $(firstword $(foreach path,$(subst :, ,$(CLASSPATH)),$(if $(findstring $1,$(path)),$(path))))
parserpkg = com.thoughtworks.qdox.parser.impl
parserdir = target/generated-sources/parser/$(subst .,/,$(parserpkg))
byaccj_flags = -Jnorun -Jnoconstruct -Jpackage=$(parserpkg)

$(parserdir)/DefaultJavaCommentLexer.java: src/grammar/commentlexer.flex
	$(JFLEX) -d $(@D) $<

$(parserdir)/JFlexLexer.java: src/grammar/lexer.flex
	$(JFLEX) -d $(@D) $<

$(addprefix $(parserdir)/DefaultJavaCommentParser,.java Val.java): src/grammar/commentparser.y
	$(MKDIRS) $(@D)
	cd $(@D) && $(BYACCJ) $(byaccj_flags) -Jclass=DefaultJavaCommentParser ${basedir}/$<

$(parserdir)/Parser.java: src/grammar/parser.y
	$(MKDIRS) $(@D)
	cd $(@D) && $(BYACCJ) $(byaccj_flags) -Jclass=Parser -Jimplements=CommentHandler -Jsemantic=Value -Jstack=${qdox.javaparser.stack} ${basedir}/$<

target/classes: $(addprefix $(parserdir)/,DefaultJavaCommentLexer.java JFlexLexer.java DefaultJavaCommentParser.java DefaultJavaCommentParserVal.java Parser.java)