# Last edited on 2014-12-17 03:22:28 by stolfilocal .PHONY: \ all \ all-classes \ all-HTMLTest single-HTMLTest \ single-HTMLTest \ clean tarball slim-tarball all: all-HTMLTest # ---------------------------------------------------------------------- # Java compilation LIB_MODULES := \ Contact \ ContactImpl \ HTML \ HTMLImpl \ HTMTools \ HTMLToolsImpl \ Message \ MessageImpl \ User \ UserImpl \ Timestamp \ TimestampImpl \ UserTable \ UserTableImpl \ Database \ DatabaseImpl MAIN_MODULES := \ HTMLTest ALL_MAIN_MODULES := \ HTMLTest LIB_JAVA_FILES := ${addsuffix .java,${LIB_MODULES}} MAIN_JAVA_FILES := ${addsuffix .java,${MAIN_MODULES}} LIB_CLASS_FILES := ${addsuffix .class,${LIB_MODULES}} MAIN_CLASS_FILES := ${addsuffix .class,${MAIN_MODULES}} all-classes: ${LIB_CLASS_FILES} ${MAIN_CLASS_FILES} LIB_PATH := \ /usr/share/java/mockito.jar \ /usr/share/java/objenesis.jar \ /usr/share/java/cglib.jar \ /usr/share/java/objectweb-asm/asm.jar \ /usr/share/java/hamcrest/core.jar \ /usr/share/tomcat/lib/tomcat-servlet-3.0-api.jar EMPTY := SPACE := ${EMPTY} ${EMPTY} # Local dependencies: ReqError.class: User.class: Contact.class Message.class Contact.class: User.class Message.class: User.class Session.class: User.class Timestamp.class: HTML.class: User.class Message.class Contact.class Server.class HTMTools.class: User.class Message.class Contact.class Server.class UserTable.class: User.class SessionTable.class: Session.class User.class Database.class: User.class UserTable.class Message.class Contact.class Server.class: ReqError.class User.class UserTable.class Message.class Contact.class ContactImpl.class: Contact.class User.class HTMLImpl.class: HTML.class HTMLTools.class User.class Message.class Contact.class Server.class HTMLToolsImpl.class: HTMLTools.class User.class Message.class Contact.class Server.class MessageImpl.class: Message.class User.class SessionImpl.class: Session.class User.class UserImpl.class: User.class Contact.class Message.class TimestampImpl.class: Timestamp.class UserTableImpl.class: UserTable.class User.class SessionTableImpl.class: SessionTable.class Session.class User.class DatabaseImpl.class: Database.class User.class UserTable.class Message.class Contact.class ServerImpl.class: Server.class ReqError.class User.class UserTable.class Message.class Timestamp.class HTML.class \ ContactImpl.class UserImpl.class UserTableImpl.class MessageImpl.class ContactImpl.class TimestampImpl.class HTMLImpl.class \ DatabaseImpl.class Database.class Session.class SessionImpl.class \ SessionTable.class SessionTableImpl.class HTMLTest.class: Server.class ServerImpl.class \ ReqError.class User.class UserTable.class Message.class Timestamp.class HTML.class \ ContactImpl.class UserImpl.class UserTableImpl.class MessageImpl.class ContactImpl.class TimestampImpl.class HTMLImpl.class \ DatabaseImpl.class Database.class SessionTable.class SessionTableImpl.class %.class: %.java javac -encoding UTF-8 -classpath ".:${subst ${SPACE},:,${LIB_PATH}}" $*.java # ---------------------------------------------------------------------- # Running HTMLTest: all-HTMLTest: ${LIB_CLASS_FILES} HTMLTest.class for pgname in MessageList ; do \ ${MAKE} PAGE_NAME=$${pgname} single-HTMLTest ; \ done # ---------------------------------------------------------------------- # Recursive make section for single-HTMLTest. Client mut define ${TEST_IMAGE_NAME}. ifneq "/${PAGE_NAME}" "/" OUT_DIR := out SHOW_HTML := firefox OUT_HTML_FILE := ${OUT_DIR}/${PAGE_NAME}.html single-HTMLTest: ${LIB_CLASS_FILES} HTMLTest.class -rm -f ${OUT_HTML_FILE} java -classpath ".:${subst ${SPACE},:,${LIB_PATH}}" -ea tests/HTMLTest ${PAGE_NAME} if [[ -s ${OUT_HTML_FILE} ]]; then ${SHOW_HTML} file://$${PWD}/${OUT_HTML_FILE} ; fi endif # ---------------------------------------------------------------------- # Cleanup # "make clean" removes derived files and test outputs: clean: /bin/rm -f .dummy *.class *.did /bin/rm -f out/* # ---------------------------------------------------------------------- # Archiving # "make tarball" creates a tar-gzip of everything useful: TARBALL_NAME := java-Quack-js TODAY := ${shell date '+%Y-%m-%d-%H%M%S'} tarball: ( cd .. && tar -cvzf ${TARBALL_NAME}-${TODAY}.tgz --exclude='*~' \ no-jsp/{*.{java,sh,gawk,gpl},Makefile,00-*,quack,tests} )