Avoid recompiling java class if they have not changed

This commit is contained in:
Jeremy Lakeman 2017-02-13 15:36:13 +10:30
parent c05775a320
commit 8571de4848
2 changed files with 18 additions and 7 deletions

View File

@ -138,10 +138,10 @@ endif
java-api:
@mkdir -p java-api
cd java-api && $(MAKE) SOURCE_PREFIX=$(SOURCE_PREFIX_JAVA_API) all
@cd java-api && $(MAKE) SOURCE_PREFIX=$(SOURCE_PREFIX_JAVA_API) all
java-api-clean:
cd java-api 2>/dev/null && $(MAKE) SOURCE_PREFIX=$(SOURCE_PREFIX_JAVA_API) clean
@cd java-api 2>/dev/null && $(MAKE) SOURCE_PREFIX=$(SOURCE_PREFIX_JAVA_API) clean
endif # $(JAVAC)

View File

@ -11,21 +11,32 @@ JAVAC = @JAVAC@
CLASSDIR = classes
TESTCLASSDIR = testclasses
SOURCES := $(shell find $(SOURCE_PREFIX)src -name '*.java')
TEST_SOURCES := $(shell find $(SOURCE_PREFIX)test -name '*.java')
.PHONY: all check clean classes testclasses
all: check classes testclasses
check:
@if [ -z "$(JAVAC)" ]; then echo "No java compiler configured" >&2; exit 1; fi
@if ! $(JAVAC) -version >/dev/null; then echo "Java compiler not executable" >&2; exit 1; fi
@if ! $(JAVAC) -version >/dev/null 2>&1; then echo "Java compiler not executable" >&2; exit 1; fi
classes:
$(CLASSDIR)/dummy: $(SOURCES)
@mkdir -p $(CLASSDIR)
find $(SOURCE_PREFIX)src -name '*.java' | xargs $(JAVAC) -Xlint:unchecked -d $(CLASSDIR)
@echo "JAVAC $(CLASSDIR)"
@$(JAVAC) -Xlint:unchecked -d $(CLASSDIR) $(SOURCES)
@touch $@
testclasses: classes
classes: $(CLASSDIR)/dummy
$(TESTCLASSDIR)/dummy: $(TEST_SOURCES) $(CLASSDIR)/dummy
@mkdir -p $(TESTCLASSDIR)
find $(SOURCE_PREFIX)test -name '*.java' | xargs $(JAVAC) -Xlint:unchecked -d $(TESTCLASSDIR) -classpath $(CLASSDIR)
@echo "JAVAC $(TESTCLASSDIR)"
@$(JAVAC) -Xlint:unchecked -d $(TESTCLASSDIR) -classpath $(CLASSDIR) $(SOURCES)
@touch $@
testclasses: $(TESTCLASSDIR)/dummy
clean:
@$(RM) -r $(CLASSDIR) $(TESTCLASSDIR)