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 = new Vector(); 16: 17://------------------------------------------------------------------- 18://==-- SET SEARCH PATHS --== 19:make.addSearchPath(srcdir); 20: 21://------------------------------------------------------------------- 22://==-- RULE FOR CREATING DIRECTORIES --== 23:make.createDirectoryRule(bldoutdir, null, true); 24:make.createDirectoryRule("doc", null, true); 25: 26://------------------------------------------------------------------- 27://==-- REMOVE OLD CLASS FILES --== 28:make.createPatternRule(bldoutdir+"/(.*).class", "$1.java", "removeClass", false); 29:void removeClass(String target, String[] prereqs) 30: { 31: print(prereqs[0]); 32: rm(target); 33: compileList.add(prereqs[0]); 34: } 35: 36://------------------------------------------------------------------- 37://==-- COMPILE CLASS FILES --== 38:make.createPhonyRule("compile", bldoutdir+" "+make.arrayToString(classFiles), "compile"); 39:void compile(String target, String[] prereqs) 40: { 41: compileArray = (String[])compileList.toArray(new String[0]); 42: String cmd = "javac -classpath "+bldoutdir+" -d "+bldoutdir+" "+make.arrayToString(compileArray); 43: 44: make.exec(cmd, true); 45: } 46: 47://------------------------------------------------------------------- 48://==-- CREATE JAR FILE --== 49:make.createExplicitRule("cpmaketest.jar", "compile", "createJar", true); 50:void createJar(String target, String[] prereqs) 51: { 52: print("Creating "+target); 53: String cmd = "jar -cfm "+target+" manifest.txt -C "+bldoutdir+" ."; 54: 55: make.exec(cmd); 56: } 57: 58://------------------------------------------------------------------- 59://==-- CREATE JAVADOCS --== 60:make.createPhonyRule("javadoc", "doc", "javadoc"); 61:void javadoc(String target, String[] prereqs) 62: { 63: make.exec(srcdir, "javadoc -public -d ../doc "+make.arrayToString(sourceFiles), true); 64: } 65: 66://------------------------------------------------------------------- 67://==-- TEST --== 68:make.createPhonyRule("test", "cpmaketest.jar", "test"); 69:void test(String target, String[] prereqs) 70: { 71: print("Running test"); 72: make.exec("java -jar cpmaketest.jar"); 73: } 74: 75: 76:make.setDefaultTarget("cpmaketest.jar"); 77: 78: