# # Makefile for the Calendar Tool Java implementation, 307 Milestone 6. # LIB307 = /home/gfisher/classes/307/lib/JVM OPENJML = /home/gfisher/classes/307/bin/openjml JML = \ java -Xbootclasspath/p:$(OPENJML)/openjmlboot.jar -jar \ $(OPENJML)/openjml.jar -noPurityCheck # Directory for generated executable files EXECUTABLES = ../../executables/JVM # Files to compile FILES = \ caltool/*.java \ caltool/model/*.java \ caltool/model/admin/*.java \ caltool/model/admin/administrator/*.java \ caltool/model/admin/user/*.java \ caltool/view/admin/*.java \ caltool/view/admin/administrator/*.java \ caltool/view/admin/user/*.java \ caltool/model/caldb/*.java \ caltool/view/*.java \ caltool/model/edit/*.java \ caltool/view/edit/*.java \ caltool/model/file/*.java \ caltool/view/file/*.java \ caltool/model/help/*.java \ caltool/view/help/*.java \ caltool/model/options/*.java \ caltool/view/options/*.java \ caltool/model/schedule/*.java \ caltool/view/schedule/*.java \ caltool/model/server/*.java \ caltool/model/view/*.java \ caltool/view/view/*.java # List of packages PACKAGES = \ caltool \ caltool/model \ caltool/view \ caltool/model/admin \ caltool/model/admin/administrator \ caltool/model/admin/user \ caltool/view/admin \ caltool/view/admin/administrator \ caltool/view/admin/user \ caltool/model/caldb \ caltool/model/edit \ caltool/view/edit \ caltool/model/file \ caltool/view/file \ caltool/model/help \ caltool/view/help \ caltool/model/options \ caltool/view/options \ caltool/model/schedule \ caltool/view/schedule \ caltool/model/server \ caltool/model/view \ caltool/view/view # Run the Java compiler on all of the files. all: $(FILES) # echo $(FILES) javac -g \ -classpath $(LIB307) \ -d $(EXECUTABLES) \ $(FILES) cd $(EXECUTABLES); make $(JML) -classpath $(LIB307) $(FILES) # The preceding rule results in an executable program that is invoked as # follows from the implementation/executables/JVM directory: # # java caltool.Main # # The makefile in that dir has more information about altenate forms of java # program invocation. # Compile and JML check just the Schedule.java class. sched: javac -classpath $(LIB307):. caltool/model/schedule/Schedule.java $(JML) -classpath $(LIB307):. caltool/model/schedule/Schedule.java # Print source files in small-font, line-numbered, two-column format. print: csh -q -c ".make-print $(PACKAGES)" # Echo the package names for use in command-line processing of all packages, # such as copying a uniform .cvsignore file into each package dir. echop: @echo $(PACKAGES) # Remove all .class files from the executables/JVM dir. clean: csh -q -c ".make-clean"