# # Copyright 2012, Ralph Ronnquist. # # Makefile for GORITE # CP := $(shell ./classpath) DIRS = com/intendico/gorite DIRS += com/intendico/data DIRS += com/intendico/gorite/addon DIRS += com/intendico/data/addon DIRS += com/intendico/sdp EXGORITE = tests/com/intendico/gorite/examples EXDATA = tests/com/intendico/data/examples SRC := $(foreach D,$(DIRS),$(wildcard $(D)/*.java)) SOURCES := $(filter-out %/package-info.java,$(SRC)) CLASSES = $(SOURCES:%.java=%.class) CURRENT = $(foreach C,$(CLASSES),$(wildcard $(C))) MISSING = $(filter-out $(CURRENT),$(CLASSES)) OUTDATED = $(shell find $(DIRS) -name "*.java" \ $(if $(CURRENT),-newer $(word 1,$(shell ls -1t $(CURRENT))))) jar: gorite.jar .PHONY: clean compile javadoc #JAVASRCVERSION = -source 1.4 -Xlint:unchecked JAVASRCVERSION = -Xlint:-unchecked compile: $(OUTDATED) $(MISSING:%.class=%.java) CLASSPATH=$(CP) javac $(JAVASRCVERSION) $? gorite.jar: $(if $(OUTDATED)$(MISSING),compile) $(SOURCES) touch gorite.jar jar uf gorite.jar $(addsuffix /*.class,$(DIRS)) install: gorite.jar install gorite.jar ../../lib/ clean: rm -f $(CLASSES:%.class=%*.class) gorite.jar rm -rf html javadoc: VERSION := v11RC05 JAVAAPI = http://download.oracle.com/javase/6/docs/api YEAR = $(shell date +%Y) DOCARGS = -overview overview.html -private -d html DOCARGS += -footer "© Copyright $(YEAR), Ralph Ronnquist." DOCARGS += -header "GORITE Version $(VERSION)" DOCARGS += -linksource DOCARGS += -linkoffline "$(JAVAAPI)" pkg/java DOCARGS += -classpath $(CP) javadoc: gorite.jar javadoc $(DOCARGS) $(subst /,.,$(DIRS)) $(TESTS) #cat HEADER > html/Main.java #more $(EXGORITE)/spacetravel/[A-Z]*.java >> html/Main.java TESTS = $(wildcard $(EXGORITE)/*/*.java) TESTS += $(wildcard $(EXDATA)/*/*.java) SKIP := $(EXGORITE)/mice/ SKIP += $(EXGORITE)/klotski/ SKIP += $(EXGORITE)/chapter3_sensors/ TCP = $(shell pwd)/tests:$(shell pwd)/gorite.jar TDIR = $(filter-out $(SKIP),$(sort $(dir $(TESTS)))) .PHONY: tests $(TDIR) .force #PROPS = -Dgorite.goal.trace=yes PROPS = -Xss60k -Xmx200m #PROPS += -Dgorite.tracer=com.intendico.gorite.addon.ConsoleTracer ifdef REGRESSION $(TDIR): gorite.jar .force @echo "TEST: $@" @CLASSPATH=$(TCP) java $(PROPS) $(@:tests/%=%)Main 2>&1 | $@filter > /tmp/tests.log @diff -N $@output /tmp/tests.log $(SKIP): .force @echo "SKIP: $@" tests: gorite.jar $(TESTS) @$(MAKE) -s $(filter-out ./,$(sort $(dir $?))) 2>&1 | \ tee regression.$$(date +%Y%m%d-%H%M) else tests/com/intendico/gorite/examples/fleet/: A = 20 100 $(TDIR): gorite.jar @echo "===== Test: $@" CLASSPATH=$(TCP) javac -Xlint:unchecked $@*.java CLASSPATH=$(TCP) java $(PROPS) $(@:tests/%=%)Main $(A) @echo "===== End: $@" tests: gorite.jar $(TESTS) echo "$(TESTS)" @echo "****************************************************" @$(MAKE) $(filter-out ./,$(sort $(dir $?))) 2>&1 | \ tee log.$$(date +%Y%m%d-%H%M) endif doc/%.html: doc/%.sdf cd doc; sdf -2html $$(basename $?) DOCS = CHANGES TARFLAG = --exclude=CVS BINDIST = gorite.jar html $(DOCS) SRCDIST = $(BINDIST) $(SRC) $(TESTS) overview.html Makefile classpath SRCDIST += $(wildcard $(EXGORITE)/*/filter) SRCDIST += $(wildcard $(EXGORITE)/*/output) #SRCDIST += DIFF.baseline srcdist: DOCARGS += -linksource srcdist: javadoc $(DOCS) $(SRCDIST) mkdir -p dist tar czf dist/gorite-src-$$(date +%Y%m%d).tgz $(TARFLAG) $(SRCDIST) bindist: javadoc $(DOCS) $(BINDIST) mkdir -p dist tar czf dist/gorite-$$(date +%Y%m%d).tgz $(TARFLAG) $(BINDIST) regression: $(MAKE) tests