Makefile.win 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. PLATFORM=win
  2. MAKEFILENAME=Makefile.win
  3. include Makefile
  4. HAXE_OUTPUT=haxe.exe
  5. HAXELIB_OUTPUT=haxelib.exe
  6. PREBUILD_OUTPUT=prebuild.exe
  7. EXTENSION=.exe
  8. PACKAGE_SRC_EXTENSION=.zip
  9. kill:
  10. -@taskkill /F /IM haxe.exe
  11. # allow Ocaml/Mingw as well
  12. NATIVE_LIBS += -I "c:/program files/mingw/lib/"
  13. # use make WODI=wodi32 -f Makefile.win to build using WODI 32bit
  14. ifdef WODI
  15. NATIVE_LIBS += -I "/opt/${WODI}/lib"
  16. endif
  17. # use make MSVC=1 -f Makefile.win to build for OCaml/MSVC
  18. ifeq (${MSVC}, 1)
  19. NATIVE_LIBS = shell32.lib libs/extc/extc_stubs.obj libs/extc/process_stubs.obj libs/extc/zlib/zlib.lib libs/objsize/c_objsize.obj
  20. endif
  21. ifeq (${MSVC_OUTPUT}, 1)
  22. FILTER=sed 's/File "\([^"]\+\)", line \([0-9]\+\), \(.*\)/\1(\2): \3/' tmp.cmi
  23. endif
  24. ifeq (${FD_OUTPUT}, 1)
  25. FILTER=sed -e '/File/{ N; s/File "\([^"]\+\)", line \([0-9]\+\), characters \([0-9-]\+\):[\r\n]*\(.*\)/\1:\2: characters \3 : \4/ }' -e 's/_build\/src\//src\//' tmp.cmi
  26. endif
  27. ifdef FILTER
  28. CC_CMD=($(COMPILER) $(ALL_CFLAGS) -c $< 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1)
  29. endif
  30. PACKAGE_FILES=$(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std "$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep zlib1.dll | sed -e 's/^\s*//')" "$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep libpcre-1.dll | sed -e 's/^\s*//')"
  31. echo_package_files:
  32. echo $(PACKAGE_FILES)
  33. package_win:
  34. mkdir -p out
  35. rm -rf $(PACKAGE_FILE_NAME) $(PACKAGE_FILE_NAME).zip temp.zip
  36. # Copy the package contents to $(PACKAGE_FILE_NAME)
  37. # Using poor man's cp (zip then unzip), because cp in cygwin is quite broken
  38. mkdir -p $(PACKAGE_FILE_NAME)
  39. 7z a -y -tzip -mx0 temp.zip $(PACKAGE_FILES) > log.txt || type log.txt
  40. cd extra && 7z a -y -tzip -mx0 ../temp.zip LICENSE.txt CONTRIB.txt CHANGES.txt > log.txt || type log.txt
  41. 7z x -y temp.zip -o$(PACKAGE_FILE_NAME) > log.txt || type log.txt
  42. rm temp.zip
  43. # archive
  44. 7z a -r -tzip out/$(PACKAGE_FILE_NAME)_bin.zip $(PACKAGE_FILE_NAME) > log.txt || type log.txt
  45. rm -r $(PACKAGE_FILE_NAME)
  46. rm log.txt extra/log.txt
  47. package_choco:
  48. mkdir -p OUTPUT
  49. 7z x -y out/$(PACKAGE_FILE_NAME)_bin.zip -oout > log.txt || type log.txt
  50. mv out/$(PACKAGE_FILE_NAME) out/choco
  51. sed -e 's/@SNAPSHOT_VERSION@/$(HAXE_VERSION_SHORT)-SNAP$(COMMIT_DATE)/g' extra/choco/haxe.nuspec > out/choco/haxe.nuspec
  52. cd out/choco && choco pack
  53. mv out/choco/haxe.*.nupkg out
  54. rm -rf out/choco
  55. $(INSTALLER_TMP_DIR)/neko-win.zip: $(INSTALLER_TMP_DIR)
  56. wget -nv http://nekovm.org/media/neko-2.1.0-win.zip -O installer/neko-win.zip
  57. package_installer_win: $(INSTALLER_TMP_DIR)/neko-win.zip package_win
  58. $(eval OUTFILE := $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_installer.zip)
  59. rm -rf $(INSTALLER_TMP_DIR)/resources
  60. # neko
  61. mkdir $(INSTALLER_TMP_DIR)/resources
  62. cd $(INSTALLER_TMP_DIR) && 7z x -y neko-win.zip
  63. rm $(INSTALLER_TMP_DIR)/neko-win.zip
  64. mv $(INSTALLER_TMP_DIR)/neko* $(INSTALLER_TMP_DIR)/resources/neko
  65. # haxe
  66. 7z x -y $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_bin.zip -o$(INSTALLER_TMP_DIR)/resources
  67. mv $(INSTALLER_TMP_DIR)/resources/haxe* $(INSTALLER_TMP_DIR)/resources/haxe
  68. # haxesetup.exe
  69. cd extra && \
  70. $(CURDIR)/$(HAXELIB_OUTPUT) newrepo && \
  71. $(CURDIR)/$(HAXELIB_OUTPUT) install hxcpp --quiet && \
  72. $(CURDIR)/$(HAXELIB_OUTPUT) run hxcpp build-haxesetup.xml
  73. cp extra/haxesetup.exe $(INSTALLER_TMP_DIR)/resources/haxe
  74. # extra
  75. cp extra/*.nsi $(INSTALLER_TMP_DIR)
  76. cp extra/*.nsh $(INSTALLER_TMP_DIR)
  77. cp -rf extra/images $(INSTALLER_TMP_DIR)
  78. # nsis
  79. sed -i "s/%%VERSION%%/$(HAXE_VERSION_SHORT)/g" $(INSTALLER_TMP_DIR)/installer.nsi
  80. sed -i "s/%%VERSTRING%%/$(HAXE_VERSION)/g" $(INSTALLER_TMP_DIR)/installer.nsi
  81. sed -i "s/%%VERLONG%%/$(HAXE_VERSION)/g" $(INSTALLER_TMP_DIR)/installer.nsi
  82. cd $(INSTALLER_TMP_DIR) && makensis installer.nsi
  83. 7z a -r -tzip $(OUTFILE) $(INSTALLER_TMP_DIR)/*.exe
  84. dir $(PACKAGE_OUT_DIR)