groff
[Top][All Lists]
Advanced

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

Re: [Groff] release ready


From: Bertrand Garrigues
Subject: Re: [Groff] release ready
Date: Sat, 11 Oct 2014 20:19:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Hi Werner,

On Sat, Oct 11 2014 at 09:13:16 AM, Werner LEMBERG <address@hidden> wrote:
> Folks,
>
>
> I think I've now done everything to make a new release – essentially,
> it was a matter of continued comparation between the last tarball and
> the current git repository.  There are surprisingly few changes
> (expect Bernd's clean-up of copyright issues), so I don't expect large
> surprises.
>
> After Bernd's commits to fix the IPC issue, I can do `make dist' and
> distribute it.  Before doing this, however, I want to wait a few days
> so that you can test and check whether everything's fine.  Please do so!
>

'make dist' does not work on my PC.  I bump into the following error
when it tries to do 'make distclean' in src/libs/gnulib:

for d in src/libs/gnulib; do \
  (cd tmp/$d; \
   if test -f Makefile; then \
     make distclean; \
   else \
     make -f /home/bertrand/test/$d/Makefile distcleanclean; \
   fi; \
   rm -rf autom4te.cache); \
done
make[1]: Entering directory '/home/bertrand/test/tmp/src/libs/gnulib'
Making distclean in m4
make[2]: Entering directory '/home/bertrand/test/tmp/src/libs/gnulib/m4'
test -z "" || rm -f 
test . = "." || test -z "" || rm -f 
rm -f Makefile
make[2]: Leaving directory '/home/bertrand/test/tmp/src/libs/gnulib/m4'
Making distclean in lib
make[2]: Entering directory '/home/bertrand/test/tmp/src/libs/gnulib/lib'
Makefile:557: .deps/localcharset.Po: No such file or directory
Makefile:558: .deps/wctype-h.Po: No such file or directory
Makefile:559: .deps/wcwidth.Po: No such file or directory
Makefile:560: uniwidth/.deps/width.Po: No such file or directory
make[2]: *** No rule to make target 'uniwidth/.deps/width.Po'.  Stop.


That's because when we loop into DESTDIRS to copy with mkinstalldirs all
the directories into the `tmp' directory (the directory used to prepare
the tarball) the .deps directories in gnulib/lib and gnulib/lib/uniwidth
are not copied, causing `make distclean' to fail.  The tarball is
generated but as gnulib was not properly cleaned, the Makefile are still
present in src/libs/gnulib and src/libs/gnulib/lib, causing the build
from the the tarball to fail.

For some reasons that I don't understand, when I try `make dist'
serveral times in a row (possibily between some `make'), sometimes the
autotools and then `configure' are invoked again when `make distclean'
is called into tmp/src/libs/gnulib, causing the .deps to be
recreated. Maybe it's always the case on your environment as I saw in
the last official tarball that src/libs/gnulib/Makefile.in was generated
from Automake 1.12.5 while the same Makefile.in in the git repo was
generated from Automake 1.12.1.

Here is a patch that calls `config.status' before `make distclean' in
tmp/src/libs/gnulib to force the creation of .deps directories, which
fixes the problem.  

Also, it fixes the bogus line in the else condition (distcleanclean):

for d in $(GNULIBDIRS); do \
        (cd tmp/$$d; \
         if test -f Makefile; then \
           $(MAKE) distclean; \
         else \
           $(MAKE) -f $(top_builddir)/$$d/Makefile distcleanclean; \
         fi; \
[...]

However I dont' understand the purpose of calling
$(top_builddir)/$$d/Makefile, we were trying to clean gnulib in the
`tmp' directory that will be eventually the tarball directory, calling
`make distclean' in $(top_builddir)/src/libs/gnulib will possibly clean
gnulib in the source tree, not in the `tmp' directory.

Regards,

diff --git a/Makefile.in b/Makefile.in
index b1e51b6..139d7cb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -914,10 +914,13 @@ dist:
        done
        for d in $(GNULIBDIRS); do \
          (cd tmp/$$d; \
+          if test -f config.status; then \
+            ./config.status; \
+          fi; \
           if test -f Makefile; then \
             $(MAKE) distclean; \
           else \
-            $(MAKE) -f $(top_builddir)/$$d/Makefile distcleanclean; \
+            $(MAKE) -f $(top_builddir)/$$d/Makefile distclean; \
           fi; \
           rm -rf autom4te.cache); \
        done
--
Bertrand Garrigues

reply via email to

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