提交 a6adf099 编写于 作者: R Richard Levitte

Better 'make depend' mechanism

Instead of relying on the '-nt' test operator, which doesn't exist
everywhere, use find's '-newer' to find out if any of the known .d
files is newer than Makefile.

Closes RT#4444
Reviewed-by: NAndy Polyakov <appro@openssl.org>
上级 b4ae8861
...@@ -257,32 +257,15 @@ clean: libclean ...@@ -257,32 +257,15 @@ clean: libclean
# This exists solely for those who still type 'make depend' # This exists solely for those who still type 'make depend'
# #
# We check if any depfile is newer than Makefile and decide to # We check if any depfile is newer than Makefile and decide to
# concatenate only if that is true, or if 'test' (a.k.a [ ) # concatenate only if that is true.
# doesn't have the option to figure it out (-nt).
#
# To check if test has the file age comparison operator, we
# simply try, and rely test to exit with 0 if the comparison
# was true, 1 if false, and most importantly, 2 if it doesn't
# recognise the operator.
depend: depend:
@: {- output_off() if $disabled{makedepend}; "" -} @: {- output_off() if $disabled{makedepend}; "" -}
@catdepends=false; \ @if [ -z "`find $(DEPS) -newer Makefile`" ]; then \
if [ Makefile -nt Makefile ] 2>/dev/null || [ $$? = 1 ]; then \
for d in $(DEPS); do \
if [ $$d -nt Makefile ]; then \
catdepends=true; \
break; \
fi; \
done; \
else \
catdepends=true; \
fi; \
if [ $$catdepends = true ]; then \
( sed -e '/^# DO NOT DELETE THIS LINE.*/,$$d' < Makefile; \ ( sed -e '/^# DO NOT DELETE THIS LINE.*/,$$d' < Makefile; \
echo '# DO NOT DELETE THIS LINE -- make depend depends on it.'; \ echo '# DO NOT DELETE THIS LINE -- make depend depends on it.'; \
echo; \ echo; \
for d in $(DEPS); do \ for f in $(DEPS); do \
if [ -f $$d ]; then cat $$d; fi; \ if [ -f $$f ]; then cat $$f; fi; \
done ) > Makefile.new; \ done ) > Makefile.new; \
if cmp Makefile.new Makefile >/dev/null 2>&1; then \ if cmp Makefile.new Makefile >/dev/null 2>&1; then \
rm -f Makefile.new; \ rm -f Makefile.new; \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册