Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2001:
[Freeciv-Dev] Re: gettext 0.10.37
Home

[Freeciv-Dev] Re: gettext 0.10.37

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Gaute B Strokkenes <gs234@xxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: gettext 0.10.37
From: Thue <thue@xxxxxxx>
Date: Sun, 20 May 2001 12:18:12 +0200

On Sunday 20 May 2001 11:44, Thue wrote:
> On Sunday 20 May 2001 11:38, Gaute B Strokkenes wrote:
> > On Sun, 20 May 2001, thue@xxxxxxx wrote:
> > > Next problem:
> > >
> > > gcc -c -DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\" -DHAVE_CONFIG_H -I.. -I. -I../intl  -g -O2
> > > -Wall  ngettext.c
> > >
> > > : -y -d --name-prefix=__gettext --output plural.c plural.y
> > >
> > > rm -f plural.h
> > > gcc -c -DLOCALEDIR=\"/usr/local/share/locale\"
> > > -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale\"
> > > -DLIBDIR=\"/usr/local/lib\" -DHAVE_CONFIG_H -I.. -I. -I../intl  -g -O2
> > > -Wall  plural.c
> > > gcc: plural.c: No such file or directory
> > > gcc: No input files
> > > make[2]: *** [plural.o] Error 1
> > > make[2]: Leaving directory `/mnt/data/freeciv-dev/gettext7/intl'
> > > make[1]: *** [all-recursive] Error 1
> > > make[1]: Leaving directory `/mnt/data/freeciv-dev/gettext7'
> > > make: *** [all-recursive-am] Error 2
> > > bash-2.05$
> >
> > Make sure you have bison (the GNU incarnation of yacc) installed.  It
> > seems that configure is detecting it (since it's using long options in
> > the command line and stuff) but somehow belives that the command name
> > is ':', ie a colon.
> >
> > What does
> >
> >   $ bison --version
> >
> > and
> >
> >   $ yacc
> >
> > say?
> >
> > > I will just get around to looking at it in a moment.
> > > -Thue
>
> Actually it wasn't installed. I guess a check should be added to
> ./configure. After having installed it compiles.
>
> -Thue

Ok, this is what happens. aclocal.m4 says
    dnl intl/plural.c is generated from intl/plural.y. It requires bison,
    dnl because plural.y uses bison specific features. It requires at least
    dnl bison-1.26 because earlier versions generate a plural.c that doesn't
    dnl compile.
    dnl bison is only needed for the maintainer (who touches plural.y). But in
    dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
    dnl the rule in general Makefile. Now, some people carelessly touch the
    dnl files or have a broken "make" program, hence the plural.c rule will
    dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
    dnl present or too old.
This is ok, just require us to generate plural.c once.
What is less fortunate is that make distclean removes the file plural.c. 
Since I think people "make distclean" once in a while people will meet this 
problem, and so it would be nice if the build didn't fail.

Perhaps we should modify the files in intl/ to remove plural.y and only 
distribute plural.c . The reason why gettext doesn't do this is described in 
the comment above I think.
I don't think I agree with the reasoning in the comment, as it mean that 
projects like our will have to keep a seperate version of the gettext 
Makefiles, which requires work for many people instead of them just doing it 
once.
Unless someone can think of a better policy for freeciv.

-Thue


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