[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS gettext: parallel build issue
From: |
Ralf Wildenhues |
Subject: |
CVS gettext: parallel build issue |
Date: |
Tue, 12 Dec 2006 20:32:05 +0100 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
Hello Bruno, all,
Building CVS gettext with 'make -j' currently fails due to the moopp
tool rules building multiple outputs from multiple inputs. This topic
is explained well in this Automake doc chapter:
<http://sources.redhat.com/automake/automake.html#Multiple-Outputs>.
Below is a suggested patch which uses a dedicated stamp file, realizing
one of the later examples in that doc node. It should fix most issues
for parallel make and rebuilding. Note that it does not take into
account the eventual backup strategy of moopp. You could add something
like this in the Makefile.am, not the gnulib snippets:
maintainer-clean-local:
rm -f *~
or add the named backup files to the respective *_CLEAN_FILES.
Cheers,
Ralf
| make[2]: Entering directory `/tmp/build/gettext-tools/gnulib-lib'
| { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
| cat ../../../gettext/gettext-tools/gnulib-lib/alloca_.h; \
| } > alloca.h-t
| rm -f configmake.h-t configmake.h
| { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
| echo '#define PREFIX "/usr/local"'; \
[...]
| echo '#define PKGLIBEXECDIR "/usr/local/libexec/gettext-tools"'; \
| } | sed '/""/d' > configmake.h-t
| mv configmake.h-t configmake.h
| ../../../gettext/gettext-tools/../build-aux/moopp
../../../gettext/gettext-tools/gnulib-lib/file-ostream.oo.c
../../../gettext/gettext-tools/gnulib-lib/file-ostream.oo.h
../../../gettext/gettext-tools/gnulib-lib/ostream.oo.h
| mv -f alloca.h-t alloca.h
| ../../../gettext/gettext-tools/../build-aux/moopp
../../../gettext/gettext-tools/gnulib-lib/file-ostream.oo.c
../../../gettext/gettext-tools/gnulib-lib/file-ostream.oo.h
../../../gettext/gettext-tools/gnulib-lib/ostream.oo.h
| make[2]: *** No rule to make target `file_ostream.priv.h', needed by `check'.
Stop.
| make[2]: *** Waiting for unfinished jobs....
| Creating file_ostream.priv.h
| Creating file_ostream.vt.h
| Creating file-ostream.h
| Updating file_ostream.priv.h (backup in file_ostream.priv.h~)
| Updating file_ostream.vt.h (backup in file_ostream.vt.h~)
gnulib-local/ChangeLog:
2006-12-12 Ralf Wildenhues <address@hidden>
* modules/fd-ostream: Use a dedicated stamp file to fix parallel
make build.
* modules/file-ostream: Likewise.
* modules/html-ostream: Likewise.
* modules/html-styled-ostream: Likewise.
* modules/iconv-ostream: Likewise.
* modules/memory-ostream: Likewise.
* modules/ostream: Likewise.
* modules/styled-ostream: Likewise.
* modules/term-ostream: Likewise.
* modules/term-styled-ostream: Likewise.
Index: gnulib-local/modules/fd-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/fd-ostream,v
retrieving revision 1.1
diff -u -r1.1 fd-ostream
--- gnulib-local/modules/fd-ostream 7 Nov 2006 14:46:06 -0000 1.1
+++ gnulib-local/modules/fd-ostream 12 Dec 2006 19:14:16 -0000
@@ -17,10 +17,18 @@
Makefile.am:
lib_SOURCES += fd-ostream.c
-fd-ostream.h fd-ostream.c : $(top_srcdir)/build-aux/moopp fd-ostream.oo.h
fd-ostream.oo.c ostream.oo.h
+fd-ostream.stamp : $(top_srcdir)/build-aux/moopp fd-ostream.oo.h
fd-ostream.oo.c ostream.oo.h
+ @rm -f fd-ostream.tmp
+ @touch fd-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/fd-ostream.oo.c
$(srcdir)/fd-ostream.oo.h $(srcdir)/ostream.oo.h
+ @mv -f fd-ostream.tmp $@
BUILT_SOURCES += fd-ostream.h fd-ostream.c fd_ostream.priv.h fd_ostream.vt.h
-CLEANFILES += fd-ostream.h fd-ostream.c fd_ostream.priv.h fd_ostream.vt.h
+CLEANFILES += fd-ostream.stamp fd-ostream.h fd-ostream.c fd_ostream.priv.h
fd_ostream.vt.h
+fd-ostream.h fd-ostream.c fd_ostream.vt.h fd_ostream.priv.h : fd-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f fd-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) fd-ostream.stamp; \
+ fi
Include:
"fd-ostream.h"
@@ -30,4 +38,3 @@
Maintainer:
Bruno Haible
-
Index: gnulib-local/modules/file-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/file-ostream,v
retrieving revision 1.1
diff -u -r1.1 file-ostream
--- gnulib-local/modules/file-ostream 7 Nov 2006 14:46:36 -0000 1.1
+++ gnulib-local/modules/file-ostream 12 Dec 2006 19:14:16 -0000
@@ -13,10 +13,19 @@
Makefile.am:
lib_SOURCES += file-ostream.c
-file-ostream.h file-ostream.c : $(top_srcdir)/build-aux/moopp
file-ostream.oo.h file-ostream.oo.c ostream.oo.h
+file-ostream.stamp : $(top_srcdir)/build-aux/moopp file-ostream.oo.h
file-ostream.oo.c ostream.oo.h
+ @rm -f file-ostream.tmp
+ @touch file-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/file-ostream.oo.c
$(srcdir)/file-ostream.oo.h $(srcdir)/ostream.oo.h
+ @mv -f file-ostream.tmp $@
BUILT_SOURCES += file-ostream.h file-ostream.c file_ostream.priv.h
file_ostream.vt.h
-CLEANFILES += file-ostream.h file-ostream.c file_ostream.priv.h
file_ostream.vt.h
+CLEANFILES += file-ostream.stamp file-ostream.h file-ostream.c
file_ostream.priv.h file_ostream.vt.h
+file-ostream.h file-ostream.c file_ostream.vt.h file_ostream.priv.h :
file-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f file-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) file-ostream.stamp; \
+ fi
+
Include:
"file-ostream.h"
Index: gnulib-local/modules/html-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/html-ostream,v
retrieving revision 1.1
diff -u -r1.1 html-ostream
--- gnulib-local/modules/html-ostream 7 Nov 2006 14:47:35 -0000 1.1
+++ gnulib-local/modules/html-ostream 12 Dec 2006 19:14:16 -0000
@@ -16,10 +16,18 @@
Makefile.am:
lib_SOURCES += html-ostream.c
-html-ostream.h html-ostream.c : $(top_srcdir)/build-aux/moopp
html-ostream.oo.h html-ostream.oo.c ostream.oo.h
+html-ostream.stamp : $(top_srcdir)/build-aux/moopp html-ostream.oo.h
html-ostream.oo.c ostream.oo.h
+ @rm -f html-ostream.tmp
+ @touch html-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/html-ostream.oo.c
$(srcdir)/html-ostream.oo.h $(srcdir)/ostream.oo.h
+ @mv -f html-ostream.tmp $@
BUILT_SOURCES += html-ostream.h html-ostream.c html_ostream.priv.h
html_ostream.vt.h
-CLEANFILES += html-ostream.h html-ostream.c html_ostream.priv.h
html_ostream.vt.h
+CLEANFILES += html-ostream.stamp html-ostream.h html-ostream.c
html_ostream.priv.h html_ostream.vt.h
+html-ostream.h html-ostream.c html_ostream.vt.h html_ostream.priv.h :
html-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f html-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) html-ostream.stamp; \
+ fi
Include:
"html-ostream.h"
Index: gnulib-local/modules/html-styled-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/html-styled-ostream,v
retrieving revision 1.1
diff -u -r1.1 html-styled-ostream
--- gnulib-local/modules/html-styled-ostream 12 Dec 2006 14:20:38 -0000
1.1
+++ gnulib-local/modules/html-styled-ostream 12 Dec 2006 19:14:16 -0000
@@ -20,10 +20,18 @@
Makefile.am:
lib_SOURCES += html-styled-ostream.c
-html-styled-ostream.h html-styled-ostream.c : $(top_srcdir)/build-aux/moopp
html-styled-ostream.oo.h html-styled-ostream.oo.c styled-ostream.oo.h
ostream.oo.h
+html-styled-ostream.stamp : $(top_srcdir)/build-aux/moopp
html-styled-ostream.oo.h html-styled-ostream.oo.c styled-ostream.oo.h
ostream.oo.h
+ @rm -f html-styled-ostream.tmp
+ @touch html-styled-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/html-styled-ostream.oo.c
$(srcdir)/html-styled-ostream.oo.h $(srcdir)/styled-ostream.oo.h
$(srcdir)/ostream.oo.h
-BUILT_SOURCES += html-styled-ostream.h html-styled-ostream.c
html_styled_ostream.priv.h html_styled_ostream.vt.h
-CLEANFILES += html-styled-ostream.h html-styled-ostream.c
html_styled_ostream.priv.h html_styled_ostream.vt.h
+ @mv -f html-styled-ostream.tmp $@
+BUILT_SOURCES += html-styled-ostream.h html-styled-ostream.c
html-styled_ostream.priv.h html-styled_ostream.vt.h
+CLEANFILES += html-styled-ostream.stamp html-styled-ostream.h
html-styled-ostream.c html-styled_ostream.priv.h html-styled_ostream.vt.h
+html-styled-ostream.h html-styled-ostream.c html-styled_ostream.vt.h
html-styled_ostream.priv.h : html-styled-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f html-styled-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) html-styled-ostream.stamp; \
+ fi
Include:
"html-styled-ostream.h"
Index: gnulib-local/modules/iconv-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/iconv-ostream,v
retrieving revision 1.1
diff -u -r1.1 iconv-ostream
--- gnulib-local/modules/iconv-ostream 7 Nov 2006 14:48:46 -0000 1.1
+++ gnulib-local/modules/iconv-ostream 12 Dec 2006 19:14:16 -0000
@@ -18,10 +18,18 @@
Makefile.am:
lib_SOURCES += iconv-ostream.c
-iconv-ostream.h iconv-ostream.c : $(top_srcdir)/build-aux/moopp
iconv-ostream.oo.h iconv-ostream.oo.c ostream.oo.h
+iconv-ostream.stamp : $(top_srcdir)/build-aux/moopp iconv-ostream.oo.h
iconv-ostream.oo.c ostream.oo.h
+ @rm -f iconv-ostream.tmp
+ @touch iconv-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/iconv-ostream.oo.c
$(srcdir)/iconv-ostream.oo.h $(srcdir)/ostream.oo.h
+ @mv -f iconv-ostream.tmp $@
BUILT_SOURCES += iconv-ostream.h iconv-ostream.c iconv_ostream.priv.h
iconv_ostream.vt.h
-CLEANFILES += iconv-ostream.h iconv-ostream.c iconv_ostream.priv.h
iconv_ostream.vt.h
+CLEANFILES += iconv-ostream.stamp iconv-ostream.h iconv-ostream.c
iconv_ostream.priv.h iconv_ostream.vt.h
+iconv-ostream.h iconv-ostream.c iconv_ostream.vt.h iconv_ostream.priv.h :
iconv-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f iconv-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) iconv-ostream.stamp; \
+ fi
Include:
"iconv-ostream.h"
Index: gnulib-local/modules/memory-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/memory-ostream,v
retrieving revision 1.1
diff -u -r1.1 memory-ostream
--- gnulib-local/modules/memory-ostream 7 Nov 2006 14:47:11 -0000 1.1
+++ gnulib-local/modules/memory-ostream 12 Dec 2006 19:14:16 -0000
@@ -17,10 +17,18 @@
Makefile.am:
lib_SOURCES += memory-ostream.c
-memory-ostream.h memory-ostream.c : $(top_srcdir)/build-aux/moopp
memory-ostream.oo.h memory-ostream.oo.c ostream.oo.h
+memory-ostream.stamp : $(top_srcdir)/build-aux/moopp memory-ostream.oo.h
memory-ostream.oo.c ostream.oo.h
+ @rm -f memory-ostream.tmp
+ @touch memory-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/memory-ostream.oo.c
$(srcdir)/memory-ostream.oo.h $(srcdir)/ostream.oo.h
+ @mv -f memory-ostream.tmp $@
BUILT_SOURCES += memory-ostream.h memory-ostream.c memory_ostream.priv.h
memory_ostream.vt.h
-CLEANFILES += memory-ostream.h memory-ostream.c memory_ostream.priv.h
memory_ostream.vt.h
+CLEANFILES += memory-ostream.stamp memory-ostream.h memory-ostream.c
memory_ostream.priv.h memory_ostream.vt.h
+memory-ostream.h memory-ostream.c memory_ostream.vt.h memory_ostream.priv.h :
memory-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f memory-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) memory-ostream.stamp; \
+ fi
Include:
"memory-ostream.h"
Index: gnulib-local/modules/ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/ostream,v
retrieving revision 1.1
diff -u -r1.1 ostream
--- gnulib-local/modules/ostream 7 Nov 2006 14:45:38 -0000 1.1
+++ gnulib-local/modules/ostream 12 Dec 2006 19:14:16 -0000
@@ -12,10 +12,18 @@
Makefile.am:
lib_SOURCES += ostream.c
-ostream.h ostream.c : $(top_srcdir)/build-aux/moopp ostream.oo.h ostream.oo.c
+ostream.stamp : $(top_srcdir)/build-aux/moopp ostream.oo.h ostream.oo.c
+ @rm -f ostream.tmp
+ @touch ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/ostream.oo.c
$(srcdir)/ostream.oo.h
+ @mv -f ostream.tmp $@
BUILT_SOURCES += ostream.h ostream.c ostream.priv.h ostream.vt.h
-CLEANFILES += ostream.h ostream.c ostream.priv.h ostream.vt.h
+CLEANFILES += ostream.stamp ostream.h ostream.c ostream.priv.h ostream.vt.h
+ostream.h ostream.c ostream.vt.h ostream.priv.h : ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) ostream.stamp; \
+ fi
Include:
"ostream.h"
Index: gnulib-local/modules/styled-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/styled-ostream,v
retrieving revision 1.1
diff -u -r1.1 styled-ostream
--- gnulib-local/modules/styled-ostream 12 Dec 2006 14:19:21 -0000 1.1
+++ gnulib-local/modules/styled-ostream 12 Dec 2006 19:14:16 -0000
@@ -12,10 +12,18 @@
Makefile.am:
lib_SOURCES += styled-ostream.c
-styled-ostream.h styled-ostream.c : $(top_srcdir)/build-aux/moopp
styled-ostream.oo.h styled-ostream.oo.c ostream.oo.h
+styled-ostream.stamp : $(top_srcdir)/build-aux/moopp styled-ostream.oo.h
styled-ostream.oo.c ostream.oo.h
+ @rm -f styled-ostream.tmp
+ @touch styled-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/styled-ostream.oo.c
$(srcdir)/styled-ostream.oo.h $(srcdir)/ostream.oo.h
+ @mv -f styled-ostream.tmp $@
BUILT_SOURCES += styled-ostream.h styled-ostream.c styled_ostream.priv.h
styled_ostream.vt.h
-CLEANFILES += styled-ostream.h styled-ostream.c styled_ostream.priv.h
styled_ostream.vt.h
+CLEANFILES += styled-ostream.stamp styled-ostream.h styled-ostream.c
styled_ostream.priv.h styled_ostream.vt.h
+styled-ostream.h styled-ostream.c styled_ostream.vt.h styled_ostream.priv.h :
styled-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f styled-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) styled-ostream.stamp; \
+ fi
Include:
"styled-ostream.h"
Index: gnulib-local/modules/term-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/term-ostream,v
retrieving revision 1.3
diff -u -r1.3 term-ostream
--- gnulib-local/modules/term-ostream 11 Dec 2006 12:38:18 -0000 1.3
+++ gnulib-local/modules/term-ostream 12 Dec 2006 19:14:16 -0000
@@ -23,10 +23,18 @@
Makefile.am:
lib_SOURCES += term-ostream.c
-term-ostream.h term-ostream.c : $(top_srcdir)/build-aux/moopp
term-ostream.oo.h term-ostream.oo.c ostream.oo.h
+term-ostream.stamp : $(top_srcdir)/build-aux/moopp term-ostream.oo.h
term-ostream.oo.c ostream.oo.h
+ @rm -f term-ostream.tmp
+ @touch term-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/term-ostream.oo.c
$(srcdir)/term-ostream.oo.h $(srcdir)/ostream.oo.h
+ @mv -f term-ostream.tmp $@
BUILT_SOURCES += term-ostream.h term-ostream.c term_ostream.priv.h
term_ostream.vt.h
-CLEANFILES += term-ostream.h term-ostream.c term_ostream.priv.h
term_ostream.vt.h
+CLEANFILES += term-ostream.stamp term-ostream.h term-ostream.c
term_ostream.priv.h term_ostream.vt.h
+term-ostream.h term-ostream.c term_ostream.vt.h term_ostream.priv.h :
term-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f term-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) term-ostream.stamp; \
+ fi
Include:
"term-ostream.h"
Index: gnulib-local/modules/term-styled-ostream
===================================================================
RCS file: /cvsroot/gettext/gettext/gnulib-local/modules/term-styled-ostream,v
retrieving revision 1.1
diff -u -r1.1 term-styled-ostream
--- gnulib-local/modules/term-styled-ostream 12 Dec 2006 14:22:13 -0000
1.1
+++ gnulib-local/modules/term-styled-ostream 12 Dec 2006 19:14:16 -0000
@@ -17,10 +17,18 @@
Makefile.am:
lib_SOURCES += term-styled-ostream.c
-term-styled-ostream.h term-styled-ostream.c : $(top_srcdir)/build-aux/moopp
term-styled-ostream.oo.h term-styled-ostream.oo.c styled-ostream.oo.h
ostream.oo.h
+term-styled-ostream.stamp : $(top_srcdir)/build-aux/moopp
term-styled-ostream.oo.h term-styled-ostream.oo.c styled-ostream.oo.h
ostream.oo.h
+ @rm -f term-styled-ostream.tmp
+ @touch term-styled-ostream.tmp
$(top_srcdir)/build-aux/moopp $(srcdir)/term-styled-ostream.oo.c
$(srcdir)/term-styled-ostream.oo.h $(srcdir)/styled-ostream.oo.h
$(srcdir)/ostream.oo.h
-BUILT_SOURCES += term-styled-ostream.h term-styled-ostream.c
term_styled_ostream.priv.h term_styled_ostream.vt.h
-CLEANFILES += term-styled-ostream.h term-styled-ostream.c
term_styled_ostream.priv.h term_styled_ostream.vt.h
+ @mv -f term-styled-ostream.tmp $@
+BUILT_SOURCES += term-styled-ostream.h term-styled-ostream.c
term-styled_ostream.priv.h term-styled_ostream.vt.h
+CLEANFILES += term-styled-ostream.stamp term-styled-ostream.h
term-styled-ostream.c term-styled_ostream.priv.h term-styled_ostream.vt.h
+term-styled-ostream.h term-styled-ostream.c term-styled_ostream.vt.h
term-styled_ostream.priv.h : term-styled-ostream.stamp
+ @if test -f $@; then :; else \
+ rm -f term-styled-ostream.stamp; \
+ $(MAKE) $(AM_MAKEFLAGS) term-styled-ostream.stamp; \
+ fi
Include:
"term-styled-ostream.h"
- CVS gettext: parallel build issue,
Ralf Wildenhues <=