JFLAGS = -g:none -implicit:none JC = javac JTX = JavaTXcompiler-1.0-jar-with-dependencies.jar SRCDIR = javatx-src/main/java DESTDIR = out # Use find to locate all .java and .jav files recursively JAVASOURCES := $(shell find $(SRCDIR) -name '*.java') JAVSOURCES := $(shell find $(SRCDIR) -name '*.jav') # Convert .java files to .class files with the same directory structure JAVACLASSES := $(patsubst $(SRCDIR)/%.java,$(DESTDIR)/%.class,$(JAVASOURCES)) JAVCLASSES := $(patsubst $(SRCDIR)/%.jav,$(DESTDIR)/%.class,$(JAVSOURCES)) default: classes $(DESTDIR): mkdir -p $(DESTDIR) # Rule for creating directories # Rule for compiling .jav files $(DESTDIR)/%.class: $(SRCDIR)/%.jav | $(DESTDIR) java -jar $(JTX) -d "$(dir $@)" -cp "$(SRCDIR):$(DESTDIR):target/dependencies/" $< # Rule for compiling .java files $(DESTDIR)/%.class: $(SRCDIR)/%.java | $(DESTDIR) $(JC) -nowarn -d $(DESTDIR) -cp "$(SRCDIR):$(DESTDIR):target/dependencies/*" $(JFLAGS) $< classes: $(JAVCLASSES) $(JAVACLASSES) clean: $(RM) -r $(DESTDIR)/*