My Linux distro uses --as-needed to the linker, which filters out extra dependencies for libraries, but relies on objects being linked depender-first, dependency-second on the command line. Attached is a patch that makes it work.
diff -ur redland-bindings-1.0.8.1-o/ruby/Makefile.am redland-bindings-1.0.8.1/ruby/Makefile.am --- redland-bindings-1.0.8.1-o/ruby/Makefile.am 2008-07-04 02:36:16.000000000 -0600 +++ redland-bindings-1.0.8.1/ruby/Makefile.am 2009-08-16 13:08:03.558374264 -0600 @@ -46,7 +46,7 @@ SUBDIRS=lib test CLEANFILES=*.db test-out.rdf core* \ -$(RUBY_PACKAGE)_wrap.so $(RUBY_PACKAGE)_wrap.o ruby-redland-stamp \ +$(RUBY_PACKAGE)_wrap.o ruby-redland-stamp \ $(RUBY_PACKAGE).so $(RUBY_PACKAGE).bundle MAINTAINERCLEANFILES=$(SWIG_OUTPUTS) $(SWIG_CRUFT) $(RDOC_DIR) $(RDOC_STAMP) @@ -57,19 +57,19 @@ $(srcdir)/$(RUBY_PACKAGE)_wrap.c: @REDLAND_SWIG@ redland-pre.i redland-types.i swig -v -ruby $(SWIG_OPTS) -module $(RUBY_PACKAGE) -o $@ @REDLAND_SWIG@ -$(RUBY_PACKAGE)_wrap.so: $(srcdir)/$(RUBY_PACKAGE)_wrap.c +$(RUBY_PACKAGE)_wrap.o: $(srcdir)/$(RUBY_PACKAGE)_wrap.c $(CC) $(DEFS) $(SWIG_OPTS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(STANDARD_CFLAGS) -fPIC -DPIC -I$(rubyarchdir) $(RUBY_PACKAGE)_wrap.c -c -o $@ $(RUBY_PACKAGE).so: ruby-redland-stamp -ruby-redland-stamp: $(RUBY_PACKAGE)_wrap.so +ruby-redland-stamp: $(RUBY_PACKAGE)_wrap.o @if test `uname` = Darwin; then \ args=" -bundle -flat_namespace -undefined suppress"; \ else \ args=" -shared"; \ fi; \ - echo $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) $$args $(RUBY_PACKAGE)_wrap.so $(LIBRUBYARG_SHARED) -o $(RUBY_PACKAGE).so; \ - $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) $$args $(RUBY_PACKAGE)_wrap.so $(LIBRUBYARG_SHARED) -o $(RUBY_PACKAGE).so + echo $(CC) $(AM_CFLAGS) $(CFLAGS) $(RUBY_PACKAGE)_wrap.o $(AM_LDFLAGS) $(LDFLAGS) $$args $(LIBRUBYARG_SHARED) -o $(RUBY_PACKAGE).so; \ + $(CC) $(AM_CFLAGS) $(CFLAGS) $(RUBY_PACKAGE)_wrap.o $(AM_LDFLAGS) $(LDFLAGS) $$args $(LIBRUBYARG_SHARED) -o $(RUBY_PACKAGE).so if test `uname` = Darwin; then \ $(INSTALL_PROGRAM) $(RUBY_PACKAGE).so $(RUBY_PACKAGE).bundle; \ fi
signature.asc
Description: This is a digitally signed message part
_______________________________________________ redland-dev mailing list [email protected] http://lists.librdf.org/mailman/listinfo/redland-dev
