JC = javac
JFLAGS = -g
JVM = java

SOURCES = Main.java
CLASSES = $(SOURCES:.java=.class)
MAIN = Main

file ?= sample.in

.PHONY: all run clean help build

all: $(CLASSES)

build: $(CLASSES)

%.class: %.java
	$(JC) $(JFLAGS) $<

run:
	@$(JVM) $(MAIN) $(file)

clean:
	rm -f *.class

help:
	@echo "Usage:"
	@echo "  make              - Compile all Java files"
	@echo "  make run          - Run with sample.in (default)"
	@echo "  make run file=<filename>"
	@echo "  make clean        - Remove all .class files"
