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: