## @configure_input@
##
## @file    Makefile
## @brief   Builds the Java example programs
## @author  Michael Hucka (Caltech)
## @author  Ben Bornstein (Caltech)
## @author  Nicolas Rodriguez (EMBL-EBI)
##
##
## <!--------------------------------------------------------------------------
## This file is part of libSBML.  Please visit http://sbml.org for more
## information about SBML, and the latest version of libSBML.
##
## Copyright (C) 2013-2016 jointly by the following organizations:
##     1. California Institute of Technology, Pasadena, CA, USA
##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
##     3. University of Heidelberg, Heidelberg, Germany
##
## Copyright (C) 2009-2013 jointly by the following organizations: 
##     1. California Institute of Technology, Pasadena, CA, USA
##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
##  
## Copyright (C) 2006-2008 by the California Institute of Technology,
##     Pasadena, CA, USA 
##  
## Copyright (C) 2002-2005 jointly by the following organizations: 
##     1. California Institute of Technology, Pasadena, CA, USA
##     2. Japan Science and Technology Agency, Japan
## 
## This library is free software; you can redistribute it and/or modify it
## under the terms of the GNU Lesser General Public License as published by
## the Free Software Foundation.  A copy of the license agreement is provided
## in the file named "LICENSE.txt" included with this software distribution
## and also available online as http://sbml.org/software/libsbml/license.html
## ------------------------------------------------------------------------ -->

CLASSPATH = ../../src/bindings/java/libsbmlj.jar:.

# The values of the following variables are obtained using the libSBML
# `configure' program.

JAVA      = @JAVA@
JAVAC     = @JAVAC@
JFLAGS    = -classpath $(CLASSPATH)

# The rest of this Makefile remains static regardless of the values
# assigned to the variables above.

classes   = convertSBML.class printMath.class printSBML.class readSBML.class \
            translateMath.class validateSBML.class evaluateMath.class \
            echoSBML.class addCVTerms.class addModelHistory.class \
            printUnits.class printAnnotation.class printNotes.class \
            appendAnnotation.class unsetAnnotation.class unsetNotes.class \
			addCustomValidator.class addingEvidenceCodes_1.class \
			addingEvidenceCodes_2.class callExternalValidator.class \
			createExampleSBML.class printRegisteredPackages.class \
			printsupported.class stripPackage.class
            
all: $(classes)

# The following is the generic rule for making a .class file from one of
# the .java files in this directory.  The funny business with evaluateMath
# is because we have to use a special rule later below that takes into
# account the fact that evaluateMath needs Java version 1.5 or higher.

$(filter-out evaluateMath.class,$(classes)): %.class: %.java
ifeq "@JAVA@" ""
	@echo "libSBML must be configured with --with-java to use the Java bindings."
	exit 1
else
	$(JAVAC) $(JFLAGS) $^
endif

# The following is a special case for evaluateMath because it requires JDK 1.5.

evaluateMath.class: evaluateMath.java
ifeq "@JAVA@" ""
	@echo "libSBML must be configured with --with-java to use the Java bindings."
	exit 1
else
	@jversion=`$(JAVA) -version 2>&1 | head -n 1`; \
	jshort=`echo $$jversion | sed -e 's/.*\([0-9]\)\.\([0-9]\)\.\([0-9]\).*/\1\2\3/'`; \
	if test $$jshort -lt 150; then \
	  echo "*** Our apologies, but JDK 1.5+ is required to compile evaluateMath. ***"; \
	else \
	  $(JAVAC) $(JFLAGS) $^; \
	fi
endif

# The rest of the commands here are general-purpose things.

clean:
	/bin/rm -f $(classes) *~

distclean: clean
	/bin/rm Makefile

# The following are generic 'make' targets that are not used in
# this simple examples directory.

check dist docs install install-docs uninstall \
mostlyclean maintainer-clean installcheck dvi pdf ps info html \
distcheck:
