autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ax_prefix_config_h.m4 causes files to be left after "make distclean"


From: David Bruce
Subject: Re: ax_prefix_config_h.m4 causes files to be left after "make distclean"
Date: Thu, 24 Mar 2011 11:40:58 +0000

Hello,

On Wed, Jan 12, 2011 at 9:31 PM, David Bruce <address@hidden> wrote:
> Hello Eric, Ralf et al,
>
> We have reorganized our package (tuxmath) into a smaller package for
> the game itself, plus a separate library package (t4k_common).  Both
> packages use autotools, including autoheader.  As part of t4k_common,
> we provide a couple of replacement functions (alphasort() and
> scandir()) for platforms lacking these functions.  Thus, our
> t4k_common.h header needs to have an autoheader include so it can
> conditionally include the prototypes for these functions.
>
> Since just putting #include "config.h" at the top of our library
> header would cause a name collision with tuxmath's config.h, I have
> used the ax_prefix_config_h.m4 macro to rename t4k_common's config.h
> to "t4k_common-config.h", and adapted all the *.c files accordingly.

I've discovered a more serious issue with my use of
ax_prefix_config_h.m4 - it appears to be interfering with gettext()
calls from within the library functions.  Looking at the gettext
manual for using gettext within a library, it says "If it uses the
translation domain and POT file of the main program, then the previous
sections apply without changes.", which I believe is the case here -
the library source files don't have their own translatable strings,
but they do have gettext() calls to translate strings that are covered
by tuxmath's *.po files.

I'm at a bit of a loss as to how to get this fixed.  As a test, I've
tried hard-coding the gettext setup functions within the library to
use the same values as tuxmath (see below), but I still don't get
output of translated strings.

{
    const char *s1, *s2, *s3, *s4;
    s1 = setlocale(LC_ALL, NULL);
    s2 = bindtextdomain("tuxmath", "/usr/local/share/locale");
    s3 = bind_textdomain_codeset("tuxmath", "UTF-8");
    s4 = textdomain("tuxmath");
    printf("In InitT4KCommon():\n");
    printf("setlocale(LC_ALL, \"\") returned: %s\n", s1);
    printf("bindtextdomain(\"tuxmath\", \"/usr/local/share/locale\")
returned: %s\n", s2);
    printf("bind_textdomain_codeset(\"tuxmath\", \"UTF-8\") returned:
%s\n", s3);
    printf("textdomain(\"tuxmath\") returned: %s\n", s4);
    printf("gettext(\"Help\"): %s\n\n", gettext("Help"));
    printf("_(\"Help\"): %s\n\n", _("Help"));
  }

I suspect that something about the renaming done by
ax_prefix_config_h.m4 is preventing gettext from locating the message
catelogs properly.  Also, I realize this is getting more into gettext
than autoconf territory, but it seems there is a lot of overlap in
expertise within the autotools family.  Should I take this to the
bug-gnu list that handles gettext issues?

Thanks for any suggestions,

David Bruce



reply via email to

[Prev in Thread] Current Thread [Next in Thread]