JC = javac
JAR = jar
src = src
src_data = $(src)/data
gui = $(src)/gui
gui_data = $(gui)/data
back = $(src)/backend
.SUFFIXES: .java .class
.java.class:
	$(JC) $*.java

CLASSES = \
	$(src)/JUICE.java \
	$(gui)/FlagsFrame.java \
	$(back)/GetFile.java \
	$(gui)/MapNameFrame.java \
	$(gui)/Model.java \
	$(gui)/PrefsFrame.java \
	$(back)/Chunk.java \
	$(back)/ChunkHeader.java \
	$(back)/Entry.java \
	$(back)/Level.java \
	$(back)/MapData.java \
	$(back)/MapWriter.java \
	$(back)/PlacChunk.java \
	$(back)/PlacEntry.java \
	$(back)/MinfChunk.java \
	$(gui)/PlacFrame.java \
	$(gui)/VisualMode.java \
	$(gui)/PlacTableModel.java \
	$(gui)/MessageBox.java \
	$(back)/UnknownChunk.java \
	$(back)/MacBinaryHeader.java \
	$(back)/JuceChunk.java \
	$(back)/JuceEntry.java \
	$(gui)/CommentFrame.java \
	$(back)/Preferences.java \
	$(back)/CRC16.java \
	$(back)/PolyEntry.java \
	$(back)/ObjsChunk.java \
	$(back)/ObjsEntry.java \
	$(back)/LinsChunk.java\
	$(back)/LinsEntry.java\
	$(back)/SidsEntry.java\
	$(back)/SidsChunk.java\
	$(back)/ShapeDescriptor.java\
	$(back)/SideTexture.java\
	$(back)/ShPaChunk.java\
	$(back)/ShPaEntry.java\
	$(back)/Merge.java\
	$(back)/BossFilter.java\
	$(back)/LevelFilter.java\
	$(back)/ShapesFilter.java\
	$(gui)/ObjsFlagsFrame.java \
	$(gui)/ObjsFrame.java \
	$(gui)/ObjsTableModel.java \
	$(gui)/PolyTableEntry.java \
	$(gui)/PolyFrame.java \
	$(gui)/PolyTableModel.java 

default: JUICE.jar

JUICE.jar: classes
	$(JAR) cmf mainClass.txt JUICE.jar $(src)/*.class $(gui)/*.class $(back)/*.class $(src_data) $(gui_data)

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

clean:
	-$(RM) JUICE.jar
	-$(RM) $(src)/*.class
	-$(RM) $(gui)/*.class
	-$(RM) $(back)/*.class
