This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, v3] Fix stamp rules in libstdc++-v3/include
- From: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>
- To: Ben Elliston <bje at au1 dot ibm dot com>, gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Date: Sun, 20 Apr 2008 23:10:37 +0200
- Subject: Re: [PATCH, v3] Fix stamp rules in libstdc++-v3/include
- References: <1205740706.17616.2.camel@localhost> <de8d50360803170105y6261b404nefda16ecdb1cb7d3@mail.gmail.com> <1205782211.21672.7.camel@localhost> <20080318224710.GL2094@ins.uni-bonn.de>
* Ralf Wildenhues wrote on Tue, Mar 18, 2008 at 11:47:11PM CET:
> <http://thread.gmane.org/gmane.comp.gcc.devel/97291/focus=97322> ]
After reviews from Benjamin and Paolo,
<http://gcc.gnu.org/ml/libstdc++/2008-03/msg00083.html> and
<http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01426.html>,
I've committed this. The extra regenerated Makefile.in files stem from
a recent commit that causes ../config/override.m4 to be added to
distribution file list.
Cheers,
Ralf
libstdc++-v3:
2008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* include/Makefile.am: Fix most stamp rules to regenerate
the links for all sources newer than the stamp file.
* include/Makefile.in: Regenerate.
* Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* doc/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* libmath/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
Index: libstdc++-v3/include/Makefile.am
===================================================================
--- libstdc++-v3/include/Makefile.am (Revision 134490)
+++ libstdc++-v3/include/Makefile.am (Arbeitskopie)
@@ -858,72 +858,46 @@
# Here are the rules for building the headers
all-local: ${allstamped} ${allcreated}
-# This rule is slightly different, in that we must change the name of the
-# local file from std_foo.h to foo.
+# Ignore errors from 'mkdir -p' to avoid parallel make failure on
+# systems with broken mkdir. Call mkdir unconditionally because
+# it is just as cheap to avoid going through the shell.
+# Ignore errors from $(LN_S) because the links may already exist.
stamp-std: ${std_headers}
- @if [ ! -d "${std_builddir}" ]; then \
- mkdir -p ${std_builddir} ;\
- fi ;\
- if [ ! -f stamp-std ]; then \
- (cd ${std_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-std
+ @-mkdir -p ${std_builddir}
+ @-cd ${std_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-std
stamp-bits: ${bits_headers}
- @if [ ! -d "${bits_builddir}" ]; then \
- mkdir -p ${bits_builddir} ;\
- fi ;\
- if [ ! -f stamp-bits ]; then \
- (cd ${bits_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-bits
+ @-mkdir -p ${bits_builddir}
+ @-cd ${bits_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-bits
-stamp-c_base: ${c_base_headers}
- @if [ ! -d "${c_base_builddir}" ]; then \
- mkdir -p ${c_base_builddir} ;\
- fi ;\
- if [ ! -f stamp-c_base ]; then \
- (cd ${c_base_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-c_base
+stamp-c_base: ${c_base_headers}
+ @-mkdir -p ${c_base_builddir}
+ @-cd ${c_base_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-c_base
stamp-c_base_extra: ${c_base_headers_extra}
- @if [ ! -d "${bits_builddir}" ]; then \
- mkdir -p ${bits_builddir} ;\
- fi ;\
- if [ ! -f stamp-c_base_extra ]; then \
- (cd ${bits_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-c_base_extra
+ @-mkdir -p ${bits_builddir}
+ @-cd ${bits_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-c_base_extra
stamp-c_compatibility: ${c_compatibility_headers_extra}
- @if [ ! -d "${c_compatibility_builddir}" ]; then \
- mkdir -p ${c_compatibility_builddir} ;\
- fi ;\
- if [ ! -f stamp-c_compatibility ]; then \
- if [ ! -z "${c_compatibility_headers_extra}" ]; then \
- (cd ${c_compatibility_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- fi ;\
- $(STAMP) stamp-c_compatibility
+ @-mkdir -p ${c_compatibility_builddir}
+ @-if [ ! -z "${c_compatibility_headers_extra}" ]; then \
+ cd ${c_compatibility_builddir} && $(LN_S) $? . 2>/dev/null ;\
+ fi
+ @$(STAMP) stamp-c_compatibility
stamp-backward: ${backward_headers}
- @if [ ! -d "${backward_builddir}" ]; then \
- mkdir -p ${backward_builddir} ;\
- fi ;\
- if [ ! -f stamp-backward ]; then \
- (cd ${backward_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-backward
+ @-mkdir -p ${backward_builddir}
+ @-cd ${backward_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-backward
stamp-ext: ${ext_headers}
- @if [ ! -d "${ext_builddir}" ]; then \
- mkdir -p ${ext_builddir} ;\
- fi ;\
- if [ ! -f stamp-ext ]; then \
- (cd ${ext_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-ext
+ @-mkdir -p ${ext_builddir}
+ @-cd ${ext_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-ext
# Have to deal with nested include directories, gah! Strip off source
# directory before making the link.
@@ -977,52 +951,33 @@
$(STAMP) stamp-pb
stamp-tr1: ${tr1_headers}
- @if [ ! -d "${tr1_builddir}" ]; then \
- mkdir -p ${tr1_builddir} ;\
- fi ;\
- if [ ! -f stamp-tr1 ]; then \
- (cd ${tr1_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-tr1
+ @-mkdir -p ${tr1_builddir}
+ @-cd ${tr1_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-tr1
stamp-tr1-impl: ${tr1_impl_headers}
- @if [ ! -d "${tr1_impl_builddir}" ]; then \
- mkdir -p ${tr1_impl_builddir} ;\
- fi ;\
- if [ ! -f stamp-tr1-impl ]; then \
- (cd ${tr1_impl_builddir} && $(LN_S) $? . || true) ;\
- fi ;\
- $(STAMP) stamp-tr1-impl
+ @-mkdir -p ${tr1_impl_builddir}
+ @-cd ${tr1_impl_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-tr1-impl
stamp-debug: ${debug_headers}
- @if [ ! -d "${debug_builddir}" ]; then \
- mkdir -p ${debug_builddir} ;\
- fi ;\
- if [ ! -f stamp-debug ]; then \
- (cd ${debug_builddir} && @LN_S@ $? . || true) ;\
- fi ;\
- $(STAMP) stamp-debug
+ @-mkdir -p ${debug_builddir}
+ @-cd ${debug_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-debug
stamp-parallel: ${parallel_headers}
- @if [ ! -d "${parallel_builddir}" ]; then \
- mkdir -p ${parallel_builddir} ;\
- fi ;\
- if [ ! -f stamp-parallel ]; then \
- (cd ${parallel_builddir} && @LN_S@ $? . || true) ;\
- fi ;\
- $(STAMP) stamp-parallel
+ @-mkdir -p ${parallel_builddir}
+ @-cd ${parallel_builddir} && $(LN_S) $? . 2>/dev/null
+ @$(STAMP) stamp-parallel
stamp-${host_alias}:
- @if [ ! -d ${host_builddir} ]; then \
- mkdir -p ${host_builddir} ;\
- fi ;\
- $(STAMP) stamp-${host_alias}
+ @-mkdir -p ${host_builddir}
+ @$(STAMP) stamp-${host_alias}
# Host includes static.
# XXX Missing dependency info for {host_headers_extra}
stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
- @if [ ! -f stamp-host ]; then \
- (cd ${host_builddir} ;\
+ @cd ${host_builddir} && {\
$(LN_S) ${host_headers} . || true ;\
$(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\
$(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\
@@ -1031,8 +986,8 @@
$(LN_S) ${glibcxx_srcdir}/$(CLOCALE_INTERNAL_H) . || true ;\
$(LN_S) ${glibcxx_srcdir}/$(COMPATIBILITY_H) . || true ;\
$(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\
- $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true);\
- fi ;\
+ $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true;\
+ } 2>/dev/null
$(STAMP) stamp-host
# Host includes dynamic.