HC = ghc HC_MAKE = $(HC) -Wall --make $< -o $@ -main-is $(notdir $@) $(HC_OPTIONS) EXAMPLES=WidgetList Alarm AlarmSpecialized TupleExample Examples all:$(EXAMPLES) %: %.hs $(HC_MAKE) WidgetList:WidgetList.hs Alarm:Alarm.hs AlarmSpecialized:AlarmSpecialized.hs TupleExample:TupleExample.hs Examples:Examples.hs .PHONY: clean remake remake: # It is wrong to specify these as targets, as they must be run in specified order. # Though, you will only see this problem with parallel make (-j). $(MAKE) clean $(MAKE) all clean: - rm *.hi *.o *~ $(EXAMPLES)