# Makefile for the road network simulator # Author Douglas Jones # Version 2020-11-17 # The following make commands are supported # make -- equivalent to make RoadNetwork.class # make RoadNetwork.class -- makes RoadNetwork.class and all subsidiaries # # make test -- run a demo showing how the program works # make html -- makes web site of internal documentation # make clean -- deletes all files created by any of the above ############# # All the source files, broken up by categories UtilityJava = Error.java MyScanner.java MyRandom.java Simulator.java IntersectionSubclassJava = NoStop.java StopLight.java Sink.java Source.java ModelJava = Road.java Intersection.java $(IntersectionSubclassJava) MainJava = RoadNetwork.java AllJava = $(UtilityJava) $(ModelJava) $(MainJava) ############# # primary make target UtilityClasses = Error.class MyScanner.class Simulator.class SimulationClasses = Road.class Intersection.class RoadNetwork.class: RoadNetwork.java $(UtilityClasses) $(SimulationClasses) javac RoadNetwork.java # secondary make target -- simulation model Road.class: Road.java Intersection.class $(UtilityClasses) javac Road.java InterDepends = Road.class Source.class Sink.class StopLight.class NoStop.class Intersection.class: Intersection.java $(InterDepends) $(UtilityClasses) Source.class: Source.java NoStop.class $(UtilityClasses) MyRandom.class javac Source.java Sink.class: Sink.java Intersection.class Road.class $(UtilityClasses) javac Sink.java StopLight.class: StopLight.java Intersection.class Road.class $(UtilityClasses) javac StopLight.java NoStop.class: NoStop.java Intersection.class Road.class $(UtilityClasses) javac NoStop.java # secondary make target -- utility classes MyScanner.class: MyScanner.java Error.class javac MyScanner.java Error.class: Error.java javac Error.java Random.class: Random.java javac Random.java Simulator.class: Simulator.java javac Simulator.java ############# # utility make targets test: RoadNetwork.class java RoadNetwork testfile html: javadoc @RoadFiles clean: rm -f *.class *.html package-list script.js stylesheet.css