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

MODULE = nss

LIBRARY_NAME = sqlite
LIBRARY_VERSION = 3
MAPFILE = $(OBJDIR)/sqlite.def
DEFINES += -DSQLITE_THREADSAFE=1

EXPORTS = \
	$(NULL)

PRIVATE_EXPORTS = \
	sqlite3.h \
	$(NULL)


CSRCS = \
	sqlite3.c \
	$(NULL)



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

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