/* * Copyright (c) 2004, Brian Hawkins * Permission is granted to use this code without restriction as long * as this copyright notice appears in all source files. */ bldoutdir = "build"; srcdir = "src"; sourceFiles = make.createFileList(srcdir, ".*\\.java"); classFiles = make.substitute("(.*)\\.java", bldoutdir+"/$1.class", sourceFiles); jarFiles = make.substitute("(.*)\\.java", "$1.class", sourceFiles); compileList = new Vector(); //------------------------------------------------------------------- //==-- SET SEARCH PATHS --== make.addSearchPath(srcdir); //------------------------------------------------------------------- //==-- RULE FOR CREATING DIRECTORIES --== make.createDirectoryRule(bldoutdir, null, true); make.createDirectoryRule("doc", null, true); //------------------------------------------------------------------- //==-- REMOVE OLD CLASS FILES --== make.createPatternRule(bldoutdir+"/(.*).class", "$1.java", "removeClass", false); void removeClass(String target, String[] prereqs) { print(prereqs[0]); rm(target); compileList.add(prereqs[0]); } //------------------------------------------------------------------- //==-- COMPILE CLASS FILES --== make.createPhonyRule("compile", bldoutdir+" "+make.arrayToString(classFiles), "compile"); void compile(String target, String[] prereqs) { compileArray = (String[])compileList.toArray(new String[0]); String cmd = "javac -classpath "+bldoutdir+" -d "+bldoutdir+" "+make.arrayToString(compileArray); make.exec(cmd, true); } //------------------------------------------------------------------- //==-- CREATE JAR FILE --== make.createExplicitRule("cpmaketest.jar", "compile", "createJar", true); void createJar(String target, String[] prereqs) { print("Creating "+target); String cmd = "jar -cfm "+target+" manifest.txt -C "+bldoutdir+" ."; make.exec(cmd); } //------------------------------------------------------------------- //==-- CREATE JAVADOCS --== make.createPhonyRule("javadoc", "doc", "javadoc"); void javadoc(String target, String[] prereqs) { make.exec(srcdir, "javadoc -public -d ../doc "+make.arrayToString(sourceFiles), true); } //------------------------------------------------------------------- //==-- TEST --== make.createPhonyRule("test", "cpmaketest.jar", "test"); void test(String target, String[] prereqs) { print("Running test"); make.exec("java -jar cpmaketest.jar"); } make.setDefaultTarget("cpmaketest.jar");