On Mon, 17 Dec 2018 at 16:40, Eli Schwartz <eschwa...@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.