summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--makefiles/mvn-simple.mk25
1 files changed, 12 insertions, 13 deletions
diff --git a/makefiles/mvn-simple.mk b/makefiles/mvn-simple.mk
index 54bea0e..13d399c 100644
--- a/makefiles/mvn-simple.mk
+++ b/makefiles/mvn-simple.mk
@@ -15,21 +15,20 @@ RM = rm -f
JAR = jar
# Detect information from POMs
-artifact := $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:artifactId pom.xml)
-version := $(firstword $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:version -n -c /_:project/_:parent/_:version pom.xml) $(version))
-group := $(firstword $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:groupId -n -c /_:project/_:parent/_:groupId pom.xml))
-dirs := $(patsubst %/pom.xml,%,$(wildcard */pom.xml))
-targets := pom $(if $(wildcard src/main/),jar)
+artifact := $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:artifactId pom.xml)
+version := $(firstword $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:version -n -c /_:project/_:parent/_:version pom.xml) $(version))
+group := $(firstword $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:groupId -n -c /_:project/_:parent/_:groupId pom.xml))
+mvn_subdirs := $(patsubst %/pom.xml,%,$(wildcard */pom.xml))
+subdirs := $(if $(subdirs),$(filter $(mvn_subdirs),$(subdirs)),$(mvn_subdirs))
+targets := pom $(if $(wildcard src/main/),jar)
####
export CLASSPATH := $(shell $(FIND) $(MAVEN_LOCAL_REPO_SEARCH) -name '*.jar' -printf '%h/%f:'):$(JAVA_HOME)/lib/tools.jar$(if $(CLASSPATH),:$(CLASSPATH))
-$(info CLASSPATH = $(CLASSPATH))
-# all
all: PHONY \
$(addprefix target/$(artifact)-$(version).,$(targets)) \
- $(addsuffix /all,$(dirs))
+ $(addsuffix /all,$(subdirs))
target/$(artifact)-$(version).pom: pom.xml
$(INSTALL) -Dm644 $< $@
@@ -58,7 +57,7 @@ target/META-INF/maven/$(group)/$(artifact)/pom.properties: pom.xml
'artifactId=$(artifact)' \
> $@
-target/classes: src/main/java FORCE
+target/classes: $(shell $(FIND) src/main/java 2>/dev/null)
$(MKDIRS) $@
$(FIND) $< -name '*.java' -exec $(JAVAC) -d $@ {} +
@@ -66,20 +65,20 @@ target/classes: src/main/java FORCE
install: PHONY \
$(addprefix $(DESTDIR)$(MAVEN_LOCAL_REPO_INSTALL)/$(subst .,/,$(group))/$(artifact)/$(version)/$(artifact)-$(version).,$(targets)) \
- $(addsuffix /install,$(dirs))
+ $(addsuffix /install,$(subdirs))
$(DESTDIR)$(MAVEN_LOCAL_REPO_INSTALL)/$(subst .,/,$(group))/$(artifact)/$(version)/%: target/%
$(INSTALL) -Dm644 $< $@
# clean
-clean: PHONY $(addsuffix /clean,$(dirs))
+clean: PHONY $(addsuffix /clean,$(subdirs))
rm -rf target
# recurse
-$(addsuffix /%,$(dirs)): PHONY
- version='$(version)' $(MAKE) -C $(@D) -f '$(abspath $(firstword $(MAKEFILE_LIST)))'
+$(addsuffix /%,$(subdirs)): PHONY
+ version='$(version)' $(MAKE) -C $(@D) -f '$(abspath $(firstword $(MAKEFILE_LIST)))' '$(@F)'
# boilerplate