| From 1b3c48499abb000d708abe5f05413c1f4155e086 Mon Sep 17 00:00:00 2001 |
| From: Jory Pratt <anarchy@gentoo.org> |
| Date: Mon, 8 Jun 2020 12:22:29 -0500 |
| Subject: [PATCH] Add pkg-config and nss-config for Gentoo |
| |
| --- |
| Makefile | 15 +---- |
| config/Makefile | 40 ++++++++++++ |
| config/nss-config.in | 145 +++++++++++++++++++++++++++++++++++++++++++ |
| config/nss.pc.in | 12 ++++ |
| manifest.mn | 2 +- |
| 5 files changed, 200 insertions(+), 14 deletions(-) |
| create mode 100644 config/Makefile |
| create mode 100644 config/nss-config.in |
| create mode 100644 config/nss.pc.in |
| |
| diff --git a/Makefile b/Makefile |
| index eb4ed1a..f979d90 100644 |
| --- a/Makefile |
| +++ b/Makefile |
| @@ -4,6 +4,8 @@ |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| +default: nss_build_all |
| + |
| ####################################################################### |
| # (1) Include initial platform-independent assignments (MANDATORY). # |
| ####################################################################### |
| @@ -48,12 +50,9 @@ include $(CORE_DEPTH)/coreconf/rules.mk |
| ####################################################################### |
| |
| nss_build_all: |
| - $(MAKE) build_nspr |
| $(MAKE) all |
| - $(MAKE) latest |
| |
| nss_clean_all: |
| - $(MAKE) clobber_nspr |
| $(MAKE) clobber |
| |
| NSPR_CONFIG_STATUS = $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/config.status |
| @@ -138,16 +137,6 @@ $(NSPR_CONFIG_STATUS): $(NSPR_CONFIGURE) |
| --prefix='$(NSS_GYP_PREFIX)' |
| endif |
| |
| -build_nspr: $(NSPR_CONFIG_STATUS) |
| - $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) |
| - $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/pr/tests |
| - |
| -install_nspr: build_nspr |
| - $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) install |
| - |
| -clobber_nspr: $(NSPR_CONFIG_STATUS) |
| - $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber |
| - |
| build_docs: |
| $(MAKE) -C $(CORE_DEPTH)/doc |
| |
| diff --git a/config/Makefile b/config/Makefile |
| new file mode 100644 |
| index 0000000..aaf1991 |
| --- /dev/null |
| +++ b/config/Makefile |
| @@ -0,0 +1,40 @@ |
| +CORE_DEPTH = .. |
| +DEPTH = .. |
| + |
| +include $(CORE_DEPTH)/coreconf/config.mk |
| + |
| +NSS_MAJOR_VERSION = $(shell grep -F "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}') |
| +NSS_MINOR_VERSION = $(shell grep -F "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}') |
| +NSS_PATCH_VERSION = $(shell grep -F "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}') |
| +PREFIX = /usr |
| + |
| +all: export libs |
| + |
| +export: |
| + # Create the nss.pc file |
| + mkdir -p $(DIST)/lib/pkgconfig |
| + sed -e "s,@prefix@,$(PREFIX)," \ |
| + -e "s,@exec_prefix@,\$${prefix}," \ |
| + -e "s,@libdir@,\$${prefix}/lib64," \ |
| + -e "s,@includedir@,\$${prefix}/include/nss," \ |
| + -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \ |
| + -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ |
| + -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ |
| + nss.pc.in > nss.pc |
| + chmod 0644 nss.pc |
| + ln -sf ../../../../config/nss.pc $(DIST)/lib/pkgconfig |
| + |
| + # Create the nss-config script |
| + mkdir -p $(DIST)/bin |
| + sed -e "s,@prefix@,$(PREFIX)," \ |
| + -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \ |
| + -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ |
| + -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ |
| + nss-config.in > nss-config |
| + chmod 0755 nss-config |
| + ln -sf ../../../config/nss-config $(DIST)/bin |
| + |
| +libs: |
| + |
| +dummy: all export libs |
| + |
| diff --git a/config/nss-config.in b/config/nss-config.in |
| new file mode 100644 |
| index 0000000..3a957b8 |
| --- /dev/null |
| +++ b/config/nss-config.in |
| @@ -0,0 +1,145 @@ |
| +#!/bin/sh |
| + |
| +prefix=@prefix@ |
| + |
| +major_version=@NSS_MAJOR_VERSION@ |
| +minor_version=@NSS_MINOR_VERSION@ |
| +patch_version=@NSS_PATCH_VERSION@ |
| + |
| +usage() |
| +{ |
| + cat <<EOF |
| +Usage: nss-config [OPTIONS] [LIBRARIES] |
| +Options: |
| + [--prefix[=DIR]] |
| + [--exec-prefix[=DIR]] |
| + [--includedir[=DIR]] |
| + [--libdir[=DIR]] |
| + [--version] |
| + [--libs] |
| + [--cflags] |
| +Dynamic Libraries: |
| + nss |
| + ssl |
| + smime |
| + nssutil |
| +EOF |
| + exit $1 |
| +} |
| + |
| +if test $# -eq 0; then |
| + usage 1 1>&2 |
| +fi |
| + |
| +lib_ssl=yes |
| +lib_smime=yes |
| +lib_nss=yes |
| +lib_nssutil=yes |
| + |
| +while test $# -gt 0; do |
| + case "$1" in |
| + -*=*) optarg=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;; |
| + *) optarg= ;; |
| + esac |
| + |
| + case $1 in |
| + --prefix=*) |
| + prefix=${optarg} |
| + ;; |
| + --prefix) |
| + echo_prefix=yes |
| + ;; |
| + --exec-prefix=*) |
| + exec_prefix=${optarg} |
| + ;; |
| + --exec-prefix) |
| + echo_exec_prefix=yes |
| + ;; |
| + --includedir=*) |
| + includedir=${optarg} |
| + ;; |
| + --includedir) |
| + echo_includedir=yes |
| + ;; |
| + --libdir=*) |
| + libdir=${optarg} |
| + ;; |
| + --libdir) |
| + echo_libdir=yes |
| + ;; |
| + --version) |
| + echo ${major_version}.${minor_version}.${patch_version} |
| + ;; |
| + --cflags) |
| + echo_cflags=yes |
| + ;; |
| + --libs) |
| + echo_libs=yes |
| + ;; |
| + ssl) |
| + lib_ssl=yes |
| + ;; |
| + smime) |
| + lib_smime=yes |
| + ;; |
| + nss) |
| + lib_nss=yes |
| + ;; |
| + nssutil) |
| + lib_nssutil=yes |
| + ;; |
| + *) |
| + usage 1 1>&2 |
| + ;; |
| + esac |
| + shift |
| +done |
| + |
| +# Set variables that may be dependent upon other variables |
| +if test -z "${exec_prefix}"; then |
| + exec_prefix=$(pkg-config --variable=exec_prefix nss) |
| +fi |
| +if test -z "${includedir}"; then |
| + includedir=$(pkg-config --variable=includedir nss) |
| +fi |
| +if test -z "${libdir}"; then |
| + libdir=$(pkg-config --variable=libdir nss) |
| +fi |
| + |
| +if test "${echo_prefix}" = "yes"; then |
| + echo ${prefix} |
| +fi |
| + |
| +if test "${echo_exec_prefix}" = "yes"; then |
| + echo ${exec_prefix} |
| +fi |
| + |
| +if test "${echo_includedir}" = "yes"; then |
| + echo ${includedir} |
| +fi |
| + |
| +if test "${echo_libdir}" = "yes"; then |
| + echo ${libdir} |
| +fi |
| + |
| +if test "${echo_cflags}" = "yes"; then |
| + echo -I${includedir} |
| +fi |
| + |
| +if test "${echo_libs}" = "yes"; then |
| + libdirs="" |
| + if test -n "${lib_ssl}"; then |
| + libdirs="${libdirs} -lssl${major_version}" |
| + fi |
| + if test -n "${lib_smime}"; then |
| + libdirs="${libdirs} -lsmime${major_version}" |
| + fi |
| + if test -n "${lib_nss}"; then |
| + libdirs="${libdirs} -lnss${major_version}" |
| + fi |
| + if test -n "${lib_nssutil}"; then |
| + libdirs="${libdirs} -lnssutil${major_version}" |
| + fi |
| + echo ${libdirs} |
| +fi |
| + |
| diff --git a/config/nss.pc.in b/config/nss.pc.in |
| new file mode 100644 |
| index 0000000..03f1e39 |
| --- /dev/null |
| +++ b/config/nss.pc.in |
| @@ -0,0 +1,12 @@ |
| +prefix=@prefix@ |
| +exec_prefix=@exec_prefix@ |
| +libdir=@libdir@ |
| +includedir=@includedir@ |
| + |
| +Name: NSS |
| +Description: Network Security Services |
| +Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@ |
| +Requires: nspr >= 4.25 |
| +Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3 |
| +Cflags: -I${includedir} |
| + |
| diff --git a/manifest.mn b/manifest.mn |
| index dada8ab..72dc9b3 100644 |
| --- a/manifest.mn |
| +++ b/manifest.mn |
| @@ -10,7 +10,7 @@ IMPORTS = nspr20/v4.8 \ |
| |
| RELEASE = nss |
| |
| -DIRS = coreconf lib cmd cpputil gtests |
| +DIRS = coreconf lib cmd cpputil config |
| |
| lib: coreconf |
| cmd: lib |
| -- |
| 2.26.2 |
| |