Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@
#
# See also the section "Build instructions" in the README file.

# Run in POSIX-conforming mode. Among other things this guarantees that the
# shell is invoked with -e (so complex recipes fail on the first error),
# which avoids relying on SHELL = /bin/sh -e -- AIX make interprets that as
# a literal path and fails to find an executable named "/bin/sh -e".
.POSIX:

# === Variables set by makesetup ===

MODBUILT_NAMES= _MODBUILT_NAMES_
Expand Down Expand Up @@ -61,8 +67,10 @@ DSYMUTIL_PATH= @DSYMUTIL_PATH@

GNULD= @GNULD@

# Shell used by make (some versions default to the login shell, which is bad)
SHELL= /bin/sh -e
# Shell used by make (some versions default to the login shell, which is bad).
# The shell is invoked with -e via the .POSIX: special target above, which
# applies under POSIX make implementations and to GNU make in POSIX mode.
SHELL= /bin/sh

# Use this to make a link between python$(VERSION) and python in $(BINDIR)
LN= @LN@
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Fix build on AIX by no longer setting ``SHELL = /bin/sh -e`` in the
top-level :file:`Makefile`. AIX :program:`make` interprets ``SHELL`` as a
literal executable path, so the embedded ``-e`` flag caused
:samp:`/bin/sh -e: not found`. The makefile now sets ``SHELL = /bin/sh``
and declares the ``.POSIX:`` special target, which causes both POSIX
:program:`make` and GNU :program:`make` to invoke the shell with ``-e``.
Loading