JAVAC = javac

SRC = src
BIN = bin

SOURCES = $(SRC)/ClassA.java $(SRC)/ClassB.java $(SRC)/ClassC.java $(SRC)/ClassD.java
CLASSES = $(BIN)/ClassA.class $(BIN)/ClassB.class $(BIN)/ClassC.class $(BIN)/ClassD.class

# all: $(CLASSES)

# separate compilation does not work -> dependencies are not recolved
# $(BIN)/%.class: $(SRC)/%.java | $(BIN)
#	$(JAVAC) -d $(BIN) $< 


# this works, but dependencies are still not resolved explicitly
# incremental build does not work
all: $(BIN)
	$(JAVAC) -d $(BIN) $(SOURCES)	


$(BIN):
	mkdir -p $(BIN)

clean:
	rm -r -f $(BIN)