/*
 * 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";
build = make.getProperty("build", "debug");
progBin = "cpmaketest";
/*
objExt and exeExt are set in the platform specific make file
*/
if (make.getProperty("os.name").startsWith("Windows"))
	sourceRelative("windows.bsh");
else
	sourceRelative("linux.bsh");

progBin = progBin + exeExt;

srcFiles = new String[] 
	{
	"main.cpp",
	"employee.cpp",
	"company.cpp"
	};
	
objs = make.substitute("(.*)\\.cpp", bldoutdir+"/$1"+objExt, srcFiles);

includeDirs = new String[] { "include" };
	
//-------------------------------------------------------------------
//==-- SET SEARCH PATHS --==
make.addSearchPath(".*\\.hpp", "include");
make.addSearchPath(".*\\.cpp", "src");

//-------------------------------------------------------------------
//==-- RULE FOR CREATING DIRECTORIES --==
make.createDirectoryRule(bldoutdir, null, false);	
	
//-------------------------------------------------------------------
//==-- COMPILE OBJECT RULE --==
make.createPatternDependency(bldoutdir+"/(.*)\\"+objExt, bldoutdir);
make.createPatternRule(bldoutdir+"/(.*)\\"+objExt, "$1.cpp", "compile", true);
void compile(String target, String[] prereqs)
	{
	cmd = getCompileCommand(target, prereqs[0], includeDirs);
	make.exec(cmd);
	}
	
//-------------------------------------------------------------------
//==-- LINK EXECUTABLE --==
make.createExplicitRule(bldoutdir+"/"+progBin, objs, "link", true);
void link(String target, String[] prereqs)
	{
	print("Linking "+target+" for "+platform);
	cmd = getLinkCommand(target, prereqs);
	make.exec(cmd);
	}
	
//-------------------------------------------------------------------
//==-- TEST --==
make.createPhonyRule("test", bldoutdir+"/"+progBin, "test");
void test(String target, String[] prereqs)
	{
	print("Running Test");
	make.exec(bldoutdir, make.fullPath(bldoutdir)+"/"+progBin, true);
	}
	
	
make.setDefaultTarget(bldoutdir+"/"+progBin);