From 1b3c48499abb000d708abe5f05413c1f4155e086 Mon Sep 17 00:00:00 2001 From: Jory Pratt Date: Mon, 8 Jun 2020 12:22:29 -0500 Subject: [PATCH] Add pkg-config and nss-config for Gentoo Modifications to use with Guix and the latest NSS source checkout code: use 'install' instead of 'ln -sf' and adapt the relative file names. --- 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 + install 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 + install 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 <&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