Hello all.
I am using Ruby from Matz’s SVN repository. Last time I updated, I
found out that the compilation mechanism of ruby-gnome2 fails to
install most of the newly compiled .so files.
I have found out how to solve the problem locally. What happens is
that mkmf now includes an ‘install-so’ target in the makefile. Thus,
when I run make, for several libraries I get warning like these:
Makefile:223: warning: overriding commands for target install-so' Makefile:167: warning: ignoring old commands for target
install-so’
But then, when doing make install, the new library archives are not
copied over the old ones in /usr/local/lib/ruby.
This happens because, in several of the ‘depend’ files, both targets
‘install’ and ‘install-so’ are defined.
I got the mechanism to work by eliminating ‘install-so’. For example,
in the case of glib2, I changed file glib2/ext/glib2/depend from:
–8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<–
install-so:
$(INSTALL_DATA) $(srcdir)/rbglib.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbglibdeprecated.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbglib2conversions.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgutil.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgutil_list.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgutildeprecated.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgobject.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgcompat.h $(RUBYARCHDIR)
$(INSTALL_DATA) glib-enum-types.h $(RUBYARCHDIR)
install:
if test -n “$(pkgconfigdir)”; then
$(MAKEDIRS) $(pkgconfigdir);
$(INSTALL_DATA) ruby-glib2.pc $(pkgconfigdir);
fi
–8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<–
to
–8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<–
install:
$(INSTALL_DATA) $(srcdir)/rbglib.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbglibdeprecated.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbglib2conversions.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgutil.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgutil_list.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgutildeprecated.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgobject.h $(RUBYARCHDIR)
$(INSTALL_DATA) $(srcdir)/rbgcompat.h $(RUBYARCHDIR)
$(INSTALL_DATA) glib-enum-types.h $(RUBYARCHDIR)
if test -n “$(pkgconfigdir)”; then
$(MAKEDIRS) $(pkgconfigdir);
$(INSTALL_DATA) ruby-glib2.pc $(pkgconfigdir);
fi
–8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<–
Since I do not know exactly how this mechanism works, I cannot say if
this is the right way to solve the problem, but I eventually had a
successful install.
I attach a diff file.
Carlo