# # NOTE: There are different versions of this file depending on which machine # you're running. In particular, if you're running on waldorf, use the version # in Makefile-waldorf; on falcon, use Makefile-falcon. # # # This is an illustrative Makefile for compiling and documenting Java programs # on a SUN platform. It uses a standard Makefile layout, consisting of # definitions at the top followed by rules below. # # The directory definitions are based on the following assumptions: # # * This Makefile is in a directory named "class" in which the .class files # generated by javac are stored # # * Immediately above this class directory is a parent directory named # "implementation" in which the .java source files are stored # # * Two directory levels up is a directory named "design" in which the # .html files generated by javadoc are stored # # The primary source file definitions are subdivided into three parts to # reinforce a Model/View/Process design architecture -- MODEL_SRC_FILES, # VIEW_SRC_FILES, and PROCESS_SRC_FILES. There are also auxiliary source file # definitions, such as STUBBED_MODEL_SRC_FILES. # # The two primary rules are for compiling with javac and generating design docs # with javadoc. The default (first) rule is for compiling. # # # # Location of the mvp support package # CLASS_PATH = /home/faculty1/gfisher/projects/work/support/implementation/class # # Destination of .html files generated by javadoc # DESIGN_DIR = ../../design # # Location of .java sources files # IMPLE_SRC_DIR = .. # # Model source files # MODEL_SRC_FILES = \ $(IMPLE_SRC_DIR)/AddInputErrors.java \ $(IMPLE_SRC_DIR)/Address.java \ $(IMPLE_SRC_DIR)/Age.java \ $(IMPLE_SRC_DIR)/Card.java \ $(IMPLE_SRC_DIR)/ChangeInputErrors.java \ $(IMPLE_SRC_DIR)/DeleteInputError.java \ $(IMPLE_SRC_DIR)/EditStub.java \ $(IMPLE_SRC_DIR)/FileStub.java \ $(IMPLE_SRC_DIR)/Id.java \ $(IMPLE_SRC_DIR)/InputErrors.java \ $(IMPLE_SRC_DIR)/Name.java \ $(IMPLE_SRC_DIR)/Rolodex.java \ $(IMPLE_SRC_DIR)/RolodexTool.java \ $(IMPLE_SRC_DIR)/Sex.java # # Model source files with stubbed-out implementations, for quick view testing # STUBBED_MODEL_SRC_FILES = \ $(IMPLE_SRC_DIR)/EditStub.java \ $(IMPLE_SRC_DIR)/FileStub.java \ $(IMPLE_SRC_DIR)/RolodexStub.java \ $(IMPLE_SRC_DIR)/RolodexToolStub.java # # View source files common to both single-view and multi-view versions of the # tool ui # COMMON_VIEW_SRC_FILES = \ $(IMPLE_SRC_DIR)/AddCardButtons.java \ $(IMPLE_SRC_DIR)/AddCardDialog.java \ $(IMPLE_SRC_DIR)/CancelAddButtonListener.java \ $(IMPLE_SRC_DIR)/CancelChangeButtonListener.java \ $(IMPLE_SRC_DIR)/CancelDeleteButtonListener.java \ $(IMPLE_SRC_DIR)/CancelFindButtonListener.java \ $(IMPLE_SRC_DIR)/ChangeCardDialog.java \ $(IMPLE_SRC_DIR)/ClearAddButtonListener.java \ $(IMPLE_SRC_DIR)/ConfirmChangeButtons.java \ $(IMPLE_SRC_DIR)/ConfirmChangeDialog.java \ $(IMPLE_SRC_DIR)/DeleteCardDialog.java \ $(IMPLE_SRC_DIR)/DoneFindButtonListener.java \ $(IMPLE_SRC_DIR)/EditMenu.java \ $(IMPLE_SRC_DIR)/EmptyDialog.java \ $(IMPLE_SRC_DIR)/ErrorMessageDialog.java \ $(IMPLE_SRC_DIR)/FileMenu.java \ $(IMPLE_SRC_DIR)/FindCardDialog.java \ $(IMPLE_SRC_DIR)/FoundCardsButtons.java \ $(IMPLE_SRC_DIR)/FoundCardsDialog.java \ $(IMPLE_SRC_DIR)/NextCardButtonListener.java \ $(IMPLE_SRC_DIR)/NoFoundCardsDialog.java \ $(IMPLE_SRC_DIR)/OKAddButtonListener.java \ $(IMPLE_SRC_DIR)/OKChangeButtonListener.java \ $(IMPLE_SRC_DIR)/OKConfirmChangeButtonListener.java \ $(IMPLE_SRC_DIR)/OKDeleteButtonListener.java \ $(IMPLE_SRC_DIR)/OKErrorButtonListener.java \ $(IMPLE_SRC_DIR)/OKFindButtonListener.java \ $(IMPLE_SRC_DIR)/PreviousCardButtonListener.java \ $(IMPLE_SRC_DIR)/RolodexMenu.java # # View source files for the single-view menu ui # SINGLE_VIEW_MENU_SRC_FILES = \ $(IMPLE_SRC_DIR)/RolodexMenuUI.java # # View source files for the single-view push button ui # SINGLE_VIEW_BUTTON_SRC_FILES = \ $(IMPLE_SRC_DIR)/RolodexPushButtonUI.java # # View source files for the multi-view menu ui # MULTI_VIEW_MENU_SRC_FILES = \ $(IMPLE_SRC_DIR)/CommandEdTextArea.java \ $(IMPLE_SRC_DIR)/RolodexCommandEditor.java \ $(IMPLE_SRC_DIR)/RolodexMultiViewMenuUI.java \ $(IMPLE_SRC_DIR)/RolodexTextEditor.java \ $(IMPLE_SRC_DIR)/RolodexToolBar.java \ $(IMPLE_SRC_DIR)/WindowsMenu.java # # Common process source files # COMMON_PROCESS_SRC_FILES = \ $(IMPLE_SRC_DIR)/CardList.java \ $(IMPLE_SRC_DIR)/StringList.java # # Single view process source files # SINGLE_VIEW_PROCESS_SRC_FILES = \ $(IMPLE_SRC_DIR)/Main.java # # Multi view process source files # MULTI_VIEW_PROCESS_SRC_FILES = \ $(IMPLE_SRC_DIR)/RolodexCommandProcessor.java \ $(IMPLE_SRC_DIR)/MultiViewMain.java # # Build all relevant documentation and executable files. # all: sv_ mv_ doc # # Build a rolodex with a single-view pulldown menu GUI and stubbed File and # Edit implementations. # sv_: $(MODEL_SRC_FILES) \ $(COMMON_VIEW_SRC_FILES) \ $(SINGLE_VIEW_MENU_SRC_FILES) \ $(COMMON_PROCESS_SRC_FILES) \ $(SINGLE_VIEW_PROCESS_SRC_FILES) javac -g -d . -classpath $(CLASS_PATH) \ $(MODEL_SRC_FILES) \ $(COMMON_VIEW_SRC_FILES) \ $(SINGLE_VIEW_MENU_SRC_FILES) \ $(COMMON_PROCESS_SRC_FILES) \ $(SINGLE_VIEW_PROCESS_SRC_FILES) make sv_jar make sv_sa_jar # # Build a .jar archive file. # sv_jar: *.class jar cf sv.jar *.class # # Build a stand-alone executable .jar file that includes the mvp package .class # files. This will allow the .jar file to be executed without unpacking it. # sv_sa_jar: *.class rm -f mvp ln -s $(CLASS_PATH)/mvp . jar cmf MANIFEST-sv sv *.class mvp chmod a+x sv rm mvp # # Build a rolodex with a multi-view pulldown menu GUI and stubbed File and Edit # implementations. # mv_: $(MODEL_SRC_FILES) \ $(COMMON_VIEW_SRC_FILES) \ $(SINGLE_VIEW_MENU_SRC_FILES) \ $(MULTI_VIEW_MENU_SRC_FILES) \ $(COMMON_PROCESS_SRC_FILES) \ $(MULTI_VIEW_PROCESS_SRC_FILES) javac -g -d . -classpath $(CLASS_PATH) \ $(MODEL_SRC_FILES) \ $(COMMON_VIEW_SRC_FILES) \ $(SINGLE_VIEW_MENU_SRC_FILES) \ $(MULTI_VIEW_MENU_SRC_FILES) \ $(COMMON_PROCESS_SRC_FILES) \ $(MULTI_VIEW_PROCESS_SRC_FILES) make mv_jar make mv_sa_jar # # Build a .jar archive file. # mv_jar: *.class jar cf mv.jar *.class # # Build a stand-alone executable .jar file that includes the mvp package .class # files. This will allow the .jar file to be executed without unpacking it. # mv_sa_jar: *.class rm -f mvp ln -s $(CLASS_PATH)/mvp . jar cmf MANIFEST-mv mv *.class mvp chmod a+x mv rm mvp # # Generate javadoc files. # doc: $(MODEL_SRC_FILES) $(VIEW_SRC_FILES) $(PROCESS_SRC_FILES) javadoc -d $(DESIGN_DIR)/javadoc -classpath $(CLASS_PATH) \ $(MODEL_SRC_FILES) \ $(COMMON_VIEW_SRC_FILES) \ $(SINGLE_VIEW_MENU_SRC_FILES) \ $(MULTI_VIEW_MENU_SRC_FILES) \ $(COMMON_PROCESS_SRC_FILES) \ $(SINGLE_VIEW_PROCESS_SRC_FILES) \ $(MULTI_VIEW_PROCESS_SRC_FILES) # # Remove all .class and .html files # clean: rm -f *.class *.jar $(DESIGN_DIR)/*.html # # Convert this Makefile to versions for use on different local platforms. # convert: Makefile csh -q -c ".make-convert"