<?xml version="1.0"?>
<package>
<job id="all">
<script language="JScript">
// Set the following variable to the root location of MS VC++ on your machine
var vc = "c:\\progra~1\\micros~3";
var myshell = WScript.CreateObject("WScript.Shell");
var objEnv = myshell .Environment("Process");
var config = "Release";
var windowOption = "C";
var graphviz_home = myshell.CurrentDirectory;
var lFile = graphviz_home + "/log";
var args = WScript.Arguments;
if(args.Length == 1) {
lFile = args(0);
}
var cpfx = "%COMSPEC% /" + windowOption +" nmake /NOLOGO /f ";
var csfx = " - Win32 " + config + "\" >> " + lFile;
var path = objEnv("PATH");
objEnv("PATH") = path + ";" + vc + "\\VC98\\bin;"+vc+"\\Common\\MsDev98\\bin;";
objEnv("LIB") = vc+"\\VC98\\lib";
objEnv("INCLUDE") = vc+"\\VC98\\include";
function doComp(f)
{
myshell.Run("%COMSPEC% /C echo ################### >> " + lFile);
myshell.Run("%COMSPEC% /C echo compiling " + f + " ... >> " + lFile);
myshell.Run(cpfx + f + ".mak CFG=\"" + f + csfx, 1, true);
}
// base libraries to be built
var graphviz_libs = new Array(
"cdt",
"graph",
"agraph",
"gd",
"pathplan"
)
// dotneato libraries to be built
var dotneato_lib_base = graphviz_home + "\\dotneato\\";
var graphviz_dnlibs = new Array(
"common",
"pack",
"gvrender",
"neatogen",
"dotgen",
"twopigen",
"circogen"
)
// commands to be built
var graphviz_cmd_base = graphviz_home + "\\graphviz\\";
var graphviz_cmds = new Array(
"neato",
"dot",
"twopi",
"circo"
)
// GUIs to be built
var graphviz_gui = new Array(
"lefty\\gfx",
"lefty",
"dotty",
"lneato"
)
// tools to be built
var graphviz_tools = new Array(
"ToolsSupport",
"Acyclic",
"ccomps",
"gvcolor",
"gc",
"nop",
"sccmap",
"tred",
"unflatten",
"gxl2dot",
"dot2gxl",
"dijkstra"
)
// The reason for using i and k and decrementing i in the loops
// below is that it appears jscript is parsed as xml first. If we
// use the less-than symbol, this is taken as the beginning of an
// xml element and causes a parsing error. Note that an alternative
// approach would be to use the < entity, which will be replaced
// by the less-than symbol. Also note that the contents of jscript
// comments, such as this, are parsed as xml, so they cannot contain
// a less-than symbol either.
// build libs
var bnd = graphviz_libs.length;
var i = 0;
var k = 0;
for(i=bnd; i > 0; i--) {
myshell.CurrentDirectory = graphviz_home + "\\" + graphviz_libs[k];
doComp(graphviz_libs[k]);
k++;
}
// build dotneato libs
bnd = graphviz_dnlibs.length;
k = 0;
for(i=bnd; i > 0; i--) {
myshell.CurrentDirectory = dotneato_lib_base + graphviz_dnlibs[k];
doComp(graphviz_dnlibs[k]);
k++;
}
// build commands
bnd = graphviz_cmds.length;
k = 0;
for(i=bnd; i > 0; i--) {
myshell.CurrentDirectory = graphviz_cmd_base + graphviz_cmds[k];
doComp(graphviz_cmds[k]);
k++;
}
// build GUIs
bnd = graphviz_gui.length;
k = 0;
for(i=bnd; i > 0; i--) {
var arcs = graphviz_gui[k].split("\\");
myshell.CurrentDirectory = graphviz_home + "\\" + graphviz_gui[k];
doComp(arcs[arcs.length-1]);
k++;
}
// build tools
myshell.CurrentDirectory = graphviz_home + "\\tools\\projects";
bnd = graphviz_tools.length;
k = 0;
for(i=bnd; i > 0; i--) {
doComp(graphviz_tools[k]);
k++;
}
</script>
</job>
</package>