Hi,

I'm trying to build a module with node-waf, and it's not seeing
libpng.  I started with the default ubuntu libpng12, then downloaded
and compiled and installed libpng15.  Neither work.  I've been running
around in circles trying to reconfigure wscript, but nada.  My wscript
looks like:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

import Options
from os import unlink, symlink, popen
from os.path import exists

srcdir = "."
blddir = "build"
VERSION = "0.0.1"

def set_options(opt):
  opt.tool_options("compiler_cxx")

def configure(conf):
  conf.check_tool("compiler_cxx")
  conf.check_tool("node_addon")
  conf.check(lib='png', libpath=['/lib', '/usr/lib', '/usr/local/lib',
'/usr/local/libpng/lib', '/home/straley/downloads/libpng-1.5.9'])


def build(bld):
  obj = bld.new_task_gen("cxx", "shlib", "node_addon")
  obj.target = "forge"
  obj.source = "forge.cc"
  obj.uselib = "PNG"
  obj.cxxflags = ["-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE"]

def shutdown():
  if Options.commands['clean']:
    if exists('planetforge.node'): unlink('planetforge.node')
  if exists('build/Release/planetforge.node') and not
exists('planetforge.node'):
    symlink('build/Release/planetforge.node', 'planetforge.node')

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

when I run node-waf configure, I get:

Checking for program g++ or c++          : /usr/bin/g++
Checking for program cpp                 : /usr/bin/cpp
Checking for program ar                  : /usr/bin/ar
Checking for program ranlib              : /usr/bin/ranlib
Checking for g++                         : ok
Checking for node path                   : ok /usr/bin/node
Checking for node prefix                 : ok /usr
Checking for library png                 : not found

With the -vvv option, the snippet near the "library png" line, looks
like:

12:25:19 build Build cache loading failed
12:25:19 build srcnode is .conf_check_0 and srcdir /node/site/src/
forge/build/.conf_check_0
12:25:19 build init variants
12:25:19 build list of variants is ['Release']
12:25:19 build compile called
12:25:19 build delayed operation TaskGen.flush() called
12:25:19 task_gen posting objects (normal)
12:25:19 group group None
12:25:19 group <task_gen 'testprog' of type task_gen defined in
dir:///node/site/src/forge/build/.conf_check_0>
12:25:19 task_gen posting <task_gen 'testprog' of type task_gen
defined in dir:///node/site/src/forge/build/.conf_check_0> 453397520
12:25:19 task_gen -> apply_verif (453397520)
12:25:19 task_gen -> exec_rule (453397520)
12:25:19 task_gen -> default_cc (453397520)
12:25:19 task_gen -> vars_target_cprogram (453397520)
12:25:19 task_gen -> apply_core (453397520)
12:25:19 task_gen -> apply_link (453397520)
12:25:19 task_gen -> default_link_install (453397520)
12:25:19 task_gen -> add_extra_flags (453397520)
12:25:19 task_gen -> init_cxx (453397520)
12:25:19 task_gen -> apply_type_vars (453397520)
12:25:19 task_gen -> apply_lib_vars (453397520)
12:25:19 task_gen -> apply_incpaths (453397520)
12:25:19 task_gen -> apply_obj_vars_cxx (453397520)
12:25:19 task_gen -> apply_defines_cxx (453397520)
12:25:19 task_gen -> apply_obj_vars (453397520)
12:25:19 task_gen -> apply_objdeps (453397520)
12:25:19 task_gen posted testprog
12:25:19 build executor starting
12:25:19 envhash '\x00\x85\xf8\x02\xb2Z4\x9d\x8e\x977\xb4.\xc2<
\xcd' ["['/usr/bin/g++']", "['-g']", '[]', '[]', '[]', '', "['-c', '-
o', '']", '[]']
12:25:19 ccroot _scan_preprocessor(self, node, env, path_lst)
12:25:19 preproc scanning test.cpp (in .conf_check_0)
12:25:19 preproc reading file '/node/site/src/forge/
build/.conf_check_0/test.cpp'

12:25:19 preproc reading file '/node/site/src/forge/
build/.conf_check_0/test.cpp'
12:25:19 deps deps for src:///node/site/src/forge/build/.conf_check_0/test.cpp:
[]; unresolved []
12:25:19 deps scanner for cxx: build/.conf_check_0/test.cpp ->
build/.conf_check_0/testbuild/Release/test_1.o
 returned [] []
12:25:19 task task
        {task: cxx test.cpp -> test_1.o} must run as it was never run
before or the task code changed
12:25:19 runner system command -> ['/usr/bin/g++', '-g', '../
test.cpp', '-c', '-o', 'Release/test_1.o']
12:25:19 envhash '\x8f?\xc3\x16\\1\xf3A\x87\xbe\xc5\xde\xceA
\xeb!' ["['/usr/bin/g++']", '', "['-o', '']", "['-L/lib', '-L/usr/
lib', '-L/usr/local/lib', '-L/usr/local/libpng/lib', '-L/home/straley/
downloads/libpng-1.5.9', '-Wl,-Bdynamic', '-lpng']"]
12:25:19 task task
        {task: cxx_link test_1.o -> testprog} must run as it was never
run before or the task code changed
12:25:19 runner system command -> ['/usr/bin/g++', 'Release/test_1.o',
'-o', '/node/site/src/forge/build/.conf_check_0/testbuild/Release/
testprog', '-L/lib', '-L/usr/lib', '-L/usr/local/lib', '-L/usr/local/
libpng/lib', '-L/home/straley/downloads/libpng-1.5.9', '-Wl,-
Bdynamic', '-lpng']

Running libpng-config with the following flags, yields me:

--prefix : /usr/local
--libdir: /usr/local
--libs: -lpng15
--cflags: -I/usr/local/include/libpng15
--I_opts: -I/usr/local/include/libpng15
--L_opts: -L/usr/local/lib
--ldflags: -L/usr/local/lib -lpng15

/usr/local/include/libpng15 has:

-rw-r--r-- 1 root root 115248 Feb 29 10:16 png.h
-rw-r--r-- 1 root root  21354 Feb 29 10:16 pngconf.h
-rw-r--r-- 1 root root   6033 Feb 29 10:16 pnglibconf.h

/usr/local/lib has:

lrwxrwxrwx 1 root root       10 Feb 29 10:16 libpng.a -> libpng15.a
lrwxrwxrwx 1 root root       11 Feb 29 10:16 libpng.la -> libpng15.la
lrwxrwxrwx 1 root root       11 Feb 29 10:16 libpng.so -> libpng15.so
-rw-r--r-- 1 root root  1041456 Feb 29 10:16 libpng15.a
-rwxr-xr-x 1 root root      936 Feb 29 10:16 libpng15.la
lrwxrwxrwx 1 root root       18 Feb 29 10:16 libpng15.so ->
libpng15.so.15.9.0
lrwxrwxrwx 1 root root       18 Feb 29 10:16 libpng15.so.15 ->
libpng15.so.15.9.0
-rwxr-xr-x 1 root root   601026 Feb 29 10:16 libpng15.so.15.9.0

And, in my forge.cc file, I'm attempting to include libpng with:

#include <png.h>

So... I think that's all the relevant info.  If anyone has any ideas,
I'd greatly appreciate it.  I've been chasing ghosts for two days on
this.

Thanks,
Scott


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to