summaryrefslogtreecommitdiff
path: root/libpq/buildfile
diff options
context:
space:
mode:
Diffstat (limited to 'libpq/buildfile')
-rw-r--r--libpq/buildfile188
1 files changed, 5 insertions, 183 deletions
diff --git a/libpq/buildfile b/libpq/buildfile
index 5a1732b..e2ceea2 100644
--- a/libpq/buildfile
+++ b/libpq/buildfile
@@ -1,188 +1,10 @@
-# file : libpq/buildfile
+# file : buildfile
# copyright : Copyright (c) 2016-2019 Code Synthesis Ltd
# license : PostgreSQL Licenes; see accompanying COPYRIGHT file
-# Headers other than these are not installed so treat them as files.
-#
-# @@ Make it postgresql/{postgres_ext.h pg_config_ext.h} when name pattern can
-# be represented with a reversible name.
-#
-# @@ TODO: we should be able to redo it with install=true/false
-#
-h = version.h libpq-fe.h libpq-events.h \
- postgresql/postgres_ext.h postgresql/pg_config_ext.h
-
-lib{pq}: c{*} h{$h} file{**.h -{$h}} def{win32/libpqdll} \
- file{pg_service.conf.sample}
-
-tclass = $c.target.class
-
-bsd = ($tclass == 'bsd')
-macos = ($tclass == 'macos')
-windows = ($tclass == 'windows')
-
-msvc_runtime = ($c.target.system == 'win32-msvc')
-
-gcc = ($c.class == 'gcc')
-msvc = ($c.class == 'msvc')
-
-lib{pq}: win32/c{*}: include = $windows
-lib{pq}: non-bsd/c{*}: include = (($bsd || $macos) == false)
+./: {*/ -build/} doc{COPYRIGHT INSTALL README} manifest
-# The version file is an internal one (it is only included from
-# postgresql/pg_config.h) so we don't distribute nor install it (see below).
+# Don't install tests or the INSTALL file.
#
-h{version}: in{version} $src_root/manifest
-
-# Build options.
-#
-c.poptions += -DFRONTEND -DUNSAFE_STAT_OK -DSO_MAJOR_VERSION=$abi_major
-
-if! $windows
- # Note that the original package uses -pthread compiler/linker option. It is
- # currently unsupported by build2, so we use -D_REENTRANT and -lpthread
- # preprocessor/linker options instead. We also omit -D_THREAD_SAFE (synonym
- # for -D_REENTRANT) and Solaris-specific -D_POSIX_PTHREAD_SEMANTICS.
- #
- # @@ Maybe makes sense to support -pthread in build2, adding -lpthread
- # to pkg-config's Libs.private and to cc.export.libs?
- #
- c.poptions += -D_REENTRANT -D_GNU_SOURCE
-else
- # Note that the original package defines the WIN32 macro for VC only, relying
- # on the fact that MinGW GCC defines it by default. However, the macro
- # disappears from the default ones if to compile with -std=c9x (as we do). So
- # we define it for both VC and MinGW GCC.
- #
- # It's tempting to move this definition to libpq/postgresql/pg_config.h.
- # However this header is not included into all files that use the macro, for
- # example, libpq/win32/open.c.
- #
- c.poptions += -DWIN32
-
-port_dir = ($windows ? "win32" : \
- $macos ? "darwin" : \
- $tclass)
-
-# Note that we add "-I$src_root" for the headers auto-generating machinery to
-# work properly.
-#
-c.poptions =+ "-I$out_root" "-I$src_root" "-I$src_base" \
- "-I$src_base/postgresql/port/$port_dir" \
- "-I$src_base/postgresql"
-
-if $windows
- c.poptions =+ "-I$src_base/win32"
-
-if $msvc_runtime
-{
- c.poptions =+ "-I$src_base/postgresql/port/win32_msvc"
-
- c.poptions += -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
-
- # Disable warnings that pop up with /W3.
- #
- if $msvc
- c.coptions += /wd4018 /wd4244 /wd4267
-}
-elif $gcc
-{
- # Omit -fexcess-precision=standard as -std=9x implies it.
- #
- c.coptions += -fno-strict-aliasing -fwrapv
-
- # Disable warnings that pop up with -Wall -Wextra. Upstream doesn't seem to
- # care about these and it is not easy to disable specific warnings in a way
- # that works across compilers/version (some -Wno-* options are only
- # recognized in newer versions).
- #
- c.coptions += -Wno-all -Wno-extra
-}
-
-# Define SYSCONFDIR macro. This path is used as a last resort for the
-# pg_service.conf file search (see libpq/fe-connect.c for details).
-#
-# The whole idea feels utterly broken (hello cross-compilation) so we will
-# just do bare minimum and wait and see.
-#
-# @@ We should probably allow to configure this macros via configuration
-# variable config.libpq.sysconfdir.
-#
-if! $windows
-{
- # For the original package if the resulted sysconfdir path doesn't contain
- # the 'postgres' or 'pgsql' substring then the '/postgresql' suffix is
- # automatically appended (see the original INSTALL file for details). Note
- # that the same rule is applied for the datadir and docdir paths. Also if
- # the root directory is /usr, then the resulting sysconfdir path is
- # /etc/postgresql (rather than /usr/etc/postgresql).
- #
- # Let's do the same for the sysconfdir to increase the chance that libpq
- # will find the configuration file. Note that we don't install anything at
- # this path and don't amend the install.data and install.doc path variables.
- # We also use the same default path as the original package.
- #
- if ($install.root != [null])
- {
- root = $install.resolve($install.root)
- sysconfdir = ($root != /usr ? $root/etc : /etc)
-
- if! $regex.match("$sysconfdir", '.*(pgsql|postgresql).*')
- sysconfdir = $sysconfdir/postgresql
- }
- else
- sysconfdir = /usr/local/pgsql/etc
-}
-else
-{
- # win32.mak from the original package does this.
- #
- sysconfdir = ""
-}
-
-# If we ever enable National Language Support (ENABLE_NLS macro) then we will
-# need to define the LOCALEDIR macro as well. It refers to the locale data
-# directory and should be $install.data/locale by default. We will also need
-# to install this directory (see configure script --enable-nls options and the
-# src/interfaces/libpq/po directory in the original package for details).
-#
-obj{fe-connect}: c.poptions += -DSYSCONFDIR="\"$sysconfdir\""
-
-if! $windows
- c.libs += -lpthread
-else
- # The original package also adds the resource file to the library. The file
- # contains only the version information. First, libpq.rc is produced from
- # libpq.rc.in with the following command:
- #
- # sed -e 's/\(VERSION.*\),0 *$/\1,'`date '+%y%j' | \
- # sed 's/^0*//'`'/' libpq.rc.in >libpq.rc
- #
- # Then libpq.rc is compiled with:
- #
- # windres -i libpq.rc -o libpqrc.o
- #
- # Afterwards libpqrc.o is linked to the library.
- #
- # @@ Currently we don't have support for the first two steps.
- #
- c.libs += $regex.apply(secur32 ws2_32 advapi32, \
- '(.+)', \
- $msvc_runtime ? '\1.lib' : '-l\1')
-
-# Export options.
-#
-lib{pq}: cc.export.poptions = "-I$src_base" "-I$src_base/postgresql"
-
-# See bootstrap.build for details.
-#
-if $version.pre_release
- lib{pq}: bin.lib.version = @"-$version.project_id"
-else
- lib{pq}: bin.lib.version = @"-$abi_version"
-
-# Internal header (see above).
-#
-h{version}: install = false
-
-file{pg_service.conf.sample}@./: install = data/
+tests/: install = false
+doc{INSTALL}@./: install = false