################################################################################ # Macros JAVAC_PATH_14 = /usr/local/java/jdk1.4/bin/javac JAVADOC_PATH = /usr/local/java/jdk1.4/bin/javadoc JAR_PATH_14 = /usr/local/java/jdk1.4/bin/jar JARSIGNER_PATH = /usr/local/java/jdk1.4/bin/jarsigner KEYTOOL_PATH = /usr/local/java/jdk1.4/bin/keytool PROJECT_PATH = /n/fs/csweb/introcs/xtoy/project SOURCE_PATH = $(PROJECT_PATH)/src DOC_PATH = $(PROJECT_PATH)/javadoc WEB_START_PATH = $(PROJECT_PATH)/webstart MANIFEST_FILE = $(PROJECT_PATH)/manifest.mf TOY_CONF_FILE = $(PROJECT_PATH)/toy.conf VERSION_FILE = $(PROJECT_PATH)/version EXAMPLES_PATH = $(PROJECT_PATH)/examples IMAGES_PATH = $(PROJECT_PATH)/images DESTINATION_PATH_14 = $(PROJECT_PATH)/classes_1.4 LIBRARY_PATH_14 = $(PROJECT_PATH)/lib_1.4 CLASS_PATH_14 = $(DESTINATION_PATH_14):$(LIBRARY_PATH_14) WORK_PATH_14 = $(PROJECT_PATH)/work_1.4 JAR_FILE_14 = $(PROJECT_PATH)/toy_1.4.jar WEB_START_JAR_FILE_14 = $(WEB_START_PATH)/toy_1.4.jar KEYSTORE_FILE = $(PROJECT_PATH)/csKeystore KEYSTORE_PASSWORD = computers KEY_PASSWORD = computers KEY_CONF_FILE = $(PROJECT_PATH)/csKeystore.conf KEY_ALIAS = "COS 126" JAVA_JAVADOC_URL = http://java.sun.com/j2se/1.4/docs/api/ FILE_LIST = $(SOURCE_PATH)/*.java $(SOURCE_PATH)/edu/princeton/toy/*.java $(SOURCE_PATH)/edu/princeton/toy/choosers/*.java $(SOURCE_PATH)/edu/princeton/toy/lang/*.java $(SOURCE_PATH)/edu/princeton/swing/*.java $(SOURCE_PATH)/edu/princeton/swing/text/*.java JAVADOC_PACKAGE_LIST = edu.princeton.toy edu.princeton.toy.choosers edu.princeton.toy.lang edu.princeton.swing edu.princeton.swing.text ################################################################################ # Build Rules .PHONY: menu all compile certificate jar javadoc permissions menu: # # Usage: # # make menu- Prints this usage menu. # make all- Calls compile, certificate, jar, and javadoc. # make compile- Remakes the class files. # make certificate- Remakes the certificate (certificates expire in # about 3 months for some reason). # make jar- Repacks and signs the jar file. # make javadoc- Remakes the javadoc files. # make permissions- Resets the permissions of all files in the project # folder to 755. # all: compile certificate jar javadoc permissions compile: # # Compiling class files for the 1.4 version of Visual X-TOY... # rm -Rf $(DESTINATION_PATH_14) mkdir $(DESTINATION_PATH_14) $(JAVAC_PATH_14) -g -d $(DESTINATION_PATH_14) -sourcepath $(SOURCE_PATH) -classpath $(CLASS_PATH_14) -deprecation $(FILE_LIST) # # Incrementing the version # gcc -o $(PROJECT_PATH)/incrementVersion $(PROJECT_PATH)/incrementVersion.c mv $(VERSION_FILE) $(VERSION_FILE).bak $(PROJECT_PATH)/incrementVersion < $(VERSION_FILE).bak > $(VERSION_FILE) rm $(VERSION_FILE).bak certificate: # # Generating keystore... # rm -f $(KEYSTORE_FILE) $(KEYTOOL_PATH) -genkey -keystore $(KEYSTORE_FILE) -alias $(KEY_ALIAS) -keypass $(KEY_PASSWORD) -storepass $(KEYSTORE_PASSWORD) < $(KEY_CONF_FILE) > /dev/null 2> /dev/null # # Generating certificate... # $(KEYTOOL_PATH) -selfcert -alias $(KEY_ALIAS) -keystore $(KEYSTORE_FILE) -keypass $(KEY_PASSWORD) -storepass $(KEYSTORE_PASSWORD) > /dev/null 2> /dev/null jar: # # Cleaning up the work directories... # rm -Rf $(WORK_PATH_14) mkdir $(WORK_PATH_14) rm -f $(JAR_FILE_14) mkdir $(WORK_PATH_14)/meta-inf ln -s $(MANIFEST_FILE) $(WORK_PATH_14)/meta-inf/manifest.mf ln -s $(VERSION_FILE) $(WORK_PATH_14)/version ln -s $(DESTINATION_PATH_14)/* $(WORK_PATH_14) ln -s $(IMAGES_PATH) $(WORK_PATH_14)/images ln -s $(EXAMPLES_PATH) $(WORK_PATH_14)/examples ln -s $(TOY_CONF_FILE) $(WORK_PATH_14)/toy.conf cd $(WORK_PATH_14);ls examples/*.toy > examples.mf # # Generating JAR file for the 1.4 version of Visual X-TOY... # cd $(WORK_PATH_14); $(JAR_PATH_14) cmf meta-inf/manifest.mf $(JAR_FILE_14) * -cd $(LIBRARY_PATH_14); $(JAR_PATH_14) uf $(JAR_FILE_14) * chmod 664 $(JAR_FILE_14) # # Copying JAR files to the webstart directory... # rm -f $(WEB_START_PATH)/*.jar cp $(JAR_FILE_14) $(WEB_START_PATH) # # Signing JAR files... # for foo in $(WEB_START_PATH)/*.jar; do ( $(JARSIGNER_PATH) -keystore $(KEYSTORE_FILE) -keypass $(KEY_PASSWORD) -storepass $(KEYSTORE_PASSWORD) $$foo $(KEY_ALIAS) ) done chmod 664 $(WEB_START_JAR_FILE_14) javadoc: # # Creating Javadoc... # rm -Rf $(DOC_PATH) $(JAVADOC_PATH) -quiet -sourcepath $(SOURCE_PATH) -classpath $(CLASS_PATH_14) -d $(DOC_PATH) -link $(JAVA_JAVADOC_URL) -windowtitle "Visual X-TOY" -doctitle "Visual X-TOY" $(JAVADOC_PACKAGE_LIST) permissions: # # Updating permissions... # chmod -R 775 $(PROJECT_PATH)