postgres.git / summary / log / commit / refs
commit 05519126a02ee39bf0957d3d85a1da5bd7e1c09c
Author: Andres Freund <andres@anarazel.de>
Date: Thu Sep 01 23:54:19 2022 +0000
First released in: 16.0
Move darwin sysroot determination into separate file
The sysroot determination is fairly complex and will soon also be needed when
building with meson. Instead of duplicating the logic, move it to a dedicated
shell script invoked both by configure and meson.
Reviewed-by: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Discussion: https://postgr.es/m/2180a97c-c026-1b6c-cec8-d6e499f97017@enterprisedb.com
src/template/darwin | 41 ++++++-----------------------------------
src/tools/darwin_sysroot | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 35 deletions(-)
diff --git a/src/template/darwin b/src/template/darwin
index fd30e19b6a7..e8eb9390687 100644
--- a/src/template/darwin
+++ b/src/template/darwin
@@ -3,41 +3,12 @@
# Note: Darwin is the original code name for macOS, also known as OS X.
# We still use "darwin" as the port name, partly because config.guess does.
-# Select where system include files should be sought, if user didn't say.
-if test x"$PG_SYSROOT" = x"" ; then
- # This is far more complicated than it ought to be. We first ask
- # "xcrun --show-sdk-path", which seems to match the default -isysroot
- # setting of Apple's compilers.
- PG_SYSROOT=`xcrun --show-sdk-path 2>/dev/null`
- # That may fail, or produce a result that is not version-specific (i.e.,
- # just ".../SDKs/MacOSX.sdk"). Using a version-specific sysroot seems
- # desirable, so if the path is a non-version-specific symlink, expand it.
- if test -L "$PG_SYSROOT"; then
- if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
- else
- PG_SYSROOT=`expr "$PG_SYSROOT" : '\(.*\)/'`/`readlink "$PG_SYSROOT"`
- fi
- fi
- # If there are still not digits in the directory name, try
- # "xcrun --sdk macosx --show-sdk-path"; and if that still doesn't work,
- # fall back to asking xcodebuild, which is often a good deal slower.
- if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
- else
- PG_SYSROOT=`xcrun --sdk macosx --show-sdk-path 2>/dev/null`
- if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
- else
- PG_SYSROOT=`xcodebuild -version -sdk macosx Path 2>/dev/null`
- fi
- fi
-fi
-# Validate the result: if it doesn't point at a directory, ignore it.
-if test x"$PG_SYSROOT" != x"" ; then
- if test -d "$PG_SYSROOT" ; then
- CPPFLAGS="-isysroot $PG_SYSROOT $CPPFLAGS"
- LDFLAGS="-isysroot $PG_SYSROOT $LDFLAGS"
- else
- PG_SYSROOT=""
- fi
+# Select where system include files should be sought
+PG_SYSROOT=`${srcdir}/src/tools/darwin_sysroot $PG_SYSROOT`
+
+if test -d "$PG_SYSROOT" ; then
+ CPPFLAGS="-isysroot $PG_SYSROOT $CPPFLAGS"
+ LDFLAGS="-isysroot $PG_SYSROOT $LDFLAGS"
fi
# Extra CFLAGS for code that will go into a shared library
diff --git a/src/tools/darwin_sysroot b/src/tools/darwin_sysroot
new file mode 100755
index 00000000000..1cdf81221a7
--- /dev/null
+++ b/src/tools/darwin_sysroot
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Select where system include files should be sought. If the user specified a
+# sysroot, validate it.
+#
+# A separate script so it can be shared between autoconf and meson.
+
+PG_SYSROOT=$1
+
+if test x"$PG_SYSROOT" = x"" ; then
+ # This is far more complicated than it ought to be. We first ask
+ # "xcrun --show-sdk-path", which seems to match the default -isysroot
+ # setting of Apple's compilers.
+ PG_SYSROOT=`xcrun --show-sdk-path 2>/dev/null`
+ # That may fail, or produce a result that is not version-specific (i.e.,
+ # just ".../SDKs/MacOSX.sdk"). Using a version-specific sysroot seems
+ # desirable, so if the path is a non-version-specific symlink, expand it.
+ if test -L "$PG_SYSROOT"; then
+ if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
+ else
+ PG_SYSROOT=`expr "$PG_SYSROOT" : '\(.*\)/'`/`readlink "$PG_SYSROOT"`
+ fi
+ fi
+ # If there are still not digits in the directory name, try
+ # "xcrun --sdk macosx --show-sdk-path"; and if that still doesn't work,
+ # fall back to asking xcodebuild, which is often a good deal slower.
+ if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
+ else
+ PG_SYSROOT=`xcrun --sdk macosx --show-sdk-path 2>/dev/null`
+ if expr x"$PG_SYSROOT" : '.*[0-9]\.[0-9][^/]*$' >/dev/null ; then : okay
+ else
+ PG_SYSROOT=`xcodebuild -version -sdk macosx Path 2>/dev/null`
+ fi
+ fi
+fi
+# Validate the result: if it doesn't point at a directory, ignore it.
+if test x"$PG_SYSROOT" != x"" ; then
+ if test -d "$PG_SYSROOT" ; then
+ echo $PG_SYSROOT
+ fi
+fi
[parent: 2f2b18bd3f55]