version = $loader.args[0]; if( version == null ) $throw(" 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);