1:""" 2: * Copyright (c) 2004, Brian Hawkins 3: * Permission is granted to use this code without restriction as long 4: * as this copyright notice appears in all source files. 5:""" 6: 7:bldoutdir = "build" 8:srcdir = "src" 9: 10:sourceFiles = make.createFileList(srcdir, ".*\\.java") 11: 12:classFiles = make.substitute("(.*)\\.java", bldoutdir+"/$1.class", sourceFiles) 13:jarFiles = make.substitute("(.*)\\.java", "$1.class", sourceFiles) 14: 15:compileList = "" 16: 17:#//------------------------------------------------------------------- 18:#//==-- SET SEARCH PATHS --== 19:make.addSearchPath(srcdir) 20: 21:#//------------------------------------------------------------------- 22:#//==-- RULE FOR CREATING DIRECTORIES --== 23:make.createDirectoryRule(bldoutdir, None, 1) 24:make.createDirectoryRule("doc", None, 1) 25: 26:#//------------------------------------------------------------------- 27:#//==-- REMOVE OLD CLASS FILES --== 28:make.createPatternRule(bldoutdir+"/(.*).class", "$1.java", "removeClass", 0) 29:def removeClass(target, prereqs): 30: print(prereqs[0]) 31: make.delete(target) 32: global compileList 33: compileList = compileList + prereqs[0] + " " 34: 35:#//------------------------------------------------------------------- 36:#//==-- COMPILE CLASS FILES --== 37:make.createPhonyRule("compile", bldoutdir+" "+make.arrayToString(classFiles), "compile") 38:def compile(target, prereqs): 39: cmd = "javac -classpath "+bldoutdir+" -d "+bldoutdir+" "+compileList 40: 41: make.exec(cmd, 1) 42: 43:#//------------------------------------------------------------------- 44:#//==-- CREATE JAR FILE --== 45:make.createExplicitRule("cpmaketest.jar", "compile", "createJar", 1) 46:def createJar(target, prereqs): 47: print("Creating "+target) 48: cmd = "jar -cfm "+target+" manifest.txt -C "+bldoutdir+" ." 49: 50: make.exec(cmd) 51: 52:#//------------------------------------------------------------------- 53:#//==-- CREATE JAVADOCS --== 54:make.createPhonyRule("javadoc", "doc", "javadoc") 55:def javadoc(target, prereqs): 56: make.exec(srcdir, "javadoc -public -d ../doc "+make.arrayToString(sourceFiles), 1) 57: 58:#//------------------------------------------------------------------- 59:#//==-- TEST --== 60:make.createPhonyRule("test", "cpmaketest.jar", "test"); 61:def test(target, prereqs): 62: print("Running test") 63: make.exec("java -jar cpmaketest.jar") 64: 65: 66:make.setDefaultTarget("cpmaketest.jar") 67: 68: