gpgme/autogen-all.sh
Ingo Klöcker 67ebc53b0f
build,python: Support building Python bindings as nested package
* autogen-all.sh (packages): Add lang/python.
* configure.ac: Add python to available languages if subdir exists. Add
python to nested languages if enabled to generate corresponding make
targets. Call configure script of nested python package recursively.
* lang/python/configure.ac: Check if Python bindings are built as
nested package and set GPGME_CFLAGS and GPGME_LIBS accordingly.
* lang/python/setup.py.in: Define some variables where they are used
first. Extract library directories from GPGME_LIBS variable similar
to the extraction of include directories from GPGME_CFLAGS. Adjust
library locations in case of win32 the same way as the include
locations. Prefer gpgme.h in the include directories from GPGME_CFLAGS
over the one in the prefix, so that the correct gpgme.h is taken in
case of nested builds.
--

This re-adds the ability to build the Python bindings together with
gpgme with a single `configure && make` command (if building from git).

GnuPG-bug-id: 7110
2024-06-11 14:58:00 +02:00

68 lines
1.5 KiB
Bash
Executable File

#! /bin/sh
# autogen-all.sh
# Copyright (C) 2024 g10 Code GmbH
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# This script is a helper to run the autogen.sh script for gpgme and the
# nested packages of the C++, Qt, and Python bindings.
prog=$(basename "$0")
packages=". lang/cpp lang/qt lang/python"
fatal () {
echo "${prog}:" "$*" >&2
DIE=yes
}
info () {
if [ -z "${SILENT}" ]; then
echo "${prog}:" "$*" >&2
fi
}
die_p () {
if [ "$DIE" = "yes" ]; then
echo "autogen.sh: Stop." >&2
exit 1
fi
}
DIE=no
SILENT=
tmp=$(dirname "$0")
tsdir=$(cd "${tmp}"; pwd)
am_lf='
'
if test x"$1" = x"--help"; then
tmp="$(pwd)"
cd "$tsdir" || fatal "error cd-ing to $tsdir"
die_p
./autogen.sh --help | sed "s/autogen.sh/${prog}/" || fatal "error running ./autogen.sh --help"
die_p
exit 0
fi
if test x"$1" = x"--silent"; then
SILENT=" --silent"
fi
for p in $packages; do
info Running ./autogen.sh "$@" in $p ...
curdir="$(pwd)"
cd "$tsdir/$p" || fatal "error cd-ing to $tsdir/$p"
die_p
./autogen.sh "$@" | sed "s/autogen.sh/${prog}/" || fatal "error running ./autogen.sh $@"
die_p
cd "$curdir" || fatal "error cd-ing back to $curdir"
die_p
done