2008-06-06 05:40:11 -07:00
|
|
|
#
|
|
|
|
# ***** 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):
|
|
|
|
#
|
|
|
|
# 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 *****
|
|
|
|
|
|
|
|
include $(CORE_DEPTH)/coreconf/UNIX.mk
|
|
|
|
|
|
|
|
#
|
|
|
|
# The default implementation strategy for Linux is now pthreads
|
|
|
|
#
|
|
|
|
USE_PTHREADS = 1
|
|
|
|
|
|
|
|
ifeq ($(USE_PTHREADS),1)
|
|
|
|
IMPL_STRATEGY = _PTH
|
|
|
|
endif
|
|
|
|
|
|
|
|
CC = gcc
|
|
|
|
CCC = g++
|
|
|
|
RANLIB = ranlib
|
|
|
|
|
|
|
|
DEFAULT_COMPILER = gcc
|
|
|
|
|
|
|
|
ifeq ($(OS_TEST),ppc64)
|
|
|
|
CPU_ARCH = ppc
|
|
|
|
ifeq ($(USE_64),1)
|
|
|
|
ARCHFLAG = -m64
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifeq ($(OS_TEST),alpha)
|
2010-02-07 03:54:28 -08:00
|
|
|
OS_REL_CFLAGS = -D_ALPHA_
|
2008-06-06 05:40:11 -07:00
|
|
|
CPU_ARCH = alpha
|
|
|
|
else
|
|
|
|
ifeq ($(OS_TEST),x86_64)
|
|
|
|
ifeq ($(USE_64),1)
|
|
|
|
CPU_ARCH = x86_64
|
|
|
|
else
|
2010-02-07 03:54:28 -08:00
|
|
|
OS_REL_CFLAGS = -Di386
|
2008-06-06 05:40:11 -07:00
|
|
|
CPU_ARCH = x86
|
|
|
|
ARCHFLAG = -m32
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifeq ($(OS_TEST),sparc64)
|
|
|
|
CPU_ARCH = sparc
|
|
|
|
else
|
|
|
|
ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
|
|
|
|
CPU_ARCH = arm
|
|
|
|
else
|
2009-07-28 17:01:39 -07:00
|
|
|
ifeq (,$(filter-out parisc%,$(OS_TEST)))
|
2008-06-06 05:40:11 -07:00
|
|
|
CPU_ARCH = hppa
|
|
|
|
else
|
2008-08-14 21:12:54 -07:00
|
|
|
ifeq (,$(filter-out i%86,$(OS_TEST)))
|
2010-02-07 03:54:28 -08:00
|
|
|
OS_REL_CFLAGS = -Di386
|
2008-06-06 05:40:11 -07:00
|
|
|
CPU_ARCH = x86
|
2008-08-14 21:12:54 -07:00
|
|
|
else
|
2009-07-28 17:01:39 -07:00
|
|
|
ifeq ($(OS_TEST),sh4a)
|
|
|
|
CPU_ARCH = sh4
|
|
|
|
else
|
|
|
|
# $(OS_TEST) == m68k, ppc, ia64, sparc, s390, s390x, mips, sh3, sh4
|
2008-08-14 21:12:54 -07:00
|
|
|
CPU_ARCH = $(OS_TEST)
|
|
|
|
endif
|
2008-06-06 05:40:11 -07:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
LIBC_TAG = _glibc
|
|
|
|
|
|
|
|
ifeq ($(OS_RELEASE),2.0)
|
|
|
|
OS_REL_CFLAGS += -DLINUX2_0
|
2009-07-28 17:01:39 -07:00
|
|
|
MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
|
2008-06-06 05:40:11 -07:00
|
|
|
ifdef MAPFILE
|
|
|
|
MKSHLIB += -Wl,--version-script,$(MAPFILE)
|
|
|
|
endif
|
|
|
|
PROCESS_MAP_FILE = grep -v ';-' $< | \
|
|
|
|
sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef BUILD_OPT
|
|
|
|
ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
|
|
|
|
OPTIMIZER = -Os
|
|
|
|
else
|
|
|
|
OPTIMIZER = -O2
|
|
|
|
endif
|
2009-08-19 06:59:06 -07:00
|
|
|
ifdef MOZ_DEBUG_SYMBOLS
|
2010-08-02 13:49:18 -07:00
|
|
|
ifdef MOZ_DEBUG_FLAGS
|
|
|
|
OPTIMIZER += $(MOZ_DEBUG_FLAGS)
|
|
|
|
else
|
|
|
|
OPTIMIZER += -gdwarf-2
|
|
|
|
endif
|
2008-06-06 05:40:11 -07:00
|
|
|
endif
|
2009-08-19 06:59:06 -07:00
|
|
|
endif
|
|
|
|
|
2008-06-06 05:40:11 -07:00
|
|
|
|
|
|
|
ifeq ($(USE_PTHREADS),1)
|
|
|
|
OS_PTHREAD = -lpthread
|
|
|
|
endif
|
|
|
|
|
2010-02-07 03:54:28 -08:00
|
|
|
# See bug 537829, in particular comment 23.
|
|
|
|
# Place -ansi and *_SOURCE before $(DSO_CFLAGS) so DSO_CFLAGS can override
|
|
|
|
# -ansi on platforms like Android where the system headers are C99 and do
|
|
|
|
# not build with -ansi.
|
|
|
|
STANDARDS_CFLAGS = -ansi -D_POSIX_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE
|
|
|
|
OS_CFLAGS = $(STANDARDS_CFLAGS) $(DSO_CFLAGS) $(OS_REL_CFLAGS) $(ARCHFLAG) -Wall -Werror-implicit-function-declaration -Wno-switch -pipe -DLINUX -Dlinux -DHAVE_STRERROR
|
2008-06-06 05:40:11 -07:00
|
|
|
OS_LIBS = $(OS_PTHREAD) -ldl -lc
|
|
|
|
|
|
|
|
ifdef USE_PTHREADS
|
|
|
|
DEFINES += -D_REENTRANT
|
|
|
|
endif
|
|
|
|
|
|
|
|
ARCH = linux
|
|
|
|
|
|
|
|
DSO_CFLAGS = -fPIC
|
2009-08-19 06:59:06 -07:00
|
|
|
DSO_LDOPTS = -shared $(ARCHFLAG)
|
|
|
|
# The linker on Red Hat Linux 7.2 and RHEL 2.1 (GNU ld version 2.11.90.0.8)
|
|
|
|
# incorrectly reports undefined references in the libraries we link with, so
|
|
|
|
# we don't use -z defs there.
|
|
|
|
ZDEFS_FLAG = -Wl,-z,defs
|
|
|
|
DSO_LDOPTS += $(if $(findstring 2.11.90.0.8,$(shell ld -v)),,$(ZDEFS_FLAG))
|
2008-06-06 05:40:11 -07:00
|
|
|
LDFLAGS += $(ARCHFLAG)
|
|
|
|
|
2010-08-12 14:12:05 -07:00
|
|
|
# On Maemo, we need to use the -rpath-link flag for even the standard system
|
|
|
|
# library directories.
|
|
|
|
ifdef _SBOX_DIR
|
|
|
|
LDFLAGS += -Wl,-rpath-link,/usr/lib:/lib
|
|
|
|
endif
|
|
|
|
|
2008-06-06 05:40:11 -07:00
|
|
|
# INCLUDES += -I/usr/include -Y/usr/include/linux
|
|
|
|
G++INCLUDES = -I/usr/include/g++
|
|
|
|
|
|
|
|
#
|
2009-07-28 17:01:39 -07:00
|
|
|
# Always set CPU_TAG on Linux, WINCE.
|
2008-06-06 05:40:11 -07:00
|
|
|
#
|
|
|
|
CPU_TAG = _$(CPU_ARCH)
|
2008-10-22 17:38:29 -07:00
|
|
|
|
2010-07-18 22:45:52 -07:00
|
|
|
#
|
|
|
|
# On Linux 2.6 or later, build libfreebl3.so with no NSPR and libnssutil3.so
|
|
|
|
# dependencies by default. Set FREEBL_NO_DEPEND to 0 in the environment to
|
|
|
|
# override this.
|
|
|
|
#
|
|
|
|
ifeq (2.6,$(firstword $(sort 2.6 $(OS_RELEASE))))
|
|
|
|
ifndef FREEBL_NO_DEPEND
|
|
|
|
FREEBL_NO_DEPEND = 1
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2008-10-22 17:38:29 -07:00
|
|
|
USE_SYSTEM_ZLIB = 1
|
|
|
|
ZLIB_LIBS = -lz
|
2009-07-28 17:01:39 -07:00
|
|
|
|
|
|
|
# The -rpath '$$ORIGIN' linker option instructs this library to search for its
|
|
|
|
# dependencies in the same directory where it resides.
|
|
|
|
ifeq ($(BUILD_SUN_PKG), 1)
|
|
|
|
ifeq ($(USE_64), 1)
|
|
|
|
RPATH = -Wl,-rpath,'$$ORIGIN:/opt/sun/private/lib64:/opt/sun/private/lib'
|
|
|
|
else
|
|
|
|
RPATH = -Wl,-rpath,'$$ORIGIN:/opt/sun/private/lib'
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
Bug 673382: Update NSS to NSS_3_12_11_BETA1, which includes the fixes for
Bug 661609, Bug 650276 (code not used by Mozilla), Bug 602509, Bug 655411,
Bug 655850, Bug 671711, Bug 617565, Bug 668001, Bug 346583, Bug 661061.
2011-07-27 09:07:32 -07:00
|
|
|
OS_REL_CFLAGS += -DLINUX2_1
|
|
|
|
MKSHLIB = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
|
|
|
|
|
|
|
|
ifdef MAPFILE
|
|
|
|
MKSHLIB += -Wl,--version-script,$(MAPFILE)
|
|
|
|
endif
|
|
|
|
PROCESS_MAP_FILE = grep -v ';-' $< | \
|
|
|
|
sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
|
|
|
|
|
|
|
|
ifeq ($(OS_RELEASE),2.4)
|
2011-08-19 08:27:10 -07:00
|
|
|
DEFINES += -DNO_FORK_CHECK
|
Bug 673382: Update NSS to NSS_3_12_11_BETA1, which includes the fixes for
Bug 661609, Bug 650276 (code not used by Mozilla), Bug 602509, Bug 655411,
Bug 655850, Bug 671711, Bug 617565, Bug 668001, Bug 346583, Bug 661061.
2011-07-27 09:07:32 -07:00
|
|
|
endif
|