JFLAGS = -g
JC = javac
JAVA = java
JAVAFLAGS =
JAR = jar
JARFLAGS = -cvfe

.SUFFIXES: .java .class

.java.class:
	$(JC) $(JFLAGS) $*.java

MAIN = Calculator

CLASSES = \
	$(MAIN).java

default: classes

classes: $(CLASSES:.java=.class)

run: default
	@$(JAVA) $(JAVAFLAGS) $(MAIN)

jar: default
	$(JAR) $(JARFLAGS) $(MAIN).jar $(MAIN) $(CLASSES:.java=.class)

jar-run: jar
	@$(JAVA) $(JAVAFLAGS) -jar $(MAIN).jar

archive: default
	$(JAR) -Mcvf archive_$(MAIN).jar $(CLASSES)

test: default
	@bash -c ' \
		for file in `ls tests/*.i*`; \
			do \
				echo -ne "cmd: "; \
				cat $$file; \
				echo -ne "ref: "; \
				cat $${file/.i/.o}; \
				echo -ne "out: "; \
				java $(MAIN) < $$file; \
				echo "--------------"; \
		done \
	'

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