diff options
author | triaxx <triaxx@pkgsrc.org> | 2020-10-10 14:17:02 +0000 |
---|---|---|
committer | triaxx <triaxx@pkgsrc.org> | 2020-10-10 14:17:02 +0000 |
commit | 68f9d5a5df81b4ba801b644474156d816b711147 (patch) | |
tree | b8fb4bc61dc03f61b7df759dc1f2ea68025b65cc | |
parent | 9d8bde3fb74ebb3407222020bae054d1c646c7d3 (diff) | |
download | pkgsrc-68f9d5a5df81b4ba801b644474156d816b711147.tar.gz |
libusb1: Fix PR pkg/54903
pkgsrc changes:
---------------
* Remove the pkgconfig file generation since the version of libusb1 cannot
be obtained by parsing LIBUSB_API_VERSION from libusb.h (e.g. FreeBSD
provides 0x01000102 for 1.0.13 and Arch provides 0x01000107 for 1.0.23).
* At least FreeBSD, Debian and Arch provides a libusb-1.0.pc file for
their native implementation. Link this file to ${BUILDLINK_DIR}.
* Add logic in mk/buildlink3 to find pkgconfig files in common pkgconfig
directories (for at least FreeBSD, Debian and Arch).
-rw-r--r-- | devel/libusb1/builtin.mk | 36 | ||||
-rw-r--r-- | mk/buildlink3/bsd.builtin.mk | 3 | ||||
-rw-r--r-- | mk/buildlink3/find-pkgconfig-files.mk | 83 |
3 files changed, 98 insertions, 24 deletions
diff --git a/devel/libusb1/builtin.mk b/devel/libusb1/builtin.mk index e77091bd984..da2e4ec6f47 100644 --- a/devel/libusb1/builtin.mk +++ b/devel/libusb1/builtin.mk @@ -1,15 +1,15 @@ -# $NetBSD: builtin.mk,v 1.4 2020/05/25 06:47:40 plunky Exp $ +# $NetBSD: builtin.mk,v 1.5 2020/10/10 14:17:02 triaxx Exp $ BUILTIN_PKG:= libusb1 -BUILTIN_FIND_HEADERS_VAR:= H_LIBUSB -BUILTIN_FIND_HEADERS.H_LIBUSB= libusb.h +BUILTIN_FIND_PKGCONFIG_FILES_VAR:= PC_LIBUSB1 +BUILTIN_FIND_PKGCONFIG_FILES.PC_LIBUSB1= libusb-1.0.pc .include "../../mk/buildlink3/bsd.builtin.mk" .if !defined(IS_BUILTIN.libusb1) IS_BUILTIN.libusb1= no -. if empty(H_LIBUSB:M__nonexistent__) +. if empty(PC_LIBUSB1:M__nonexistent__) IS_BUILTIN.libusb1= yes . endif .endif @@ -21,29 +21,19 @@ USE_BUILTIN.libusb1= ${IS_BUILTIN.libusb1} .if !empty(USE_BUILTIN.libusb1:M[yY][eE][sS]) . if !empty(USE_TOOLS:C/:.*//:Mpkg-config) -do-configure-pre-hook: override-libusb-pkgconfig +do-configure-pre-hook: link-libusb-pkgconfig -BLKDIR_PKGCFG= ${BUILDLINK_DIR}/lib/pkgconfig -LIBUSB_PKGCFGF= libusb-1.0.pc +BLKDIR_PKGCFG= ${BUILDLINK_DIR}/lib/pkgconfig +LIBUSB1_PKGCFGF= ${BUILTIN_FIND_PKGCONFIG_FILES.PC_LIBUSB1} -override-libusb-pkgconfig: override-message-libusb-pkgconfig -override-message-libusb-pkgconfig: - @${STEP_MSG} "Generating pkg-config file for builtin libusb1 package." +.PHONY: link-libusb-pkgconfig link-message-libusb-pkgconfig +link-libusb-pkgconfig: link-message-libusb-pkgconfig +link-message-libusb-pkgconfig: + @${STEP_MSG} "Linking ${PC_LIBUSB1} file into ${BUILDLINK_DIR}." -override-libusb-pkgconfig: +link-libusb-pkgconfig: ${RUN} \ ${MKDIR} ${BLKDIR_PKGCFG}; \ - { \ - ${ECHO} "prefix=${LIBUSB_PREFIX}"; \ - ${ECHO} "exec_prefix=\$${prefix}"; \ - ${ECHO} "libdir=\$${exec_prefix}/lib"; \ - ${ECHO} "includedir=\$${prefix}/include"; \ - ${ECHO} ""; \ - ${ECHO} "Name: libusb-1.0"; \ - ${ECHO} "Description: library for USB access"; \ - ${ECHO} "Version: ${BUILTIN_VERSION.libusb1}"; \ - ${ECHO} "Libs: ${COMPILER_RPATH_FLAG}\$${libdir} -L\$${libdir} -lusb"; \ - ${ECHO} "Cflags: -I\$${includedir}"; \ - } >> ${BLKDIR_PKGCFG}/${LIBUSB_PKGCFGF}; + ${LN} -sf ${PC_LIBUSB1} ${BLKDIR_PKGCFG}/${LIBUSB1_PKGCFGF} . endif .endif diff --git a/mk/buildlink3/bsd.builtin.mk b/mk/buildlink3/bsd.builtin.mk index 3d7687650f3..215e0ba5dd7 100644 --- a/mk/buildlink3/bsd.builtin.mk +++ b/mk/buildlink3/bsd.builtin.mk @@ -1,4 +1,4 @@ -# $NetBSD: bsd.builtin.mk,v 1.14 2018/08/22 20:48:36 maya Exp $ +# $NetBSD: bsd.builtin.mk,v 1.15 2020/10/10 14:17:03 triaxx Exp $ # # Copyright (c) 2004-2005 The NetBSD Foundation, Inc. # All rights reserved. @@ -166,3 +166,4 @@ _BUILTIN_PKGS+= ${_pkg_} .include "../../mk/buildlink3/find-libs.mk" .include "../../mk/buildlink3/find-headers.mk" .include "../../mk/buildlink3/find-files.mk" +.include "../../mk/buildlink3/find-pkgconfig-files.mk" diff --git a/mk/buildlink3/find-pkgconfig-files.mk b/mk/buildlink3/find-pkgconfig-files.mk new file mode 100644 index 00000000000..c84466a27df --- /dev/null +++ b/mk/buildlink3/find-pkgconfig-files.mk @@ -0,0 +1,83 @@ +# $NetBSD: find-pkgconfig-files.mk,v 1.1 2020/10/10 14:17:03 triaxx Exp $ +# +# Copyright (c) 2020 The NetBSD Foundation, Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# +# This is a "subroutine" that can be included to detect the presence of +# pkg-config files in the base system. +# +# The following variables must be defined before including this file: +# +# BUILTIN_FIND_PKGCONFIG_VAR is a list of variables to define. These +# variables take the value of the path to the file that is +# "found". +# +# BUILTIN_FIND_PKGCONFIG.<var> is the list of header files to find, in +# order, on the ${BUILTIN_PKGCONFIG_DIRS}. The variable <var> is set +# to the first path "found" on the filesystem. +# +# After including this file, the following variables are defined: +# +# <var> is the first of the header file listed in +# ${BUILTIN_FIND_PKGCONFIG.<var>} that is "found" in +# ${BUILTIN_PKGCONFIG_DIRS}, or else it is "__nonexistent__". +# +# An example use is: +# +# BUILTIN_FIND_PKGCONFIG_FILES_VAR:= LIB1 LIB2 +# +# BUILTIN_FIND_PKGCONFIG_FILES.LIB1= lib1.pc lib-1.0.pc + +# BUILTIN_FIND_PKGCONFIG_FILES.LIB2= lib2.pc lib-2.0.pc +# .include "../../mk/buildlink3/find-pkgconfig-files.mk" +# + +BUILTIN_PKGCONFIG_DIRS?= /usr/lib/pkgconfig \ + /usr/share/pkgconfig \ + /usr/libdata/pkgconfig \ + /usr/lib/x86_64-linux-gnu/pkgconfig \ + /usr/lib/aarch64-linux-gnu/pkgconfig \ + /usr/lib/arm-linux-gnueabi/pkgconfig \ + /usr/lib/arm-linux-gnueabihf/pkgconfig \ + /usr/lib/i386-linux-gnu/pkgconfig \ + /usr/lib/mips64el-linux-gnuabi64/pkgconfig \ + /usr/lib/mipsel-linux-gnu/pkgconfig \ + /usr/lib/powerpc64le-linux-gnu/pkgconfig \ + /usr/lib/s390x-linux-gnu/pkgconfig + +.for _var_ in ${BUILTIN_FIND_PKGCONFIG_FILES_VAR} +. if !defined(${_var_}) +${_var_}= __nonexistent__ +. for _file_ in ${BUILTIN_FIND_PKGCONFIG_FILES.${_var_}} +. for _dir_ in ${BUILTIN_PKGCONFIG_DIRS} +. if !empty(${_var_}:M__nonexistent__) && exists(${_dir_}/${_file_}) +${_var_}= ${_dir_}/${_file_} +. endif +. endfor +. endfor +. endif +MAKEVARS+= ${_var_} +.endfor |