Building LLVM 3.3 on Win64

I’m trying to build LLVM 3.3 using cmake/nmake, Microsoft C++ 2012, on a 64-bit Windows 7 system. I tried it with the 32-bit compiler as a test case first and that appeared to work, then with the 64-bit compiler in the hope that would give me a 64-bit build of LLVM, but instead got this error message:

[ 86%] Generating X86CompilationCallback_Win64.obj
Microsoft (R) Macro Assembler (x64) Version 11.00.51106.1
Copyright (C) Microsoft Corporation. All rights reserved.

MASM : warning A4018:invalid command-line option : /llvm-3.3.src/lib/Target/X86/X86CompilationCallback_Win64.asm
MASM : fatal error A1017:missing source filename
NMAKE : fatal error U1077: ‘echo’ : return code ‘0x1’
Stop.
NMAKE : fatal error U1077: ‘“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\nmake.exe”’ : return code ‘0x2’
Stop.
NMAKE : fatal error U1077: ‘“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\nmake.exe”’ : return code ‘0x2’
Stop.

Am I doing something wrong?

After some running some more tests, a weird addendum to this case: the build also fails at the same place with the same error message if MinGW isn’t in the path. I’m not talking about MinGW instead of Microsoft C++, it’s just that the build works if and only if MinGW is in the path as well as the 32-bit version of Microsoft C++.

… Or maybe not? I just tried it again in the exact same configuration that did work before, and this time it fails at an earlier stage with a different error:

Hmm, kicking off nmake again at the 66% mark after that last error, successfully ran to completion, so maybe that was just a transient hardware glitch for all I know; it’s different from the other error which does seem to be persistent and repeatable.

Hi Russel,

I never tried to build LLVM with nmake. With msbuild it works without problems. You can find a short desription here: http://wiki.dlang.org/Building_and_hacking_LDC_on_Windows_using_MSVC, section Build LLVM.

Regards
Kai

Ah, that worked much better, thanks! It actually appears to build correctly now with this sequence of commands:

cd
md llvm
cd llvm
\CMake\bin\cmake.exe \llvm-3.3.src
msbuild ALL_BUILD.vcxproj