0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
Commit Graph

375 Commits

Author SHA1 Message Date
Steven R. Loomis
ac2857b12c build, i18n: improve Intl build, add "--with-intl"
The two main goals of this change are:
 - To make it easier to build the Intl option using ICU (particularly,
   using a newer ICU than v8/Chromium's version)
 - To enable a much smaller ICU build with only English support The goal
   here is to get node.js binaries built this way by default so that the
   Intl API can be used. Additional data can be added at execution time
   (see Readme and wiki)

More details are at https://github.com/joyent/node/pull/7719

In particular, this change adds the "--with-intl=" configure option to
provide more ways of building "Intl":
 - "full-icu" picks up an ICU from deps/icu
 - "small-icu" is similar, but builds only English
 - "system-icu" uses pkg-config to find an installed ICU
 - "none" does nothing (no Intl)

For Windows builds, the "full-icu" or "small-icu" options are added to
vcbuild.bat.

Note that the existing "--with-icu-path" option is not removed from
configure, but may not be used alongside the new option.

Wiki changes have already been made on
 https://github.com/joyent/node/wiki/Installation
and a new page created at
 https://github.com/joyent/node/wiki/Intl
(marked as provisional until this change lands.)

Summary of changes:

* README.md : doc updates

* .gitignore : added "deps/icu" as this is the location where ICU is
  unpacked to.

* Makefile : added the tools/icu/* files to cpplint, but excluded a
  problematic file.

* configure : added the "--with-intl" option mentioned above.
  Calculate at config time the list of ICU source files to use and data
  packaging options.

* node.gyp : add the new files src/node_i18n.cc/.h as well as ICU
  linkage.

* src/node.cc : add call into
  node::i18n::InitializeICUDirectory(icu_data_dir) as well as new
  --icu-data-dir option and NODE_ICU_DATA env variable to configure ICU
  data loading. This loading is only relevant in the "small"
  configuration.

* src/node_i18n.cc : new source file for the above Initialize..
  function, to setup ICU as needed.

* tools/icu : new directory with some tools needed for this build.

* tools/icu/icu-generic.gyp : new .gyp file that builds ICU in some new
  ways, both on unix/mac and windows.

* tools/icu/icu-system.gyp : new .gyp file to build node against a
  pkg-config detected ICU.

* tools/icu/icu_small.json : new config file for the "English-only" small
  build.

* tools/icu/icutrim.py : new tool for trimming down ICU data. Reads the
  above .json file.

* tools/icu/iculslocs.cc : new tool for repairing ICU data manifests
  after trim operation.

* tools/icu/no-op.cc : dummy file to force .gyp into using a C++ linker.

* vcbuild.bat : added small-icu and full-icu options, to call into
  configure.

* Fixed toolset dependencies, see
  https://github.com/joyent/node/pull/7719#issuecomment-54641687

Note that because of a bug in gyp {CC,CXX}_host must also be set.
Otherwise gcc/g++ will be used by default for part of the build.

Reviewed-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
2014-10-01 12:16:51 -07:00
Trevor Norris
f2a78de6ec doc: fix optional parameter parsing
The parameter parser specifically looked for the old bracket syntax.
This generated a lot of warnings when building the docs. Those warnings
have been fixed by changing the parsing logic.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2014-09-29 16:32:34 -07:00
Timothy J Fontaine
9fad8958df deps: upgrade npm to 2.0.0 2014-09-24 17:15:10 -07:00
Timothy J Fontaine
a5778cdf01 Merge remote-tracking branch 'upstream/v0.10' into v0.12
Conflicts:
	ChangeLog
	Makefile
	deps/uv/ChangeLog
	deps/uv/build.mk
	deps/uv/src/unix/darwin.c
	deps/uv/src/unix/getaddrinfo.c
	deps/uv/src/version.c
	deps/v8/src/checks.h
	deps/v8/src/isolate.h
	lib/cluster.js
	lib/module.js
	lib/timers.js
	lib/tls.js
	src/node_version.h
2014-08-07 16:33:35 -07:00
Timothy J Fontaine
4f2b08c523 Now working on 0.10.31 2014-07-31 11:12:08 -07:00
Julien Gilli
befbbad051 timers: backport f8193ab
Original commit message:

 timers: use uv_now instead of Date.now

 This saves a few calls to gettimeofday which can be expensive, and
 potentially subject to clock drift. Instead use the loop time which
 uses hrtime internally.

In addition to the backport, this commit:
 - keeps _idleStart timers' property which is still set to
   Date.now() to avoid breaking existing code that uses it, even if
   its use is discouraged.
 - adds automated tests. These tests use a specific branch of
   libfaketime that hasn't been submitted upstream yet. libfaketime
   is git cloned if needed when running automated tests.

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
2014-07-31 08:53:24 -07:00
Timothy J Fontaine
4f1782ef75 Merge remote-tracking branch 'upstream-rw/v0.10' 2014-06-16 19:20:45 -05:00
Timothy J Fontaine
361aa5344d build: run wix tool chain out of process
Building MSIs for different arch's can sometimes confuse MSBuild and
Wix, isntead run the toolchain externally so we don't have to worry
about which arch cmd.exe is running as.
2014-06-13 14:39:53 -07:00
Fedor Indutny
d3204b0225 installer: copy smalloc.h on installation
fix #7485

Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-05-02 22:55:15 +04:00
Fedor Indutny
78d245f5b2 Merge remote-tracking branch 'origin/v0.10'
Conflicts:
	configure
	lib/_stream_readable.js
	lib/http.js
	src/node_dtrace.cc
2014-03-02 23:54:19 +04:00
Timothy J Fontaine
fa0ac99541 wrk: compile on sunos 2014-02-25 11:28:46 -08:00
Timothy J Fontaine
581b8585eb wrk: build against our distributed ssl 2014-02-25 11:28:46 -08:00
Timothy J Fontaine
407e295f43 tools: wrk update to 5b2fa06 2014-02-25 11:28:45 -08:00
Fedor Indutny
e0c5302590 installer: copy node.d only with node_use_dtrace 2014-02-21 01:03:03 +04:00
Fedor Indutny
b940e0fd86 gyp: specialize node.d for freebsd
`node.d` should use `psinfo.d` instead of `procfs.d` and have statically
defined architecture on FreeBSD.
2014-02-21 00:46:26 +04:00
Timothy J Fontaine
845e5d3458 Merge remote-tracking branch 'upstream/v0.10'
Conflicts:
	AUTHORS
	ChangeLog
	deps/uv/AUTHORS
	deps/uv/ChangeLog
	deps/uv/build.mk
	deps/uv/src/unix/linux-core.c
	deps/uv/src/unix/stream.c
	deps/uv/src/unix/sunos.c
	deps/uv/src/version.c
	src/node_version.h
2014-02-19 09:12:32 -08:00
Timothy J Fontaine
085db9dd6c tools: update to support separate website repo 2014-02-18 18:57:45 -08:00
Timothy J Fontaine
6b4f72b7ac Merge remote-tracking branch 'upstream/v0.10'
Conflicts:
	doc/blog/feature/streams2.md
2014-02-13 16:40:38 -08:00
Timothy J Fontaine
37376debe5 website: move website to joyent/node-website
The website will no longer be living in the source repository instead
it can be found at http://github.com/joyent/node-website
2014-02-13 15:54:07 -08:00
Vladimir Kurchatkin
103b89673e doc: skip type parsing inside code blocks
Since types are denoted with curly braces it can cause erroneous
replaces in code blocks.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2014-01-22 12:27:58 -08:00
Fedor Indutny
1442c1c6de addons: build and test examples
fix #6910
2014-01-22 00:39:13 +04:00
Timothy J Fontaine
574f71444c test: move debugger repl into own section 2014-01-20 09:00:13 -08:00
Trevor Norris
24856f04b2 Merge remote-tracking branch 'origin/v0.10'
Conflicts:
	lib/domain.js
2014-01-15 13:49:55 -08:00
Fedor Indutny
a05dae2ced gyp: fix build with python 2.6
fix #6859
2014-01-13 22:03:40 -08:00
Fedor Indutny
346b59e4a3 deps: update gyp to 1eae492b 2014-01-13 22:03:40 -08:00
Timothy J Fontaine
3dcb71f962 Merge remote-tracking branch 'upstream/v0.10' 2013-12-30 15:55:47 -08:00
Fedor Indutny
cb5da7b443 deps: update gyp to 828ce09 2013-12-30 15:52:47 -08:00
Fedor Indutny
96dffb1217 deps: update gyp to 828ce09 2013-12-27 20:06:12 +04:00
T.C. Hollingsworth
55b0bd639d build: install common.gypi along with headers
node-gyp requires this file
2013-12-20 11:03:06 -08:00
Timothy J Fontaine
5b96d6baf6 Merge remote-tracking branch 'upstream/v0.10'
Conflicts:
	ChangeLog
	deps/uv/AUTHORS
	deps/uv/ChangeLog
	deps/uv/src/version.c
	deps/v8/src/log-utils.cc
	src/node_version.h
2013-12-19 09:33:46 -08:00
Timothy J Fontaine
32478acf94 build: unix install node and dep library headers
Restores functionality from v0.8 where module authors may not be
relying on gyp for building their modules.
2013-12-18 15:06:20 -08:00
Timothy J Fontaine
069dd07a17 Merge remote-tracking branch 'upstream/v0.10'
Conflicts:
	AUTHORS
	ChangeLog
	deps/uv/.mailmap
	deps/uv/ChangeLog
	deps/uv/build.mk
	deps/uv/src/unix/darwin.c
	deps/uv/src/unix/udp.c
	deps/uv/src/version.c
	deps/uv/test/test-list.h
	src/node_version.h
2013-12-12 11:32:41 -08:00
Timothy J Fontaine
4ec189b250 gyp: update to 78b26f7 2013-12-11 20:06:11 -08:00
Timothy J Fontaine
2329a254b4 Merge remote-tracking branch 'upstream/v0.10'
Conflicts:
	AUTHORS
	ChangeLog
	deps/uv/AUTHORS
	deps/uv/ChangeLog
	deps/uv/README.md
	deps/uv/build.mk
	deps/uv/src/unix/core.c
	deps/uv/src/unix/darwin-proctitle.c
	deps/uv/src/unix/darwin.c
	deps/uv/src/unix/fsevents.c
	deps/uv/src/unix/udp.c
	deps/uv/src/version.c
	deps/v8/src/platform-solaris.cc
	deps/v8/test/cctest/test-api.cc
	lib/tls.js
	src/node.h
	src/node_version.h
2013-11-18 13:41:17 -08:00
Timothy J Fontaine
2010985354 gyp: update to bebdcea 2013-11-10 15:15:34 -08:00
Ben Noordhuis
d4c09f20c8 tools: check in certdata.txt from mozilla NSS
This is a file from the NSS project containing root certificate data.
It can be downloaded from:

  https://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1

Once downloaded, running `perl tools/mk-ca-bundle.pl` will update
src/node_root_certs.h.  Commit, rebuild and go.
2013-11-09 23:37:55 +01:00
Ben Noordhuis
e159073da5 tools: customize mk-ca-bundle.pl
Remove unneeded functionality and tweak the generated output so we
can #include it in C++ source code.
2013-11-09 23:37:16 +01:00
Ben Noordhuis
5ab863de22 tools: bundle mk-ca-bundle.pl from upstream curl 2013-11-09 23:01:27 +01:00
Timothy J Fontaine
61ccaf9a97 Merge remote-tracking branch 'upstream/v0.10'
Conflicts:
	ChangeLog
	deps/uv/ChangeLog
	deps/uv/include/uv-darwin.h
	deps/uv/src/unix/fsevents.c
	deps/uv/src/unix/process.c
	deps/uv/src/version.c
	doc/api/addons.markdown
	doc/api/cluster.markdown
	doc/api/http.markdown
	lib/http.js
	lib/tls.js
	src/node_crypto.cc
	src/node_http_parser.cc
	src/node_version.h
	src/pipe_wrap.cc
	src/v8abbr.h
	src/v8ustack.d
	test/simple/test-http-pipeline-flood.js
2013-10-25 11:26:05 -07:00
Fedor Indutny
2bc30f239b cpplint: disallow if one-liners 2013-10-17 00:34:19 +04:00
Fedor Indutny
7063c59b97 cpplint: disallow comma-first in C++ 2013-10-17 00:34:18 +04:00
isaacs
9c65387673 blog: Remove wp-to-markdown script 2013-10-09 14:00:32 -07:00
isaacs
96358613f9 Merge remote-tracking branch 'ry/v0.10'
Conflicts:
	AUTHORS
	ChangeLog
	deps/uv/ChangeLog
	deps/uv/include/uv-darwin.h
	deps/uv/src/unix/darwin.c
	deps/uv/src/unix/fsevents.c
	deps/uv/src/version.c
	lib/_stream_writable.js
	src/node_version.h
2013-08-28 10:11:17 -07:00
Timothy J Fontaine
3f1dba18b2 tools: script release steps after jenkins build 2013-08-21 16:59:15 -07:00
Timothy J Fontaine
92e4375173 tools: script to report [un]stable build 2013-08-21 16:55:27 -07:00
Ben Noordhuis
98c54246c2 tools: cpplint: fix NOLINT(build/include_order)
And build/include, build/include_alpha and readability/streams
probably too, though those are currently unused and therefore untested.
2013-08-15 14:21:41 +02:00
Timothy J Fontaine
e851fef60f build: embed the mdb_v8.so into the binary
This builds and includes the mdb_v8.so in the binary of node so mdb
can be sure to always use the latest version
2013-08-05 14:19:29 -07:00
Ben Noordhuis
847c6d980c tools: cpplint: fix up build/include_order rule
Change the build/include_order rule to match our preference:
project headers before system headers.

The rationale is that system headers before project headers makes it
easy to slip in bugs where a project header that requires a definition
from a system header, forgets to include the system header but still
compiles because the source files that include the project header
coincidentally include the system header too.

A good example is the size_t type. A project header file that needs the
definition of size_t should include stddef.h but forgetting to do so
will probably go unnoticed for a long time because almost every other
system header includes stddef.h (either directly or indirectly) and
almost every source file includes one or more system headers.

Ergo, project headers before system headers. It's a good thing.
2013-07-31 22:34:35 +02:00
Fedor Indutny
3c6b5d5df1 cpplint: make lint rules closer to node's source
* Support C-style header guards (/* comments */)
* Support `class NODE_EXTERN something`
* Support `}  // extern "C"` closures
* Ignore header order
* Ignore `long/short` usage (because of OpenSSL's API)
2013-07-31 22:12:06 +04:00
Ben Noordhuis
457d529241 tools: fix js2c macro expansion bug
If the same macro was used twice in close proximity, the second one
didn't get expanded.
2013-07-24 21:49:34 +02:00