# 
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Netscape security libraries.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1994-2000
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Dr Vipul Gupta <vipul.gupta@sun.com> and
#   Douglas Stebila <douglas@stebila.ca>, Sun Microsystems Laboratories
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

# NOTE: any ifdefs in this file must be defined on the gmake command line
# (if anywhere).  They cannot come from Makefile or config.mk 

CORE_DEPTH = ../../..

MODULE = nss

LIBRARY_NAME = freebl
LIBRARY_VERSION = 3

ifdef FREEBL_CHILD_BUILD
  ifdef USE_ABI32_INT32
    LIBRARY_NAME = freebl_32int
  endif
  ifdef USE_ABI32_INT64
    LIBRARY_NAME = freebl_32int64
  endif
  ifdef USE_ABI32_FPU
    LIBRARY_NAME = freebl_32fpu
  endif
  ifdef USE_ABI64_INT
    LIBRARY_NAME = freebl_64int
  endif
  ifdef USE_ABI64_FPU
    LIBRARY_NAME = freebl_64fpu
  endif
endif

# if the library name contains _, we prefix the version with _
ifneq (,$(findstring _,$(LIBRARY_NAME)))
  LIBRARY_VERSION := _$(LIBRARY_VERSION)
endif

ifdef FREEBL_NO_DEPEND
LOWHASH_SRCS = stubs.c nsslowhash.c
LOWHASH_EXPORTS = nsslowhash.h
MAPFILE_SOURCE = freebl_hash.def
else
MAPFILE_SOURCE = freebl.def
endif
MAPFILE = $(OBJDIR)/$(LIBRARY_NAME).def

SOFTOKEN_LIBRARY_VERSION = 3

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

REQUIRES = 

EXPORTS = \
	blapit.h \
	shsign.h \
	ecl-exp.h \
	hasht.h \
	sechash.h \
	$(LOWHASH_EXPORTS) \
	$(NULL)

PRIVATE_EXPORTS = \
	alghmac.h \
	blapi.h \
	secmpi.h \
	secrng.h \
	ec.h \
	ecl.h \
	ecl-curve.h \
	$(NULL)

MPI_HDRS = mpi-config.h mpi.h mpi-priv.h mplogic.h mpprime.h logtab.h mp_gf2m.h
MPI_SRCS = mpprime.c mpmontg.c mplogic.c mpi.c mp_gf2m.c


ECL_HDRS = ecl-exp.h ecl.h ec2.h ecp.h ecl-priv.h
ifdef NSS_ENABLE_ECC
ECL_SRCS = ecl.c ecl_curve.c ecl_mult.c ecl_gf.c \
	ecp_aff.c ecp_jac.c ecp_mont.c \
	ec_naf.c ecp_jm.c
ifdef NSS_ECC_MORE_THAN_SUITE_B
ECL_SRCS += ec2_aff.c ec2_mont.c ec2_proj.c \
	ec2_163.c ec2_193.c ec2_233.c \
	ecp_192.c ecp_224.c ecp_256.c ecp_384.c ecp_521.c 
endif
else
ECL_SRCS = $(NULL)
endif
SHA_SRCS = sha_fast.c
MPCPU_SRCS = mpcpucache.c

CSRCS = \
	freeblver.c \
	ldvector.c \
	prng_fips1861.c \
	sysrand.c \
	$(SHA_SRCS) \
	md2.c \
	md5.c \
	sha512.c \
	alghmac.c \
	rawhash.c \
	alg2268.c \
	arcfour.c \
	arcfive.c \
	desblapi.c \
	des.c \
	rijndael.c \
	aeskeywrap.c \
	camellia.c \
	dh.c \
	ec.c \
	pqg.c \
	dsa.c \
	rsa.c \
	shvfy.c \
	tlsprfalg.c \
	seed.c \
	$(MPI_SRCS) \
	$(MPCPU_SRCS) \
	$(ECL_SRCS) \
	$(LOWHASH_SRCS) \
	$(NULL)

ALL_CSRCS := $(CSRCS)

ALL_HDRS =  \
	alghmac.h \
	blapi.h \
	blapit.h \
	des.h \
	ec.h \
	loader.h \
	rijndael.h \
	camellia.h \
	secmpi.h \
	sha_fast.h \
	sha256.h \
	shsign.h \
	vis_proto.h \
	seed.h \
	$(NULL)


ifdef AES_GEN_TBL
DEFINES += -DRIJNDAEL_GENERATE_TABLES
else 
ifdef AES_GEN_TBL_M
DEFINES += -DRIJNDAEL_GENERATE_TABLES_MACRO
else
ifdef AES_GEN_VAL
DEFINES += -DRIJNDAEL_GENERATE_VALUES
else
ifdef AES_GEN_VAL_M
DEFINES += -DRIJNDAEL_GENERATE_VALUES_MACRO
else
DEFINES += -DRIJNDAEL_INCLUDE_TABLES
endif
endif
endif
endif
