====== Building Juju on windows ====== For convenience, I will assume that the first thing you do is: start powershell * Download necessary dependencies: (new-object System.Net.WebClient).DownloadFile("http://go.googlecode.com/files/go1.2.1.windows-amd64.msi", "$HOME\go1.2.1.windows-amd64.msi") (new-object System.Net.WebClient).DownloadFile("http://bitbucket.org/tortoisehg/files/downloads/tortoisehg-2.11.2-hg-2.9.2-x64.msi", "$HOME\tortoisehg-2.11.2-hg-2.9.2-x64.msi") (new-object System.Net.WebClient).DownloadFile("https://msysgit.googlecode.com/files/Git-1.9.0-preview20140217.exe", "$HOME\Git-1.9.0-preview20140217.exe") (new-object System.Net.WebClient).DownloadFile("https://launchpad.net/bzr/2.5/2.5.1/+download/bzr-2.5.1-1-setup.exe", "$HOME\bzr-2.5.1-1-setup.exe") * Install dependencies cmd.exe /C call msiexec /i $HOME\go1.2.1.windows-amd64.msi /qb cmd.exe /C call msiexec /i $HOME\tortoisehg-2.11.2-hg-2.9.2-x64.msi /qb cmd.exe /C call $HOME\bzr-2.5.1-1-setup.exe /SILENT cmd.exe /C call $HOME\Git-1.9.0-preview20140217.exe /SILENT * Add Apropriate environment variables setx PATH "$env:PATH;${env:ProgramFiles(x86)}\Git\cmd;${env:ProgramFiles(x86)}\Bazaar;${env:ProgramFiles}\TortoiseHg" setx GOPATH "$HOME\golang" * set variables for current session as well. The C:\Go\bin path is set by the installer: $env:PATH += ";${env:ProgramFiles(x86)}\Git\cmd;${env:ProgramFiles(x86)}\Bazaar;${env:ProgramFiles}\TortoiseHg;C:\go\bin" $env:GOPATH = "$HOME\golang" mkdir $env:GOPATH * Get juju-core and its dependencies go get -v github.com/juju/juju/... * Install and run godeps go get -v launchpad.net/godeps & $env:GOPATH\bin\godeps.exe -f -u $env:GOPATH\src\github.com\juju\juju\dependencies.tsv * run install go install github.com/juju/juju/... :!: IMPORTANT NOTE :!: DRAGONS AHEAD :!: If you ever get a bunch of errors like the following while compiling: conflicting definitions for @ Simply: rm -Recurse -force $env:GOPATH\pkg\windows_amd64 and try again.