1# The PostgreSQL make files exploit features of GNU make that other 2# makes do not have. Because it is a common mistake for users to try 3# to build Postgres with a different make, we have this make file 4# that, as a service, will look for a GNU make and invoke it, or show 5# an error message if none could be found. 6 7# If the user were using GNU make now, this file would not get used 8# because GNU make uses a make file named "GNUmakefile" in preference 9# to "Makefile" if it exists. PostgreSQL is shipped with a 10# "GNUmakefile". If the user hasn't run the configure script yet, the 11# GNUmakefile won't exist yet, so we catch that case as well. 12 13 14# AIX make defaults to building *every* target of the first rule. Start with 15# a single-target, empty rule to make the other targets non-default. 16all: 17 18all check install installdirs installcheck installcheck-parallel uninstall clean distclean maintainer-clean dist distcheck world check-world install-world installcheck-world: 19 @if [ ! -f GNUmakefile ] ; then \ 20 echo "You need to run the 'configure' program first. See the file"; \ 21 echo "'INSTALL' for installation instructions." ; \ 22 false ; \ 23 fi 24 @IFS=':' ; \ 25 for dir in $$PATH; do \ 26 for prog in gmake gnumake make; do \ 27 if [ -f $$dir/$$prog ] && ( $$dir/$$prog -f /dev/null --version 2>/dev/null | grep GNU >/dev/null 2>&1 ) ; then \ 28 GMAKE=$$dir/$$prog; \ 29 break 2; \ 30 fi; \ 31 done; \ 32 done; \ 33 \ 34 if [ x"$${GMAKE+set}" = xset ]; then \ 35 echo "Using GNU make found at $${GMAKE}"; \ 36 unset MAKELEVEL; \ 37 $${GMAKE} $@ ; \ 38 else \ 39 echo "You must use GNU make to build PostgreSQL." ; \ 40 false; \ 41 fi 42