mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 01:14:53 +01:00
build: extract library versions from notmuch.h
- Make lib/notmuch.h the canonical location for the library versioning information. - Since the release-check should never fail now, remove it to reduce complexity. - Make the version numbers in notmuch.h consistent with the (now deleted) ones in lib/Makefile.local
This commit is contained in:
parent
02a2eeb427
commit
765556c1f1
4 changed files with 53 additions and 55 deletions
53
configure
vendored
53
configure
vendored
|
@ -324,6 +324,35 @@ EOF
|
|||
exit 1
|
||||
fi
|
||||
|
||||
printf "Reading libnotmuch version from source..."
|
||||
cat > _libversion.c <<EOF
|
||||
#include <stdio.h>
|
||||
#include "lib/notmuch.h"
|
||||
int main(void) {
|
||||
printf("libnotmuch_version_major=%d\n",
|
||||
LIBNOTMUCH_MAJOR_VERSION);
|
||||
printf("libnotmuch_version_minor=%d\n",
|
||||
LIBNOTMUCH_MINOR_VERSION);
|
||||
printf("libnotmuch_version_release=%d\n",
|
||||
LIBNOTMUCH_MICRO_VERSION);
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
if ${CC} ${CFLAGS} _libversion.c -o _libversion > /dev/null 2>&1 && \
|
||||
./_libversion > _libversion.sh && . ./_libversion.sh
|
||||
then
|
||||
printf "OK"
|
||||
else
|
||||
cat <<EOF
|
||||
|
||||
*** Error: Reading lib/notmuch.h failed.
|
||||
Please try running configure again in a clean environment, and if the
|
||||
problem persists, report a bug.
|
||||
EOF
|
||||
rm -f _libversion _libversion.c _libversion.sh
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if pkg-config --version > /dev/null 2>&1; then
|
||||
have_pkg_config=1
|
||||
else
|
||||
|
@ -809,7 +838,7 @@ for flag in -Wmissing-declarations; do
|
|||
done
|
||||
printf "\n\t${WARN_CFLAGS}\n"
|
||||
|
||||
rm -f minimal minimal.c
|
||||
rm -f minimal minimal.c _libversion.c _libversion _libversion.sh
|
||||
|
||||
# construct the Makefile.config
|
||||
cat > Makefile.config <<EOF
|
||||
|
@ -847,6 +876,28 @@ vpath Makefile.% \$(srcdir)
|
|||
vpath %.py \$(srcdir)
|
||||
vpath %.rst \$(srcdir)
|
||||
|
||||
# Library versions (used to make SONAME)
|
||||
# The major version of the library interface. This will control the soname.
|
||||
# As such, this number must be incremented for any incompatible change to
|
||||
# the library interface, (such as the deletion of an API or a major
|
||||
# semantic change that breaks formerly functioning code).
|
||||
#
|
||||
LIBNOTMUCH_VERSION_MAJOR = ${libnotmuch_version_major}
|
||||
|
||||
# The minor version of the library interface. This should be incremented at
|
||||
# the time of release for any additions to the library interface,
|
||||
# (and when it is incremented, the release version of the library should
|
||||
# be reset to 0).
|
||||
LIBNOTMUCH_VERSION_MINOR = ${libnotmuch_version_minor}
|
||||
|
||||
# The release version the library interface. This should be incremented at
|
||||
# the time of release if there have been no changes to the interface, (but
|
||||
# simply compatible changes to the implementation).
|
||||
LIBNOTMUCH_VERSION_RELEASE = ${libnotmuch_version_release}
|
||||
|
||||
# These are derived from the VERSION macros in lib/notmuch.h so
|
||||
# if you have to change them, something is wrong.
|
||||
|
||||
# The C compiler to use
|
||||
CC = ${CC}
|
||||
|
||||
|
|
|
@ -88,38 +88,6 @@ case $VERSION in
|
|||
*) verfail "'$VERSION' is a single number" ;;
|
||||
esac
|
||||
|
||||
echo -n "Checking that LIBNOTMUCH version macros & variables match ... "
|
||||
# lib/notmuch.h
|
||||
LIBNOTMUCH_MAJOR_VERSION=broken
|
||||
LIBNOTMUCH_MINOR_VERSION=broken
|
||||
LIBNOTMUCH_MICRO_VERSION=broken
|
||||
# lib/Makefile.local
|
||||
LIBNOTMUCH_VERSION_MAJOR=borken
|
||||
LIBNOTMUCH_VERSION_MINOR=borken
|
||||
LIBNOTMUCH_VERSION_RELEASE=borken
|
||||
|
||||
eval `awk 'NF == 3 && $1 == "#define" && $2 ~ /^LIBNOTMUCH_[A-Z]+_VERSION$/ \
|
||||
&& $3 ~ /^[0-9]+$/ { print $2 "=" $3 }' lib/notmuch.h`
|
||||
|
||||
eval `awk 'NF == 3 && $1 ~ /^LIBNOTMUCH_VERSION_[A-Z]+$/ && $2 == "=" \
|
||||
&& $3 ~ /^[0-9]+$/ { print $1 "=" $3 }' lib/Makefile.local`
|
||||
|
||||
|
||||
check_version_component ()
|
||||
{
|
||||
eval local v1=\$LIBNOTMUCH_$1_VERSION
|
||||
eval local v2=\$LIBNOTMUCH_VERSION_$2
|
||||
if [ $v1 != $v2 ]
|
||||
then append_emsg "LIBNOTMUCH_$1_VERSION ($v1) does not equal LIBNOTMUCH_VERSION_$2 ($v2)"
|
||||
fi
|
||||
}
|
||||
|
||||
old_emsg_count=$emsg_count
|
||||
check_version_component MAJOR MAJOR
|
||||
check_version_component MINOR MINOR
|
||||
check_version_component MICRO RELEASE
|
||||
[ $old_emsg_count = $emsg_count ] && echo Yes. || echo No.
|
||||
|
||||
echo -n "Checking that this is Debian package for notmuch... "
|
||||
read deb_notmuch deb_version rest < debian/changelog
|
||||
if [ "$deb_notmuch" = 'notmuch' ]
|
||||
|
|
|
@ -1,26 +1,5 @@
|
|||
# -*- makefile -*-
|
||||
|
||||
# The major version of the library interface. This will control the soname.
|
||||
# As such, this number must be incremented for any incompatible change to
|
||||
# the library interface, (such as the deletion of an API or a major
|
||||
# semantic change that breaks formerly functioning code).
|
||||
#
|
||||
LIBNOTMUCH_VERSION_MAJOR = 4
|
||||
|
||||
# The minor version of the library interface. This should be incremented at
|
||||
# the time of release for any additions to the library interface,
|
||||
# (and when it is incremented, the release version of the library should
|
||||
# be reset to 0).
|
||||
LIBNOTMUCH_VERSION_MINOR = 3
|
||||
|
||||
# The release version the library interface. This should be incremented at
|
||||
# the time of release if there have been no changes to the interface, (but
|
||||
# simply compatible changes to the implementation).
|
||||
LIBNOTMUCH_VERSION_RELEASE = 0
|
||||
|
||||
# Note: Don't forget to change the VERSION macros in notmuch.h when
|
||||
# any of the above change.
|
||||
|
||||
ifeq ($(PLATFORM),MACOSX)
|
||||
LIBRARY_SUFFIX = dylib
|
||||
# On OS X, library version numbers go before suffix.
|
||||
|
|
|
@ -56,7 +56,7 @@ NOTMUCH_BEGIN_DECLS
|
|||
* version in Makefile.local.
|
||||
*/
|
||||
#define LIBNOTMUCH_MAJOR_VERSION 4
|
||||
#define LIBNOTMUCH_MINOR_VERSION 2
|
||||
#define LIBNOTMUCH_MINOR_VERSION 3
|
||||
#define LIBNOTMUCH_MICRO_VERSION 0
|
||||
|
||||
#define NOTMUCH_DEPRECATED(major,minor) \
|
||||
|
|
Loading…
Reference in a new issue