struggles building 1.78 on NetBSD (link path, intl problems)
Greg Troxel
gdt at ir.bbn.com
Mon Jan 27 10:09:03 CST 2003
I got 1.7.8 to build on NetBSD (i386, 1.6), and had a few problems.
I started out with guile 1.6.0 in /usr/quist, and planned to build
g-wrap and gnucash into /usr/y0. I had gnome/etc. in the usual
place for NetBSD pkgsrc, some /usr/X11R6 and some /usr/pkg.
I had guile 1.4.1 in /usr/pkgsrc as well.
1) Until I did --disable-nls, I was having conflicts between NetBSD's
builtin libintl and gettext 0.10.35 in /usr/pkg in terms of which
header file and then which library got linked. I gave up and did
--disable-nls.
2) With --disable-nls, in src/gnome-utils/gnc-menu-extensions.c,
dgettext is used. src/engine/messages.h defines gettext and
ngettext, but not dgettext.
3) After the above, plus or minus other minor stuff, I got everything
to build (i.e., 'gmake' ran to completion). When starting gnucash,
I had problems linking gw-gnc. It turns out I had managed to link
with the wrong guile. I rebuilt g-wrap.
4) Due to the above dynamic linking problems, I upgraded guile 1.6 to
1.6.1. I'm not sure if this was necessary, but I know 1.6.1 has
some dynlinking/libltdl fixes.
5) gnucash still would not start, failing to link gw-gnc. The error
messages (this is guile/libtool's fault) are not helpful - if the
requested libary can be found but a dependency fails the
problematic lib is not identified. After much reading of ktrace
output, I discovered that there were no .so versions of a number of
libs, only .a versions.
It seems that libtool doesn't build the .so if a dependent library
cannot be found, and prints a warning, but doesn't consider this
fatal. The patches below add ${GNOME_LIBDIR} to a number of
libraries; the problem is theat GNOME_LIBS and GNOMEUI_LIBS don't
include the -L lines.
It would be nice to be able to tell libtool to return an error
rather than a warning if it can't build shlibs. This would have
located the leaf-node failure that caused all the rest of the
failures to make .so versions, and would be consistent with the
-Werror strategy (that found the gettext problems at compile
time).
After all this, I was able to look at data I had saved from 1.6.8, and
assign a few txns from Expense:unspecified to particular categories,
and run a few reports.
Greg Troxel <gdt at ir.bbn.com>
It may be that GNOME_LIBDIR belongs on LIBADD, or rather that may be
consistent with the use of variables that have both -L and -l.
Alternatively, it may be that GNOME_LIBS should include GNOME_LIBDIR
as well.
Index: src/business/business-gnome/Makefile.am
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-gnome/Makefile.am,v
retrieving revision 1.31
diff -u -r1.31 Makefile.am
--- src/business/business-gnome/Makefile.am 20 Jan 2003 17:09:32 -0000 1.31
+++ src/business/business-gnome/Makefile.am 27 Jan 2003 13:32:50 -0000
@@ -58,7 +58,7 @@
search-owner.h \
gw-business-gnome.h
-libgncmod_business_gnome_la_LDFLAGS = -module
+libgncmod_business_gnome_la_LDFLAGS = -module ${GNOME_LIBDIR}
libgncmod_business_gnome_la_LIBADD = \
${top_builddir}/src/business/business-core/libgncmod-business-core.la \
Index: src/register/register-gnome/Makefile.am
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/register/register-gnome/Makefile.am,v
retrieving revision 1.16
diff -u -r1.16 Makefile.am
--- src/register/register-gnome/Makefile.am 8 Dec 2002 22:25:40 -0000 1.16
+++ src/register/register-gnome/Makefile.am 27 Jan 2003 13:33:00 -0000
@@ -2,7 +2,7 @@
pkglib_LTLIBRARIES = libgncmod-register-gnome.la
-libgncmod_register_gnome_la_LDFLAGS = -module
+libgncmod_register_gnome_la_LDFLAGS = -module ${GNOME_LIBDIR}
libgncmod_register_gnome_la_LIBADD = \
${top_builddir}/src/register/register-core/libgncmod-register-core.la \
${top_builddir}/src/gnc-module/libgncmodule.la \
More information about the gnucash-devel
mailing list