From ae7733f46c500f57ca24dad8ab303e9349a61db1 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Fri, 26 Aug 2022 09:49:40 -0700
Subject: [PATCH v12 07/15] meson: prereq: Move darwin sysroot determination
 into separate file

---
 src/template/darwin                           | 41 +++----------------
 src/{template/darwin => tools/darwin_sysroot} | 34 ++++-----------
 2 files changed, 14 insertions(+), 61 deletions(-)
 copy src/{template/darwin => tools/darwin_sysroot} (61%)
 mode change 100644 => 100755

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/template/darwin b/src/tools/darwin_sysroot
old mode 100644
new mode 100755
similarity index 61%
copy from src/template/darwin
copy to src/tools/darwin_sysroot
index fd30e19b6a7..1cdf81221a7
--- a/src/template/darwin
+++ b/src/tools/darwin_sysroot
@@ -1,9 +1,12 @@
-# src/template/darwin
+#!/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.
 
-# 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.
+PG_SYSROOT=$1
 
-# 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
@@ -33,27 +36,6 @@ 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=""
+    echo $PG_SYSROOT
   fi
 fi
-
-# Extra CFLAGS for code that will go into a shared library
-CFLAGS_SL=""
-
-# Select appropriate semaphore support.  Darwin 6.0 (macOS 10.2) and up
-# support System V semaphores; before that we have to use named POSIX
-# semaphores, which are less good for our purposes because they eat a
-# file descriptor per backend per max_connection slot.
-case $host_os in
-  darwin[015].*)
-    USE_NAMED_POSIX_SEMAPHORES=1
-    ;;
-  *)
-    USE_SYSV_SEMAPHORES=1
-    ;;
-esac
-
-DLSUFFIX=".dylib"
-- 
2.37.0.3.g30cc8d0f14

