# 
# 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 = ../..

EXPORTS = \
	base64.h \
	ciferfam.h \
	eccutil.h \
	hasht.h \
	nssb64.h \
	nssb64t.h \
	nsslocks.h \
	nssilock.h \
	nssilckt.h \
	nssrwlk.h \
	nssrwlkt.h \
	nssutil.h \
	pkcs11.h \
	pkcs11f.h \
	pkcs11p.h \
	pkcs11t.h \
	pkcs11n.h \
	pkcs11u.h \
	pkcs1sig.h \
	portreg.h \
	secasn1.h \
	secasn1t.h \
	seccomon.h \
	secder.h \
	secdert.h \
	secdig.h \
	secdigt.h \
	secitem.h \
	secoid.h \
	secoidt.h \
	secport.h \
	secerr.h \
	utilmodt.h \
	utilrename.h \
	utilpars.h \
	utilparst.h \
	pkcs11uri.h \
	$(NULL)

PRIVATE_EXPORTS = \
        verref.h \
	templates.c \
	$(NULL)

CSRCS = \
	quickder.c \
	secdig.c \
	derdec.c \
	derenc.c \
	dersubr.c \
	dertime.c \
	errstrs.c \
	nssb64d.c \
	nssb64e.c \
	nssrwlk.c \
	nssilock.c \
	oidstring.c \
	pkcs1sig.c \
	portreg.c \
	secalgid.c \
	secasn1d.c \
	secasn1e.c \
	secasn1u.c \
	secitem.c \
	secload.c \
	secoid.c \
	sectime.c \
	secport.c \
	templates.c \
	utf8.c \
	utilmod.c \
	utilpars.c \
	pkcs11uri.c \
	$(NULL)

MODULE = nss

# don't duplicate module name in REQUIRES
MAPFILE = $(OBJDIR)/nssutil.def

LIBRARY_NAME = nssutil
LIBRARY_VERSION = 3

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