# 
# 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 = \
	pki.h      \
	pkit.h     \
	nsspkit.h  \
	nsspki.h   \
	pkistore.h \
	pki3hack.h \
	pkitm.h    \
	pkim.h     \
	$(NULL)

MODULE = nss

CSRCS =		        \
	asymmkey.c      \
	certificate.c   \
	cryptocontext.c \
	symmkey.c       \
	trustdomain.c   \
	tdcache.c       \
	certdecode.c    \
	pkistore.c      \
	pkibase.c       \
	pki3hack.c      \
	$(NULL)

#DEFINES = -DDEBUG_CACHE

REQUIRES = nspr

LIBRARY_NAME = nsspki
SHARED_LIBRARY = $(NULL)

# This part of the code, including all sub-dirs, can be optimized for size
export ALLOW_OPT_CODE_SIZE = 1
