Blame nss/coreconf/SunOS5.mk

Packit 40b132
#
Packit 40b132
# This Source Code Form is subject to the terms of the Mozilla Public
Packit 40b132
# License, v. 2.0. If a copy of the MPL was not distributed with this
Packit 40b132
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Packit 40b132
Packit 40b132
include $(CORE_DEPTH)/coreconf/UNIX.mk
Packit 40b132
Packit 40b132
# Sun's WorkShop defines v8, v8plus and v9 architectures.
Packit 40b132
# gcc on Solaris defines v8 and v9 "cpus".  
Packit 40b132
# gcc's v9 is equivalent to Workshop's v8plus.
Packit 40b132
# gcc's -m64 is equivalent to Workshop's v9
Packit 40b132
Packit 40b132
ifeq ($(USE_64), 1)
Packit 40b132
  ifdef NS_USE_GCC
Packit 40b132
      ARCHFLAG=-m64
Packit 40b132
  else
Packit 40b132
      ifeq ($(OS_TEST),i86pc)
Packit 40b132
        ARCHFLAG=-xarch=amd64
Packit 40b132
      else
Packit 40b132
        ARCHFLAG=-xarch=v9
Packit 40b132
      endif
Packit 40b132
  endif
Packit 40b132
else
Packit 40b132
  ifneq ($(OS_TEST),i86pc)
Packit 40b132
    ifdef NS_USE_GCC
Packit 40b132
      ARCHFLAG=-mcpu=v9
Packit 40b132
    else
Packit 40b132
      ARCHFLAG=-xarch=v8plus
Packit 40b132
    endif
Packit 40b132
  endif
Packit 40b132
endif
Packit 40b132
Packit 40b132
DEFAULT_COMPILER = cc
Packit 40b132
Packit 40b132
ifdef NS_USE_GCC
Packit 40b132
	CC         = gcc
Packit 40b132
	OS_CFLAGS += -Wall -Wno-format -Werror-implicit-function-declaration -Wno-switch
Packit 40b132
	CCC        = g++
Packit 40b132
	CCC       += -Wall -Wno-format
Packit 40b132
	ASFLAGS	  += -x assembler-with-cpp
Packit 40b132
	OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
Packit 40b132
	ifdef USE_MDUPDATE
Packit 40b132
		OS_CFLAGS += -MDupdate $(DEPENDENCIES)
Packit 40b132
	endif
Packit 40b132
	ifdef BUILD_OPT
Packit 40b132
	    OPTIMIZER = -O2
Packit 40b132
	    # Enable this for accurate dtrace profiling
Packit 40b132
	    # OPTIMIZER += -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
Packit 40b132
	endif
Packit 40b132
else
Packit 40b132
	CC         = cc
Packit 40b132
	CCC        = CC
Packit 40b132
	ASFLAGS   += -Wa,-P
Packit 40b132
	OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
Packit 40b132
	ifndef BUILD_OPT
Packit 40b132
		OS_CFLAGS  += -xs
Packit 40b132
	else
Packit 40b132
		OPTIMIZER = -xO4
Packit 40b132
	endif
Packit 40b132
	ifdef USE_TCOV
Packit 40b132
		CC += -xprofile=tcov
Packit 40b132
		CCC += -xprofile=tcov
Packit 40b132
	endif
Packit 40b132
endif
Packit 40b132
Packit 40b132
RANLIB      = echo
Packit 40b132
CPU_ARCH    = sparc
Packit 40b132
OS_DEFINES += -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS -D_REENTRANT
Packit 40b132
Packit 40b132
ifeq ($(OS_TEST),i86pc)
Packit 40b132
ifeq ($(USE_64),1)
Packit 40b132
    CPU_ARCH		= x86_64
Packit 40b132
else
Packit 40b132
    CPU_ARCH		= x86
Packit 40b132
    OS_DEFINES		+= -Di386
Packit 40b132
endif
Packit 40b132
endif
Packit 40b132
Packit 40b132
# Purify doesn't like -MDupdate
Packit 40b132
NOMD_OS_CFLAGS += $(DSO_CFLAGS) $(OS_DEFINES) $(SOL_CFLAGS)
Packit 40b132
Packit 40b132
MKSHLIB  = $(CC) $(DSO_LDOPTS) $(RPATH)
Packit 40b132
ifdef NS_USE_GCC
Packit 40b132
ifeq (GNU,$(findstring GNU,$(shell `$(CC) -print-prog-name=ld` -v 2>&1)))
Packit 40b132
	GCC_USE_GNU_LD = 1
Packit 40b132
endif
Packit 40b132
endif
Packit 40b132
ifdef MAPFILE
Packit 40b132
ifdef NS_USE_GCC
Packit 40b132
ifdef GCC_USE_GNU_LD
Packit 40b132
    MKSHLIB += -Wl,--version-script,$(MAPFILE)
Packit 40b132
else
Packit 40b132
    MKSHLIB += -Wl,-M,$(MAPFILE)
Packit 40b132
endif
Packit 40b132
else
Packit 40b132
    MKSHLIB += -M $(MAPFILE)
Packit 40b132
endif
Packit 40b132
endif
Packit 40b132
PROCESS_MAP_FILE = grep -v ';-' $< | \
Packit 40b132
         sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
Packit 40b132
Packit 40b132
# ld options:
Packit 40b132
# -G: produce a shared object
Packit 40b132
# -z defs: no unresolved symbols allowed
Packit 40b132
ifdef NS_USE_GCC
Packit 40b132
ifeq ($(USE_64), 1)
Packit 40b132
	DSO_LDOPTS += -m64
Packit 40b132
endif
Packit 40b132
	DSO_LDOPTS += -shared -h $(notdir $@)
Packit 40b132
else
Packit 40b132
ifeq ($(USE_64), 1)
Packit 40b132
	ifeq ($(OS_TEST),i86pc)
Packit 40b132
	    DSO_LDOPTS +=-xarch=amd64
Packit 40b132
	else
Packit 40b132
	    DSO_LDOPTS +=-xarch=v9
Packit 40b132
	endif
Packit 40b132
endif
Packit 40b132
	DSO_LDOPTS += -G -h $(notdir $@)
Packit 40b132
endif
Packit 40b132
DSO_LDOPTS += -z combreloc -z defs -z ignore
Packit 40b132
Packit 40b132
# -KPIC generates position independent code for use in shared libraries.
Packit 40b132
# (Similarly for -fPIC in case of gcc.)
Packit 40b132
ifdef NS_USE_GCC
Packit 40b132
	DSO_CFLAGS += -fPIC
Packit 40b132
else
Packit 40b132
	DSO_CFLAGS += -KPIC
Packit 40b132
endif
Packit 40b132
Packit 40b132
NOSUCHFILE   = /solaris-rm-f-sucks
Packit 40b132
Packit 40b132
ifeq ($(BUILD_SUN_PKG), 1)
Packit 40b132
# The -R '$ORIGIN' linker option instructs this library to search for its
Packit 40b132
# dependencies in the same directory where it resides.
Packit 40b132
ifeq ($(USE_64), 1)
Packit 40b132
RPATH = -R '$$ORIGIN:/usr/lib/mps/secv1/64:/usr/lib/mps/64'
Packit 40b132
else
Packit 40b132
RPATH = -R '$$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps'
Packit 40b132
endif
Packit 40b132
else
Packit 40b132
RPATH = -R '$$ORIGIN'
Packit 40b132
endif
Packit 40b132
Packit 40b132
OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc