* [Buildroot] [PATCH v4 0/2] nodejs: new package
@ 2012-08-13 3:05 Jonathan Liu
2012-08-13 3:05 ` [Buildroot] [PATCH v4 1/2] python: enable bz2 module for host build Jonathan Liu
2012-08-13 3:05 ` [Buildroot] [PATCH v4 2/2] nodejs: new package Jonathan Liu
0 siblings, 2 replies; 6+ messages in thread
From: Jonathan Liu @ 2012-08-13 3:05 UTC (permalink / raw)
To: buildroot
Jonathan Liu (2):
python: enable bz2 module for host build
nodejs: new package
package/Config.in | 1 +
package/nodejs/Config.in | 20 +++++++++++++++
package/nodejs/nodejs.mk | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
package/python/python.mk | 1 -
4 files changed, 84 insertions(+), 1 deletion(-)
create mode 100644 package/nodejs/Config.in
create mode 100644 package/nodejs/nodejs.mk
--
1.7.11.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v4 1/2] python: enable bz2 module for host build
2012-08-13 3:05 [Buildroot] [PATCH v4 0/2] nodejs: new package Jonathan Liu
@ 2012-08-13 3:05 ` Jonathan Liu
2012-08-13 3:05 ` [Buildroot] [PATCH v4 2/2] nodejs: new package Jonathan Liu
1 sibling, 0 replies; 6+ messages in thread
From: Jonathan Liu @ 2012-08-13 3:05 UTC (permalink / raw)
To: buildroot
The bz2 module is required for building some Python packages.
Signed-off-by: Jonathan Liu <net147@gmail.com>
---
package/python/python.mk | 1 -
1 file changed, 1 deletion(-)
diff --git a/package/python/python.mk b/package/python/python.mk
index fae4e5c..7b314ab 100644
--- a/package/python/python.mk
+++ b/package/python/python.mk
@@ -27,7 +27,6 @@ HOST_PYTHON_CONF_OPT += \
--disable-gdbm \
--disable-bsddb \
--disable-test-modules \
- --disable-bz2 \
--disable-ssl
HOST_PYTHON_MAKE_ENV = \
--
1.7.11.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v4 2/2] nodejs: new package
2012-08-13 3:05 [Buildroot] [PATCH v4 0/2] nodejs: new package Jonathan Liu
2012-08-13 3:05 ` [Buildroot] [PATCH v4 1/2] python: enable bz2 module for host build Jonathan Liu
@ 2012-08-13 3:05 ` Jonathan Liu
2012-08-25 17:15 ` Thomas Petazzoni
1 sibling, 1 reply; 6+ messages in thread
From: Jonathan Liu @ 2012-08-13 3:05 UTC (permalink / raw)
To: buildroot
Signed-off-by: Jonathan Liu <net147@gmail.com>
---
package/Config.in | 1 +
package/nodejs/Config.in | 20 +++++++++++++++
package/nodejs/nodejs.mk | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 84 insertions(+)
create mode 100644 package/nodejs/Config.in
create mode 100644 package/nodejs/nodejs.mk
diff --git a/package/Config.in b/package/Config.in
index f308de7..76c589b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -263,6 +263,7 @@ source "package/xavante/Config.in"
endmenu
endif
source "package/microperl/Config.in"
+source "package/nodejs/Config.in"
source "package/php/Config.in"
source "package/python/Config.in"
if BR2_PACKAGE_PYTHON
diff --git a/package/nodejs/Config.in b/package/nodejs/Config.in
new file mode 100644
index 0000000..52fb03d
--- /dev/null
+++ b/package/nodejs/Config.in
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_NODEJS
+ bool "nodejs"
+ help
+ Event-driven I/O server-side JavaScript environment based on V8.
+
+ http://nodejs.org/
+
+if BR2_PACKAGE_NODEJS
+
+config BR2_PACKAGE_NODEJS_NPM
+ bool "npm"
+ help
+ Enable npm (Node Package Manager).
+
+config BR2_PACKAGE_NODEJS_WAF
+ bool "waf"
+ help
+ Enable node-waf for building native modules.
+
+endif
diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk
new file mode 100644
index 0000000..442c5f9
--- /dev/null
+++ b/package/nodejs/nodejs.mk
@@ -0,0 +1,63 @@
+#############################################################
+#
+# nodejs
+#
+#############################################################
+NODEJS_VERSION = 0.8.6
+NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.gz
+NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
+NODEJS_DEPENDENCIES = host-python
+NODEJS_LICENSE = MIT
+
+# Headers and node-waf binary are needed in staging to build 3rd-party
+# native modules
+NODEJS_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+ NODEJS_DEPENDENCIES += openssl
+endif
+
+define NODEJS_CONFIGURE_CMDS
+ (cd $(@D); \
+ $(TARGET_CONFIGURE_OPTS) \
+ PATH="$(HOST_PATH):$(PATH)" \
+ ./configure \
+ --prefix=/usr \
+ --without-snapshot \
+ $(if $(BR2_PACKAGE_OPENSSL),--shared-openssl,--without-ssl) \
+ $(if $(BR2_PACKAGE_NODEJS_NPM),,--without-npm) \
+ $(if $(BR2_PACKAGE_NODEJS_WAF),,--without-waf) \
+ --without-dtrace \
+ --without-etw \
+ )
+endef
+
+define NODEJS_BUILD_CMDS
+ PATH="$(HOST_PATH):$(PATH)" $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
+endef
+
+define NODEJS_INSTALL_STAGING_CMDS
+ PATH="$(HOST_PATH):$(PATH)" $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+define NODEJS_UNINSTALL_STAGING_CMDS
+ rm -f $(STAGING_DIR)/usr/bin/node
+ rm -f $(STAGING_DIR)/usr/bin/node-waf
+ rm -f $(STAGING_DIR)/usr/bin/npm
+ rm -rf $(STAGING_DIR)/usr/include/node
+ rm -f $(STAGING_DIR)/usr/lib/dtrace/node.d
+ rm -rf $(STAGING_DIR)/usr/lib/node
+ rm -rf $(STAGING_DIR)/usr/lib/node_modules
+ rm -f $(STAGING_DIR)/usr/share/man/man1/node.1
+endef
+
+define NODEJS_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 775 $(@D)/out/Release/node $(TARGET_DIR)/usr/bin/node
+endef
+
+define NODEJS_UNINSTALL_TARGET_CMDS
+ rm -f $(TARGET_DIR)/usr/bin/node
+endef
+
+# node.js configure is a Python script and does not use autotools
+$(eval $(generic-package))
--
1.7.11.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v4 2/2] nodejs: new package
2012-08-13 3:05 ` [Buildroot] [PATCH v4 2/2] nodejs: new package Jonathan Liu
@ 2012-08-25 17:15 ` Thomas Petazzoni
2012-08-25 17:17 ` Thomas Petazzoni
2012-08-26 1:51 ` Jonathan Liu
0 siblings, 2 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2012-08-25 17:15 UTC (permalink / raw)
To: buildroot
Hello Jonathan,
Le Mon, 13 Aug 2012 13:05:50 +1000,
Jonathan Liu <net147@gmail.com> a ?crit :
> Signed-off-by: Jonathan Liu <net147@gmail.com>
> ---
> package/Config.in | 1 +
> package/nodejs/Config.in | 20 +++++++++++++++
> package/nodejs/nodejs.mk | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 84 insertions(+)
> create mode 100644 package/nodejs/Config.in
> create mode 100644 package/nodejs/nodejs.mk
nodejs includes V8 for executing the JavaScript code, and V8 generates
machine code to provide good performances when executing JavaScript.
This means that V8 is architecture dependent: apparently, in deps/v8/,
only IA32, x86-64, ARM and MIPS are supported.
However, I don't understand how you select the target architecture or
how it is detected. Some comments in the configure script also seem to
imply that on ARM, only ARMv7 is supported by V8.
Have you checked this, or did you try only a x86->x86 build?
Thanks!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v4 2/2] nodejs: new package
2012-08-25 17:15 ` Thomas Petazzoni
@ 2012-08-25 17:17 ` Thomas Petazzoni
2012-08-26 1:51 ` Jonathan Liu
1 sibling, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2012-08-25 17:17 UTC (permalink / raw)
To: buildroot
Le Sat, 25 Aug 2012 19:15:38 +0200,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit :
> nodejs includes V8 for executing the JavaScript code, and V8 generates
> machine code to provide good performances when executing JavaScript.
> This means that V8 is architecture dependent: apparently, in deps/v8/,
> only IA32, x86-64, ARM and MIPS are supported.
>
> However, I don't understand how you select the target architecture or
> how it is detected. Some comments in the configure script also seem to
> imply that on ARM, only ARMv7 is supported by V8.
>
> Have you checked this, or did you try only a x86->x86 build?
And also, it doesn't work here (Linaro 2012.02 toolchain, ARM) :
>>> nodejs 0.8.6 Configuring
(cd /home/thomas/projets/buildroot/output/build/nodejs-0.8.6; PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/usr/bin:/home/thomas/projets/buildroot/output/host/usr/sbin/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/thomas/sys/bin" AR="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-ar" AS="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-as" LD="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-ld" NM="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-nm" CC="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-gcc" GCC="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-gcc" CPP="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-cpp" CXX="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-g++" FC="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-gfortran" RANLIB="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-ranlib" STRIP="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-strip" OBJCOPY="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-objcopy" OBJDUMP="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-objdump" AR_FOR_BUILD="/usr/bin/ar" AS_FOR_BUILD="/usr/bin/as" CC_FOR_BUILD="/usr/bin/gcc" GCC_FOR_BUILD="/usr/bin/gcc" CXX_FOR_BUILD="/usr/bin/g++" FC_FOR_BUILD="/usr/bin/ld" LD_FOR_BUILD="/usr/bin/ld" CFLAGS_FOR_BUILD="-O2 -I/home/thomas/projets/buildroot/output/host/include -I/home/thomas/projets/buildroot/output/host/usr/include" CXXFLAGS_FOR_BUILD="-I/home/thomas/projets/buildroot/output/host/include -I/home/thomas/projets/buildroot/output/host/usr/include" LDFLAGS_FOR_BUILD="-L/home/thomas/projets/buildroot/output/host/lib -L/home/thomas/projets/buildroot/output/host/usr/lib -Wl,-rpath,/home/thomas/projets/buildroot/output/host/usr/lib" FCFLAGS_FOR_BUILD="" DEFAULT_ASSEMBLER="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-as" DEFAULT_LINKER="/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabi-ld" CFLAGS=" -pipe -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" CXXFLAGS=" -pipe -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS="" FCFLAGS="" PKG_CONFIG="/home/thomas/projets/buildroot/output/host/usr/bin/pkg-config" PERLLIB="/home/thomas/projets/buildroot/output/host/usr/lib/perl" STAGING_DIR="/home/thomas/projets/buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot" PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/usr/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/thomas/sys/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/thomas/sys/bin" ./configure --prefix=/usr --without-snapshot --without-ssl --without-dtrace --without-etw )
{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'armv7': 1,
'host_arch': 'arm',
'node_install_npm': 'true',
'node_install_waf': 'true',
'node_prefix': '/usr',
'node_shared_openssl': 'false',
'node_shared_v8': 'false',
'node_shared_zlib': 'false',
'node_use_dtrace': 'false',
'node_use_etw': 'false',
'node_use_openssl': 'false',
'target_arch': 'arm',
'v8_no_strict_aliasing': 1,
'v8_use_arm_eabi_hardfloat': 'false',
'v8_use_snapshot': 'false'}}
creating ./config.gypi
creating ./config.mk
Traceback (most recent call last):
File "tools/gyp_node", line 58, in <module>
run_gyp(gyp_args)
File "tools/gyp_node", line 18, in run_gyp
rc = gyp.main(args)
File "./tools/gyp/pylib/gyp/__init__.py", line 471, in main
options.circular_check)
File "./tools/gyp/pylib/gyp/__init__.py", line 111, in Load
depth, generator_input_info, check, circular_check)
File "./tools/gyp/pylib/gyp/input.py", line 2378, in Load
depth, check)
File "./tools/gyp/pylib/gyp/input.py", line 430, in LoadTargetBuildFile
includes, depth, check)
File "./tools/gyp/pylib/gyp/input.py", line 384, in LoadTargetBuildFile
build_file_data, PHASE_EARLY, variables, build_file_path)
File "./tools/gyp/pylib/gyp/input.py", line 1027, in ProcessVariablesAndConditionsInDict
ProcessConditionsInDict(the_dict, phase, variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 904, in ProcessConditionsInDict
variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 1053, in ProcessVariablesAndConditionsInDict
build_file)
File "./tools/gyp/pylib/gyp/input.py", line 1068, in ProcessVariablesAndConditionsInList
ProcessVariablesAndConditionsInDict(item, phase, variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 1053, in ProcessVariablesAndConditionsInDict
build_file)
File "./tools/gyp/pylib/gyp/input.py", line 1068, in ProcessVariablesAndConditionsInList
ProcessVariablesAndConditionsInDict(item, phase, variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 1027, in ProcessVariablesAndConditionsInDict
ProcessConditionsInDict(the_dict, phase, variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 904, in ProcessConditionsInDict
variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 1027, in ProcessVariablesAndConditionsInDict
ProcessConditionsInDict(the_dict, phase, variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 904, in ProcessConditionsInDict
variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 1027, in ProcessVariablesAndConditionsInDict
ProcessConditionsInDict(the_dict, phase, variables, build_file)
File "./tools/gyp/pylib/gyp/input.py", line 885, in ProcessConditionsInDict
if eval(ast_code, {'__builtins__': None}, variables):
File "<string>", line 1, in <module>
NameError: name 'arm_neon' is not defined while evaluating condition 'arm_neon!=1 and arm_fpu!="vfpv3" and arm_fpu!="vfpv3-d16"' in /home/thomas/projets/buildroot/output/build/nodejs-0.8.6/deps/v8/tools/gyp/v8.gyp while loading dependencies of /home/thomas/projets/buildroot/output/build/nodejs-0.8.6/node.gyp while trying to load /home/thomas/projets/buildroot/output/build/nodejs-0.8.6/node.gyp
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v4 2/2] nodejs: new package
2012-08-25 17:15 ` Thomas Petazzoni
2012-08-25 17:17 ` Thomas Petazzoni
@ 2012-08-26 1:51 ` Jonathan Liu
1 sibling, 0 replies; 6+ messages in thread
From: Jonathan Liu @ 2012-08-26 1:51 UTC (permalink / raw)
To: buildroot
Hi Thomas,
On 26/08/2012 3:15 AM, Thomas Petazzoni wrote:
> nodejs includes V8 for executing the JavaScript code, and V8 generates
> machine code to provide good performances when executing JavaScript.
> This means that V8 is architecture dependent: apparently, in deps/v8/,
> only IA32, x86-64, ARM and MIPS are supported.
>
> However, I don't understand how you select the target architecture or
> how it is detected. Some comments in the configure script also seem to
> imply that on ARM, only ARMv7 is supported by V8.
>
> Have you checked this, or did you try only a x86->x86 build?
I have mainly been testing x86-64->x86 builds.
I tried doing a x86-64->qemu-arm-versatile build and it seems to boot
and run node.js properly (I am using 2012.08-rc2 with CodeSourcery ARM
2011.09 external toolchain).
Perhaps it needs a patch to build on an ARM host
(https://gist.github.com/1608607 might help).
Also, I was not able to get the qemu arm-versatile build to boot using
ext2 image and the qemu command in board/qemu/arm-versatile/readme.txt.
I get "Cannot open root device or unknown-block(0,0)" when it tries to
open /dev/sda.
Booting using a cpio initrd image works though.
Anything special I need to boot using ext2 image with ARM in qemu?
Regards,
Jonathan
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-08-26 1:51 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-13 3:05 [Buildroot] [PATCH v4 0/2] nodejs: new package Jonathan Liu
2012-08-13 3:05 ` [Buildroot] [PATCH v4 1/2] python: enable bz2 module for host build Jonathan Liu
2012-08-13 3:05 ` [Buildroot] [PATCH v4 2/2] nodejs: new package Jonathan Liu
2012-08-25 17:15 ` Thomas Petazzoni
2012-08-25 17:17 ` Thomas Petazzoni
2012-08-26 1:51 ` Jonathan Liu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.