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: Thue <thue@xxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: gettext 0.10.37
From: Gaute B Strokkenes <gs234@xxxxxxxxx>
Date: 20 May 2001 11:37:54 +0100

On Sun, 20 May 2001, thue@xxxxxxx wrote:
> 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.

This is very odd.  From the GNU coding standards (on which automake
semantics are based):

`distclean' 

  Delete all files from the current directory that are created by
  configuring or building the program. If you have unpacked the source
  and built the program without creating any other files, `make
  distclean' should leave only the files that were in the
  distribution.

`mostlyclean' 

  Like `clean', but may refrain from deleting a few files that people
  normally don't want to recompile. For example, the `mostlyclean'
  target for GCC does not delete `libgcc.a', because recompiling it is
  rarely necessary and takes a lot of time.

`maintainer-clean' 

  Delete almost everything from the current directory that can be
  reconstructed with this Makefile. This typically includes everything
  deleted by distclean, plus more: C source files produced by Bison,
  tags tables, Info files, and so on. The reason we say "almost
  everything" is that running the command `make maintainer-clean'
  should not delete `configure' even if `configure' can be remade
  using a rule in the Makefile. More generally, `make
  maintainer-clean' should not delete anything that needs to exist in
  order to run `configure' and then begin to build the program. This
  is the only exception; maintainer-clean should delete everything
  else that can be rebuilt. The `maintainer-clean' target is intended
  to be used by a maintainer of the package, not by ordinary
  users. You may need special tools to reconstruct some of the files
  that `make maintainer-clean' deletes. Since these files are normally
  included in the distribution, we don't take care to make them easy
  to reconstruct. If you find you need to unpack the full distribution
  again, don't blame us. To help make users aware of this, the
  commands for the special maintainer-clean target should start with
  these two:

From this, I think it is very clear that plural.c should only be
removed on a make maintainer-clean, not make distclean.  Can you
confirm that make distclean removes plural.c ?

-- 
Big Gaute                               http://www.srcf.ucam.org/~gs234/
Yow!  Am I having fun yet?


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