ecf4d246e557b52ba139800f4b0a11095a559bd1
[charm.git] / README.win
1
2                           Charm++ for Win32/64
3
4        Copyright (C) 1989-2004 Regents of the University of Illinois
5
6 You can compile charm++ under Windows9x/2000/NT with VC++ plus Cygwin.
7 Cygwin are ports of the popular GNU development tools and utilities for 
8 Windows 9x/2K and NT, which emulates a UNIX environment under Windows.
9
10 Note that since November 2005, Windows98 is not supported with VC++.
11 Support for WindowsNT/XP is improved to take advantage of the creation of
12 symbolic link under WindowsNT.
13 Please read the FAQ at end of this file.
14
15
16                        Setup and Compilation
17                     ===========================
18 (Note: building charm++ for 64-bit windows follows the exact way of building
19  for 32-bit windows. Therefore, changing "win32" to "win64" in the following 
20  paragraphs gives you the guide to build charm++ for 64-bit windows.)
21
22 To compile charm with VC++:
23 1. install cygwin from: http://sourceware.cygnus.com/cygwin
24    Remember to choose default file type as "unix" at the beginning of 
25    cygwin installation.
26
27 2. Start a Cygwin's Bash Shell window, type "cl" to make sure VC++ compiler 
28    command line mode is correctly set. If it is not correctly set, you need to 
29    run the VCVARS32.BAT, or vcvarsall.bat (after VC++ 8.0) at Windows startup 
30    time. 
31    VCVARS32.BAT can be located in your VC++ install directory, usually at: 
32    /Program Files/Microsoft Visual Studio/VC98/Bin
33    For Microsoft Visual C++ 8.0 and beyond, it is usually located at:
34    C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat
35
36    However VCVARS32.BAT, or vcvarsall.bat (a DOS Batch) cannot be executed 
37    under Bash Shell, you have to: 
38    for Win8x: put it into AUTOEXEC.BAT; 
39    for WinNT/WindowsXP/Vista: you have to call VCVARS32.BAT in cygwin.bat 
40               which is the target of the Cygwin icon on your desktop. 
41               For example, if cygwin is installed under c:\cygwin,
42               modify c:\cygwin\cygwin.bat to something like:
43
44    >>>>>>>>>>>>>>>>>>>
45    @echo off
46
47    call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall"
48
49    C:
50    chdir D:\cygwin\bin
51
52    bash --login -i
53    >>>>>>>>>>>>>>>>>>>>
54
55 3. This step is optional if you have installed Microsoft Visual Studio under 
56    the following (default) location: 
57      /Program Files/Microsoft Visual Studio 8\VC
58    In case it is not at this directory, edit the following (text) files to 
59    modify VCC_DIR and SDK_DIR to point to your visual studio c++ and 
60           Microsoft SDK directories:
61     src\arch\win32\unix2nt_ar
62     src\arch\win32\unix2nt_cc  
63
64 4. Now you can compile Charm++ like Unix, for example:
65
66    ./build charm++ net-win32
67
68    this will build all Charm++ executables under net-win32/bin and all libs
69    under net-win32/lib
70
71
72
73                      Compile and Run Charm++ Programs
74                   ======================================
75
76 1. After Charm++ compilation is complete, you can try some sample programs under
77    net-win32\pgms. For example, 
78    cd net-win32/pgms/charm++/megatest, and type "make",
79    it will invoke Charm++'s "charmc"(VC++ wrapper) to compile the test 
80    programs and generates an executable "pgm.exe" and a charm++'s parallel
81    run utility program - "charmrun.exe".
82    Now you have two choices of running the executable:
83    (1) locally on your desktop, using:
84        ./charmrun +p1 ./pgm ++local
85        this will fork one copy of node program on your local machine. You can 
86        choose using more than one virtual processors, e.g. using +p3  option.
87        Starting from Charm 5.4R2, You can also run, simply type executable and 
88        command line options:
89        ./pgm 
90        This will run only one copy of program locally.
91
92    (2) run in parallel across machines:
93        In this case, you need to write a .nodelist file under your home
94        directory(~) in bash terminal, here is an example:
95
96 group main
97 host hostname1
98 host hostname2 
99
100        Next, you need to start charmd.exe, which is under net-win32/bin on
101        all the nodes as listed in the .nodelist file.
102        Now run the Charm++ program, for example:
103        ./charmrun +p2 ./pgm
104
105
106    For details of Charm++ compilation options and charmrun comman line options
107 explanation, please check the manuals on charm.cs.uiuc.edu web site manual 
108 section.
109    If you have any problem or suggestion, please let me know by sending
110 email to (ppl@cs.uiuc.edu).
111
112
113
114                                     FAQ
115                               ==============
116
117
118  1. I don't like Cygwin, can I compile Charm++ without Cygwin?
119
120    Yes, there is an un-documented way to compile Charm++ under MS-DOS windows 
121    with VC++ and nmake. However, this is only occasionally maintained and not 
122    guarranteed to always work.
123    Follow this steps:
124    1 open a MS-DOS windows, cd to Charm++ directory, and mkdir net-win32\tmp;
125    2 cd to net-win32\tmp, copy Makefile.win32 from 
126      charm\src\Common\scripts\Makefile.win32 to current directory;
127    3 type: nmake /f Makefile.win32
128    4 To compile Charm++ programs, see the Makefile.win32 examples under
129      net-win32\pgms\charm++\megatest\Makefile.win32
130      The command to use is: nmake /f Makefile.win32
131      Basically you need to specify all the charm++ libraries to link against,
132      because shell script charmc is not available,
133
134  2. I just downloaded Charm++ net-win32 binaries from your website, how to use it?
135
136    The recommended way to run windows binary is under Cygwin.
137    First, unzip the binary packages to desired location; Set PATH environment
138    varaible to include the charm bin/ directory. That's it, you can now cd 
139    to Charm++ testsuite directory, for example: pgms/charm++/megatest, to 
140    compile your first Charm++ program using "make".
141    If you don't want to use Cygwin, you have to use "nmake" to compile Charm++
142    programs, see the Makefile example under: 
143    pgms/charm++/megatest/Makefile.win32.
144
145  3. How to compile under Windows98?
146
147    Compiling Charm++ with cygwin/gnu compiler (net-cygwin) under Windows98 
148    is still supported. However, we don't support VC++ with Windows98 any more.
149    To compile Charm++ under Windows98, one can check out Charm++ version
150    before November 2005.