# 
# 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 = \
	secmod.h \
	secmodt.h \
	secpkcs5.h \
	pk11func.h \
	pk11pub.h \
	pk11priv.h \
	pk11sdr.h \
	pk11pqg.h \
	$(NULL)

PRIVATE_EXPORTS = \
	secmodi.h \
	dev3hack.h \
	$(NULL)

MODULE = nss

CSRCS = \
	dev3hack.c \
	pk11akey.c \
	pk11auth.c \
	pk11cert.c \
	pk11cxt.c \
	pk11err.c  \
	pk11kea.c \
	pk11list.c \
	pk11load.c \
	pk11mech.c \
	pk11merge.c \
	pk11nobj.c \
	pk11obj.c \
	pk11pars.c \
	pk11pbe.c \
	pk11pk12.c \
	pk11pqg.c \
	pk11sdr.c \
	pk11skey.c \
	pk11slot.c \
	pk11util.c \
	$(NULL)

LIBRARY_NAME = pk11wrap

LIBRARY_VERSION = 3
SOFTOKEN_LIBRARY_VERSION = 3
DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" \
        -DSHLIB_VERSION=\"$(LIBRARY_VERSION)\" \
        -DSOFTOKEN_SHLIB_VERSION=\"$(SOFTOKEN_LIBRARY_VERSION)\"

# only add module debugging in opt builds if DEBUG_PKCS11 is set
ifdef DEBUG_PKCS11
  DEFINES += -DDEBUG_MODULE -DFORCE_PR_LOG
endif

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