On Thu, Oct 22, 2020 at 06:59:34PM +0100, luca.boccassi@xxxxxxxxx wrote: > From: Luca Boccassi <luca.boccassi@xxxxxxxxxxxxx> > > pkg-config is commonly used by libraries to convey information about > compiler flags and dependencies. > As packagers, we heavily rely on it so that all our tools do the right > thing by default regardless of the environment. > > Signed-off-by: Luca Boccassi <luca.boccassi@xxxxxxxxxxxxx> > --- > Makefile | 13 ++++++++++++- > lib/libfsverity.pc.in | 10 ++++++++++ > scripts/do-release.sh | 2 ++ > 3 files changed, 24 insertions(+), 1 deletion(-) > create mode 100644 lib/libfsverity.pc.in > > diff --git a/Makefile b/Makefile > index 122c0a2..07b828f 100644 > --- a/Makefile > +++ b/Makefile > @@ -119,6 +119,15 @@ libfsverity.so:libfsverity.so.$(SOVERSION) > > DEFAULT_TARGETS += libfsverity.so > > +# Create the pkg-config file > +libfsverity.pc: The dependency on lib/libfsverity.pc.in should be listed here. Also, this depends on $(PREFIX), $(LIBDIR), and $(INCDIR). Can you also add those and $(BINDIR) to the string that gets written to .build-config, then add a dependency on .build-config? > + sed -e "s|@PREFIX@|$(PREFIX)|" \ > + -e "s|@LIBDIR@|$(LIBDIR)|" \ > + -e "s|@INCDIR@|$(INCDIR)|" \ > + lib/libfsverity.pc.in > $@ > + This looks messy in the build output: $ make CC lib/compute_digest.o CC lib/hash_algs.o CC lib/sign_digest.o CC lib/utils.o AR libfsverity.a CC lib/compute_digest.shlib.o CC lib/hash_algs.shlib.o CC lib/sign_digest.shlib.o CC lib/utils.shlib.o CCLD libfsverity.so.0 LN libfsverity.so sed -e "s|@PREFIX@|/usr/local|" \ -e "s|@LIBDIR@|/usr/local/lib|" \ -e "s|@INCDIR@|/usr/local/include|" \ lib/libfsverity.pc.in > libfsverity.pc CC programs/utils.o CC programs/cmd_enable.o CC programs/cmd_measure.o CC programs/cmd_sign.o CC programs/fsverity.o CCLD fsverity Below QUIET_LN, can you add: QUIET_GEN = @echo ' GEN ' $@; Then prefix the sed command with $(QUIET_GEN) so the output looks nice. Also, $< can be used instead of lib/libfsverity.pc.in, once the dependency is added. > +DEFAULT_TARGETS += libfsverity.pc > + > ############################################################################## > > #### Programs > @@ -190,11 +199,12 @@ check:fsverity test_programs > @echo "All tests passed!" > > install:all > - install -d $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCDIR) $(DESTDIR)$(BINDIR) > + install -d $(DESTDIR)$(LIBDIR)/pkgconfig $(DESTDIR)$(INCDIR) $(DESTDIR)$(BINDIR) > install -m755 fsverity $(DESTDIR)$(BINDIR) > install -m644 libfsverity.a $(DESTDIR)$(LIBDIR) > install -m755 libfsverity.so.$(SOVERSION) $(DESTDIR)$(LIBDIR) > ln -sf libfsverity.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)/libfsverity.so > + install -m644 libfsverity.pc $(DESTDIR)$(LIBDIR)/pkgconfig > install -m644 include/libfsverity.h $(DESTDIR)$(INCDIR) > > uninstall: > @@ -202,6 +212,7 @@ uninstall: > rm -f $(DESTDIR)$(LIBDIR)/libfsverity.a > rm -f $(DESTDIR)$(LIBDIR)/libfsverity.so.$(SOVERSION) > rm -f $(DESTDIR)$(LIBDIR)/libfsverity.so > + rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/libfsverity.pc > rm -f $(DESTDIR)$(INCDIR)/libfsverity.h 'make clean' should remove libfsverity.pc as well. Also, libfsverity.pc should be listed in .gitignore. - Eric