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

315 Commits

Author SHA1 Message Date
Rod Vagg
0e92bb99c6 build: prioritise --shared-X-Y over pkg-config
PR-URL: https://github.com/nodejs/node/pull/9368
Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-10-31 22:47:20 +11:00
Eugene Ostroukhov
8f00455c51 inspector: switch to new inspector APIs
This implementation switches to V8 inspector from the V8 repository. The
new inspector integration is now using final APIs and exposes a stable
wire protocol, removing the need for pointing the users to specific
devtools version.

PR-URL: https://github.com/nodejs/node/pull/9028
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-10-26 09:37:45 -07:00
Ali Ijaz Sheikh
19c9567686 build: fix mkpeephole configuration
mkpeephole is a binary that gets generated and run at V8 build time.
On cross-compilation builds separate build toolchains are required.
Similar to want_separate_host_toolset we default to disabled.

PR-URL: https://github.com/nodejs/node/pull/8317
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2016-09-22 09:55:40 +02:00
BlackYoup
ae0334a7e7 configure: reword help for --without-npm
PR-URL: https://github.com/nodejs/node/pull/7471
Reviewed-By: Robert Jefe Lindstaedt <robert.lindstaedt@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-08-18 15:57:25 -07:00
Stewart Addison
a7222052d4 build: add correct shared library naming on OS X
The build system currently creates a shared library on OS X with the
same name as on Linux i.e.  libnode.so.48.  This is inconsistent with
the conventions on OS X which uses libnode.48.so This commit changes
the build process and install.py (used by make binary) to build with
the correct name on OS X when the --shared configure parameter is used.

PR-URL: https://github.com/nodejs/node/pull/7687
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2016-08-09 11:55:01 -04:00
Stefan Budeanu
88e862ba82 build: windows sharedlib support
Added "dll" option to vcbuild.bat
Insure that Unix SO name is not used on Windows (i.e. produce a .dll file)
Insure that Node and its V8 dependency link against the Visual C++ Runtime
dynamically.
Requires backported V8 patch, see PR 7802.

Ref: https://github.com/nodejs/node/pull/7802

PR-URL: https://github.com/nodejs/node/pull/7487
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2016-08-05 09:27:48 -04:00
Ben Noordhuis
0a9f27b0ee build: add --enable-d8 configure option
Add an option to the configure script for building d8.  Useful for
testing V8 standalone.

PR-URL: https://github.com/nodejs/node/pull/7538
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2016-07-09 09:24:54 +02:00
Stefan Budeanu
410296c37a build: configure --shared
Add configure flag for building a shared library that can be
embedded in other applications (like Electron). Add flags
--without-bundled-v8 and --without-v8-platform to control V8
dependencies used.

PR-URL: https://github.com/nodejs/node/pull/6994
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2016-06-28 17:48:22 -04:00
Ali Ijaz Sheikh
44b9154495 deps: switch to upstream v8_inspector
This change picks up v8_inspector directly from the upstream chromium
repository [1]; dropping the intermediate repository. The upstream
code has been refactored substantially to make it easy to share code
without adaptation with Node.js.

The deps/v8_inspector directory is now simply a gathering of
dependencies:

* platform/v8_inspector: vendored from [2].
* platform/inspector_protocol: vendored from [3].
* deps/jinja2: vendored from [4].
* deps/markupsafe: vendored from [5].

[1]: https://chromium.googlesource.com/chromium/src/third_party/WebKit/Source/platform
[2]: https://chromium.googlesource.com/chromium/src/third_party/WebKit/Source/platform/v8_inspector
[3]: https://chromium.googlesource.com/chromium/src/third_party/WebKit/Source/platform/inspector_protocol
[4]: https://github.com/mitsuhiko/jinja2
[5]: https://github.com/mitsuhiko/markupsafe

PR-URL: https://github.com/nodejs/node/pull/7302
Reviewed-By: indutny - Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
2016-06-17 10:37:11 -07:00
Pavel Feldman
84ad31fff3 src,lib: v8-inspector support
This change introduces experimental v8-inspector support. This brings
the DevTools debug protocol allowing Node.js to be debugged with
Chrome DevTools native, or through other debuggers supporting that
protocol.

Partial WebSocket support, to the extent required by DevTools, is
included. This is derived from the implementation in Blink.

v8-inspector support can be disabled by the --without-inspector
configure flag.

PR-URL: https://github.com/nodejs/node/pull/6792
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
Reviewed-By: addaleax - Anna Henningsen <anna@addaleax.net>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
2016-05-30 09:05:46 -07:00
Ehsan Akhgari
de5020292e build: re-add --ninja option to configure
Ninja is a build backend supported by gyp which is much faster than
Make and is able to parallelize builds across all of the available
cores very well. On my machine, this reduces the average build time
from 5:14 minutes to 4:33 minutes.

Refs: https://github.com/nodejs/node/pull/467
Refs: de224d6e6c
PR-URL: https://github.com/nodejs/node/pull/6780
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2016-05-27 18:13:41 -04:00
Ben Noordhuis
62376d99bd build: unbreak configure with python 2.6
Commit 2b1c01c2c ("build: refactor pkg-config for shared libraries")
from May 2015 introduced python 2.7-specific code.

It mainly affects people building on old RHEL platforms where the system
python is 2.6.  Seemingly a dying breed because the issue went unnoticed
(or at least unreported) for a whole year.

Fixes: https://github.com/nodejs/node/issues/6711
PR-URL: https://github.com/nodejs/node/pull/6874
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Robert Jefe Lindstaedt <robert.lindstaedt@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
2016-05-19 23:35:02 +02:00
Steven R. Loomis
3ff54bdd11
deps: Intl: ICU 57 bump
* bump to ICU 57.1 - update URL / hash

Fixes: https://github.com/nodejs/node/issues/6058
PR-URL: https://github.com/nodejs/node/pull/6088
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-05-04 16:04:49 -07:00
Steven R. Loomis
03a8637f79
tools: Check in tools for shrinking ICU size, change default to small-icu
* Change configure default to "small-icu" (Intl on, English only)
* add "--without-intl" and "vcbuild without-intl" options, equivalent
to --with-intl=none
* update BUILDING.md with above changes
* Checks in tools that generate the deps/icu-small source directory
from ICU source
* Tools and process for updating ICU documented in tools/icu/README.md

Fixes: https://github.com/nodejs/node/issues/3476
PR-URL: https://github.com/nodejs/node/pull/6088
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-05-04 16:04:22 -07:00
Johan Bergström
2253be95d0 deps: reintroduce supporting shared c-ares builds
As of cc192f0e we've now in sync with upstream which means that we
also can allow our users to build against a shared version of c-ares.

Note: It is still up to users to make sure that the library version
is on par with what Node.js bundles.

This "reverts" commit 25fa5c4.

PR-URL: https://github.com/nodejs/node/pull/5775
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-04-05 19:45:53 +10:00
Michael Dawson
a4c4a852a9 build: enable compilation for linuxOne
Changes to Node core in order to allow compilation for linuxOne.

The ../archs/linux32-s390x/opensslconf.h and
../archs/linux64-s390x/opensslconf.h were automatically
generated by running make linux-ppc linux-ppc64 in the
deps/openssl/config directory as per our standard
practice

After these changes we still need a version of v8
which supports linuxOne but that will be coming soon
in the 5.1 version of v8.  Until then with these changes
we'll be able to create a hybrid build which pulls in
v8 from the http://github/andrewlow repo.

PR-URL: https://github.com/nodejs/node/pull/5941
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-03-29 18:52:48 -04:00
João Reis
ccd81889fa etw,build: always generate .rc and .h files
We can assume the Windows SDK is installed, hence the intermediate
files generated from manifest should not be part of the source tree.
This also fixes incorrect detection of ctrpp.exe, that should be in
the path.

PR-URL: https://github.com/nodejs/node/pull/5657
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
2016-03-29 17:37:14 +01:00
Fedor Indutny
8363ede855 node: --no-browser-globals configure flag
Introduce `--no-browser-globals` configure flag. With this flag set, following
globals won't be exported:

- `setTimeout`, `clearTimeout`, `setInterval`, `clearInterval`,
  `setImmediate`, `clearImmediate`
- `console`

These are provided by the DOM implementation in browser, so the
`--no-browser-globals` flag may be helpful when embedding node.js within
chromium/webkit.

Inspired-By: 82e10ce94f
PR-URL: https://github.com/nodejs/node/pull/5853
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2016-03-25 21:02:18 -04:00
Stefan Budeanu
17924703d6 build: correctly detect clang version
Use the "Apple LLVM" version number since the banner has changed in
newer versions of Mac OS X, resulting in the obsolete assembler path
being used to compile OpenSSL.

PR-URL: https://github.com/nodejs/node/pull/5553
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-03-04 18:57:23 +01:00
Ojas Shirekar
cf9bdcf4f2 build: add a help message and removed a TODO.
Add a help message for --systemtap-includes
optparse.SUPPRESS_HELP was replaced by help message
and the TODO comment was removed

Refs: https://github.com/nodejs/node/issues/4607
PR-URL: https://github.com/nodejs/node/pull/5080
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2016-02-16 13:08:39 -08:00
Ojas Shirekar
59c5ebfb1c build: remove redundant TODO in configure
Remove a redundant TODO in configure:
"# TODO(srl295): EBCDIC should be 'e'"
as there is no plan to support EBCDIC systems any time soon.

Refs: https://github.com/nodejs/node/issues/4607
PR-URL: https://github.com/nodejs/node/pull/5080
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2016-02-16 13:08:32 -08:00
Felix Becker
c3e50cadac build: fix build when python path contains spaces
PR-URL: https://github.com/nodejs/node/pull/4841
Reviewed-By: Benjamin Gruenbaum <inglor@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2016-02-09 13:23:33 +01:00
Rod Vagg
be0b0b8cb9 build: minor corrections in VTune configure text
PR-URL: https://github.com/nodejs/node/pull/4192
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-01-13 22:29:54 +11:00
Jörg Krause
84dea1bd0c configure: fix arm vfpv2
The gcc -mfpu flag for VFPv2 is vfp, not vfpv2 (there is no vfpv2) [1].

[1] https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html

PR-URL: https://github.com/nodejs/node/pull/4203
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-12-10 14:45:01 +01:00
João Reis
a7f5dfd14c configure: use __ARM_ARCH to determine arm version
Before this change, configure used processor specific macro defines
(like __ARM_ARCH_6M__) to detect the arm processor version. This
changes configure to use __ARM_ARCH, that should be defined to the
correct version.

Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: https://github.com/nodejs/node/pull/4123
2015-12-09 14:59:25 +00:00
João Reis
0e3912be0b configure: respect CC_host in host arch detection
When cross compiling, GYP uses the variables CC_host and CXX_host to
find the host compiler, if they are defined. This ensures that
variable is used, if defined, when detecting the host architecture.

Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/4117
2015-12-09 14:48:59 +00:00
Super Zheng
95dd890b32 build: add "--partly-static" build options
A lot of machines don't upgrade libstdc++.so library for a long time,
but the new version of node requires the latest GLIBCXX.

Using "--fully-static" configurable options may resolve this problem,
but the side effect is that the size of the executable file will be
increased.

Adding "--partly-static" configurable options it will only build
libgcc and libstdc++ libraries into executable file, resolve the
problem and control the size of file.

PR-URL: https://github.com/nodejs/node/pull/4152
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
2015-12-07 12:05:53 +01:00
Stefan Budeanu
181816ea16 crypto: fix native module compilation with FIPS
Prevent OpenSSL's fipsld from being used to link native modules
because this requires the original OpenSSL source to be
available after Node's installation.

Fixes: https://github.com/nodejs/node/issues/3815
PR-URL: https://github.com/nodejs/node/pull/4023
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-12-03 15:34:51 +09:00
Chunyang Dai
a881b53954 build,src: add Intel Vtune profiling support
This feature supports the Intel Vtune profiling support for JITted
JavaScript on IA32 / X64 / X32 platform. The advantage of this profiling
is that the user / developer of NodeJS application can get the detailed
profiling information for every line of the JavaScript source code.
This information will be very useful for the owner to optimize their
applications.

This feature is a compile-time option. For windows platform, the user
needs to pass the following parameter to vcbuild.bat: "enable-vtune"

For other OS, the user needs to pass the following parameter to
./configure command: "--enable-vtune-profiling"

PR-URL: https://github.com/nodejs/node/pull/3785
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-11-25 13:57:25 +01:00
Fedor Indutny
91ccbf0201 configure: v8_use_snapshot should be true
`v8_use_snapshot` should be either `true` or `false`, not 1 or 0.

PR-URL: https://github.com/nodejs/node/pull/3962
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
2015-11-21 21:15:11 -05:00
Markus Tzoe
e2eb33483d build: fix configuring with prebuilt libraries
Fix configure_library() to produce correct LDFLAGS when configuring with
prebuilt 3rd-party libraries (libuv, openssl, etc) using `pkg-config' or
`--shared-{LIBRARY}-includes=xxx --shared-{LIBRARY}-libpath=xxx'.

PR-URL: https://github.com/nodejs/node/pull/3135
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
2015-11-16 12:17:45 +01:00
Michael Dawson
15bcbf853e build: Updates for AIX npm support - part 1
This PR is the first step enabling support for native modules
for AIX.  The main issue is that unlike linux where all
symbols within the Node executable are available to the shared
library for a native module (npm), on AIX the symbols must
be explicitly exported.  In addition, when the shared library is
built it must be linked using a list of the available symbols.

This patch covers the changes need to:

 1) Export the symbols when building the node executable
 2) Generate the file listing the symbols that can be used when
    building the shared library.

For AIX, it breaks the build process into 2 steps.  The first builds
a static library and then generates a node.exp file which contains
the symbols from that library.  The second builds the node executable
and uses the node.exp file to specify which symbols should be
exported.  In addition, it save the node.exp file so that it can
later be used in the creation of the shared library when building
a native module.

The following additional steps will be required in dependent projects
to fully enable AIX for native modules and are being worked
separately:

 - Updates to node-gyp to use node.exp when creating the
   shared library for a native module
 - Fixes to gyp related to copying files as covered in
      https://codereview.chromium.org/1368133002/patch/1/10001
 - Pulling in updated gyp versions to Node and node-gyp
 - Pulling latest libuv

These changes were done to minimize the change to other platforms
by working within the existing structure to add the 2 step process
for AIX without changing the process for other platforms.

PR-URL: https://github.com/nodejs/node/pull/3114
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-10-23 10:43:02 -04:00
P.S.V.R
753509f579 build: rectify --link-module help text
PR-URL: https://github.com/nodejs/node/pull/3379
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-10-20 11:54:54 -04:00
Steven R. Loomis
01908d0a9a build: Intl: deps: bump ICU to 56.1 (GA)
* ICU 56 was just released yesterday. Update to it.
* Notable changes: Unicode 8, CLDR 28, 2-3x number format perf,
  20% improvement in Collator startup
  * more at http://site.icu-project.org/download/56 or in #2917

Also:

* cleanup out/**/*.d and deps/icu  on "make clean"
* cleanup deps/icu on "vcbuild clean"

When building from an non-clean directory, it's important to
run `make clean` or `vcbuild clean` to remove the existing
ICU 55 from the deps path before building.

Fixes: https://github.com/nodejs/node/issues/2917
PR-URL: https://github.com/nodejs/node/pull/3281
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-10-08 14:20:36 -07:00
Johan Bergström
a214905ff4 build: make icu download path customizable
This makes it easier to store icu tarballs outside of the node.js
directory which is useful in our CI where git directories are
scrubbed between runs.

PR-URL: https://github.com/nodejs/node/pull/3200
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-10-08 22:00:09 +11:00
Jérémy Lal
17665af02f build: add --with-arm-fpu option
Fixes: https://github.com/nodejs/node/issues/2942
PR-URL: https://github.com/nodejs/node/pull/3228
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brian White <mscdex@mscdex.net>
2015-10-07 20:47:40 +02:00
P.S.V.R
76c80d4c61 build: iojs -> nodejs of release-urlbase
PR-URL: https://github.com/nodejs/node/pull/3015
Reviewed-By: Rod Vagg <r@va.gg>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-09-23 22:25:16 +02:00
P.S.V.R
d0d48774ed build: fix some typos inside the configure script
PR-URL: https://github.com/nodejs/node/pull/3016
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-09-23 22:09:59 +02:00
Jérémy Lal
5819d7a050 configure: detect mipsel host
Detect mipsel before mips because mipsel has __mips__ flag as well.

PR-URL: https://github.com/nodejs/node/pull/2971
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-09-21 12:03:19 +02:00
Michael Dawson
2a17c7f65e build: Updates to enable AIX support
These are the core changes that allow AIX to compile.  There
are still some test failures as there are some patches needed for
libuv and npm that we'll need to contribute through those
communities but this set allows node to be built on AIX and
pass most of the core tests

The change in js2c is because AIX does not support $ in
identifier names.  See the discussion/agreement in
https://github.com/nodejs/node/issues/2272

PR-URL: https://github.com/nodejs/node/pull/2364
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
Reviewed-By: Rod Vagg <r@va.gg>
2015-09-15 13:17:28 -04:00
Karl Skomski
6ed0603fb1 build: add --enable-asan with builtin leakcheck
PR-URL: https://github.com/nodejs/node/pull/2376
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-09-06 21:38:00 +10:00
Bradley Meck
cd84f399e8 Introduce --link-module to ./configure
- Allows specifying a _third_party_main outside of the node repository
- Allows embedders to create custom builtin modules outside of node's
  repository

PR-URL: https://github.com/nodejs/node/pull/2497
Reviewed-By: fishrock123 - Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
Reviewed-By: evanlucas - Evan Lucas <evanlucas@me.com>
Reviewed-By: cjihrig - Colin Ihrig <cjihrig@gmail.com>
2015-08-28 12:04:39 -04:00
cjihrig
a69ab27ab4 node: rename from io.js to node
This commit replaces instances of io.js with Node.js, based on the
recent convergence. There are some remaining instances of io.js,
related to build and the installer.

Fixes: https://github.com/nodejs/node/issues/2361
PR-URL: https://github.com/nodejs/node/pull/2367
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: João Reis <reis@janeasystems.com>
2015-08-23 17:59:43 -04:00
Steven R. Loomis
4c06515a2f build: work around VS2015 issue in ICU <56
The particular ufile.c is from
http://bugs.icu-project.org/trac/changeset/37704
and should be OK for ICU 54 and 55.

Also, adds general mechanism for floating patches on top of ICU.

Fixes: https://github.com/nodejs/node/issues/2279
PR-URL: https://github.com/nodejs/node/pull/2283
Reviewed-By: João Reis <reis@janeasystems.com>
2015-08-14 21:16:34 +01:00
Steven R. Loomis
6dc01eb7fd
build: Intl: bump ICU4C from 54 to 55
node was using ICU4C 54 ( released 2014-oct-06 )

* Bump to ICU4C 55 ( released 2015-apr-08)
 * Timezone fixes, translation fixes, bug/performance fixes.
 * Speed improvements in date formatting
 * ICU4C 55 changelog: http://site.icu-project.org/download/55
 * CLDR 27 changelog: http://cldr.unicode.org/index/downloads/cldr-27

* Retarget the file exclusions from ICU4C 54 to ICU4C 55
 * (improves on-disk footprint on some platforms)

Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Fixes: https://github.com/nodejs/node/issues/2292
PR-URL: https://github.com/nodejs/node/pull/2293
2015-08-13 06:44:27 -07:00
Ben Noordhuis
ae05807f04 build: expand ~ in install prefix early
The install prefix gets written to config.gypi and config.mk.  Tildes
were expanded in the first file but not in the second one, causing the
`make install` target to install files to a directory named `~` in
the current working directory.

Fixes: https://github.com/nodejs/node/issues/75
PR-URL: https://github.com/nodejs/io.js/pull/2307
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
2015-08-11 13:57:32 +02:00
Rod Vagg
2ba8b23661 build: add 'x86' option back in to configure
Accidentally removed @ https://github.com/nodejs/io.js/pull/2124
when ppc support was added

PR-URL: https://github.com/nodejs/io.js/pull/2233
Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-08-04 11:56:16 -07:00
Michael Dawson
b4226e797a build: first set of updates to enable PPC support
These are the core changes that allow pLinux BE/LE compile. They
don't include all of the changes needed for AIX which will follow
once we have pLinux up and running in the builds

PR-URL: https://github.com/nodejs/io.js/pull/2124
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
2015-08-04 11:56:16 -07:00
Rod Vagg
04fd4fad46 src: introduce process.release object
PR-URL: https://github.com/nodejs/io.js/pull/2154
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-08-04 11:56:16 -07:00
Rod Vagg
dcbb9e1da6 build: update build targets for io.js
PR-URL: https://github.com/nodejs/io.js/pull/1938
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
2015-06-25 15:22:27 +10:00
Evan Lucas
834a365113 build: DTrace is enabled by default on darwin
In configure, the --with-dtrace option only showed that it was true by
default on sunos. It is also true by default on darwin.

PR-URL: https://github.com/nodejs/io.js/pull/2019
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-06-23 11:27:31 -05:00
Ben Noordhuis
c207e8d223 build: fix pkg-config output parsing in configure
Fix parsing of `pkg-config --cflags-only-I`.  The configure_library()
step sometimes appended a list in a list instead of list of strings to
include_dirs.

This commit removes the default handling for includes and libpath
options.  They don't have defaults at the moment and I don't see that
changing anytime soon.  Fixing the code is more work and because it's
dead code anyway, I opted to remove it instead.

Fixes: https://github.com/nodejs/io.js/issues/1985
PR-URL: https://github.com/nodejs/io.js/pull/1986
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-06-16 01:11:47 +02:00
Fedor Indutny
0f68377f69 crypto: support FIPS mode of OpenSSL
Support building and running with FIPS-compliant OpenSSL. The process is
following:

1. Download and verify `openssl-fips-x.x.x.tar.gz` from
   https://www.openssl.org/source/
2. Extract source to `openssl-fips` folder
3. ``cd openssl-fips && ./config fipscanisterbuild --prefix=`pwd`/out``
   (NOTE: On OS X, you may want to run
    ``./Configure darwin64-x86_64-cc --prefix=`pwd`/out`` if you are going to
    build x64-mode io.js)
4. `make -j && make install`
5. Get into io.js checkout folder
6. `./configure --openssl-fips=/path/to/openssl-fips/out`
7. Build io.js with `make -j`
8. Verify with `node -p "process.versions.openssl"` (`1.0.2a-fips`)

Fix: https://github.com/joyent/node/issues/25463
PR-URL: https://github.com/nodejs/io.js/pull/1890
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-06-11 01:49:20 +02:00
Johan Bergström
c5a1009903 build: avoid passing empty strings to build flags
While checking the return values from icu-i18n, we didn't
validate the content before passing it to the build system.

Also make cflags parsing more robust by avoiding empty strings.

Fixes: https://github.com/nodejs/io.js/issues/1787
PR-URL: https://github.com/nodejs/io.js/pull/1789
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-06-01 07:34:29 +10:00
Johan Bergström
2b1c01c2cc build: refactor pkg-config for shared libraries
Improve detection and usage of pkg-config. This simplifies the setup
of all our shared libraries.

If pkg-config is installed on the host and `--shared` flags are passed
by the user, we try to get defaults from pkg-config instead of using the
default provided by configure.

PR-URL: https://github.com/nodejs/io.js/pull/1603
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-05-21 07:55:57 +10:00
Johan Bergström
20c9a52227 build: move --with-intl to intl optgroup
PR-URL: https://github.com/iojs/io.js/pull/1680
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-05-13 10:59:56 +10:00
Trevor Norris
36cdc7c8ac build: re-enable V8 snapshots
Snapshots had been previously disabled because of a security
vunerability. This has been fixed (ref:
https://github.com/iojs/io.js/issues/1631#issuecomment-100101375)

Also, re-enable snapshots for ARMv6 builds. There were previous build
issues that have been fixed.

Fixes: https://github.com/iojs/io.js/issues/1631
PR-URL: https://github.com/iojs/io.js/pull/1663
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-05-11 13:01:04 -06:00
Johan Bergström
a5dcff827a build: Use option groups in configure output
Minor edits to current build flags and its help texts as well
as grouping shared and i18n options into separate option groups.

Also, validate i18n default/logic similar to how we treat other
options. `--download` isn't really intl-specific but is only used
for that purpose which is why it's grouped similarly.

PR-URL: https://github.com/iojs/io.js/pull/1533
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Steven R. Loomis <srl@icu-project.org>
2015-05-01 10:31:00 +10:00
Jeremiah Senkpiel
1b22bad35f build: fix logic for shared library flags
Fixes a regession introduced in fd90b33b94

PR-URL: https://github.com/iojs/io.js/pull/1454
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-04-17 16:36:56 -04:00
Shigeki Ohtsu
a530b2baf1 build: fix error message in configure
Replace Node.js to io.js in error messages.

Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-15 00:39:23 +09:00
Shigeki Ohtsu
92dfb794f9 build: enable ssl support on arm64
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-15 00:39:10 +09:00
Shigeki Ohtsu
a1c9ef3142 deps, build: add support older assembler
Asm files for OpenSSL depends on the version of assembler.
We provide two sets of asm files, one is asm_latest(avx2 and addx
supported) and the other asm_obsolute(without avx1/2 and addx)

The asm_latest needs the version of gas >= 2.23, llvm >= 3.3
or ml64 >= 12 as defined in
https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-x86_64.pl#L112-L129
, otherwise asm_obsolute are used.

We take MSVS_VERSION in gyp as a version check of assembler on
Windows because the path to ml64.exe was set after configure in
vcbuild.bat and executing ml64.exe was failed in configure.

Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-15 00:38:57 +09:00
Johan Bergström
fd90b33b94 build: validate options passed to configure
Some variables like dest arch or os are now validated to avoid
build issues. Move defaults to optparse default while at it.

PR-URL: https://github.com/iojs/io.js/pull/1335
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-14 18:12:52 +10:00
Johan Bergström
04b02f5e34 build: Remove deprecated flags
Remove flags that were deprecated in f31502926 (soon 3 years ago).

PR-URL: https://github.com/iojs/io.js/pull/1407
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-14 08:22:30 +10:00
Marat Abdullin
cd38a4af8f build: support building io.js as a static library
One static library could not be bundled into another, that's why
it's necessary to skip `-force_load` and `--whole-archive` linker
options to build io.js itself as a static library.

`node_target_type` variable has been added to node.gyp, along
with `--enable-static` option in configure script.

Fixes: https://github.com/iojs/io.js/issues/686
PR-URL: https://github.com/iojs/io.js/pull/1341
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-11 06:53:17 +02:00
Johan Bergström
d726a177ed build: Remove building against a shared V8
This action is to encourage packagers to not build against a
shared V8 library since even minor bumps of V8 can create issues.

PR-URL: https://github.com/iojs/io.js/pull/1331
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-07 15:02:42 +10:00
Giovanny Andres Gongora Granada
65d4d25f52 build: default to armv7+vfpv3 for android
Also add Android build instructions to the README.

PR-URL: https://github.com/iojs/io.js/pull/1307
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-04 00:53:03 +02:00
Ben Noordhuis
4a801c211c src: drop homegrown thread pool, use libplatform
Drop the homegrown thread pool that was introduced in commit 50839a0
("v8_platform: provide default v8::Platform impl") and use one from
V8's libplatform library.  Performance is comparable and it removes
a few hundred lines of code.

The calls to v8::platform::PumpMessageLoop() are currently no-ops
because V8 does not (yet?) use v8::Platform::CallOnForegroundThread().

Packagers that link against a shared libv8 now also need to make
libv8_platform available.

PR-URL: https://github.com/iojs/io.js/pull/1329
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-04-04 00:21:39 +02:00
Ben Noordhuis
4c731042d4 configure: use cc and c++ as defaults on os x
Commit 8b2363d ("configure: use gcc and g++ as CC and CXX defaults")
switches the CC and CXX defaults but it turns out that GYP uses cc
and c++ as defaults on OS X.

It also made the configure script complain about old compilers because
the xcode gcc identifies as v4.2.1, whereas cc is less ambiguous about
it being a clang hybrid.

PR-URL: https://github.com/iojs/io.js/pull/1210
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-03-19 23:48:39 +01:00
Ben Noordhuis
8b2363d2fd configure: use gcc and g++ as CC and CXX defaults
It matches what GYP's Makefile generator does and it should improve
compiler detection because cc and c++ are not always gcc and g++.

Fixes: https://github.com/iojs/io.js/issues/1173
PR-URL: https://github.com/iojs/io.js/pull/1174
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-03-17 17:03:24 +01:00
Johan Bergström
37bb1df7c4 build: remove mdb from io.js
After upgrading to a newer v8 mdb is pretty much broken - even if using
the latest updates from nodejs. If nodejs decides to update their v8 we
can give it another go, but for now it's better to remove it than have
it in our tree unsupported.

PR-URL: https://github.com/iojs/io.js/pull/1023
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-05 23:10:45 +01:00
Ben Noordhuis
726671cb0e build: add basic mips/mipsel support
Extend the configure script so that it knows how to generate build files
for mips and mipsel.  Actually building io.js is pending MIPS buildbots.

PR-URL: https://github.com/iojs/io.js/pull/1045
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-05 19:51:01 +01:00
Ben Noordhuis
ca3c50b789 build: add basic arm64 support
This commit adds basic arm64 support to the build.  Building the bundled
openssl is disabled pending an upgrade to openssl 1.2, the currently
bundled version has some hand-rolled assembly that is 32 bits only.

PR-URL: https://github.com/iojs/io.js/pull/1028
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-03 00:40:49 +01:00
Glen Keane
5e825d1073 tracing: add lttng support for tracing on linux
This commit adds the ability to enable userspace tracing with lttng
in io.js. It adds tracepoints for all the equivalent dtrace and ETW
tracepoints. To use these tracepoints enable --with-lttng on linux.

PR-URL: https://github.com/iojs/io.js/pull/702
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ryan Graham <ryan@strongloop.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2015-02-09 18:06:57 +01:00
Roman Reiss
6ad236c9b6 build: configure formatting, add final message
This restores the pretty-printed options output for improved
readability and adds a final warning message to inform on possibly
scrolled-off warnings.

PR-URL: https://github.com/iojs/io.js/pull/638
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-28 18:03:54 +01:00
Ben Noordhuis
4f68369643 build: disable v8 snapshots
Snapshots speed up start-up by a few milliseconds but are potentially
dangerous because of the fixed hash seed that is used for strings and
dictionaries, making collision denial-of-service attacks possible.

Release builds on iojs.org have snapshots disabled but source builds
did not, until now.

The risk for individual source builds is low; the binary gets a random
32 bits hash seed that should be hard to guess by an external attacker.

It's when binaries are distributed by, for example, a distro vendor
that the fixed hash seed becomes a vulnerability, because then it's
possible to target a large group of people at once.

People that really need the faster start-up time can use the new
--with-snapshot configure flag.

PR-URL: https://github.com/iojs/io.js/pull/585
Reviewed-By: Bert Belder <bertbelder@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-27 00:54:02 +01:00
Ben Noordhuis
c6cd46041c configure: remove unused arm_neon variable
Remove the configure check, the flag was dropped in V8 3.28.

PR-URL: https://github.com/iojs/io.js/pull/559
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-01-22 23:08:33 +01:00
Ben Noordhuis
7d9d7560cf configure: disable vfpv3 on armv6
VFPv3 is ARMv7-only, enabling it for ARMv6 is therefore always wrong.
Mea culpa, I do believe I'm the original author of that change.

Fixes: https://github.com/iojs/io.js/issues/283
PR-URL: https://github.com/iojs/io.js/pull/559
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-01-22 23:08:28 +01:00
Johan Bergström
2253d30d9c build: remove unused variable
PR-URL: https://github.com/iojs/io.js/pull/505
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-19 15:55:37 +11:00
Roman Reiss
1b1cd1c3f8 build: shorten configurate script print on stdout
Reduces the previously pretty-printed configuration dictionary to a
single line wrapped at 78 characters. This makes warning messages which
appear before this print more visible to the user.

PR-URL: https://github.com/iojs/io.js/pull/483
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2015-01-18 22:54:27 +01:00
Ben Noordhuis
de224d6e6c configure: remove --ninja switch
It is unknown if there are any users of the ninja build and keeping it
around makes refactoring the build system more difficult.  It's partly
broken (or at least, deeply inefficient) because it touches out/Makefile
every time.

PR-URL: https://github.com/iojs/io.js/pull/467
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-17 01:06:17 +01:00
Ben Noordhuis
48774ec027 configure: print warning for old compilers
Try to autodetect the C and C++ compiler and issue a warning when it's
too old to plausibly build io.js.  Emit warnings only because there is
much that can go wrong when trying to invoke a compiler.

PR-URL: https://github.com/iojs/io.js/pull/455
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-16 19:02:05 +01:00
Rod Vagg
70c2501373 build: move armv6 snapshot test to configure_arm()
fails on windows because is_arch_armv6() calls CC to get properties,
so moved to a scope where we know we're at least on ARM

PR-URL: https://github.com/iojs/io.js/pull/296
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-01-12 16:05:15 +11:00
Cydox
0cca6fe74a build: Warn when using snapshot on Armv6
Building io.js on armv6 with snapshot enabled does not work due to a bug in v8,
so it now warns when building on armv6 and having snapshot enabled.

PR-URL: https://github.com/iojs/io.js/pull/282
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-12 11:17:17 +11:00
Ben Noordhuis
26dd9e15bb build,src: remove sslv2 support
SSLv2 has been deprecated and known broken for nearly twenty years now.

I made SSLv2 support opt-in well over a year ago in commit 39aa894 and
now this commit removes it entirely.

PR-URL: https://github.com/iojs/io.js/pull/290
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-11 16:07:45 +01:00
Ben Noordhuis
94e147500c Merge remote-tracking branch 'joyent/v0.12' into v1.x
I was originally going to do this after the v0.11.15 release, but as
that release is three weeks overdue now, I decided not to wait any
longer; we don't want the delta to get too big.

Conflicts:
	lib/net.js
	test/simple/simple.status

PR-URL: https://github.com/iojs/io.js/pull/236
Reviewed-By: Bert Belder <bertbelder@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-01-05 17:26:47 +01:00
Steven R. Loomis
a30839576c build: i18n: add icu config options
Make "--with-intl=none" the default and add "intl-none" option to
vcbuild.bat.

If icu data is missing print a warning unless either --download=all or
--download=icu is set. If set then automatically download, verify (MD5)
and unpack the ICU data if not already available.

There's a "list" of URLs being used, but right now only the first is
picked up. The logic works something like this:

* If there is no directory deps/icu,
  * If no zip file (currently icu4c-54_1-src.zip),
    * Download zip file (icu-project.org -> sf.net)
  * Verify the MD5 sum of the zipfile
    * If bad, print error and exit
  * Unpack the zipfile into deps/icu
* If deps/icu now exists, use it, else fail with help text

Add the configuration option "--with-icu-source=..."

Usage:
  * --with-icu-source=/path/to/my/other/icu
  * --with-icu-source=/path/to/icu54.zip
  * --with-icu-source=/path/to/icu54.tgz
  * --with-icu-source=http://example.com/icu54.tar.bz2

Add the configuration option "--with-icu-locals=...".  Allows choosing
which locales are used in the "small-icu" case.

Example:
    configure --with-intl=small-icu --with-icu-locales=tlh,grc,nl

(Also note that as of this writing, neither Klingon nor Ancient Greek
are in upstream CLDR data. Serving suggestion only.)

Don't use hard coded ../../out paths on windows. This was suggested by
@misterdjules as it causes test failures.  With this fix, "out" is no
longer created on windows and the following can run properly:

    python tools/test.py simple

Reduce space by about 1MB with ICU 54 (over without this patch). Also
trims a few other source files, but only conditional on the exact ICU
version used. This is to future-proof - a file that is unneeded now may
be needed in future ICUs.

Also:
  * Update distclean to remove icu related files
  * Refactor some code into tools/configure.d/nodedownload.py
  * Update docs
  * Add test

PR-URL: https://github.com/joyent/node/pull/8719
Fixes: https://github.com/joyent/node/issues/7676#issuecomment-64704230
[trev.norris@gmail.com small change to test's whitespace and logic]
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2015-01-02 16:51:53 -08:00
Nikolai Vavilov
0f3d7e6032 configure: remove compiler detection
The GCC version is no longer relevant since only 4.8 and newer are
supported. It's probably safe to assume clang on mac since V8 does
so too.

PR-URL: https://github.com/iojs/io.js/pull/205
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-12-23 19:27:24 +01:00
Nikolai Vavilov
ef10827c9f configure: remove workarounds for GCC < 4.8
They can't compile io.js anyway.

PR-URL: https://github.com/iojs/io.js/pull/187
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-12-20 22:08:47 +01:00
Steven R. Loomis
fb33b4ee33 build: configure return exit status from gyp
Previously, 'configure' would not return an exit status
if gyp blows up. This can be tested via:

    date >> node.gyp ; ./configure && echo A-OK

You will get "A-OK" even though gyp had failed.

PR-URL: https://github.com/joyent/node/pull/8856
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-12-10 17:51:58 +01:00
Johan Bergström
766d063e05 configure: remove shared cares build option
Bundled cares differs from upstream which will result
in a compilation error when trying to used a shared cares.

Fixes: https://github.com/joyent/node/pull/8786
PR-URL: https://github.com/iojs/io.js/pull/38
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-12-04 21:20:28 +11:00
Ben Noordhuis
a08f8e28ca build: add x32 support
This commit adds preliminary x32 support.  Configure with:

    $ ./configure --dest-cpu=x32

PR-URL: https://github.com/node-forward/node/pull/24
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-10-16 22:39:17 +02:00
Ray Donnelly
eccb101193 build: determine and use EXEEXT on windows
PR-URL: https://github.com/joyent/node/pull/8294
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-10-10 01:21:12 +04:00
Steven R. Loomis
f769d133b7 build: i18n: move noisy variables to separate gypi
Fixes: https://github.com/joyent/node/issues/7676#issuecomment-57535890
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-07 15:17:44 -07:00
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
Timothy J Fontaine
7ca5af87a0 Merge remote-tracking branch 'upstream/v0.10' into v0.12
Conflicts:
	ChangeLog
	deps/v8/src/hydrogen.cc
	lib/http.js
	lib/querystring.js
	src/node_crypto.cc
	src/node_version.h
	test/simple/test-querystring.js
2014-09-16 17:48:09 -07:00
Fedor Indutny
627c1a92eb configure: add --openssl-no-asm flag
see #8062

Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2014-09-03 17:35:18 +04:00
Jesús Leganés Combarro "piranna
cdc01faed2 configure: generate a fully statically linked exec
Allow to create an executable with no external dynamic libraries, also the
ones from the system. This is somewhat dependent of the used C lib, for
example glibc has some internal dynamic libraries loaded by itself, but for
other ones like eglibc or dietlib, this would produce a true static linked
executable. This can be of interest for embebers or resource constraints
platforms, but the main reason for this is to allow to use a Javascript
file as Linux kernel 'init' on NodeOS.

Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-09-02 22:20:52 +04:00
Fedor Indutny
f310c0f16b Merge remote-tracking branch 'origin/v0.10' into master
Conflicts:
	doc/api/buffer.markdown
	lib/_stream_readable.js
	lib/assert.js
	lib/buffer.js
	lib/child_process.js
	lib/http.js
	lib/string_decoder.js
	lib/zlib.js
	node.gyp
	test/simple/test-buffer.js
	test/simple/test-https-foafssl.js
	test/simple/test-stream2-compatibility.js
	test/simple/test-tls-server-verify.js
2014-07-29 12:51:27 +04:00
Maciej Małecki
300dd3499c gyp: fix ARM build
According to V8 changelog, `armv7` config variable was replaced by
`arm_version`, with value either '7', '6' or 'default'.

Detect ARMv7 and ARMv6 CPUs and default to 'default'.

Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-07-23 23:42:22 +04:00