#****************************************************************************
#  Copyright (C) 2010 MBARI
#  Monterey Bay Aquarium Research Institute Proprietary Information
#  All rights reserved
#****************************************************************************
# Makefile for getADCP
# $Header$
# $Revision$
# $Log$
#

# The order to search for rules and files is specified by .SUFFIXES
.SUFFIXES : .java

# Default actions
.java.class:
	$(JAVAC) $(JAVAC_OPTIONS) $< 


#***************************************************************************
#  Source Files
#***************************************************************************

SOURCE  = \
  GetADCP.java \
  ServletAccess.java

PACKAGES =  org.mbari.ssds.getADCP


#***************************************************************************
#
#  Directories and other Miscellaneous Defines
#
#***************************************************************************

# Defines for Oasis To SSDS Developement
#
# Modify GETADCP_ROOT for where you keep the source files for GetADCP
# or better yet, put it into your environment
# The following default is for Bob's workstation
ifndef GETADCP_ROOT
  GETADCP_ROOT        = D:/Projects/FOCE/getADCP
endif
PACKAGE          = org.mbari.ssds.getADCP
SOURCE_DIR       = $(GETADCP_ROOT)/src
CLASS_DIR        = $(GETADCP_ROOT)/classes
JAR_DIR          = $(GETADCP_ROOT)/jars
JAVADOC_DIR      = $(GETADCP_ROOT)/doc/javadoc

# Defines for needed to build SIAM jar file
# Note that, per SIAM Development guidelines, you must have
# defined in your environment $JAVA_HOME and $JAVA_DEV_ROOT
# $JAVA_HOME defines where you put the Java compiler and runtime
# $JAVA_DEV_ROOT is the root of the SIAM development tree

SIAM_CLASS_DIR   = $(JAVA_DEV_ROOT)/classes

#***************************************************************************
#
#  Tools and options.
#
#***************************************************************************

JAVA     = java
ifndef JAVAC
  JAVAC    = javac
endif

JAVAH    = javah
JAR      = jar
DEBUG    = jdb
DELETE   = rm -f
COPY     = cp
PRINT    = @echo

JINDENT  = Jindent
PROFILER = -Xrunhprof

ifdef JAVA_HOME
JAVADOC  = $(JAVA_HOME)/bin/javadoc



else
JAVADOC  = javadoc
endif


ifdef IS_UNIX
  SEP = :
else
  SEP = ;
endif

EMPTY            =
SPACE            = $(EMPTY) $(EMPTY)

JRE              = $(JAVA_HOME)/jre/lib/rt.jar

SOURCEPATH       = $(SOURCE_DIR)
CLASSPATH        = $(JRE)$(SEP)$(CLASS_DIR)$(SEP)$(JAR_DIR)/siam.jar$(SEP)$(JAR_DIR)/log4j-1.2.13.jar$(SEP)$(JAR_DIR)/Workhorse-1645.jar
DESTINATION      = $(GETADCP_ROOT)/classes

JAVAC_OPTIONS    = -g -d $(DESTINATION) -classpath $(CLASSPATH) -sourcepath $(SOURCEPATH) -deprecation
JAVA_OPTIONS     = -classpath $(CLASSPATH) 
JAR_OPTIONS      = -cvmf
JINDENT_OPTIONS  = -p $(MAKE_DIR)/style.jin
PROFILER_OPTIONS = cpu=samples,depth=6

JAVADOC_OPTIONS  = \
           -d $(JAVADOC_DIR) \
           -sourcepath $(SOURCE_DIR) \
           -classpath $(CLASSPATH) \
           -author \
           -package \
           -use \
           -splitIndex \
	   -breakiterator \
           -version \
           -windowtitle $(WINDOWTITLE) \
           -doctitle $(DOCTITLE) \
           -header $(HEADER) \
           -bottom $(BOTTOM)


#***************************************************************************
#
#  Rules and dependencies.
#
#***************************************************************************

PACKAGE_LOC     = $(subst .,/,$(PACKAGE))
PACKAGE_DIR     = $(DESTINATION)/$(PACKAGE_LOC)
JAVA_FILES      = $(filter  %.java,$(SOURCE))
NONJAVA_FILES   = $(patsubst %.java,,$(SOURCE))
CLASS_FILES     = $(JAVA_FILES:%.java=$(PACKAGE_DIR)/%.class)
OTHER_FILES     = $(NONJAVA_FILES:%=$(PACKAGE_DIR)/%)
JAR_FILE	= getADCP.jar

default : all

all : package getADCP.jar

package : $(CLASS_FILES)

$(PACKAGE_DIR)/%.class :: $(SOURCE_DIR)/$(PACKAGE_LOC)/%.java
	$(JAVAC) $(JAVAC_OPTIONS) $< 

%.class : %.java
	$(JAVAC) $(JAVAC_OPTIONS) $< 

print :
	echo $(CLASS_FILES)

$(JAR_FILE) : $(CLASS_FILES)
	jar cvfm $(JAR_FILE) Manifest.txt \
	-C $(CLASS_DIR) org/mbari/ssds/getADCP/GetADCP.class \
	-C $(CLASS_DIR) org/mbari/ssds/getADCP/ServletAccess.class

javadoc :
	$(PRINT) $(PACKAGES) > $(OASIS_ROOT)/packages.tmp
	$(JAVADOC) $(JAVADOC_OPTIONS) @$(OASIS_ROOT)/packages.tmp
	$(DELETE) $(OASIS_ROOT)/packages.tmp
	$(PRINT) Done JavaDoc.

clean :
	$(DELETE) $(CLASS_FILES)
	(cd $(SOURCE_DIR)/oasis/ssds/ingest; make clean)
	(cd $(SOURCE_DIR)/oasis/ssds/process; make clean)
	(cd $(SOURCE_DIR)/oasis/ssds/ndbc; make clean)
	(cd $(SOURCE_DIR)/oasis/ssds/test; make clean)
