From 9bcba7fb28055550961b134e517b695a8cd05b2a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 3 Aug 2020 17:43:19 -0400 Subject: [PATCH] libpjproject.pc: Move external libraries to Libs.private. This is done so users of a shared pjproject library do not get link directives (provided via pkg-config file of pjproject) to link against pjproject's own library dependencies. Static linking with pjproject is preserved by moving the external libraries link directives to the Libs.private field, which is specifically intended for this purpose, via for example: $ pkg-config --static --libs libpjproject * build.mak.in (PJ_INSTALL_LDFLAGS_PRIVATE): New variable. (PJ_INSTALL_LDFLAGS): Filter out PJ_INSTALL_LDFLAGS_PRIVATE entries. * libpjproject.pc.in (Libs.private): New field. * Makefile: Substitute PJ_INSTALL_LDFLAGS_PRIVATE as the value for the Libs.private field. --- Makefile | 5 +++-- build.mak.in | 3 ++- libpjproject.pc.in | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 3fd5cab40..d67badfa4 100644 --- a/Makefile +++ b/Makefile @@ -54,14 +54,14 @@ doc: exit 1; \ fi; \ done - + LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \ pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \ pjnath/lib/libpjnath-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \ - pjsip/lib/libpjsip-$(TARGET_NAME).a \ + pjsip/lib/libpjsip-$(TARGET_NAME).a \ pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \ pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \ pjsip/lib/libpjsua-$(TARGET_NAME).a @@ -133,6 +133,7 @@ install: sed -e "s!@LIBDIR@!$(libdir)!" | \ sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \ sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \ + sed -e "s!@PJ_INSTALL_LDFLAGS_PRIVATE@!$(PJ_INSTALL_LDFLAGS_PRIVATE)!" | \ sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc uninstall: diff --git a/build.mak.in b/build.mak.in index a9078bb25..1a18a8513 100644 --- a/build.mak.in +++ b/build.mak.in @@ -318,4 +318,5 @@ export PJ_INSTALL_DIR := @prefix@ export PJ_INSTALL_INC_DIR := @includedir@ export PJ_INSTALL_LIB_DIR := @libdir@ export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@ -export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDXXLIBS) +export PJ_INSTALL_LDFLAGS_PRIVATE := $(APP_THIRD_PARTY_LIBS) $(APP_THIRD_PARTY_EXT) @LIBS@ +export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(filter-out $(PJ_INSTALL_LDFLAGS_PRIVATE),$(APP_LDXXLIBS)) diff --git a/libpjproject.pc.in b/libpjproject.pc.in index 30ea05c07..4372d5016 100644 --- a/libpjproject.pc.in +++ b/libpjproject.pc.in @@ -10,4 +10,5 @@ Description: Multimedia communication library URL: http://www.pjsip.org Version: @PJ_VERSION@ Libs: @PJ_INSTALL_LDFLAGS@ +Libs.private: @PJ_INSTALL_LDFLAGS_PRIVATE@ Cflags: @PJ_INSTALL_CFLAGS@ -- 2.27.0 avail'>...Ludovic Courtès 2022-09-14home: shepherd: Add daemonize? option to configuration....Andrew Tropin 2022-09-12home: shepherd: Add shepherd/init.scm to XDG_CONFIG_HOME....Andrew Tropin 2022-04-21home: shepherd: Redirect input port to /dev/null....Ludovic Courtès 2022-04-21home: shepherd: "shepherd.conf" returns one value....Ludovic Courtès 2022-04-12home: shepherd: Prevent launching the second instance....Andrew Tropin 2022-04-07home: shepherd: Default to version 0.9....Ludovic Courtès 2022-03-18home: services: Export record type accessors....Ludovic Courtès 2021-10-09Move (gnu home-services) to (gnu home services)....Oleg Pykhalov 2021-10-08gnu: Move (gnu home-services) to (gnu home services)....Oleg Pykhalov