2d5dade013f427e100dbc7828937d7a743e36413
[charm.git] / README.cygwin
1 Now you can compile charm++ under Windows9x/2000/NT with Cygwin.
2 Note: This version of cygwin is still under testing.
3 Check the FAQ at end of this file for more help.
4
5
6 Setup and Compilation
7 =====================
8
9 To compile charm on cygwin:
10 1. install cygwin from: http://sourceware.cygnus.com/cygwin
11    with inetutils, openssh, w32api packages and gcc of course. Remember to
12    choose default file type as "unix" at the beginning of cygwin installation.
13
14 2. before compiling, make sure you have /bin/sh correctly installed, otherwise
15    make a link from /bin/bash.exe:  ln -s /bin/bash.exe /bin/sh.exe
16    compile charm++:    ./build charm++ net-cygwin
17
18 3. setting up running environment:
19    There are several ways to do this, using rsh or ssh. 
20    Under Windows2000/NT, ssh is recommended, I once had difficulty to have 
21    inetd working.
22    Starting from Charm++ <version>, you no longer need rshd or sshd to start
23    charm program on local machine. This is for testing purpose though, for 
24    best performance, launch one process per processor with rsh daemons.
25
26  ** RSH **
27    setup /etc/inetd.conf and /etc/services to start rshd, 
28    Here is an example of /etc/inetd.conf:
29
30 ###
31 shell stream tcp nowait.1000  root /usr/sbin/in.rshd  in.rshd
32 ###
33
34    and an example of /etc/services:
35
36 ###   
37 shell     514/tcp    cmd
38 ###
39
40    before running charm program, start 'inetd' first to get rshd running.
41    run 'inetd -d' to see the debug information.
42
43  ** SSH **
44    Check /etc/passwd, make sure your home directory is correct. (it may be
45    empty there!)
46    run "/usr/bin/ssh-config" to setup all ssh config files.
47    Setup ~/.shosts, or add your public key to your ~/.ssh/authorized_keys to 
48    allow you to login without password authentication.
49    now you can start sshd and run charm programs.
50
51  ** run only on local machine **
52      This allow a user to run charm program on his desktop machine for testing 
53    purpose without the hassle of setting up any rsh deamons. To launch a 
54    charm++ program on your local machine, use "++local" option via:
55   
56      ./charmrun +p4 ++local ./pgm
57
58 4. If you have any problem with it, please check the FAQ below for help.
59    Let me know if it works or not by sending email to (ppl@uiuc.edu).
60
61
62
63
64
65
66
67 FAQ
68 ==============
69
70  * Why would I use net-cygwin version?
71
72    First cygwin is free, it comes with free gcc compiler, cvs and openSSH.
73    You don't need expensive Visual C++ compiler to get work done. For unix 
74    fans, it is also a good idea to just turn your windows box to a unix 
75    workspace, and learn and run charm++ program uniformly on all platforms.
76
77  * How to get your latest version of Charm++?
78
79    You can use anonymous cvs login to checkout the latest version of charm.
80    (It may not be the latest stable version though)
81    1. login the cvs server:
82
83       cvs -d :pserver:checkout@thrift.cs.uiuc.edu:/expand6/cvsroot login
84
85       when CVS passwd is prompted, just type Enter.
86    2. checkout charm
87
88       cvs co charm
89
90       You should get latest charm source tree.
91    3. logout the cvs server
92
93       cvs logout
94
95  * Problem: Charm++ build script stops when it compile "ckfutures.ci", with 
96    error message: "Syntax error at line 1: parse error"
97
98    This happens when the .ci files have strange characters like '^M' at end
99    of each line. Don't use WinCVS to checkout charm because it will append
100    '^M' for each line. Use the cvs that comes free from cygwin.
101
102  * Problem: I got a runtime error "CthCreate failed to create fiber!".
103
104    net-cygwin uses Win32 Fiber in its user threads implementation. However, 
105    there is a limit upon the number of Fibers you can create at one time in 
106    the w32api of cygwin. The current limit (as I tested) is between 50-52. You 
107    have to reduce the number of processors or the number of charm++ threads
108    you create in the program to run it under cygwin.
109