From baf9fc46ec0a9ed424c630ef58582c1a2906b934 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 22 Jan 2021 18:58:25 -0500 Subject: [PATCH] Doc: improve directions for building on macOS. In light of recent discussions, we should instruct people to install Apple's command line tools; installing Xcode is secondary. Also, fix sample command for finding out the default sysroot, as we now know that the command originally recommended can give a result that doesn't match your OS version. Also document the workaround to use if you really don't want configure to select a sysroot at all. Discussion: https://postgr.es/m/20210119111625.20435-1-james.hilliard1@gmail.com --- doc/src/sgml/installation.sgml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index c21b1984a0..a000ef0f90 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -2477,6 +2477,17 @@ PHSS_30849 s700_800 u2comp/be/plugin library Patch installation on + + To build PostgreSQL from source + on macOS, you will need to install Apple's + command line developer tools, which can be done by issuing + +xcode-select --install + + (note that this will pop up a GUI dialog window for confirmation). + You may or may not wish to also install Xcode. + + On recent macOS releases, it's necessary to embed the sysroot path in the include switches used to @@ -2493,7 +2504,7 @@ make PG_SYSROOT=/desired/path all To find out the appropriate path on your machine, run -xcodebuild -version -sdk macosx Path +xcrun --show-sdk-path Note that building an extension using a different sysroot version than was used to build the core server is not really recommended; in the @@ -2507,6 +2518,19 @@ xcodebuild -version -sdk macosx Path ./configure ... PG_SYSROOT=/desired/path + This would primarily be useful to cross-compile for some other + macOS version. There is no guarantee that the resulting executables + will run on the current host. + + + + To suppress the options altogether, use + +./configure ... PG_SYSROOT=none + + (any nonexistent pathname will work). This might be useful if you wish + to build with a non-Apple compiler, but beware that that case is not + tested or supported by the PostgreSQL developers.