1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
version = $loader.args[0];
if( version == null )
$throw("<version> argument required");
sys = $loader.loadprim("std@sys_string",0)();
binext = "";
curdir = "./";
ext = switch( sys ) {
"Windows" => {
curdir = ".\\";
binext = ".exe";
"-win"
}
"Mac" => "-osx"
"Linux" => "-linux"
"BSD" => "-bsd"
default => $throw("Unknown system")
}
rights = 493; // octal 755
_mkdir = $loader.loadprim("std@sys_create_dir",2);
mkdir = function(d) {
_mkdir(d,rights);
}
chdir = $loader.loadprim("std@set_cwd",1);
_cmd = $loader.loadprim("std@sys_command",1);
cmd = function(c) {
if( _cmd(c) != 0 ) $throw("Command '"+c+"' failed");
}
dir = "haxe-"+version+ext;
cmd("rm -rf "+dir);
mkdir(dir);
mkdir(dir+"/doc");
if( sys == "Windows" ) {
cmd("cp ../haxe.exe ../haxesetup.exe haxeserver.bat "+dir);
// copy if available (means we build on recent OCaml/MSVC)
try cmd("cp C:/Windows/System32/msvcr100.dll "+dir) catch e {};
} else
cmd("cp ../haxe "+dir);
cmd("cp -pR CHANGES.txt LICENSE.txt ../std "+dir);
if( sys == "Windows" ) cmd("chmod -R 777 "+dir);
cmd("haxe all.hxml");
chdir(dir+"/std/tools");
// BUILD TOOLS
chdir("haxedoc");
cmd("haxe haxedoc.hxml");
cmd(curdir+"haxedoc -v \"../../../../neko.xml;neko\" \"../../../../js.xml;js\" \"../../../../flash9.xml;flash\" \"../../../../php.xml;php\" \"../../../../cpp.xml;cpp\"");
cmd("mv index.html content ../../../doc");
cmd("mv haxedoc"+binext+" ../../..");
chdir("..");
chdir("haxelib");
cmd("haxe haxelib.hxml");
cmd("mv haxelib"+binext+" ../../..");
chdir("..");
// CLEANUP
chdir("..");
cmd("rm -rf .svn */.svn */*/.svn */*/*/.svn */*/*/*/.svn");
cmd("rm -rf all.n all.js *.swf *.xml");
chdir("tools");
chdir("haxedoc");
cmd("rm -rf haxedoc.n index.html content haxedoc"+binext);
chdir("..");
chdir("haxelib");
cmd("rm -rf *.bat *.zip *.db *.n tmp files");
chdir("..");
chdir("hxinst");
cmd("rm -rf *.n *.zip *.dmg *.app hxinst-win.exe hxinst-linux hxinst-osx");
chdir("..");
chdir("..");
cmd("rm -rf mt mtwin");
chdir("../..");
// PACKAGE
if( sys == "Windows" )
cmd("7z a -tzip "+dir+".zip "+dir);
else
cmd("tar -czf "+dir+".tar.gz "+dir);
cmd("rm -rf "+dir);
|