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