2000-06-13 00:37:22 +08:00
|
|
|
# The PostgreSQL make files exploit features of GNU make that other
|
|
|
|
# makes do not have. Because it is a common mistake for users to try
|
|
|
|
# to build Postgres with a different make, we have this make file
|
|
|
|
# that, as a service, will look for a GNU make and invoke it, or show
|
|
|
|
# an error message if none could be found.
|
|
|
|
|
|
|
|
# If the user were using GNU make now, this file would not get used
|
|
|
|
# because GNU make uses a make file named "GNUmakefile" in preference
|
|
|
|
# to "Makefile" if it exists. PostgreSQL is shipped with a
|
|
|
|
# "GNUmakefile". If the user hasn't run the configure script yet, the
|
|
|
|
# GNUmakefile won't exist yet, so we catch that case as well.
|
|
|
|
|
|
|
|
|
2017-11-30 16:57:22 +08:00
|
|
|
# AIX make defaults to building *every* target of the first rule. Start with
|
|
|
|
# a single-target, empty rule to make the other targets non-default.
|
Remove AIX support
There isn't a lot of user demand for AIX support, we have a bunch of
hacks to work around AIX-specific compiler bugs and idiosyncrasies,
and no one has stepped up to the plate to properly maintain it.
Remove support for AIX to get rid of that maintenance overhead. It's
still supported for stable versions.
The acute issue that triggered this decision was that after commit
8af2565248, the AIX buildfarm members have been hitting this
assertion:
TRAP: failed Assert("(uintptr_t) buffer == TYPEALIGN(PG_IO_ALIGN_SIZE, buffer)"), File: "md.c", Line: 472, PID: 2949728
Apperently the "pg_attribute_aligned(a)" attribute doesn't work on AIX
for values larger than PG_IO_ALIGN_SIZE, for a static const variable.
That could be worked around, but we decided to just drop the AIX support
instead.
Discussion: https://www.postgresql.org/message-id/20240224172345.32@rfd.leadboat.com
Reviewed-by: Andres Freund, Noah Misch, Thomas Munro
2024-02-28 19:10:51 +08:00
|
|
|
# (We don't support AIX anymore, but if someone tries to build on AIX anyway,
|
|
|
|
# at least they'll get the instructions to run 'configure' first.)
|
2017-11-30 16:57:22 +08:00
|
|
|
all:
|
|
|
|
|
2011-02-15 03:52:32 +08:00
|
|
|
all check install installdirs installcheck installcheck-parallel uninstall clean distclean maintainer-clean dist distcheck world check-world install-world installcheck-world:
|
2000-12-30 08:24:09 +08:00
|
|
|
@if [ ! -f GNUmakefile ] ; then \
|
2023-12-23 02:32:15 +08:00
|
|
|
echo "You need to run the 'configure' program first. Please see"; \
|
2022-01-19 21:48:25 +08:00
|
|
|
echo "<https://www.postgresql.org/docs/devel/installation.html>" ; \
|
2000-06-13 00:37:22 +08:00
|
|
|
false ; \
|
|
|
|
fi
|
|
|
|
@IFS=':' ; \
|
|
|
|
for dir in $$PATH; do \
|
|
|
|
for prog in gmake gnumake make; do \
|
2000-11-07 02:18:22 +08:00
|
|
|
if [ -f $$dir/$$prog ] && ( $$dir/$$prog -f /dev/null --version 2>/dev/null | grep GNU >/dev/null 2>&1 ) ; then \
|
2000-06-13 00:37:22 +08:00
|
|
|
GMAKE=$$dir/$$prog; \
|
|
|
|
break 2; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
done; \
|
|
|
|
\
|
|
|
|
if [ x"$${GMAKE+set}" = xset ]; then \
|
|
|
|
echo "Using GNU make found at $${GMAKE}"; \
|
2019-06-25 05:29:53 +08:00
|
|
|
unset MAKELEVEL; \
|
2000-06-13 00:37:22 +08:00
|
|
|
$${GMAKE} $@ ; \
|
|
|
|
else \
|
|
|
|
echo "You must use GNU make to build PostgreSQL." ; \
|
|
|
|
false; \
|
|
|
|
fi
|