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
-if [ "$MAKEDEPEND" = "gcc" ]; then
- sed -e '/^# DO NOT DELETE.*/,$d' < Makefile.ssl > Makefile.tmp
+# 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 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 -M $@ >> Makefile.tmp
- perl $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new
- #cat Makefile.tmp > Makefile.new
+ ${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} -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