nsprpub/config/config.mk

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 #! gmake
     2 # 
     3 # This Source Code Form is subject to the terms of the Mozilla Public
     4 # License, v. 2.0. If a copy of the MPL was not distributed with this
     5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
     7 # Configuration information for building in the NSPR source module
     9 # Define an include-at-most-once-flag
    10 NSPR_CONFIG_MK	= 1
    12 #
    13 # The variable definitions in this file are inputs to NSPR's
    14 # build system.  This file, if present, is included at the
    15 # beginning of config.mk.
    16 #
    17 # For example:
    18 #
    19 # MOZ_OPTIMIZE=1
    20 # USE_PTHREADS=1
    21 # NS_USE_GCC=
    22 #
    23 ifndef topsrcdir
    24 topsrcdir=$(MOD_DEPTH)
    25 endif
    27 ifndef srcdir
    28 srcdir=.
    29 endif
    31 NFSPWD		= $(MOD_DEPTH)/config/nfspwd
    33 CFLAGS		= $(VISIBILITY_FLAGS) $(CC_ONLY_FLAGS) $(OPTIMIZER)\
    34 		  $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) $(XCFLAGS)
    35 CCCFLAGS	= $(VISIBILITY_FLAGS) $(CCC_ONLY_FLAGS) $(OPTIMIZER)\
    36 		  $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) $(XCFLAGS)
    37 # For purify
    38 NOMD_CFLAGS	= $(CC_ONLY_FLAGS) $(OPTIMIZER) $(NOMD_OS_CFLAGS)\
    39 		  $(XP_DEFINE) $(DEFINES) $(INCLUDES) $(XCFLAGS)
    40 NOMD_CCFLAGS	= $(CCC_ONLY_FLAGS) $(OPTIMIZER) $(NOMD_OS_CFLAGS)\
    41 		  $(XP_DEFINE) $(DEFINES) $(INCLUDES) $(XCFLAGS)
    43 LDFLAGS		= $(OS_LDFLAGS)
    45 # Enable profile-guided optimization
    46 ifndef NO_PROFILE_GUIDED_OPTIMIZE
    47 ifdef MOZ_PROFILE_GENERATE
    48 CFLAGS += $(PROFILE_GEN_CFLAGS)
    49 LDFLAGS += $(PROFILE_GEN_LDFLAGS)
    50 DLLFLAGS += $(PROFILE_GEN_LDFLAGS)
    51 ifeq (WINNT,$(OS_ARCH))
    52 AR_FLAGS += -LTCG
    53 endif
    54 endif # MOZ_PROFILE_GENERATE
    56 ifdef MOZ_PROFILE_USE
    57 CFLAGS += $(PROFILE_USE_CFLAGS)
    58 LDFLAGS += $(PROFILE_USE_LDFLAGS)
    59 DLLFLAGS += $(PROFILE_USE_LDFLAGS)
    60 ifeq (WINNT,$(OS_ARCH))
    61 AR_FLAGS += -LTCG
    62 endif
    63 endif # MOZ_PROFILE_USE
    64 endif # NO_PROFILE_GUIDED_OPTIMIZE
    66 define MAKE_OBJDIR
    67 if test ! -d $(@D); then rm -rf $(@D); $(NSINSTALL) -D $(@D); fi
    68 endef
    70 LINK_DLL	= $(LD) $(OS_DLLFLAGS) $(DLLFLAGS)
    72 ifeq ($(OS_ARCH),Darwin)
    73 PWD := $(shell pwd)
    74 endif
    76 ifeq (,$(CROSS_COMPILE)$(filter-out WINNT OS2, $(OS_ARCH)))
    77 INSTALL		= $(NSINSTALL)
    78 else
    79 ifeq ($(NSDISTMODE),copy)
    80 # copy files, but preserve source mtime
    81 INSTALL		= $(NSINSTALL) -t
    82 else
    83 ifeq ($(NSDISTMODE),absolute_symlink)
    84 # install using absolute symbolic links
    85 ifeq ($(OS_ARCH),Darwin)
    86 INSTALL		= $(NSINSTALL) -L $(PWD)
    87 else
    88 INSTALL		= $(NSINSTALL) -L `$(NFSPWD)`
    89 endif
    90 else
    91 # install using relative symbolic links
    92 INSTALL		= $(NSINSTALL) -R
    93 endif
    94 endif
    95 endif # (WINNT || OS2) && !CROSS_COMPILE
    97 DEPENDENCIES	= $(OBJDIR)/.md
    99 ifdef BUILD_DEBUG_GC
   100 DEFINES		+= -DDEBUG_GC
   101 endif
   103 GARBAGE		+= $(DEPENDENCIES) core $(wildcard core.[0-9]*)
   105 DIST_GARBAGE += Makefile
   107 ####################################################################
   108 #
   109 # The NSPR-specific configuration
   110 #
   111 ####################################################################
   113 DEFINES += -DFORCE_PR_LOG
   115 ifeq ($(_PR_NO_CLOCK_TIMER),1)
   116 DEFINES += -D_PR_NO_CLOCK_TIMER
   117 endif
   119 ifeq ($(USE_PTHREADS), 1)
   120 DEFINES += -D_PR_PTHREADS -UHAVE_CVAR_BUILT_ON_SEM
   121 endif
   123 ifeq ($(PTHREADS_USER), 1)
   124 DEFINES += -DPTHREADS_USER -UHAVE_CVAR_BUILT_ON_SEM
   125 endif
   127 ifeq ($(USE_IPV6),1)
   128 DEFINES += -D_PR_INET6
   129 endif
   131 ifeq ($(MOZ_UNICODE),1)
   132 DEFINES += -DMOZ_UNICODE
   133 endif
   135 ####################################################################
   136 #
   137 # Configuration for the release process
   138 #
   139 ####################################################################
   141 MDIST = /m/dist
   142 ifeq ($(OS_ARCH),WINNT)
   143 MDIST = //helium/dist
   144 MDIST_DOS = $(subst /,\\,$(MDIST))
   145 endif
   147 # RELEASE_DIR is ns/dist/<module name>
   149 RELEASE_DIR = $(MOD_DEPTH)/dist/release/$(MOD_NAME)
   151 RELEASE_INCLUDE_DIR = $(RELEASE_DIR)/$(BUILD_NUMBER)/$(OBJDIR_NAME)/include
   152 RELEASE_BIN_DIR = $(RELEASE_DIR)/$(BUILD_NUMBER)/$(OBJDIR_NAME)/bin
   153 RELEASE_LIB_DIR = $(RELEASE_DIR)/$(BUILD_NUMBER)/$(OBJDIR_NAME)/lib
   155 # autoconf.mk sets OBJ_SUFFIX to an error to avoid use before including
   156 # this file
   157 OBJ_SUFFIX := $(_OBJ_SUFFIX)
   159 # PGO builds with GCC build objects with instrumentation in a first pass,
   160 # then objects optimized, without instrumentation, in a second pass. If
   161 # we overwrite the ojects from the first pass with those from the second,
   162 # we end up not getting instrumentation data for better optimization on
   163 # incremental builds. As a consequence, we use a different object suffix
   164 # for the first pass.
   165 ifdef MOZ_PROFILE_GENERATE
   166 ifdef NS_USE_GCC
   167 OBJ_SUFFIX := i_o
   168 endif
   169 endif

mercurial