# -*------------------
# Uses: GNU Make 3.7x
# -*------------------
# @(#) $Id$
#
# Makefile: makefile for kudos.exns
# - created by cjeong@etri.re.kr
#
# Copyleft(c) 2000. Cheoljoo Jeong. All lefts reserved.
# 
#SHELL = /bin/sh
MAKE = make


#-*----------------------------------------
# project name; or package name or ...
#-*----------------------------------------
package = kudos.exns


#-*----------------------------------------
# directories
#-*----------------------------------------
source_dir = .
dest_dir = .


#-*----------------------------------------
# machineries
#-*----------------------------------------
javac = javac
javac_flags =
java = java
java_flags =
jar = jar


#-*----------------------------------------
# sources and objects
#-*----------------------------------------
sources = SchemeJException.java \
	InvalidLvalException.java \
	InvalidTypeException.java \
	UnboundVarException.java \
	InvalidRatorException.java \
	WrongNumberOfRandsException.java \
	UnbalancedParenthesesException.java \
	SExprParseException.java \
	InvalidDefineFormException.java \
	NoExpressionsException.java 
classes = $(sources:.java=.class)


#-*----------------------------------------
# implicit rules
#-*----------------------------------------
.SUFFIXES: 
.SUFFIXES: .java .class
.java.class:
	$(javac) $(javac_flags) $<


#-*----------------------------------------
# default rule to be executed
#-*----------------------------------------
default: all


#-*----------------------------------------
# dependencies
#-*----------------------------------------
SchemeJException.class:
InvalidLvalException.class: SchemeJException.class
InvalidTypeException.class: SchemeJException.class
UnboundVarException.class: SchemeJException.class
InvalidRatorException.class: SchemeJException.class
WrongNumberOfRandsException.class: SchemeJException.class
UnbalancedParenthesesException.class: SchemeJException.class
SExprParseException.class: SchemeJException.class
InvalidDefineFormException.class: SchemeJException.class
NoExpressionsException.class: SchemeJException.class

#-*----------------------------------------
# rules
#-*----------------------------------------
all: 
	$(MAKE) classes

classes: $(classes)

jar:
	$(jar) cvmf $(source_dir)/$(manifest_file) \
		$(dest_dir)/$(proj).jar *.class

run:
	$(javac) $(javac_flags) Main.java
	$(java) $(java_flags) Main

touch:
	touch $(lex_spec) $(yacc_spec) $(sources) 

clean:
	$(RM) *.class *.jar
