# Variables JC = javac JFLAGS = -g # Cible par défaut all: TestMain.class # Dépendance circulaire délibérée FunctionA.class: FunctionA.java FunctionB.class $(JC) $(JFLAGS) FunctionA.java FunctionB.class: FunctionB.java FunctionC.class $(JC) $(JFLAGS) FunctionB.java FunctionC.class: FunctionC.java FunctionA.class $(JC) $(JFLAGS) FunctionC.java # Cible principale TestMain.class: TestMain.java FunctionA.class FunctionB.class FunctionC.class $(JC) $(JFLAGS) TestMain.java # Nettoyage clean: rm -f *.class # Cibles spéciales .PHONY: all clean