bug-gnu-utils
[Top][All Lists]
Advanced

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

Bug#435798: gettext: Missing @MKINSTALLDIRS@ substitution in the autotoo


From: Santiago Vila
Subject: Bug#435798: gettext: Missing @MKINSTALLDIRS@ substitution in the autotools (fwd)
Date: Wed, 5 Sep 2007 13:16:41 +0200 (CEST)

Hello.

I received this from the Debian bug system:

---------- Forwarded message ----------
From: Emmanuel Fleury <address@hidden>
To: Debian Bug Tracking System <address@hidden>
Date: Fri, 03 Aug 2007 10:58:21 +0200
Subject: Bug#435798: gettext: Missing @MKINSTALLDIRS@ substitution in the
    autotools 
Resent-Sender: address@hidden

Package: gettext
Version: 0.16.1-2
Severity: normal

I'm 'flying' around a project using gettext and the autotools, recently
I've hit the following problem:

Making install in po
make[2]: Entering directory `bless/debian-pkg/bless-0.5.1/po'
/bin/sh @MKINSTALLDIRS@ bless/debian-pkg/bless-0.5.1/debian/bless/usr/share
/bin/sh: @MKINSTALLDIRS@: No such file or directory
make[2]: *** [install-data-yes] Error 127
make[2]: Leaving directory `bless/debian-pkg/bless-0.5.1/po'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `bless/debian-pkg/bless-0.5.1'
make: *** [common-install-impl] Error 2
debuild: fatal error at line 1228:
fakeroot debian/rules binary failed

It seems that the @MKINSTALLDIRS@ refuse to be substituted in the final
po/Makefile file where the original po/Makefile.in.in has been generated
by autopoint.

I saw a SUBST(MKINSTALLDIRS) in m4/nls.m4 but I have no idea if the
configure is executing it or not.

***This might be bug due to a misuse of gettext/autopoint !***
But, I didn't find anything wrong in the software itself until now...

See the bug-report on bless: https://gna.org/bugs/index.php?9660

-----------------------------------------------------------------------

Upon request from a kind reader (Daniel Leidert), he gave this
additional information:

-----------------------------------------------------------------------

From: Emmanuel Fleury <address@hidden>
To: Daniel Leidert <address@hidden>, address@hidden
Date: Fri, 03 Aug 2007 14:30:23 +0200
Subject: Bug#435798: gettext: Missing @MKINSTALLDIRS@ substitution in the 
autotools

Daniel Leidert wrote:
> 
> Did you re-run aclocal too? Did you check what happens, when you run
> autoreconf?

Sorry, I should have give more details... :-/

The autogen.sh script is as follow:

#!/bin/sh

autopoint
aclocal
automake -a
autoconf

When running autoreconf, it gives the exact same behavior (no
substitution of the @MKINSTALLDIRS@ variable).

>> I saw a SUBST(MKINSTALLDIRS) in m4/nls.m4 but I have no idea if the
>> configure is executing it or not.
> 
> Well, look into aclocal.m4, which contains copies of all macros, that
> are used. Then you know, if MKINSTALLDIRS is replaced.

MKINSTALLDIRS appears only in these files (after autogen.sh being ran):

m4/gettext.m4:  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
m4/nls.m4:AC_DEFUN([AM_MKINSTALLDIRS],
m4/nls.m4:  MKINSTALLDIRS=
m4/nls.m4:/*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
m4/nls.m4: *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
m4/nls.m4:  if test -z "$MKINSTALLDIRS"; then
m4/nls.m4:    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
m4/nls.m4:  AC_SUBST(MKINSTALLDIRS)
m4/po.m4:  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
po/Makefile.in.in:MKINSTALLDIRS = @MKINSTALLDIRS@
po/Makefile.in.in:mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
po/Makefile.in:MKINSTALLDIRS = @MKINSTALLDIRS@
po/Makefile.in:mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
po/Makefile:MKINSTALLDIRS = @MKINSTALLDIRS@
po/Makefile:mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)

-----------------------------------------------------------------------

And later:

-----------------------------------------------------------------------

From: Emmanuel Fleury <address@hidden>
Cc: address@hidden
Date: Fri, 03 Aug 2007 17:08:15 +0200
Subject: Bug#435798: gettext: Missing @MKINSTALLDIRS@ substitution in the 
autotools

Some updates...

Looking at the m4/nls.m4 script:

AC_DEFUN([AM_NLS],
[
  AC_MSG_CHECKING([whether NLS is requested])
  dnl Default is enabled NLS
  AC_ARG_ENABLE(nls,
    [  --disable-nls           do not use Native Language Support],
    USE_NLS=$enableval, USE_NLS=yes)
  AC_MSG_RESULT($USE_NLS)
  AC_SUBST(USE_NLS)
])

AC_DEFUN([AM_MKINSTALLDIRS],
[
  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
  dnl Try to locate it.
  MKINSTALLDIRS=
  if test -n "$ac_aux_dir"; then
    case "$ac_aux_dir" in
      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
    esac
  fi
  if test -z "$MKINSTALLDIRS"; then
    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
  fi
  AC_SUBST(MKINSTALLDIRS)
])

**************************************************

I tried to call AM_MKINSTALLDIRS from the configure.ac before running
autoreconf and I got:

configure.ac:16: warning: macro `AM_MKINSTALLDIRS' not found in library

Where calling AM_NLS from configure.ac didn't ring a bell.

I have no valid explanation for it but this sounds really strange to me.

Regards
-- 
Emmanuel Fleury

I always pass on good advice. It is the only thing to do with it.
It is never of any use to oneself.
  -- Oscar Wilde




reply via email to

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