# 
# This Source Code Form is subject to the terms of the Mozilla Public
# 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/.
CORE_DEPTH = ../../../..

PRIVATE_EXPORTS = \
	pkix_pl_basicconstraints.h \
	pkix_pl_cert.h \
	pkix_pl_certpolicyinfo.h \
	pkix_pl_certpolicymap.h \
	pkix_pl_certpolicyqualifier.h \
	pkix_pl_crl.h \
        pkix_pl_crldp.h \
	pkix_pl_crlentry.h \
	pkix_pl_date.h \
	pkix_pl_generalname.h \
	pkix_pl_infoaccess.h \
	pkix_pl_nameconstraints.h \
	pkix_pl_ocsprequest.h \
	pkix_pl_ocspresponse.h \
	pkix_pl_publickey.h \
	pkix_pl_x500name.h \
	pkix_pl_ocspcertid.h \
	$(NULL)

MODULE = nss

CSRCS = \
	pkix_pl_basicconstraints.c \
	pkix_pl_cert.c \
	pkix_pl_certpolicyinfo.c \
	pkix_pl_certpolicymap.c \
	pkix_pl_certpolicyqualifier.c \
	pkix_pl_crl.c \
        pkix_pl_crldp.c \
	pkix_pl_crlentry.c \
	pkix_pl_date.c \
	pkix_pl_generalname.c \
	pkix_pl_infoaccess.c \
	pkix_pl_nameconstraints.c \
	pkix_pl_ocsprequest.c \
	pkix_pl_ocspresponse.c \
	pkix_pl_publickey.c \
	pkix_pl_x500name.c \
	pkix_pl_ocspcertid.c \
	$(NULL)

LIBRARY_NAME = pkixpki
SHARED_LIBRARY = $(NULL)
