This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, v3] Fix stamp rules in libstdc++-v3/include


* 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]