Skip to content

nodeenv assumes GNU make is available when it may be BSD make #146

@codexterous

Description

@codexterous

Had a bit of a problem using nodeenv on a BSD machine. FreeBSD provides BSD make as the default make, however gmake is available if needed.

BSD make works fine normally, but the use of the --jobs flag always happens when using nodeenv. The syntax for BSD make jobs flag is -j X instead of --jobs=X. The BSD jobs flag works fine for my GNU make as well as BSD make, so perhaps it should be changed to -j X instead of the current way.

Here's the output from nodeenv --python-virtualenv -v:

  (project)(project)[project@prod ~/project]$ nodeenv --python-virtualenv -v
   * Install node (5.3.0.creating  ./icu_config.gypi
  { 'target_defaults': { 'cflags': [],
                         'default_configuration': 'Release',
                         'defines': [],
                         'include_dirs': [],
                         'libraries': []},
    'variables': { 'asan': 0,
                   'gas_version': '2.25',
                   'host_arch': 'x64',
                   'icu_small': 'false',
                   'node_byteorder': 'little',
                   'node_enable_v8_vtunejit': 'false',
                   'node_install_npm': 'true',
                   'node_prefix': '/usr/home/project/.virtualenvs/project',
                   'node_release_urlbase': '',
                   'node_shared_http_parser': 'false',
                   'node_shared_libuv': 'false',
                   'node_shared_openssl': 'false',
                   'node_shared_zlib': 'false',
                   'node_tag': '',
                   'node_use_dtrace': 'false',
                   'node_use_etw': 'false',
                   'node_use_lttng': 'false',
                   'node_use_openssl': 'true',
                   'node_use_perfctr': 'false',
                   'openssl_fips': '',
                   'openssl_no_asm': 0,
                   'python': '/usr/home/project/.virtualenvs/project/bin/python',
                   'target_arch': 'x64',
                   'uv_parent_path': '/deps/uv/',
                   'uv_use_dtrace': 'false',
                   'v8_enable_gdbjit': 0,
                   'v8_enable_i18n_support': 0,
                   'v8_no_strict_aliasing': 1,
                   'v8_optimized_debug': 0,
                   'v8_random_seed': 0,
                   'v8_use_snapshot': 'true',
                   'want_separate_host_toolset': 0}}
  creating  ./config.gypi
  creating  ./config.mk
  .make: illegal argument to -j -- must be positive integer!
  make: illegal argument to -j -- must be positive integer!
  Traceback (most recent call last):
    File "/usr/home/project/.virtualenvs/project/bin/nodeenv", line 11, in <module>
      sys.exit(main())
    File "/usr/home/project/.virtualenvs/project/lib/python2.7/site-packages/nodeenv.py", line 891, in main
      create_environment(env_dir, opt)
    File "/usr/home/project/.virtualenvs/project/lib/python2.7/site-packages/nodeenv.py", line 732, in create_environment
      install_node(env_dir, src_dir, opt)
    File "/usr/home/project/.virtualenvs/project/lib/python2.7/site-packages/nodeenv.py", line 608, in install_node
      build_node_from_src(env_dir, src_dir, node_src_dir, opt)
    File "/usr/home/project/.virtualenvs/project/lib/python2.7/site-packages/nodeenv.py", line 577, in build_node_from_src
      callit([make_cmd] + make_opts, opt.verbose, True, node_src_dir, env)
    File "/usr/home/project/.virtualenvs/project/lib/python2.7/site-packages/nodeenv.py", line 461, in callit
      % (cmd_desc, proc.returncode))
  OSError: Command make --jobs=2 failed with error code 1

Removing the jobs flag from the code manually fixed my issue and it was able to build fine (albeit much slower).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions