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