On Fri, 2020-10-23 at 20:56 -0700, Eric Biggers wrote: > 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 All done in v2. 'make clean' already removes the .pc file, as it's part of the DEFAULT_TARGETS list. -- Kind regards, Luca Boccassi