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: