Re: [fsverity-utils PATCH 2/2] Generate and install libfsverity.pc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [linux Cryptography]     [Asterisk App Development]     [PJ SIP]     [Gnu Gatekeeper]     [IETF Sipping]     [Info Cyrus]     [ALSA User]     [Fedora Linux Users]     [Linux SCTP]     [DCCP]     [Gimp]     [Yosemite News]     [Deep Creek Hot Springs]     [Yosemite Campsites]     [ISDN Cause Codes]

  Powered by Linux