Build: Create liblzma.pc in a src/liblzma/Makefile.am.

Previously it was done in configure, but doing that goes
against the Autoconf manual. Autoconf requires that it is
possible to override e.g. prefix after running configure
and that doesn't work correctly if liblzma.pc is created
by configure.

A potential downside of this change is that now e.g.
libdir in liblzma.pc is a standalone string instead of
being defined via ${prefix}, so if one overrides prefix
when running pkg-config the libdir won't get the new value.
I don't know if this matters in practice.

Thanks to Vincent Torri.
This commit is contained in:
Lasse Collin 2013-09-09 20:37:03 +03:00
parent 1f35331332
commit 090c69dda5
2 changed files with 20 additions and 1 deletions

View File

@ -627,7 +627,6 @@ AC_CONFIG_FILES([
po/Makefile.in po/Makefile.in
lib/Makefile lib/Makefile
src/Makefile src/Makefile
src/liblzma/liblzma.pc
src/liblzma/Makefile src/liblzma/Makefile
src/liblzma/api/Makefile src/liblzma/api/Makefile
src/xz/Makefile src/xz/Makefile

View File

@ -88,3 +88,23 @@ endif
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = liblzma.pc pkgconfig_DATA = liblzma.pc
EXTRA_DIST += liblzma.pc.in EXTRA_DIST += liblzma.pc.in
pc_verbose = $(pc_verbose_@AM_V@)
pc_verbose_ = $(pc_verbose_@AM_DEFAULT_V@)
pc_verbose_0 = @echo " PC " $@;
liblzma.pc: $(srcdir)/liblzma.pc.in
$(AM_V_at)rm -f $@
$(pc_verbose)sed \
-e 's,@prefix[@],$(prefix),g' \
-e 's,@exec_prefix[@],$(exec_prefix),g' \
-e 's,@libdir[@],$(libdir),g' \
-e 's,@includedir[@],$(includedir),g' \
-e 's,@PACKAGE_URL[@],$(PACKAGE_URL),g' \
-e 's,@PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
-e 's,@PTHREAD_CFLAGS[@],$(PTHREAD_CFLAGS),g' \
-e 's,@LIBS[@],$(LIBS),g' \
< $< > $@ || { rm -f $@; exit 1; }
clean-local:
rm -f liblzma.pc