This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [971016]: Simplification to gcc's Makefile.in: compare targets
- To: egcs-bugs at cygnus dot com
- Subject: Re: [971016]: Simplification to gcc's Makefile.in: compare targets
- From: Manfred Hollstein <manfred at s-direktnet dot de>
- Date: Fri, 24 Oct 97 08:15:14 +0200
- References: <9710231323.AA00586@lts.sel.alcatel.de>
- Reply-To: Manfred Hollstein <manfred at s-direktnet dot de>
Sorry, my last patch introduces a bug because I overlooked that there
are actually two separate `for' runs, hence $stage is undefined for
the SUBDIRS loop. This version should be correct:
Fri Oct 24 08:11:58 1997 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (compare, compare-lean, compare3): Combined to one
ruleset determining actions to be performed via $@.
(compare4, compare4-lean): New targets.
(gnucompare, gnucompare3): Combined to one ruleset determining
actions to be performed via $@. Also, note which files failed
the comparison test in .bad_compare.
(gnucompare-lean, gnucompare3-lean, gnucompare4-lean): New targets.
diff --context --recursive --show-c-function -x *.o -x *.info* -x *.html* -x *.elc -x *.dvi -x *.orig -x *~ -x version.el egcs-971016.orig/gcc/Makefile.in egcs-971016/gcc/Makefile.in
*** egcs-971016.orig/gcc/Makefile.in Sat Oct 18 09:37:37 1997
--- egcs-971016/gcc/Makefile.in Fri Oct 24 07:59:45 1997
*************** bootstrap3: force
*** 2615,2632 ****
# stage2 directory.
# ./ avoids bug in some versions of tail.
! compare: force
-rm -f .bad_compare
for file in *$(objext); do \
tail +16c ./$$file > tmp-foo1; \
! tail +16c stage2/$$file > tmp-foo2 \
&& (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done
for dir in tmp-foo $(SUBDIRS); do \
if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
for file in $$dir/*$(objext); do \
tail +16c ./$$file > tmp-foo1; \
! tail +16c stage2/$$file > tmp-foo2 \
&& (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done; \
fi; \
--- 2615,2634 ----
# stage2 directory.
# ./ avoids bug in some versions of tail.
! compare compare3 compare4 compare-lean compare3-lean compare4-lean: force
-rm -f .bad_compare
+ case "$@" in compare | compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
for file in *$(objext); do \
tail +16c ./$$file > tmp-foo1; \
! tail +16c stage$$stage/$$file > tmp-foo2 \
&& (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done
+ case "$@" in compare | compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
for dir in tmp-foo $(SUBDIRS); do \
if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
for file in $$dir/*$(objext); do \
tail +16c ./$$file > tmp-foo1; \
! tail +16c stage$$stage/$$file > tmp-foo2 \
&& (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done; \
fi; \
*************** compare: force
*** 2636,2715 ****
echo "Bootstrap comparison failure!"; \
cat .bad_compare; \
exit 1; \
! else true; \
fi
! # ./ avoids bug in some versions of tail.
! compare-lean: force
-rm -f .bad_compare
for file in *$(objext); do \
! tail +16c ./$$file > tmp-foo1; \
! tail +16c stage2/$$file > tmp-foo2 \
! && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done
for dir in tmp-foo $(SUBDIRS); do \
if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
for file in $$dir/*$(objext); do \
! tail +16c ./$$file > tmp-foo1; \
! tail +16c stage2/$$file > tmp-foo2 \
! && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done; \
fi; \
done
- -rm -f tmp-foo*
if [ -f .bad_compare ]; then \
echo "Bootstrap comparison failure!"; \
cat .bad_compare; \
exit 1; \
! else rm -rf stage2; \
fi
-
- # Similar, but compare with stage3 directory
- compare3: force
- for file in *$(objext); do \
- tail +16c ./$$file > tmp-foo1; \
- tail +16c stage3/$$file > tmp-foo2 2>/dev/null \
- && (cmp tmp-foo1 tmp-foo2 || echo $$file differs) || true; \
- done
- for dir in tmp-foo $(SUBDIRS); do \
- if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
- for file in $$dir/*$(objext); do \
- tail +16c ./$$file > tmp-foo1; \
- tail +16c stage3/$$file > tmp-foo2 2>/dev/null \
- && (cmp tmp-foo1 tmp-foo2 || echo $$file differs) || true; \
- done; \
- fi; \
- done
- -rm -f tmp-foo*
-
- # Compare the object files in the current directory with those in the
- # stage2 directory. Use gnu cmp (diffutils v2.4 or later) to avoid
- # running tail and the overhead of twice copying each object file.
-
- gnucompare: force
- for file in *$(objext); do \
- cmp --ignore-initial=16 $$file stage2/$$file || true ; \
- done
- for dir in tmp-foo $(SUBDIRS); do \
- if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
- for file in $$dir/*$(objext); do \
- cmp --ignore-initial=16 $$file stage2/$$file || true ; \
- done; \
- fi; \
- done
-
- # Similar, but compare with stage3 directory
- gnucompare3: force
- for file in *$(objext); do \
- cmp --ignore-initial=16 $$file stage3/$$file || true ; \
- done
- for dir in tmp-foo $(SUBDIRS); do \
- if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
- for file in $$dir/*$(objext); do \
- cmp --ignore-initial=16 $$file stage3/$$file || true ; \
- done; \
- fi; \
- done
# Copy the object files from a particular stage into a subdirectory.
stage1-start:
--- 2638,2676 ----
echo "Bootstrap comparison failure!"; \
cat .bad_compare; \
exit 1; \
! else \
! case "$@" in \
! *-lean ) rm -rf stage$$stage ;; \
! esac; true; \
fi
! # Compare the object files in the current directory with those in the
! # stage2 directory. Use gnu cmp (diffutils v2.4 or later) to avoid
! # running tail and the overhead of twice copying each object file.
!
! gnucompare gnucompare3 gnucompare4 gnucompare-lean gnucompare3-lean gnucompare4-lean: force
-rm -f .bad_compare
+ case "$@" in gnucompare | gnucompare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^gnucompare\([0-9][0-9]*\).*,\1,'` ;; esac; \
for file in *$(objext); do \
! (cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done
+ case "$@" in gnucompare | gnucompare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^gnucompare\([0-9][0-9]*\).*,\1,'` ;; esac; \
for dir in tmp-foo $(SUBDIRS); do \
if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
for file in $$dir/*$(objext); do \
! (cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
done; \
fi; \
done
if [ -f .bad_compare ]; then \
echo "Bootstrap comparison failure!"; \
cat .bad_compare; \
exit 1; \
! else \
! case "$@" in \
! *-lean ) rm -rf stage$$stage ;; \
! esac; true; \
fi
# Copy the object files from a particular stage into a subdirectory.
stage1-start:
--
Manfred Hollstein If you have any questions about GNU SW:
Hindenburgstr. 13/1 <mailto:manfred@s-direktnet.de>
75446 Wiernsheim or take a look at
FRG <http://www.s-direktnet.de/HomePages/manfred/>
Public PGP key from
<http://www.s-direktnet.de/HomePages/manfred/manfred.asc>