gecko-dev/security/coreconf/SunOS5.mk

195 строки
4.8 KiB
Makefile

#
# ***** 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
#
# Temporary define for the Client; to be removed when binary release is used
#
ifdef MOZILLA_CLIENT
LOCAL_THREADS_ONLY = 1
ifndef NS_USE_NATIVE
NS_USE_GCC = 1
endif
endif
# Sun's WorkShop defines v8, v8plus and v9 architectures.
# gcc on Solaris defines v8 and v9 "cpus".
# gcc's v9 is equivalent to Workshop's v8plus.
# gcc apparently has no equivalent to Workshop's v9
# We always use Sun's assembler and linker, which use Sun's naming convention.
ifeq ($(USE_64), 1)
ifdef NS_USE_GCC
ARCHFLAG=-m64
else
ifeq ($(OS_TEST),i86pc)
ARCHFLAG=-xarch=amd64
else
ARCHFLAG=-xarch=v9
endif
endif
else
ifneq ($(OS_TEST),i86pc)
ifdef NS_USE_GCC
ifdef USE_HYBRID
ARCHFLAG=-mcpu=v9 -Wa,-xarch=v8plus
else
ARCHFLAG=-mcpu=v8
endif
else
ifdef USE_HYBRID
ARCHFLAG=-xarch=v8plus
else
ARCHFLAG=-xarch=v8
endif
endif
endif
endif
#
# The default implementation strategy for Solaris is classic nspr.
#
ifeq ($(USE_PTHREADS),1)
IMPL_STRATEGY = _PTH
else
ifeq ($(LOCAL_THREADS_ONLY),1)
IMPL_STRATEGY = _LOCAL
endif
endif
#
# Temporary define for the Client; to be removed when binary release is used
#
ifdef MOZILLA_CLIENT
IMPL_STRATEGY =
endif
DEFAULT_COMPILER = cc
ifdef NS_USE_GCC
CC = gcc
OS_CFLAGS += -Wall -Wno-format
CCC = g++
CCC += -Wall -Wno-format
ASFLAGS += -x assembler-with-cpp
OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
ifdef USE_MDUPDATE
OS_CFLAGS += -MDupdate $(DEPENDENCIES)
endif
ifdef BUILD_OPT
OPTIMIZER = -O2
endif
else
CC = cc
CCC = CC
ASFLAGS += -Wa,-P
OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
ifndef BUILD_OPT
OS_CFLAGS += -xs
else
OPTIMIZER = -xO4
endif
endif
INCLUDES += -I/usr/dt/include -I/usr/openwin/include
RANLIB = echo
CPU_ARCH = sparc
OS_DEFINES += -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS
ifneq ($(LOCAL_THREADS_ONLY),1)
OS_DEFINES += -D_REENTRANT
endif
# Purify doesn't like -MDupdate
NOMD_OS_CFLAGS += $(DSO_CFLAGS) $(OS_DEFINES) $(SOL_CFLAGS)
MKSHLIB = $(CC) $(DSO_LDOPTS)
ifdef NS_USE_GCC
ifeq (GNU,$(findstring GNU,$(shell `$(CC) -print-prog-name=ld` -v 2>&1)))
GCC_USE_GNU_LD = 1
endif
endif
ifdef MAPFILE
ifdef NS_USE_GCC
ifdef GCC_USE_GNU_LD
MKSHLIB += -Wl,--version-script,$(MAPFILE)
else
MKSHLIB += -Wl,-M,$(MAPFILE)
endif
else
MKSHLIB += -M $(MAPFILE)
endif
endif
PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
# ld options:
# -G: produce a shared object
# -z defs: no unresolved symbols allowed
ifdef NS_USE_GCC
ifeq ($(USE_64), 1)
DSO_LDOPTS += -m64
endif
DSO_LDOPTS += -shared -h $(notdir $@)
else
ifeq ($(USE_64), 1)
ifeq ($(OS_TEST),i86pc)
DSO_LDOPTS +=-xarch=amd64
else
DSO_LDOPTS +=-xarch=v9
endif
endif
DSO_LDOPTS += -G -h $(notdir $@)
endif
# -KPIC generates position independent code for use in shared libraries.
# (Similarly for -fPIC in case of gcc.)
ifdef NS_USE_GCC
DSO_CFLAGS += -fPIC
else
DSO_CFLAGS += -KPIC
endif
NOSUCHFILE = /solaris-rm-f-sucks