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:var bldoutdir = "build";
   8:var srcdir = "src";
   9: 
  10:var sourceFiles = make.createFileList(srcdir, ".*\\.java"); 
  11:
  12:var classFiles = make.substitute("(.*)\\.java", bldoutdir+"/$1.class", sourceFiles);
  13:var jarFiles = make.substitute("(.*)\\.java", "$1.class", sourceFiles);
  14:
  15:var compileList = "";
  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:function removeClass(target, prereqs)
  30:    {
  31:    print(prereqs[0]);
  32:    make.del(target);
  33:    compileList = compileList + prereqs[0] + " ";
  34:    }
  35:
  36://-------------------------------------------------------------------
  37://==-- COMPILE CLASS FILES --==
  38:make.createPhonyRule("compile", bldoutdir+" "+make.arrayToString(classFiles), "compile");   
  39:function compile(target, prereqs)
  40:    {
  41:    var cmd = "javac -classpath "+bldoutdir+" -d "+bldoutdir+" "+compileList;
  42:    
  43:    make.exec(cmd, true);
  44:    }
  45:    
  46://-------------------------------------------------------------------
  47://==-- CREATE JAR FILE --==
  48:make.createExplicitRule("cpmaketest.jar", "compile", "createJar", true);    
  49:function createJar(target, prereqs)
  50:    {       
  51:    print("Creating "+target);
  52:    var cmd = "jar -cfm "+target+" manifest.txt -C "+bldoutdir+" .";
  53:
  54:    make.exec(cmd);
  55:    }
  56:
  57://-------------------------------------------------------------------
  58://==-- CREATE JAVADOCS --==
  59:make.createPhonyRule("javadoc", "doc", "javadoc");
  60:function javadoc(target, prereqs)
  61:    {
  62:    make.exec(srcdir, "javadoc -public -d ../doc "+make.arrayToString(sourceFiles), true);
  63:    }
  64:    
  65://-------------------------------------------------------------------
  66://==-- TEST --==
  67:make.createPhonyRule("test", "cpmaketest.jar", "test");
  68:function test(target, prereqs)
  69:    {
  70:    print("Running test");
  71:    make.exec("java -jar cpmaketest.jar");
  72:    }
  73:    
  74:
  75:make.setDefaultTarget("cpmaketest.jar");
  76:
  77: