llvm-mirror/win32
Jeff Cohen cbd3387b66 Workaround a VC++ bug. Microsoft puts the hash_map class in namespace stdext, but
this classes uses a utility function in namespace std.  But Microsoft apparently
assumes everyone will "using namespace std;".  As LLVM doesn't....  Add a
"use std::_Distance;" to get it working.

llvm-svn: 19411
2005-01-09 04:13:09 +00:00
..
Analysis Add C backend to llc in Visual Studio. 2005-01-04 06:01:55 +00:00
AsmParser Make bison/flex build steps output the same message in Visual Studio as 2005-01-04 06:18:10 +00:00
Bytecode Add llvm-as project to Visual Studio 2005-01-01 20:51:41 +00:00
CBackend Add C backend to llc in Visual Studio. 2005-01-04 06:01:55 +00:00
CodeGen Get new SelectionDAG stuff building with Visual Studio. 2005-01-07 15:52:36 +00:00
Configure Workaround a VC++ bug. Microsoft puts the hash_map class in namespace stdext, but 2005-01-09 04:13:09 +00:00
ExecutionEngine Enable browse information in Visual Studio 2004-12-19 02:29:00 +00:00
Fibonacci Eliminate the use of the global variable hack in the X86 target that was used 2005-01-02 04:23:12 +00:00
Linker Add llvm-link, Linker projects to Visual Studio. 2005-01-01 22:32:26 +00:00
llc Add C backend to llc in Visual Studio. 2005-01-04 06:01:55 +00:00
lli Eliminate the use of the global variable hack in the X86 target that was used 2005-01-02 04:23:12 +00:00
llvm-ar Add llvm-ar project to Visual Studio. 2005-01-01 22:00:28 +00:00
llvm-as Add llvm-as project to Visual Studio 2005-01-01 20:51:41 +00:00
llvm-dis Add llvm-as project to Visual Studio 2005-01-01 20:51:41 +00:00
llvm-link Add llvm-link, Linker projects to Visual Studio. 2005-01-01 22:32:26 +00:00
llvm-ranlib Add llvm-ranlib project to Visual Studio. 2005-01-01 22:05:56 +00:00
opt Add project opt to Visual Studio. 2005-01-06 06:02:53 +00:00
Support Add missing file SystemUtils.cpp to Support project. 2005-01-01 21:34:18 +00:00
System Bring VS projects up to date with respect to recent changes 2004-12-27 16:49:34 +00:00
TableGen Make bison/flex build steps output the same message in Visual Studio as 2005-01-04 06:18:10 +00:00
Target Get new SelectionDAG stuff building with Visual Studio. 2005-01-07 15:52:36 +00:00
Transforms Remove bogus project folder 2005-01-07 06:54:58 +00:00
VMCore Add missing header files to projects. 2005-01-01 22:30:19 +00:00
x86 Improve TableGen dependencies 2005-01-01 18:17:40 +00:00
llvm.sln Add a few more passes to LinkAllPasses.h 2005-01-08 18:15:23 +00:00
README.txt Top level files for building natively on win32 2004-11-03 16:14:40 +00:00
unistd.h Top level files for building natively on win32 2004-11-03 16:14:40 +00:00

Directory structure
===================
Although I have made every effort not to use absolute paths, I have only tested building
with my own directory structure and it looks like this:

c:\project\llvm                  ; Main project directory
c:\project\llvm\win32            ; win32 project
c:\project\llvm\win32\tools      ; flex, bison and sed live here
c:\project\llvm\win32\share      ; flex, bison and sed support files

Requirements
============

You need flex, sed and bison - I'm using the GnuWin32 versions of these tools which can be obtained from

http://gnuwin32.sourceforge.net/

Limitations
============

At the moment only the core LLVM libraries and the tablegen executable are built. If anyone has time to
port the rest of the LLVM tools it would be great...

Other notes
===========

When linking with your own application it is of the utmost importance that you use the same runtime
libraries in compiling LLVM as in your own project. Otherwise you will get a lot of errors. To change this,
just mark all the projects except the Config project (since it doesn't use the C compiler) in the
solution explorer, select properties - then go to the C/C++ options and the Code Generation sub option page.
In the Runtime Library (6th from the top) select the appropriate version. Then change the active
configuration to Release (in the top left corner of the properties window) and select the appropriate
runtime library for the release version.

When linking with your applications, you need to force a symbol reference to bring in the x86 backend.
Open the properties for your main project and select the Linker options - under the Input options there
is a Force Symbol References field where you need to enter _X86TargetMachineModule. If anyone has a better
suggestion for how to trick the linker into always pulling in these objects, I'd be grateful...

Contact Information
===================

please contact me at this address if you have any questions:

morten@hue.no


-- Morten Ofstad 2.11.2004