tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

client.mk (2508B)


      1 # -*- makefile -*-
      2 # vim:set ts=8 sw=8 sts=8 noet:
      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/.
      6 
      7 # Defines main targets for driving the Firefox build system.
      8 #
      9 # This make file should not be invoked directly. Instead, use
     10 # `mach` (likely `mach build`) for invoking the build system.
     11 #
     12 # Options:
     13 #   MOZ_OBJDIR           - Destination object directory
     14 #   MOZ_MAKE_FLAGS       - Flags to pass to $(MAKE)
     15 #
     16 #######################################################################
     17 
     18 ifndef MACH
     19 $(error client.mk must be used via `mach`. Try running \
     20 `./mach $(firstword $(MAKECMDGOALS) $(.DEFAULT_GOAL))`)
     21 endif
     22 
     23 ### Load mozconfig options
     24 include $(OBJDIR)/.mozconfig-client-mk
     25 
     26 ### Set up make flags
     27 ifdef MOZ_AUTOMATION
     28 ifeq (4.0,$(firstword $(sort 4.0 $(MAKE_VERSION))))
     29 MOZ_MAKE_FLAGS += --output-sync=line
     30 endif
     31 endif
     32 
     33 MOZ_MAKE = $(MAKE) $(MOZ_MAKE_FLAGS) -C $(OBJDIR)
     34 
     35 ifdef MOZBUILD_MANAGE_SCCACHE_DAEMON
     36 # In automation, manage an sccache daemon. The starting of the server
     37 # needs to be in a make file so sccache inherits the jobserver.
     38 SCCACHE_STOP = $(MOZBUILD_MANAGE_SCCACHE_DAEMON) --stop-server
     39 
     40 # When a command fails, make is going to abort, but we need to terminate the
     41 # sccache server, otherwise it will prevent make itself from terminating
     42 # because it would still be running and holding a jobserver token.
     43 # However, we also need to preserve the command's exit code, thus the
     44 # gymnastics.
     45 SCCACHE_STOP_ON_FAILURE = || (x=$$?; $(SCCACHE_STOP) || true; exit $$x)
     46 endif
     47 
     48 # The default rule is build
     49 build:
     50 ifdef MOZBUILD_MANAGE_SCCACHE_DAEMON
     51 # Terminate any sccache server that might still be around.
     52 -$(SCCACHE_STOP) > /dev/null 2>&1
     53 # Start a new server, ensuring it gets the jobserver file descriptors
     54 # from make (but don't use the + prefix when make -n is used, so that
     55 # the command doesn't run in that case)
     56 mkdir -p $(UPLOAD_PATH)
     57 $(if $(findstring n,$(filter-out --%, $(MAKEFLAGS))),,+)env SCCACHE_LOG=sccache=debug SCCACHE_ERROR_LOG=$(UPLOAD_PATH)/sccache.log SCCACHE_LOG_MILLIS=true $(MOZBUILD_MANAGE_SCCACHE_DAEMON) --start-server
     58 endif
     59 ### Build it
     60 +$(MOZ_MAKE) $(SCCACHE_STOP_ON_FAILURE)
     61 ifdef MOZ_AUTOMATION
     62 +$(MOZ_MAKE) automation/build $(SCCACHE_STOP_ON_FAILURE)
     63 endif
     64 ifdef MOZBUILD_MANAGE_SCCACHE_DAEMON
     65 # Terminate sccache server. This prints sccache stats.
     66 -$(SCCACHE_STOP)
     67 endif
     68 
     69 .PHONY: \
     70    build