diff --git a/Formula/postgresql.rb b/Formula/postgresql.rb index 9d10edd456..52da553613 100644 --- a/Formula/postgresql.rb +++ b/Formula/postgresql.rb @@ -87,11 +87,42 @@ class Postgresql < Formula args << "--enable-dtrace" if build.with? "dtrace" args << "--with-uuid=e2fs" + # As of Xcode/CLT 10.x the Perl headers were moved from /System + # to inside the SDK, so we need to use `-iwithsysroot` instead + # of `-I` to point to the correct location. + # https://www.postgresql.org/message-id/153558865647.1483.573481613491501077%40wrigleys.postgresql.org + if DevelopmentTools.clang_build_version >= 1000 + inreplace "configure", + "-I$perl_archlibexp/CORE", + "-iwithsysroot $perl_archlibexp/CORE" + inreplace "contrib/hstore_plperl/Makefile", + "-I$(perl_archlibexp)/CORE", + "-iwithsysroot $(perl_archlibexp)/CORE" + inreplace "src/pl/plperl/GNUmakefile", + "-I$(perl_archlibexp)/CORE", + "-iwithsysroot $(perl_archlibexp)/CORE" + end + system "./configure", *args system "make" - system "make", "install-world", "datadir=#{pkgshare}", - "libdir=#{lib}", - "pkglibdir=#{lib}/postgresql" + + dirs = %W[datadir=#{pkgshare} libdir=#{lib} pkglibdir=#{lib}/postgresql] + + # Temporarily disable building/installing the documentation. + # Postgresql seems to "know" the build system has been altered and + # tries to regenerate the documentation when using `install-world`. + # This results in the build failing: + # `ERROR: `osx' is missing on your system.` + # Attempting to fix that by adding a dependency on `open-sp` doesn't + # work and the build errors out on generating the documentation, so + # for now let's simply omit it so we can package Postgresql for Mojave. + if DevelopmentTools.clang_build_version >= 1000 + system "make", "all" + system "make", "-C", "contrib", "install", "all", *dirs + system "make", "install", "all", *dirs + else + system "make", "install-world", *dirs + end end def post_install