Since makepkg exports a public library of functions, other projects may wish to use these functions. Highlights include parseopts or our messaging functions. Install a pkg-config file in order to let downstream users detect where they can source the libmakepkg functionality. This is useful e.g. to gracefully handle the case where a thirdparty project is configured and installed into a different datarootdir from pacman, but still wants to use the installed pacman's version of libmakepkg. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> --- v2: fix make distcheck by adding the new file to autotools' magic variables for tracking additional files. scripts/.gitignore | 1 + scripts/Makefile.am | 8 ++++++-- scripts/libmakepkg.pc.in | 6 ++++++ scripts/meson.build | 6 ++++++ 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 scripts/libmakepkg.pc.in diff --git a/scripts/.gitignore b/scripts/.gitignore index b8bb1f83..541fd18d 100644 --- a/scripts/.gitignore +++ b/scripts/.gitignore @@ -1,3 +1,4 @@ +libmakepkg.pc makepkg makepkg-template pacman-db-upgrade diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 4e5876af..00e0c038 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -5,6 +5,9 @@ AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = \ SUBDIRS = po +pkgconfigdir = $(datarootdir)/pkgconfig +pkgconfig_DATA = libmakepkg.pc + bin_SCRIPTS = \ $(OURSCRIPTS) \ makepkg-template \ @@ -19,6 +22,7 @@ OURSCRIPTS = \ repo-add EXTRA_DIST = \ + libmakepkg.pc.in \ makepkg.sh.in \ makepkg-template.pl.in \ pacman-db-upgrade.sh.in \ @@ -146,7 +150,7 @@ COMPLETION_DIST = \ $(addsuffix .in, $(COMPLETION_IN)) # Files that should be removed, but which Automake does not know. -MOSTLYCLEANFILES = $(bin_SCRIPTS) $(LIBMAKEPKG_IN) $(COMPLETION_IN) +MOSTLYCLEANFILES = $(bin_SCRIPTS) $(LIBMAKEPKG_IN) $(COMPLETION_IN) libmakepkg.pc clean-local: $(AM_V_at)$(RM) -r .lib @@ -196,7 +200,7 @@ $(LIBMAKEPKG_IN): %: %.in Makefile $(AM_V_at)chmod a-w $@ @$(BASH_SHELL) -O extglob -n $@ -$(COMPLETION_IN): %: %.in Makefile +$(COMPLETION_IN) libmakepkg.pc: %: %.in Makefile $(AM_V_at)$(RM) $@ $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(edit) $(srcdir)/$@.in >$@ diff --git a/scripts/libmakepkg.pc.in b/scripts/libmakepkg.pc.in new file mode 100644 index 00000000..05e9566a --- /dev/null +++ b/scripts/libmakepkg.pc.in @@ -0,0 +1,6 @@ +libmakepkgdir=@libmakepkgdir@ + +Name: libmakepkg +Description: Arch Linux package build utility +URL: https://www.archlinux.org/pacman/ +Version: @PACKAGE_VERSION@ diff --git a/scripts/meson.build b/scripts/meson.build index db442973..7d533f35 100644 --- a/scripts/meson.build +++ b/scripts/meson.build @@ -78,6 +78,12 @@ endforeach subdir('libmakepkg') +configure_file( + configuration : { 'libmakepkgdir': LIBMAKEPKGDIR, 'PACKAGE_VERSION': PACKAGE_VERSION }, + input : 'libmakepkg.pc.in', + output : '@BASENAME@', + install_dir : join_paths(DATAROOTDIR, 'pkgconfig')) + custom_target( 'bash_completion', command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], -- 2.21.0