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

PKIX_DEPTH = ../..
PLAT_DEPTH = $(PKIX_DEPTH)/..
CORE_DEPTH = $(PKIX_DEPTH)/../../..

# MODULE public and private header directories are implicitly REQUIRED.
MODULE = nss

CSRCS = test_procparams.c \
	test_trustanchor.c \
	test_valparams.c \
	test_resourcelimits.c \
	$(NULL)

LIBRARY_NAME = pkixtoolparams
SHARED_LIBRARY = $(NULL)

SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR)

NO_MD_RELEASE = 1
