Advertisement
Guest User

Windows Haskell SDL Install Script

a guest
Mar 9th, 2016
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Initialization
  2. $tar = ".tar"
  3. $tar_gz = $tar + ".gz"
  4. $zip = ".zip"
  5.  
  6. $install_dir = "C:\sdl"
  7. $target_dir = "\x86_64-w64-mingw32"
  8. $pkg_config_subdir = "\lib\pkgconfig"
  9.  
  10. $sdl2_dir       = $install_dir + "\SDL2-2.0.4"
  11. $sdl2_image_dir = $install_dir + "\SDL2_image-2.0.1"
  12. $sdl2_mixer_dir = $install_dir + "\SDL2_mixer-2.0.1"
  13. $sdl2_ttf_dir   = $install_dir + "\SDL2_ttf-2.0.14"
  14.  
  15. $sdl2_binding_dir       = $install_dir + "\sdl2-2.1.1"
  16. $sdl2_image_binding_dir = $install_dir + "\sdl2-image-windows"
  17. $sdl2_mixer_binding_dir = $install_dir + "\sdl2-mixer-windows"
  18. $sdl2_ttf_binding_dir   = $install_dir + "\sdl2-ttf-windows"
  19.  
  20. $gettext_dir    = $install_dir + "\gettext"
  21. $glib_dir       = $install_dir + "\glib"
  22. $pkg_config_dir = $install_dir + "\pkg_config"
  23.  
  24. $sdl_header_url = "https://hg.libsdl.org/SDL/raw-file/e217ed463f25/include/SDL_platform.h"
  25.  
  26. $sdl2_url       = "https://www.libsdl.org/release/SDL2-devel-2.0.4-mingw.tar.gz"
  27. $sdl2_image_url = "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.1-mingw.tar.gz"
  28. $sdl2_mixer_url = "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.1-mingw.tar.gz"
  29. $sdl2_ttf_url   = "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.14-mingw.tar.gz"
  30.  
  31. $sdl2_binding_url       = "https://github.com/haskell-game/sdl2/archive/v2.1.1.zip"
  32. $sdl2_image_binding_url = "https://github.com/nxths/sdl2-image/archive/windows.zip"
  33. $sdl2_mixer_binding_url = "https://github.com/nxths/sdl2-mixer/archive/windows.zip"
  34. $sdl2_ttf_binding_url    = "https://github.com/nxths/sdl2-ttf/archive/windows.zip"
  35.  
  36. $gettext_url    = "http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip"
  37. $glib_url       = "http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip"
  38. $pkg_config_url = "http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip"
  39.  
  40. New-Item $install_dir -type directory -force
  41.  
  42. $env:PKG_CONFIG_PATH = $sdl2_dir       + $target_dir + $pkg_config_subdir + ";" +
  43.                        $sdl2_image_dir + $target_dir + $pkg_config_subdir + ";" +
  44.                        $sdl2_mixer_dir + $target_dir + $pkg_config_subdir + ";" +
  45.                        $sdl2_ttf_dir   + $target_dir + $pkg_config_subdir
  46.  
  47. $env:PATH = $env:PATH + ";" + $sdl2_dir       + $target_dir + "\bin;" +
  48.                               $sdl2_image_dir + $target_dir + "\bin;" +
  49.                               $sdl2_mixer_dir + $target_dir + "\bin;" +
  50.                               $sdl2_ttf_dir   + $target_dir + "\bin;" +
  51.                               $pkg_config_dir + "\bin"
  52.  
  53. $client = New-Object System.Net.WebClient
  54.  
  55. # Body
  56. $client.DownloadFile($sdl2_url,       $sdl2_dir       + $tar_gz)
  57. $client.DownloadFile($sdl2_image_url, $sdl2_image_dir + $tar_gz)
  58. $client.DownloadFile($sdl2_mixer_url, $sdl2_mixer_dir + $tar_gz)
  59. $client.DownloadFile($sdl2_ttf_url,   $sdl2_ttf_dir   + $tar_gz)
  60.  
  61. $client.DownloadFile($sdl2_binding_url,       $sdl2_binding_dir       + $zip)
  62. $client.DownloadFile($sdl2_image_binding_url, $sdl2_image_binding_dir + $zip)
  63. $client.DownloadFile($sdl2_mixer_binding_url, $sdl2_mixer_binding_dir + $zip)
  64. $client.DownloadFile($sdl2_ttf_binding_url,   $sdl2_ttf_binding_dir   + $zip)
  65.  
  66. $client.DownloadFile($gettext_url,    $gettext_dir    + $zip)
  67. $client.DownloadFile($glib_url,       $glib_dir       + $zip)
  68. $client.DownloadFile($pkg_config_url, $pkg_config_dir + $zip)
  69.  
  70. .\7za e ($sdl2_dir       + $tar_gz) ("-o" + $install_dir)
  71. .\7za e ($sdl2_image_dir + $tar_gz) ("-o" + $install_dir)
  72. .\7za e ($sdl2_mixer_dir + $tar_gz) ("-o" + $install_dir)
  73. .\7za e ($sdl2_ttf_dir   + $tar_gz) ("-o" + $install_dir)
  74.  
  75. .\7za x ($sdl2_dir       + $tar) ("-o" + $install_dir)
  76. .\7za x ($sdl2_image_dir + $tar) ("-o" + $install_dir)
  77. .\7za x ($sdl2_mixer_dir + $tar) ("-o" + $install_dir)
  78. .\7za x ($sdl2_ttf_dir   + $tar) ("-o" + $install_dir)
  79.  
  80. .\7za x ($sdl2_binding_dir       + $zip) ("-o" + $install_dir)
  81. .\7za x ($sdl2_image_binding_dir + $zip) ("-o" + $install_dir)
  82. .\7za x ($sdl2_mixer_binding_dir + $zip) ("-o" + $install_dir)
  83. .\7za x ($sdl2_ttf_binding_dir   + $zip) ("-o" + $install_dir)
  84.  
  85. .\7za x ($gettext_dir    + $zip) ("-o" + $pkg_config_dir)
  86. .\7za x ($glib_dir       + $zip) ("-o" + $pkg_config_dir)
  87. .\7za x ($pkg_config_dir + $zip) ("-o" + $pkg_config_dir)
  88.  
  89. $client.DownloadFile($sdl_header_url, $sdl2_dir + $target_dir + "\include\SDL2\SDL_platform.h")
  90.  
  91. cabal install $sdl2_binding_dir       --extra-lib-dirs="$sdl2_dir\include"              --extra-include-dirs="$sdl2_dir\lib\x64"
  92. cabal install $sdl2_image_binding_dir --extra-lib-dirs="$sdl2_image_dir$target_dir\lib" --extra-include-dirs="$sdl2_image_dir$target_dir\include\SDL2"
  93. cabal install $sdl2_mixer_binding_dir --extra-lib-dirs="$sdl2_mixer_dir$target_dir\lib" --extra-include-dirs="$sdl2_mixer_dir$target_dir\include\SDL2"
  94. cabal install $sdl2_ttf_binding_dir   --extra-lib-dirs="$sdl2_ttf_dir$target_dir\lib"   --extra-include-dirs="$sdl2_ttf_dir$target_dir\include\SDL2"   --extra-include-dirs="$sdl2_dir\include"
  95.  
  96. # Cleanup
  97. Remove-Item ($sdl2_dir       + $tar_gz) -recurse
  98. Remove-Item ($sdl2_image_dir + $tar_gz) -recurse
  99. Remove-Item ($sdl2_mixer_dir + $tar_gz) -recurse
  100. Remove-Item ($sdl2_ttf_dir   + $tar_gz) -recurse
  101.  
  102. Remove-Item ($sdl2_dir       + $tar) -recurse
  103. Remove-Item ($sdl2_image_dir + $tar) -recurse
  104. Remove-Item ($sdl2_mixer_dir + $tar) -recurse
  105. Remove-Item ($sdl2_ttf_dir   + $tar) -recurse
  106.  
  107. Remove-Item ($sdl2_binding_dir       + $zip) -recurse
  108. Remove-Item ($sdl2_image_binding_dir + $zip) -recurse
  109. Remove-Item ($sdl2_mixer_binding_dir + $zip) -recurse
  110. Remove-Item ($sdl2_ttf_binding_dir   + $zip) -recurse
  111.  
  112. Remove-Item ($gettext_dir    + $zip)  -recurse
  113. Remove-Item ($glib_dir       + $zip)  -recurse
  114. Remove-Item ($pkg_config_dir + $zip)  -recurse
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement