Skip to content

Commit e894a54

Browse files
committed
CDRIVER-1027: Simplify version declaration
Also remove unused BSON_LT_LDFLAGS variable that was never substituted, and therefore always empty.
1 parent 984bcdc commit e894a54

File tree

3 files changed

+33
-65
lines changed

3 files changed

+33
-65
lines changed

build/autotools/Versions.m4

Lines changed: 33 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,42 @@
1-
AC_DEFUN([mongoc_parse_version], [
2-
m4_define([ver_split], m4_split(m4_translit($2, [-], [.]), [\.]))
3-
m4_define([$1_major_version], m4_argn(1, ver_split))
4-
m4_define([$1_minor_version], m4_argn(2, ver_split))
5-
m4_define([$1_micro_version], m4_argn(3, ver_split))
6-
m4_define([$1_prerelease_version], m4_argn(4, ver_split))
7-
8-
# Set mongoc_version / mongoc_released_version to "x.y.z" from components.
9-
m4_define(
10-
[$1_version],
11-
m4_ifset(
12-
[$1_prerelease_version],
13-
[$1_major_version.$1_minor_version.$1_micro_version-$1_prerelease_version],
14-
[$1_major_version.$1_minor_version.$1_micro_version]))
15-
16-
# E.g., if prefix is "mongoc", substitute MONGOC_MAJOR_VERSION.
17-
m4_define([prefix_upper], [translit([$1],[a-z],[A-Z])])
18-
AC_SUBST(m4_join([], prefix_upper, [_MAJOR_VERSION]), $1_major_version)
19-
AC_SUBST(m4_join([], prefix_upper, [_MINOR_VERSION]), $1_minor_version)
20-
AC_SUBST(m4_join([], prefix_upper, [_MICRO_VERSION]), $1_micro_version)
21-
AC_SUBST(m4_join([], prefix_upper, [_PRERELEASE_VERSION]), $1_prerelease_version)
22-
23-
# Substitute the joined version string, e.g. set MONGOC_VERSION to $mongoc_version.
24-
AC_SUBST(m4_join([], prefix_upper, [_VERSION]), $1_version)
25-
])
26-
27-
# Parse version, perhaps like "x.y.z-dev", from VERSION_CURRENT file.
28-
mongoc_parse_version(mongoc, m4_esyscmd_s(cat VERSION_CURRENT))
29-
30-
# Parse most recent stable release, like "x.y.z", from VERSION_RELEASED file.
31-
mongoc_parse_version(mongoc_released, m4_esyscmd_s(cat VERSION_RELEASED))
1+
MONGOC_CURRENT_FILE=${srcdir}/VERSION_CURRENT
2+
MONGOC_VERSION=$(cat $MONGOC_CURRENT_FILE)
3+
MONGOC_MAJOR_VERSION=$(cut -d- -f1 $MONGOC_CURRENT_FILE | cut -d. -f1)
4+
MONGOC_MINOR_VERSION=$(cut -d- -f1 $MONGOC_CURRENT_FILE | cut -d. -f2)
5+
MONGOC_MICRO_VERSION=$(cut -d- -f1 $MONGOC_CURRENT_FILE | cut -d. -f3)
6+
MONGOC_PRERELEASE_VERSION=$(cut -s -d- -f2 $MONGOC_CURRENT_FILE)
7+
AC_SUBST(MONGOC_VERSION)
8+
AC_SUBST(MONGOC_MAJOR_VERSION)
9+
AC_SUBST(MONGOC_MINOR_VERSION)
10+
AC_SUBST(MONGOC_MICRO_VERSION)
11+
AC_SUBST(MONGOC_PRERELEASE_VERSION)
12+
13+
MONGOC_RELEASED_FILE=${srcdir}/VERSION_RELEASED
14+
MONGOC_RELEASED_VERSION=$(cat $MONGOC_RELEASED_FILE)
15+
MONGOC_RELEASED_MAJOR_VERSION=$(cut -d- -f1 $MONGOC_RELEASED_FILE | cut -d. -f1)
16+
MONGOC_RELEASED_MINOR_VERSION=$(cut -d- -f1 $MONGOC_RELEASED_FILE | cut -d. -f2)
17+
MONGOC_RELEASED_MICRO_VERSION=$(cut -d- -f1 $MONGOC_RELEASED_FILE | cut -d. -f3)
18+
MONGOC_RELEASED_PRERELEASE_VERSION=$(cut -s -d- -f2 $MONGOC_RELEASED_FILE)
19+
AC_SUBST(MONGOC_RELEASED_VERSION)
20+
AC_SUBST(MONGOC_RELEASED_MAJOR_VERSION)
21+
AC_SUBST(MONGOC_RELEASED_MINOR_VERSION)
22+
AC_SUBST(MONGOC_RELEASED_MICRO_VERSION)
23+
AC_SUBST(MONGOC_RELEASED_PRERELEASE_VERSION)
3224

3325
AC_MSG_NOTICE([Current version (from VERSION_CURRENT file): $MONGOC_VERSION])
3426

35-
m4_ifset([mongoc_released_prerelease_version],
36-
[AC_ERROR([RELEASED_VERSION file has prerelease version $MONGOC_RELEASED_VERSION])])
37-
38-
if test "x$mongoc_version" != "x$mongoc_released_version"; then
39-
AC_MSG_NOTICE([Most recent release (from VERSION_RELEASED file): $MONGOC_RELEASED_VERSION])
40-
m4_ifset([mongoc_prerelease_version], [], [
41-
AC_ERROR([Current version must be a prerelease (with "-dev", "-beta", etc.) or equal to previous release])
42-
])
27+
if test "x$MONGOC_RELEASED_PRERELEASE_VERSION" != "x"; then
28+
AC_ERROR([RELEASED_VERSION file has prerelease version $MONGOC_RELEASED_VERSION])
4329
fi
4430

45-
# bump up by 1 for every micro release with no API changes, otherwise
46-
# set to 0. after release, bump up by 1
47-
m4_define([mongoc_released_interface_age], mongoc_released_micro_version)
48-
m4_define([mongoc_released_binary_age],
49-
[m4_eval(100 * mongoc_released_minor_version +
50-
mongoc_released_micro_version)])
51-
52-
AC_SUBST([MONGOC_RELEASED_INTERFACE_AGE], [mongoc_released_interface_age])
53-
AC_MSG_NOTICE([libmongoc interface age $MONGOC_RELEASED_INTERFACE_AGE])
54-
55-
m4_define([lt_current],
56-
[m4_eval(100 * mongoc_released_minor_version +
57-
mongoc_released_micro_version -
58-
mongoc_released_interface_age)])
59-
60-
m4_define([lt_revision], [mongoc_released_interface_age])
31+
if test "x$MONGOC_VERSION" != "x$MONGOC_RELEASED_VERSION"; then
32+
AC_MSG_NOTICE([Most recent release (from VERSION_RELEASED file): $MONGOC_RELEASED_VERSION])
33+
if test "x$MONGOC_PRERELEASE_VERSION" = "x"; then
34+
AC_ERROR([Current version ($MONGOC_PRERELEASE_VERSION) must be a prerelease (with "-dev", "-beta", etc.) or equal to previous release])
35+
fi
36+
fi
6137

62-
m4_define([lt_age], [m4_eval(mongoc_released_binary_age -
63-
mongoc_released_interface_age)])
6438

65-
# So far, we've synchronized libbson and mongoc versions.
66-
m4_define([libbson_required_version], [mongoc_released_version])
39+
dnl So far, we've synchronized libbson and mongoc versions.
40+
m4_define([libbson_required_version], $MONGOC_RELEASED_VERSION)
6741

6842
m4_define([sasl_required_version], [2.1.6])

configure.ac

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ m4_include([build/autotools/CheckTarget.m4])
2121

2222
m4_include([build/autotools/SetupLibtool.m4])
2323
LT_INIT
24-
MONGOC_LT_CURRENT=lt_current
25-
MONGOC_LT_REVISION=lt_revision
26-
MONGOC_LT_AGE=lt_age
27-
MONGOC_LT_VERSION="$MONGOC_LT_CURRENT:$MONGOC_LT_REVISION:$MONGOC_LT_AGE"
28-
MONGOC_LT_LDFLAGS="-version-info $MONGOC_LT_VERSION"
2924

3025
m4_include([build/autotools/ReadCommandLineArguments.m4])
3126
m4_include([build/autotools/CheckSasl.m4])

src/Makefile.am

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ libmongoc_priv_la_LDFLAGS = \
4242

4343
libmongoc_1_0_la_LDFLAGS = \
4444
$(MONGOC_LDFLAGS_SHARED) \
45-
$(MONGOC_LT_LDFLAGS) \
4645
-no-undefined \
4746
-rpath $(libdir)
4847

0 commit comments

Comments
 (0)