bn/bn_lib.c: remove bn_check_top from bn_expand2.
[oweals/openssl.git] / util / domd
index 8cbe383c16537a9acde5e8ecc6c125b6d8e9de76..6eb019ea1672d7e482ec0496017c19b9084cc2bd 100755 (executable)
--- a/util/domd
+++ b/util/domd
@@ -6,24 +6,44 @@ TOP=$1
 shift
 if [ "$1" = "-MD" ]; then
     shift
-    MAKEDEPEND=$1
+    MAKEDEPEND=""
+    while [ "$1" != "--" ]; do
+        MAKEDEPEND="$MAKEDEPEND $1"
+        shift
+    done
     shift
 fi
 if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi
 
-cp Makefile.ssl Makefile.save
+# Preserve Makefile timestamp by moving instead of copying (cp -p is GNU only)
+mv Makefile Makefile.save
+cp Makefile.save Makefile
 # fake the presence of Kerberos
 touch $TOP/krb5.h
-if [ "$MAKEDEPEND" = "gcc" ]; then
-    sed -e '/^# DO NOT DELETE.*/,$d' < Makefile.ssl > Makefile.tmp
+if expr "$MAKEDEPEND" : ".*makedepend" > /dev/null; then
+    ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND $@ && \
+    ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new
+    RC=$?
+else
+    args=""
+    while [ $# -gt 0 ]; do
+       if [ "$1" != "--" ]; then args="$args $1"; fi
+       shift
+    done
+    sed -e '/^# DO NOT DELETE.*/,$d' < Makefile > Makefile.tmp
     echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' >> Makefile.tmp
-    gcc -D OPENSSL_DOING_MAKEDEPEND -M $@ >> Makefile.tmp
+    ${MAKEDEPEND} -Werror -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp || exit 1
     ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new
+    RC=$?
     rm -f Makefile.tmp
+fi
+if cmp -s Makefile.save Makefile.new; then
+    mv Makefile.save Makefile
+    rm -f Makefile.new
 else
-    ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -f Makefile.ssl $@
-    ${PERL} $TOP/util/clean-depend.pl < Makefile.ssl > Makefile.new
+    mv Makefile.new Makefile
 fi
-mv Makefile.new Makefile.ssl
 # unfake the presence of Kerberos
 rm $TOP/krb5.h
+
+exit $RC