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

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
redland-dev mailing list
[email protected]
http://lists.librdf.org/mailman/listinfo/redland-dev

Reply via email to