1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
This is adapted patch from upstream PR 151. Original PR defines
--external-json-parser which breaks configuration, see [1]. It was changed to
--externaljsonparser and $external_json_parser to $externaljsonparser.
Additionally, LDFLAGS_CHECK variable was introduced in order to make
tests working, see [2] and #865667.
[1] https://github.com/bitlbee/bitlbee/pull/151#issuecomment-1201181905
[2] https://github.com/bitlbee/bitlbee/pull/151#issuecomment-1219254239
Upstream-PR: https://github.com/bitlbee/bitlbee/pull/151
diff --git a/configure b/configure
index fd8d363a..39495515 100755
--- a/configure
+++ b/configure
@@ -47,6 +47,7 @@ plugins=1
otr=0
events=glib
+externaljsonparser=auto
ssl=auto
pam=0
@@ -148,6 +149,7 @@ Option Description Default
--events=... Event handler (glib, libevent) $events
--ssl=... SSL library to use (gnutls, nss, openssl, auto)
$ssl
+--externaljsonparser=0/1/auto Use External JSON parser $externaljsonparser
--target=... Cross compilation target same as host
@@ -398,6 +400,21 @@ else
fi
echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
+if [ "$externaljsonparser" = "auto" ]; then
+ if pkg-config --exists json-parser; then
+ externaljsonparser=1
+ else
+ externaljsonparser=0
+ fi
+fi
+echo "EXTERNAL_JSON_PARSER=$externaljsonparser" >> Makefile.settings
+if [ "$externaljsonparser" = "1" ]; then
+ echo "CFLAGS+=$(pkg-config --cflags json-parser)" >> Makefile.settings
+ echo "LDFLAGS_BITLBEE+=$(pkg-config --libs json-parser)" >> Makefile.settings
+ echo "LDFLAGS_CHECK+=$(pkg-config --libs json-parser)" >> Makefile.settings
+fi
+
+
detect_gnutls()
{
if $PKG_CONFIG --exists gnutls; then
@@ -979,6 +996,12 @@ else
echo ' systemd disabled.'
fi
+if [ "$externaljsonparser" = "1" ]; then
+ echo ' Using system JSON parser.'
+else
+ echo ' Using bundled JSON parser.'
+fi
+
echo ' Using event handler: '$events
echo ' Using SSL library: '$ssl
#echo ' Building with these storage backends: '$STORAGES
diff --git a/lib/Makefile b/lib/Makefile
index fc46aedc..ad95d9cb 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -12,7 +12,11 @@ _SRCDIR_ := $(_SRCDIR_)lib/
endif
# [SH] Program variables
-objects = arc.o base64.o canohost.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json.o json_util.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o ns_parse.o
+objects = arc.o base64.o canohost.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json_util.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o ns_parse.o
+
+ifneq ($(EXTERNAL_JSON_PARSER),1)
+objects += json.o
+endif
LFLAGS += -r
diff --git a/tests/Makefile b/tests/Makefile
index 76122a2f..2235bf1d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -20,7 +20,7 @@ test_objs = check.o check_util.o check_nick.o check_md5.o check_arc.o check_irc.
check: $(test_objs) $(addprefix ../, $(main_objs)) ../protocols/protocols.o ../lib/lib.o
@echo '*' Linking $@
- $(VERBOSE) $(CC) $(CFLAGS) -o $@ $^ $(LFLAGS) $(EFLAGS)
+ $(VERBOSE) $(CC) $(CFLAGS) -o $@ $^ $(LFLAGS) $(LDFLAGS_CHECK) $(EFLAGS)
%.o: $(_SRCDIR_)%.c
@echo '*' Compiling $<
--
2.35.1
|