CLASSES = Main MAINCLASS = Main JARFILE = Main.jar BUILDDIR = build SRCDIR = src JAVAC = javac JAR = jar JAVA = java $(JARFILE): $(addprefix $(BUILDDIR)/,$(addsuffix .class,$(CLASSES))) $(JAR) -cfe $@ $(MAINCLASS) -C $(BUILDDIR) . $(BUILDDIR)/%.class: $(SRCDIR)/%.java $(JAVAC) -d $(BUILDDIR) -cp $(SRCDIR) -implicit:none $< $(BUILDDIR): mkdir -p $@ .PHONY: clean clean: clean-build clean-jar .PHONY: clean-build clean-build: rm -f $(wildcard $(BUILDDIR)/*) rm -df $(BUILDDIR) .PHONY: clean-jar clean-jar: rm -f $(JARFILE) .PHONY: run run: $(JARFILE) @$(JAVA) -jar $<