From: Richard Levitte Date: Fri, 18 Mar 2016 19:52:29 +0000 (+0100) Subject: Better 'make depend' mechanism X-Git-Tag: OpenSSL_1_1_0-pre5~314 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=a6adf099cbd7c3bc5c7051ad3d334636ef5e7f90;ds=sidebyside 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: Andy Polyakov --- diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 3a1ade72b7..be6299bc80 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -257,32 +257,15 @@ clean: libclean # This exists solely for those who still type 'make depend' # # We check if any depfile is newer than Makefile and decide to -# concatenate only if that is true, or if 'test' (a.k.a [ ) -# 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. +# concatenate only if that is true. depend: @: {- output_off() if $disabled{makedepend}; "" -} - @catdepends=false; \ - 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 \ + @if [ -z "`find $(DEPS) -newer Makefile`" ]; then \ ( sed -e '/^# DO NOT DELETE THIS LINE.*/,$$d' < Makefile; \ echo '# DO NOT DELETE THIS LINE -- make depend depends on it.'; \ echo; \ - for d in $(DEPS); do \ - if [ -f $$d ]; then cat $$d; fi; \ + for f in $(DEPS); do \ + if [ -f $$f ]; then cat $$f; fi; \ done ) > Makefile.new; \ if cmp Makefile.new Makefile >/dev/null 2>&1; then \ rm -f Makefile.new; \