From ac175bd33a21b7f357cffe37117dc5afa6d7c5fb Mon Sep 17 00:00:00 2001 From: Alex Richardson Date: Thu, 11 Aug 2022 23:17:52 +0100 Subject: [PATCH] Install working pkgconfig .pc files for compat libraries The default ones are install them to /usr/libdata/pkgconfig, and we can't use this path for compat libraries, so we use /usr/lib/pkgconfigi here. Test Plan: grep -rn libdir= ./usr/lib32/pkgconfig/*.pc MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D34939 --- Makefile.libcompat | 1 + etc/mtree/BSD.lib32.dist | 2 ++ lib/liblzma/Makefile | 5 +++-- lib/libmagic/Makefile | 6 +++--- lib/libusb/Makefile | 6 ++++++ lib/libusb/{libusb-0.1.pc => libusb-0.1.pc.in} | 5 +++-- lib/libusb/{libusb-1.0.pc => libusb-1.0.pc.in} | 5 +++-- lib/libusb/{libusb-2.0.pc => libusb-2.0.pc.in} | 5 +++-- lib/libz/Makefile | 6 +++--- lib/ncurses/tinfo/Makefile | 4 ++-- share/mk/bsd.compat.mk | 1 + share/mk/bsd.lib.mk | 2 +- 12 files changed, 31 insertions(+), 17 deletions(-) rename lib/libusb/{libusb-0.1.pc => libusb-0.1.pc.in} (74%) rename lib/libusb/{libusb-1.0.pc => libusb-1.0.pc.in} (74%) rename lib/libusb/{libusb-2.0.pc => libusb-2.0.pc.in} (74%) diff --git a/Makefile.libcompat b/Makefile.libcompat index a1f683c77a4..c8a71225f80 100644 --- a/Makefile.libcompat +++ b/Makefile.libcompat @@ -15,6 +15,7 @@ LIBCOMPATWMAKEENV+= \ SYSROOT=${WORLDTMP} \ LIBDIR=/usr/lib${libcompat} \ SHLIBDIR=/usr/lib${libcompat} \ + LIBDATADIR=/usr/lib${libcompat} \ DTRACE="${LIB$COMPATDTRACE:U${DTRACE}}" .if ${MK_META_MODE} != "no" # Don't rebuild build-tools targets during normal build. diff --git a/etc/mtree/BSD.lib32.dist b/etc/mtree/BSD.lib32.dist index ce7d4bdc07f..fb922224fc3 100644 --- a/etc/mtree/BSD.lib32.dist +++ b/etc/mtree/BSD.lib32.dist @@ -18,5 +18,7 @@ encoder .. .. + pkgconfig + .. .. .. diff --git a/lib/liblzma/Makefile b/lib/liblzma/Makefile index 4f38ef391e4..0bdcc6af5dd 100644 --- a/lib/liblzma/Makefile +++ b/lib/liblzma/Makefile @@ -159,8 +159,9 @@ PCFILES= liblzma.pc liblzma.pc: liblzma.pc.in sed -e 's,@prefix@,/usr,g ; \ s,@exec_prefix@,/usr,g ; \ - s,@libdir@,/usr/lib,g ; \ - s,@includedir@,/usr/include,g ; \ + s,@libdir@,${LIBDIR},g ; \ + s,@sharedlibdir@,${SHLIBDIR},g ; \ + s,@includedir@,${INCLUDEDIR},g ; \ s,@LIBS@,-pthread -lmd,g ; \ s,@PACKAGE_URL@,https://tukaani.org/xz/,g ; \ s,@PACKAGE_VERSION@,${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH},g ; \ diff --git a/lib/libmagic/Makefile b/lib/libmagic/Makefile index 5f967102fe0..3ddbf506eb8 100644 --- a/lib/libmagic/Makefile +++ b/lib/libmagic/Makefile @@ -42,9 +42,9 @@ PACKAGE_VERSION!= sed -n '/define.*PACKAGE_VERSION/{s,[^0-9.],,gp;q;}' ${.CURDIR libmagic.pc: libmagic.pc.in sed -e 's,@prefix@,/usr,g ; \ s,@exec_prefix@,$${prefix},g ; \ - s,@libdir@,$${exec_prefix}/lib,g ; \ - s,@sharedlibdir@,$${libdir},g ; \ - s,@includedir@,$${prefix}/include,g ; \ + s,@libdir@,${LIBDIR},g ; \ + s,@sharedlibdir@,${SHLIBDIR},g ; \ + s,@includedir@,${INCLUDEDIR},g ; \ s,@VERSION@,${PACKAGE_VERSION},g ; \ s,@LIBS@,,g ;' \ ${.ALLSRC} > ${.TARGET} diff --git a/lib/libusb/Makefile b/lib/libusb/Makefile index 3cb2fbd7a46..59389d74e17 100644 --- a/lib/libusb/Makefile +++ b/lib/libusb/Makefile @@ -35,6 +35,12 @@ SRCS+= libusb10_hotplug.c SRCS+= libusb10_io.c PCFILES= libusb-0.1.pc libusb-1.0.pc libusb-2.0.pc +.for pcfile in ${PCFILES} +${pcfile}: ${pcfile}.in + sed -e 's,@libdir@,${LIBDIR},g ; s,@sharedlibdir@,${SHLIBDIR},g ; \ + s,@includedir@,${INCLUDEDIR},g ;' ${.ALLSRC} > ${.TARGET} +.endfor +CLEANFILES+= ${PCFILES} # # Cross platform support diff --git a/lib/libusb/libusb-0.1.pc b/lib/libusb/libusb-0.1.pc.in similarity index 74% rename from lib/libusb/libusb-0.1.pc rename to lib/libusb/libusb-0.1.pc.in index afd7a996079..3082594415f 100644 --- a/lib/libusb/libusb-0.1.pc +++ b/lib/libusb/libusb-0.1.pc.in @@ -1,8 +1,9 @@ # $FreeBSD$ prefix=/usr exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include +libdir=@libdir@ +sharedlibdir=@sharedlibdir@ +includedir=@includedir@ Name: libusb-0.1 Description: Library that abstracts ways to access USB devices (v0.1) diff --git a/lib/libusb/libusb-1.0.pc b/lib/libusb/libusb-1.0.pc.in similarity index 74% rename from lib/libusb/libusb-1.0.pc rename to lib/libusb/libusb-1.0.pc.in index b31affadbed..3a687bed2f1 100644 --- a/lib/libusb/libusb-1.0.pc +++ b/lib/libusb/libusb-1.0.pc.in @@ -1,8 +1,9 @@ # $FreeBSD$ prefix=/usr exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include +libdir=@libdir@ +sharedlibdir=@sharedlibdir@ +includedir=@includedir@ Name: libusb-1.0 Description: Library that abstracts ways to access USB devices (v1.0) diff --git a/lib/libusb/libusb-2.0.pc b/lib/libusb/libusb-2.0.pc.in similarity index 74% rename from lib/libusb/libusb-2.0.pc rename to lib/libusb/libusb-2.0.pc.in index 34eabb88ab1..f35a9f7c651 100644 --- a/lib/libusb/libusb-2.0.pc +++ b/lib/libusb/libusb-2.0.pc.in @@ -1,8 +1,9 @@ # $FreeBSD$ prefix=/usr exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include +libdir=@libdir@ +sharedlibdir=@sharedlibdir@ +includedir=@includedir@ Name: libusb-2.0 Description: Library that abstracts ways to access USB devices (v2.0) diff --git a/lib/libz/Makefile b/lib/libz/Makefile index d6155b6955a..d8d46680564 100644 --- a/lib/libz/Makefile +++ b/lib/libz/Makefile @@ -63,9 +63,9 @@ ZLIB_VERSION!= sed -n '/define.*ZLIB_VERSION/{s,[^0-9.],,gp;q;}' ${ZLIBSRC}/zlib zlib.pc: zlib.pc.in sed -e 's,@prefix@,/usr,g ; \ s,@exec_prefix@,$${prefix},g ; \ - s,@libdir@,$${exec_prefix}/lib,g ; \ - s,@sharedlibdir@,$${libdir},g ; \ - s,@includedir@,$${prefix}/include,g ; \ + s,@libdir@,${LIBDIR},g ; \ + s,@sharedlibdir@,${SHLIBDIR},g ; \ + s,@includedir@,${INCLUDEDIR},g ; \ s,@VERSION@,${ZLIB_VERSION},g ;' \ ${.ALLSRC} > ${.TARGET} diff --git a/lib/ncurses/tinfo/Makefile b/lib/ncurses/tinfo/Makefile index d7b7343dfcd..fc4e4447562 100644 --- a/lib/ncurses/tinfo/Makefile +++ b/lib/ncurses/tinfo/Makefile @@ -1038,9 +1038,9 @@ gen-pkgconfig: gen-pkgconfig.in s,@PC_MODULE_SUFFIX@,,g ; \ s,@prefix@,/usr,g ; \ s,@exec_prefix@,$${prefix},g ; \ - s,@includedir@,/usr/include,g ; \ + s,@includedir@,${INCLUDEDIR},g ; \ s,@includesubdir@,,g ; \ - s,@libdir@,/usr/lib,g ; \ + s,@libdir@,${LIBDIR},g ; \ s,@RPATH_LIST@,$${libdir},g ; \ s,@PRIVATE_LIBS@,,g ; \ s,@USE_ARG_SUFFIX@,,g ; \ diff --git a/share/mk/bsd.compat.mk b/share/mk/bsd.compat.mk index db6c82e099d..f7b40ce4753 100644 --- a/share/mk/bsd.compat.mk +++ b/share/mk/bsd.compat.mk @@ -122,6 +122,7 @@ LIBCOMPATCFLAGS+= -B${WORLDTMP}/usr/lib${libcompat} .if defined(WANT_COMPAT) LIBDIR_BASE:= /usr/lib${libcompat} +LIBDATADIR:= /usr/lib${libcompat} _LIB_OBJTOP= ${LIBCOMPAT_OBJTOP} CFLAGS+= ${LIBCOMPATCFLAGS} LDFLAGS+= ${CFLAGS} ${LIBCOMPATLDFLAGS} diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 5e58e1d010a..c98dec9045b 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -470,7 +470,7 @@ installpcfiles: installpcfiles-${pcfile} installpcfiles-${pcfile}: ${pcfile} ${INSTALL} ${TAG_ARGS:D${TAG_ARGS},dev} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${_INSTALLFLAGS} \ - ${.ALLSRC} ${DESTDIR}${LIBDATADIR}/pkgconfig + ${.ALLSRC} ${DESTDIR}${LIBDATADIR}/pkgconfig/ .endfor .endif installpcfiles: .PHONY