build: i18n: add icu config options
[platform/upstream/nodejs.git] / README.md
1 Evented I/O for V8 javascript.
2 ===
3
4 ### To build:
5
6 Prerequisites (Unix only):
7
8     * GCC 4.2 or newer
9     * G++ 4.2 or newer
10     * Python 2.6 or 2.7
11     * GNU Make 3.81 or newer
12     * libexecinfo (FreeBSD and OpenBSD only)
13
14 Unix/Macintosh:
15
16 ```sh
17 ./configure
18 make
19 make install
20 ```
21
22 If your python binary is in a non-standard location or has a
23 non-standard name, run the following instead:
24
25 ```sh
26 export PYTHON=/path/to/python
27 $PYTHON ./configure
28 make
29 make install
30 ```
31
32 Prerequisites (Windows only):
33
34     * Python 2.6 or 2.7
35     * Visual Studio 2010 or 2012
36
37 Windows:
38
39 ```sh
40 vcbuild nosign
41 ```
42
43 You can download pre-built binaries for various operating systems from
44 [http://nodejs.org/download/](http://nodejs.org/download/).  The Windows
45 and OS X installers will prompt you for the location in which to install.
46 The tarballs are self-contained; you can extract them to a local directory
47 with:
48
49 ```sh
50 tar xzf /path/to/node-<version>-<platform>-<arch>.tar.gz
51 ```
52
53 Or system-wide with:
54
55 ```sh
56 cd /usr/local && tar --strip-components 1 -xzf \
57                     /path/to/node-<version>-<platform>-<arch>.tar.gz
58 ```
59
60 ### To run the tests:
61
62 Unix/Macintosh:
63
64 ```sh
65 make test
66 ```
67
68 Windows:
69
70 ```sh
71 vcbuild test
72 ```
73
74 ### To build the documentation:
75
76 ```sh
77 make doc
78 ```
79
80 ### To read the documentation:
81
82 ```sh
83 man doc/node.1
84 ```
85
86 ### `Intl` (ECMA-402) support:
87
88 [Intl](https://github.com/joyent/node/wiki/Intl) support is not
89 enabled by default.
90
91 #### "small" (English only) support
92
93 This option will build with "small" (English only) support, but
94 the full `Intl` (ECMA-402) APIs.  With `--download=all` it will
95 download the ICU library as needed.
96
97 Unix/Macintosh:
98
99 ```sh
100 ./configure --with-intl=small-icu --download=all
101 ```
102
103 Windows:
104
105 ```sh
106 vcbuild small-icu download-all
107 ```
108
109 The `small-icu` mode builds
110 with English-only data. You can add full data at runtime.
111
112 *Note:* more docs are on
113 [the wiki](https://github.com/joyent/node/wiki/Intl).
114
115 #### Build with full ICU support (all locales supported by ICU):
116
117 With the `--download=all`, this may download ICU if you don't
118 have an ICU in `deps/icu`.
119
120 Unix/Macintosh:
121
122 ```sh
123 ./configure --with-intl=full-icu --download=all
124 ```
125
126 Windows:
127
128 ```sh
129 vcbuild full-icu download-all
130 ```
131
132 #### Build with no Intl support `:-(`
133
134 The `Intl` object will not be available.
135 This is the default at present, so this option is not normally needed.
136
137 Unix/Macintosh:
138
139 ```sh
140 ./configure --with-intl=none
141 ```
142
143 Windows:
144
145 ```sh
146 vcbuild intl-none
147 ```
148
149 #### Use existing installed ICU (Unix/Macintosh only):
150
151 ```sh
152 pkg-config --modversion icu-i18n && ./configure --with-intl=system-icu
153 ```
154
155 #### Build with a specific ICU:
156
157 You can find other ICU releases at
158 [the ICU homepage](http://icu-project.org/download).
159 Download the file named something like `icu4c-**##.#**-src.tgz` (or
160 `.zip`).
161
162 Unix/Macintosh: from an already-unpacked ICU
163
164 ```sh
165 ./configure --with-intl=[small-icu,full-icu] --with-icu-source=/path/to/icu
166 ```
167
168 Unix/Macintosh: from a local ICU tarball
169
170 ```sh
171 ./configure --with-intl=[small-icu,full-icu] --with-icu-source=/path/to/icu.tgz
172 ```
173
174 Unix/Macintosh: from a tarball URL
175
176 ```sh
177 ./configure --with-intl=full-icu --with-icu-source=http://url/to/icu.tgz
178 ```
179
180 Windows: first unpack latest ICU to `deps/icu`
181   [icu4c-**##.#**-src.tgz](http://icu-project.org/download) (or `.zip`)
182   as `deps/icu` (You'll have: `deps/icu/source/...`)
183
184 ```sh
185 vcbuild full-icu
186 ```
187
188 Resources for Newcomers
189 ---
190   - [The Wiki](https://github.com/joyent/node/wiki)
191   - [nodejs.org](http://nodejs.org/)
192   - [how to install node.js and npm (node package manager)](http://www.joyent.com/blog/installing-node-and-npm/)
193   - [list of modules](https://github.com/joyent/node/wiki/modules)
194   - [searching the npm registry](http://npmjs.org/)
195   - [list of companies and projects using node](https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node)
196   - [node.js mailing list](http://groups.google.com/group/nodejs)
197   - irc chatroom, [#node.js on freenode.net](http://webchat.freenode.net?channels=node.js&uio=d4)
198   - [community](https://github.com/joyent/node/wiki/Community)
199   - [contributing](https://github.com/joyent/node/wiki/Contributing)
200   - [big list of all the helpful wiki pages](https://github.com/joyent/node/wiki/_pages)