################################################################################ # Macros # JAVAC_PATH_15 = /usr/local/java/jdk1.5/bin/javac -source 1.4 -target 1.4 JAVAC_PATH_15 = /usr/local/java/jdk1.5/bin/javac JAVADOC_PATH = /usr/local/java/jdk1.5/bin/javadoc JAR_PATH_15 = /usr/local/java/jdk1.5/bin/jar JARSIGNER_PATH = /usr/local/java/jdk1.5/bin/jarsigner KEYTOOL_PATH = /usr/local/java/jdk1.5/bin/keytool PROJECT_PATH = /n/fs/introcs/www/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_15 = $(PROJECT_PATH)/classes_1.5 LIBRARY_PATH_15 = $(PROJECT_PATH)/lib_1.5 CLASS_PATH_15 = $(DESTINATION_PATH_15):$(LIBRARY_PATH_15) WORK_PATH_15 = $(PROJECT_PATH)/work_1.5 JAR_FILE_15 = $(PROJECT_PATH)/toy_1.5.jar WEB_START_JAR_FILE_15 = $(WEB_START_PATH)/toy_1.5.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.5 version of Visual X-TOY... # rm -Rf $(DESTINATION_PATH_15) mkdir $(DESTINATION_PATH_15) $(JAVAC_PATH_15) -g -d $(DESTINATION_PATH_15) -sourcepath $(SOURCE_PATH) -classpath $(CLASS_PATH_15) -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_15) mkdir $(WORK_PATH_15) rm -f $(JAR_FILE_15) mkdir $(WORK_PATH_15)/meta-inf ln -s $(MANIFEST_FILE) $(WORK_PATH_15)/meta-inf/manifest.mf ln -s $(VERSION_FILE) $(WORK_PATH_15)/version ln -s $(DESTINATION_PATH_15)/* $(WORK_PATH_15) ln -s $(IMAGES_PATH) $(WORK_PATH_15)/images ln -s $(EXAMPLES_PATH) $(WORK_PATH_15)/examples ln -s $(TOY_CONF_FILE) $(WORK_PATH_15)/toy.conf cd $(WORK_PATH_15);ls examples/*.toy > examples.mf # # Generating JAR file for the 1.5 version of Visual X-TOY... # cd $(WORK_PATH_15); $(JAR_PATH_15) cmf meta-inf/manifest.mf $(JAR_FILE_15) * -cd $(LIBRARY_PATH_15); $(JAR_PATH_15) uf $(JAR_FILE_15) * chmod 664 $(JAR_FILE_15) # # Copying JAR files to the webstart directory... # rm -f $(WEB_START_PATH)/*.jar cp $(JAR_FILE_15) $(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_15) javadoc: # # Creating Javadoc... # rm -Rf $(DOC_PATH) $(JAVADOC_PATH) -quiet -sourcepath $(SOURCE_PATH) -classpath $(CLASS_PATH_15) -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)