release.neko 2.1 KB

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