On Mon, 17 Dec 2018 at 16:40, Eli Schwartz <eschwartz@archlinux.org> wrote:
If you take a closer look at the manual page for pkg-config, it actually says the exact opposite, defining "--libs" as "linker flags". In fact, there are even three dedicated *subvariants* to get, depending on your highly customized needs,
--libs-only-L --libs-only-l --libs-only-other
This is clearly a case of libs-only-other.
Ah ha! I didn't know about these. --libs-only-other seems to be missing from https://linux.die.net/man/1/pkg-config However according to https://bz.apache.org/bugzilla/show_bug.cgi?id=46168 they're available since 2003 ------------------------------ Does this sound like a reasonable proposal then?: The .pc should contain: ``` V=5.3 R=${V}.5 prefix=/usr INSTALL_BIN=${prefix}/bin INSTALL_INC=${prefix}/include INSTALL_LIB=${prefix}/lib INSTALL_MAN=${prefix}/man/man1 INSTALL_LMOD=${prefix}/share/lua/${V} INSTALL_CMOD=${prefix}/lib/lua/${V} LIB=lua exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: Lua Description: An Extensible Extension Language Version: ${R} Requires: Cflags: -I${includedir} Libs: -L${libdir} -l${LIB} Libs.private: -lm -Wl,-E ``` If you're compiling a application that dynamically embeds lua then you'd use: CFLAGS="$(pkgconf lua --cflags)" LDFLAGS="$(pkgconf lua --libs)" If you're compiling a application that statically embeds lua then you'd use: CFLAGS="$(pkgconf lua --cflags --static)" LDFLAGS="$(pkgconf lua --libs --static)" If you're compiling a lua library dynamically then your makefile would use CFLAGS+="$(shell pkgconf lua --cflags)" Your .so file should be installed to $(DESTDIR)/$(shell pkgconf lua --variable=INSTALL_CMOD) If you're compiling a lua library statically then your makefile would use CFLAGS+="$(shell pkgconf lua --cflags --static)" Your .so file should be installed to $(DESTDIR)/$(libdir) With no use of LDFLAGS for the last two cases. Now to come up with a migration story: - existing distributions do not currently supply -Wl,--export-dynamic in their pkg-config files - existing projects do not know to use pkg-config with lua in this manner. If upstream started shipping an adjusted pkg-config file, best case it would only be available for the 5.4 release.