diff options
-rw-r--r-- | conf/dependencies.mk | 2 | ||||
-rw-r--r-- | conf/sources.mk | 1 | ||||
-rw-r--r-- | rules/generic/Makefile | 2 | ||||
-rw-r--r-- | rules/qdox/delete.list | 1 | ||||
-rw-r--r-- | rules/qdox/generated-sourced.mk | 26 |
5 files changed, 31 insertions, 1 deletions
diff --git a/conf/dependencies.mk b/conf/dependencies.mk index 76d0ea8..fa9ab97 100644 --- a/conf/dependencies.mk +++ b/conf/dependencies.mk @@ -72,6 +72,8 @@ build/packages/plexus-container-default: \ build/packages/guava: \ $(dep-jsr305) +build/packages/qdox: \ + build/packages/jflex build/packages/jdom1: \ build/packages/jaxen-bootstrap \ diff --git a/conf/sources.mk b/conf/sources.mk index 0c75153..e96b0de 100644 --- a/conf/sources.mk +++ b/conf/sources.mk @@ -22,6 +22,7 @@ plexus-interpolation = git|git://github.com/sonatype/ple plexus-utils = git|git://github.com/sonatype/plexus-utils.git|plexus-utils-3.0.17 guava = git|https://code.google.com/p/guava-libraries/|v17.0/guava +qdox = tar|http://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/qdox/qdox/2.0-M1/qdox-2.0-M1-project.tar.bz2 # Is missing support for jom4j and xom jaxen-bootstrap = tar|http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.6-src.tar.gz diff --git a/rules/generic/Makefile b/rules/generic/Makefile index 89e2afc..c54d714 100644 --- a/rules/generic/Makefile +++ b/rules/generic/Makefile @@ -68,7 +68,7 @@ target/META-INF/maven/$(groupId)/$(artifactId)/pom.properties: pom.xml target/classes: $(call dep_optdir,$(sourceDirectory)) $(MKDIRS) $@ - $(if $^,$(FIND) $(sourceDirectory) -name '*.java' -exec $(JAVAC) -d $@ {} + || { $(RM) -r $@; exit 1; }) + @echo JAVAC; $(if $^,$(JAVAC) -d $@ $(filter %.java,$^) || { $(RM) -r $@; exit 1; }) # install diff --git a/rules/qdox/delete.list b/rules/qdox/delete.list new file mode 100644 index 0000000..b7c200a --- /dev/null +++ b/rules/qdox/delete.list @@ -0,0 +1 @@ +bootstrap diff --git a/rules/qdox/generated-sourced.mk b/rules/qdox/generated-sourced.mk new file mode 100644 index 0000000..350512e --- /dev/null +++ b/rules/qdox/generated-sourced.mk @@ -0,0 +1,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) |