From ae7733f46c500f57ca24dad8ab303e9349a61db1 Mon Sep 17 00:00:00 2001 From: Andres Freund 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