Hi,

I've gotten a little further.  This will now configure and compile, but I'm 
getting an error "Error: Unable to load shared 
library /node/site/src/forge/build/Release/forge.node".  Here's my new 
wscript:

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

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

def configure(conf):
  conf.check_tool("compiler_cxx")
  conf.check_tool("node_addon")
  conf.check_cfg(package='libpng', args='--cflags --libs', 
atleast_version="1.5.0", uselib_store='LIBPNG')

def build(bld):
  obj = bld.new_task_gen("cxx", "shlib", "node_addon")
  obj.uselib = ['LIBPNG']
  obj.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", 
"-Wall"]
  obj.target = "planetforge"
  obj.source = "planetforge.cc"
  #obj.source = "hello.cc"

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

~ Scott




On Wednesday, February 29, 2012 3:35:15 PM UTC-5, Scott Straley wrote:
>
> 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