trick/trick_source/java/makefile

70 lines
2.1 KiB
Makefile
Raw Normal View History

TRICK_HOME := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))../..)
2015-02-26 15:02:31 +00:00
# Get JAVAC definition
include ${TRICK_HOME}/share/trick/makefiles/Makefile.common
2015-02-26 15:02:31 +00:00
JAVAC ?= javac
JAVAC_FLAGS = -g -Xlint:unchecked -Xlint:deprecation
# delineate 'javac -version' for version number
JAVAC_VERSION := $(shell ${JAVAC} -version 2>&1 | perl -ne 'print /(\d+)/')
2015-02-26 15:02:31 +00:00
SRC_DIR = src
SRC_FILES = $(shell find ${SRC_DIR} -type f -name \*.java)
BUILD_DIR = build
DEST_DIR = ${BUILD_DIR}/classes
LIB_DIR = ${TRICK_HOME}/$(LIBEXEC)/trick/java/lib
DIST_DIR = ${TRICK_HOME}/$(LIBEXEC)/trick/java/dist
RESOURCES_DIR = ${TRICK_HOME}/$(LIBEXEC)/trick/java/resources
DOCS_API_DIR = ${TRICK_HOME}/share/doc/trick/java
2015-02-26 15:02:31 +00:00
TEST_REPORTS_DIR = test/reports
empty :=
space := $(empty) $(empty)
CLASS_PATH = $(subst $(space),:,$(wildcard ${LIB_DIR}/*.jar))
RESOURCES = $(subst src/,,$(shell find src/trick -name resources))
RESOURCES += $(subst src/,,$(shell find src/trick -name jaxb.index))
2015-02-26 15:02:31 +00:00
all: ${DIST_DIR}/trick.jar resources
@echo "Java build successful"
2015-02-26 15:02:31 +00:00
${DEST_DIR} ${DIST_DIR} ${RESOURCES_DIR} ${DOCS_API_DIR}:
mkdir -p $@
${DIST_DIR}/trick.jar: compile ${DIST_DIR}
@echo "Creating jar file..."
2015-02-26 15:02:31 +00:00
@jar cf ${DIST_DIR}/trick.jar -C ${DEST_DIR} .
@cd ${SRC_DIR} && jar uf ${DIST_DIR}/trick.jar ${RESOURCES}
external_jars:
@ $(MAKE) -C $(LIB_DIR)
compile: ${DEST_DIR} external_jars
@echo "Building Trick GUIs..."
2015-02-26 15:02:31 +00:00
@${JAVAC} ${JAVAC_FLAGS} -classpath ${CLASS_PATH} -d ${DEST_DIR} -sourcepath ${SRC_DIR} ${SRC_FILES}
resources: ${RESOURCES_DIR}/trick_icon.png
${RESOURCES_DIR}/trick_icon.png: ${SRC_DIR}/trick/common/resources/trick_icon.png ${RESOURCES_DIR}
@cp $< $@
JAVA_DOC_LINKS = \
-link "http://docs.oracle.com/javase/6/docs/api/" \
-link "http://www.jfree.org/jfreechart/api/javadoc/" \
-link "http://junit.sourceforge.net/javadoc/"
javadoc: ${DOCS_API_DIR}
2015-02-26 15:02:31 +00:00
javadoc -d ${DOCS_API_DIR} -classpath ${CLASS_PATH} -sourcepath ${SRC_DIR} -windowtitle "Trick GUI API" ${JAVA_DOC_LINKS} trick ${SRC_FILES}
clean:
rm -rf ${BUILD_DIR}
rm -rf ${DIST_DIR}
rm -rf ${RESOURCES_DIR}
rm -rf ${TEST_REPORTS_DIR}
clean_obj:
rm -rf ${BUILD_DIR}
2015-02-26 15:02:31 +00:00
clean_docs:
rm -rf ${DOCS_API_DIR}