~chromium-team/chromium-browser/artful-beta

« back to all changes in this revision

Viewing changes to debian/rules

  • Committer: Chad MILLER
  • Date: 2016-10-13 13:47:45 UTC
  • Revision ID: chad.miller@canonical.com-20161013134745-mvj8bxk2uhh3m0mv
* Move to using GN to build chromium.
  - debian/known_gn_gen_args
  - debian/rules
  patches
* debian/rules, lintians, installs, script: Move component libs out of
  libs/, to /usr/lib/chromium-browser/ only.
* debian/patches/do-not-use-bundled-clang: Use clang from path.
* debian/control: Express that binary packages could be on "any"
  architecture.
* Upstrem release of 54.0.2840.59:
  - CVE-2016-5181: Universal XSS in Blink.
  - CVE-2016-5182: Heap overflow in Blink.
  - CVE-2016-5183: Use after free in PDFium.
  - CVE-2016-5184: Use after free in PDFium.
  - CVE-2016-5185: Use after free in Blink.
  - CVE-2016-5187: URL spoofing.
  - CVE-2016-5188: UI spoofing.
  - CVE-2016-5192: Cross-origin bypass in Blink.
  - CVE-2016-5189: URL spoofing.
  - CVE-2016-5186: Out of bounds read in DevTools.
  - CVE-2016-5191: Universal XSS in Bookmarks.
  - CVE-2016-5190: Use after free in Internals.
  - CVE-2016-5193: Scheme bypass.
  - CVE-2016-5194: Various fixes from internal audits, fuzzing and other
    initiatives

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
BINARY_PACKAGE_COMPRESSION ?= xz
14
14
FFMPEG_DIR     := third_party/ffmpeg
15
15
FFMPEG_SRC_DIR := $(SRC_DIR)/$(FFMPEG_DIR)
16
 
NINJA          := ninja
17
16
 
18
17
ifneq (,$(findstring Ubuntu,$(DEBIAN_DIST)))
19
18
DISTRIBUTION=UBUNTU
31
30
GOOGLEAPI_CLIENTID_UBUNTU := 424119844901-tilod0e1nm0dt85e1evrdfp3cc3ec01d.apps.googleusercontent.com
32
31
GOOGLEAPI_CLIENTSECRET_UBUNTU := WCCejhqORuxKG272GAWxsPIU
33
32
 
34
 
gyp_params := --depth=$(CURDIR) --format=ninja
35
 
 
36
33
browser_defines :=
37
34
ffmpeg_defines :=
 
35
ffmpeg_std_defines :=
 
36
ffmpeg_extra_defines :=
38
37
defines :=
39
38
 
40
39
# enable verbose build messages
74
73
# See https://bugs.chromium.org/p/v8/issues/detail?id=3782
75
74
export CFLAGS+=-fno-delete-null-pointer-checks
76
75
 
77
 
# treat all warnings as errors
78
 
defines+=werror=
79
 
 
80
 
# build with gcc instead of clang
81
 
defines+=clang=0
82
 
defines+=clang_use_chrome_plugins=
83
 
 
84
76
# disabled features
85
 
defines+=use_ozone=0 \
86
 
         use_gconf=0 \
87
 
         use_sysroot=0 \
88
 
         use_allocator=none \
89
 
         linux_breakpad=0 \
90
 
         linux_use_libgps=0 \
91
 
         linux_use_gold_flags=0 \
92
 
         linux_use_bundled_gold=0 \
93
 
         linux_use_bundled_binutils=0 \
94
 
         remoting=0 \
95
 
         disable_nacl=1 \
96
 
         enable_google_now=0 \
97
 
         enable_remoting_host=0 \
98
 
         enable_prod_wallet_service=0 \
99
 
 
100
 
# enabled features
101
 
defines+=enable_hidpi=1 \
102
 
         enable_webrtc=1 \
103
 
         use_gio=1 \
104
 
         use_cups=1 \
105
 
         use_pulseaudio=1 \
106
 
         use_gnome_keyring=1 \
107
 
         linux_link_libpci=1 \
108
 
         linux_link_gsettings=1 \
109
 
         linux_link_libspeechd=1 \
110
 
         linux_link_gnome_keyring=1 \
 
77
defines+=enable_browser_cdms=true \
 
78
        enable_clipboard_aurax11=true \
 
79
        enable_google_now=false \
 
80
        enable_hangout_services_extension=true \
 
81
        enable_hotwording=false \
 
82
        enable_mdns=true \
 
83
        enable_nacl=false \
 
84
        enable_webrtc=true \
 
85
        enable_widevine=true \
 
86
        is_component_build=true \
 
87
        is_component_ffmpeg=true \
 
88
        is_debug=false \
 
89
        is_desktop_linux=true \
 
90
        remove_webcore_debug_symbols=true \
 
91
        symbol_level=2 \
 
92
        treat_warnings_as_errors=false \
 
93
        use_allocator="none" \
 
94
        use_alsa=true \
 
95
        use_aura=true \
 
96
        use_cups=true \
 
97
        use_dbus=true \
 
98
        use_gconf=true \
 
99
        use_gio=true \
 
100
        use_glib=true \
 
101
        use_gtk3=true \
 
102
        use_libpci=true \
 
103
        use_pulseaudio=true \
 
104
        use_sysroot=false \
 
105
        use_system_harfbuzz=false \
 
106
        use_system_libjpeg=true \
 
107
        use_system_sqlite=false \
 
108
        clang_use_chrome_plugins=false \
 
109
        is_clang=false \
 
110
 
 
111
 
 
112
ffmpeg_std_defines   += proprietary_codecs=false
 
113
ffmpeg_extra_defines += proprietary_codecs=true ffmpeg_branding=Chrome
111
114
 
112
115
# system libraries to use
113
 
defines+=use_system_re2=1 \
114
 
         use_system_yasm=1 \
115
 
         use_system_opus=1 \
116
 
         use_system_zlib=1 \
117
 
         use_system_speex=1 \
118
 
         use_system_expat=1 \
119
 
         use_system_libpng=1 \
120
 
         use_system_libxml=0 \
121
 
         use_system_libjpeg=1 \
122
 
         use_system_libwebp=0 \
123
 
         use_system_libxslt=0 \
124
 
         use_system_libsrtp=0 \
125
 
         use_system_jsoncpp=0 \
126
 
         use_system_libevent=0 \
127
 
         use_system_harfbuzz=0 \
128
 
         use_system_xdg_utils=1 \
129
 
 
130
 
browser_defines+=proprietary_codecs=1
131
 
 
132
 
ffmpeg_defines += \
133
 
         use_system_vpx=0 \
134
 
         release_extra_cflags=-g \
135
 
 
136
 
ffmpeg_std_defines   := $(NULL)
137
 
ffmpeg_extra_defines := ffmpeg_branding=Chrome
138
 
 
139
 
# use embedded protobuf for now (bug #764911)
140
 
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764911
141
 
defines+=use_system_protobuf=0 \
142
 
 
143
 
# icu
144
 
defines+=use_system_icu=0 \
145
 
         #icu_use_data_file_flag=0 \
146
 
         #want_separate_host_toolset=0 \
147
 
 
148
 
# reduce the size of debugging symbols
149
 
defines+=remove_webcore_debug_symbols=1
150
 
 
151
 
# some notes about embedded libraries
152
 
#  use_system_libusb=0 requires modified source that exposes libusb_interrupt_handle_event api
153
 
#  use_system_libvpx=0 need to run unbundler
154
 
#  use_system_sqlite=0 build fails
155
 
#  can't use system nss since net/third_party/nss is heavily patched
156
 
#  can't use system ots (open text *summarizer*) since that's not google's ots (open text *sanitizer*)
157
 
 
158
 
# make gyp a little more informative
159
 
options+=--check \
160
 
         --debug=includes \
161
 
 
162
 
defines += dont_embed_build_metadata=0
163
 
 
164
 
# do not use third_party/gold as the linker.
165
 
defines += linux_use_gold_binary=0 linux_use_gold_flags=0 linux_use_bundled_gold=0
166
 
 
167
 
# enable features that we want.
168
 
defines += enable_mdns=1
169
 
defines += use_nss_verifier=1
170
 
defines += enable_touch_ui=1
171
 
defines += enable_hangout_services_extension=1
172
 
# add support and stubbed implementation of widevine (needed for EME)
173
 
defines += enable_widevine=1 enable_pepper_cdms=1
174
 
 
175
 
#defines += use_ozone=1 ozone_auto_platforms=0 ozone_platform_mir=1 ozone_platform_wayland=0
176
 
#defines += use_ozone=1
177
 
#defines += ozone_platform_mir=1
178
 
 
179
 
# Intentional configuration, not bug work-arounds.
180
 
ifeq (arm,$(DEB_HOST_ARCH_CPU))
181
 
 
182
 
defines += \
183
 
        arm_neon=0 \
184
 
        target_arch=arm \
185
 
        $(NULL)
186
 
 
187
 
 ifeq (armel,$(DEB_HOST_ARCH))
188
 
defines += \
189
 
        v8_use_arm_eabi_hardfloat=false \
190
 
        arm_float_abi=soft \
191
 
        arm_thumb=0 \
192
 
        armv7=0 \
193
 
        $(NULL)
194
 
 endif
195
 
 ifeq (armhf,$(DEB_HOST_ARCH))
196
 
gyp_params += -DUSE_EABI_HARDFLOAT 
197
 
# ARN Neon optional flag is off because it causes build errors, AND testing
198
 
# /proc/cpuinfo contents can't work with a sandbox anyway.
199
 
defines += \
200
 
        arm_neon_optional=0 \
201
 
        v8_use_arm_eabi_hardfloat=true \
202
 
        arm_fpu=vfpv3-d16 \
203
 
        arm_float_abi=hard \
204
 
        arm_thumb=1 \
205
 
        armv7=1 \
206
 
        arm_version=7 \
207
 
        $(NULL)
208
 
 endif
209
 
endif
210
 
ifeq (amd64,$(DEB_HOST_ARCH))
211
 
defines += target_arch=x64
212
 
endif
213
 
ifeq (i386,$(DEB_HOST_ARCH))
214
 
defines += target_arch=ia32
215
 
# SEGV on component builds, 2013-05
216
 
defines += use_allocator=none
217
 
# Some mobile CPUs don't support SSE instructions. SIGILL. 2014-08
218
 
defines += disable_sse2=1
219
 
endif
220
 
ifeq (armhf,$(DEB_HOST_ARCH))
221
 
# SEGV on armhf, 2016-06
222
 
GYP_DEFINES += use_allocator=none
223
 
endif
224
 
ifeq (arm64,$(DEB_HOST_ARCH))
225
 
defines += target_arch=arm64
226
 
endif
227
 
 
228
 
ifeq (1,$(COMPONENT_SHARED_LIB_BUILD))
229
 
browser_defines += component=shared_library
230
 
ffmpeg_defines += component=shared_library
231
 
endif
232
 
 
233
 
# Webkit library is enormous. Exclude for now.
234
 
defines += remove_webcore_debug_symbols=1
235
 
 
236
 
BUILD_TYPE := Release
237
 
# Add symbols
238
 
defines += linux_dump_symbols=1
239
 
defines += logging_like_official_build=1
240
 
 
241
 
# Shared libraries
242
 
ifeq (1,$(COMPONENT_SHARED_LIB_BUILD))
243
 
defines += library=shared_library
 
116
use_system_libraries :=  #yasm libwebp libevent
 
117
 
 
118
 
 
119
# Build the launchpad translations (already landed upstream)
 
120
#!#GYP_DEFINES += use_third_party_translations=1
 
121
$(warning gn translations)
 
122
 
 
123
 
 
124
#!#GN_DEF += enable_hidpi=true
 
125
$(warning gn hidpi)
 
126
#!#GYP_DEFINES += enable_touch_ui=1
 
127
$(warning gn touch ui)
 
128
 
 
129
 
 
130
## Debian got this name wrong. DEB_HOST is not the hosting machine of
 
131
## compilation, but the destination of the resulting compiled programs.
 
132
## DEB_HOST = target. DEB_BUILD = hosting machine. Someone forgot what 
 
133
## "to host" means, and thought of "host" as "computery thing".
 
134
 
 
135
ifeq (armel,$(DEB_HOST_ARCH))
 
136
defines += target_cpu="arm"
 
137
defines += arm_neon=false use_cups=true
 
138
defines += v8_use_arm_eabi_hardfloat=false arm_float_abi="soft" arm_thumb=false 
 
139
else ifeq (armhf,$(DEB_HOST_ARCH))
 
140
defines += target_cpu="arm"
 
141
defines += arm_neon=false use_cups=true
 
142
defines += arm_neon_optional=false v8_use_arm_eabi_hardfloat=true arm_fpu="vfpv3-d16"
 
143
else ifeq (arm64,$(DEB_HOST_ARCH))
 
144
defines += target_cpu="arm64"
 
145
else ifeq (i386,$(DEB_HOST_ARCH))
 
146
defines += target_cpu="x86"
 
147
defines += disable_sse2=true
 
148
else ifeq (amd64,$(DEB_HOST_ARCH))
 
149
defines += target_cpu="x64"
 
150
else ifeq ($(DEB_HOST_ARCH),mipsel)
 
151
defines += target_cpu="mipsel"
 
152
else ifeq ($(DEB_HOST_ARCH),)
 
153
else
 
154
$(warning unanticipated arch $(DEB_HOST_ARCH))
 
155
defines += target_arch="$(DEB_HOST_ARCH)"
 
156
endif
 
157
 
 
158
 
 
159
ifeq (1,$(COMPONENT_SHARED_LIB_BUILD))
 
160
defines += is_component_build=true
 
161
defines += is_component_ffmpeg=true
244
162
endif
245
163
 
246
164
subst_files = \
256
174
        chromedriver \
257
175
        $(NULL)
258
176
 
259
 
 
260
 
 
261
177
ifneq (,$(GOOGLEAPI_APIKEY_$(DISTRIBUTION)))
262
178
defines += \
263
 
        google_api_key='$(GOOGLEAPI_APIKEY_$(DISTRIBUTION))' \
264
 
        google_default_client_id='$(GOOGLEAPI_CLIENTID_$(DISTRIBUTION))' \
265
 
        google_default_client_secret='$(GOOGLEAPI_CLIENTSECRET_$(DISTRIBUTION))'
 
179
        google_api_key="$(GOOGLEAPI_APIKEY_$(DISTRIBUTION))" \
 
180
        google_default_client_id="$(GOOGLEAPI_CLIENTID_$(DISTRIBUTION))" \
 
181
        google_default_client_secret="$(GOOGLEAPI_CLIENTSECRET_$(DISTRIBUTION))"
266
182
else
267
183
$(warning Google API info is not set in build variables GOOGLEAPI_APIKEY_$(DISTRIBUTION) GOOGLEAPI_CLIENTID_$(DISTRIBUTION) GOOGLEAPI_CLIENTSECRET_$(DISTRIBUTION))
268
184
endif
269
185
 
270
 
ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
271
 
CROSS_BUILD = PKG_CONFIG_PATH=/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig:/usr/$(DEB_HOST_MULTIARCH)/lib/pkgconfig CXX=$(DEB_HOST_GNU_TYPE)-g++ CC=$(DEB_HOST_GNU_TYPE)-gcc AR=$(DEB_HOST_GNU_TYPE)-ar AS=$(DEB_HOST_GNU_TYPE)-as CPP=$(DEB_HOST_GNU_TYPE)-cpp LD=$(DEB_HOST_GNU_TYPE)-ld
272
 
else
273
186
CROSS_BUILD = CC=gcc-5 CXX=g++-5
274
 
endif
275
 
 
276
 
 
277
187
 
278
188
 
279
189
### Official interfaces.
321
231
override_dh_installman:
322
232
        # install does this
323
233
 
324
 
override_dh_shlibdeps:
325
 
        dh_shlibdeps -l$(CURDIR)/debian/chromium-browser/usr/lib/chromium-browser/libs/
326
 
 
327
234
override_dh_install-arch: INDEP_MATCH = ^usr/lib/chromium-browser/.\*\locales/.\*.pak$$
328
235
override_dh_install-arch: PKG_DIRS := $(addprefix debian/,$(shell dh_listpackages -a))
329
236
override_dh_install-arch: T := verify-install-integrity-dep
337
244
        mkdir -p $(T)
338
245
 
339
246
ifeq (1,$(COMPONENT_SHARED_LIB_BUILD))
340
 
        mkdir -p                                                          $(CURDIR)/debian/tmp-std/$(LIB_DIR)/libs
341
 
        mv -v $(SRC_DIR)/out/$(BUILD_TYPE)-chromium/lib/libffmpeg.so      $(CURDIR)/debian/tmp-std/$(LIB_DIR)/libs
 
247
        mkdir -p                                        $(CURDIR)/debian/tmp-std/$(LIB_DIR)
 
248
        mv -v $(SRC_DIR)/out/chromium/libffmpeg.so      $(CURDIR)/debian/tmp-std/$(LIB_DIR)
342
249
 
343
 
        mkdir -p                                                          $(CURDIR)/debian/tmp-extra/$(LIB_DIR)/libs
344
 
        mv -v $(SRC_DIR)/out/$(BUILD_TYPE)-ffmpeg-extra/lib/libffmpeg.so  $(CURDIR)/debian/tmp-extra/$(LIB_DIR)/libs
 
250
        mkdir -p                                        $(CURDIR)/debian/tmp-extra/$(LIB_DIR)
 
251
        mv -v $(SRC_DIR)/out/ffmpeg-extra/libffmpeg.so  $(CURDIR)/debian/tmp-extra/$(LIB_DIR)
345
252
endif
346
253
 
347
254
        mkdir -p $(CURDIR)/debian/tmp/$(LIB_DIR)
348
 
        (cd $(SRC_DIR)/out/$(BUILD_TYPE)-chromium && tar --remove-files $(foreach excl,$(TRASH),--exclude=$(excl) ) --dereference -cf - .;) | (cd debian/tmp/$(LIB_DIR) && tar xvf -;)
349
 
        (cd $(SRC_DIR)/out/$(BUILD_TYPE)-chromium && tar --remove-files -cf - $$(find *locales -type f -name en-US.pak) --dereference;) | (cd debian/tmp/$(LIB_DIR) && tar xvf -;)
350
 
ifeq (1,$(COMPONENT_SHARED_LIB_BUILD))
351
 
        mkdir -p debian/tmp/$(LIB_DIR)/libs
352
 
        cp $(SRC_DIR)/out/$(BUILD_TYPE)-chromium/lib/*.so debian/tmp/$(LIB_DIR)/libs/
353
 
endif
 
255
        (cd $(SRC_DIR)/out/chromium && tar --remove-files $(foreach excl,$(TRASH),--exclude=$(excl) ) --dereference -cf - .;) | (cd debian/tmp/$(LIB_DIR) && tar xvf -;)
 
256
        (cd $(SRC_DIR)/out/chromium && tar --remove-files -cf - $$(find *locales -type f -name en-US.pak) --dereference;) | (cd debian/tmp/$(LIB_DIR) && tar xvf -;)
354
257
#
355
 
        # NaCL may be blacklisted, so only include it when it's been built
356
 
ifeq (,$(filter disable_nacl=1,$(defines)))
357
 
        cp -a $(SRC_DIR)/out/$(BUILD_TYPE)-chromium/libppGoogleNaClPluginChrome.so debian/chromium-browser/$(LIB_DIR)/
358
 
        cp -a $(SRC_DIR)/out/$(BUILD_TYPE)-chromium/nacl_irt_* debian/chromium-browser/$(LIB_DIR)/
359
 
endif
 
258
        # NaCL may be blacklisted.
 
259
        cp -a $(SRC_DIR)/out/chromium/libppGoogleNaClPluginChrome.so debian/chromium-browser/$(LIB_DIR)/ || echo No NaCl. That is okay.
 
260
        cp -a $(SRC_DIR)/out/chromium/nacl_irt_* debian/chromium-browser/$(LIB_DIR)/ || echo No NaCl. That is okay.
360
261
 
361
262
        # Icons
362
263
        cp -a $(DEB_TAR_SRCDIR)/chrome/app/theme/chromium/product_logo_48.png debian/chromium-browser/usr/share/pixmaps/chromium-browser.png
381
282
        ##### Copy installed to package ####
382
283
        (cd debian/tmp/$(LIB_DIR) && tar --remove-files --exclude=chromedriver --dereference -cf - .;) | (cd debian/chromium-browser/$(LIB_DIR) && tar xvf -;)
383
284
 
384
 
ifeq (1,$(COMPONENT_SHARED_LIB_BUILD))
385
 
        # Set the directory for looking up component libraries.
386
 
        find debian/*/$(LIB_DIR)/libs             -type f -name \*.so             -execdir chrpath --replace "\$$ORIGIN" {} \;
387
 
        find debian/*/$(LIB_DIR)      -maxdepth 1 -type f -name \*.so             -execdir chrpath --replace "\$$ORIGIN/libs" {} \;
388
 
        find debian/*/$(LIB_DIR)      -maxdepth 1 -type f             -executable -execdir chrpath --replace "\$$ORIGIN/libs" {} \;
389
 
endif
390
 
 
391
285
        # Launcher script
392
286
        cp -a debian/chromium-browser.sh debian/chromium-browser/usr/bin/chromium-browser
393
287
        chmod 755 debian/chromium-browser/usr/bin/chromium-browser
434
328
 
435
329
 
436
330
        # compare built to packaged
437
 
        DUPES=`find $(PKG_DIRS) -type f -print | grep -v /DEBIAN/ | cut -d/ -f3- | LC_ALL=C sort | uniq -c | grep -vE '^ *2 .*/libs/libffmpeg.so$$' | grep -vE '^  *1 '` || true;
 
331
        DUPES=`find $(PKG_DIRS) -type f -print | grep -v /DEBIAN/ | cut -d/ -f3- | LC_ALL=C sort | uniq -c | grep -vE '^ *2 .*/libffmpeg.so$$' | grep -vE '^  *1 '` || true;
438
332
        if [ "Z$$DUPES" != Z ] ; then
439
333
          echo " => Found duplicates:\n $$DUPES" ;
440
334
          exit 1 ;
460
354
 
461
355
        ### Step 1: install into tmp
462
356
        mkdir -p debian/tmp/$(LIB_DIR)
463
 
        (cd $(SRC_DIR)/out/$(BUILD_TYPE)-chromium && tar --remove-files -cf - $$(find *locales -type f -name \*.pak \! -name en-US.pak) --dereference;) | (cd debian/tmp/$(LIB_DIR) && tar xvf -;)
 
357
        (cd $(SRC_DIR)/out/chromium && tar --remove-files -cf - $$(find *locales -type f -name \*.pak \! -name en-US.pak) --dereference;) | (cd debian/tmp/$(LIB_DIR) && tar xvf -;)
464
358
 
465
359
        # record built so we can compare later
466
360
        mkdir -p $(T)
486
380
 
487
381
override_dh_clean:
488
382
        @set -eux
 
383
        test ! "$(use_system_libraries)" || python2 ./build/linux/unbundle/replace_gn_files.py --undo --system-libraries $(use_system_libraries) || true
489
384
        dh_clean
490
385
        test -d chrome
491
 
        rm -rf $(SRC_DIR)/out 
 
386
        rm -rf $(SRC_DIR)/out
492
387
        rm -rf debian/chromium-browser.sh debian/*-stamp debian/stamp-* debian/tmp-* build-stamp* $(subst_files) $(FFMPEG_SRC_DIR)/yasm
493
388
        rm -rf debian/snappy
494
389
        rm -rf verify-install-integrity-indep verify-install-integrity-arch
516
411
    -e 's/@UPSTREAM_VERSION@/$(DEBIAN_UPSTREAM_VERSION)/g' \
517
412
    $< > $@
518
413
 
519
 
debian/appstream.yaml: debian/appstream.yaml.in
520
 
        sed -e 's/VERSION/$(DEBIAN_DIST_VERSION)/g' \
521
 
    -e 's/DATE/$(shell date --iso-8601=minutes --utc)/g' \
522
 
    $< > $@
 
414
$(SRC_DIR)/out/Release/gn:
 
415
        cd $(SRC_DIR) && tools/gn/bootstrap/bootstrap.py --verbose --no-rebuild --gn-gen-args '$(defines)'
 
416
        echo built $@
523
417
 
524
418
# This is really configure+build in one step. b depends on c.
525
 
build-stamp: gyp_env := GYP_GENERATORS=ninja GYP_DEFINES="$(defines) $(browser_defines)"
526
 
build-stamp: BUILD_ARGS := -v -C $(DEB_TAR_SRCDIR)/out/$(BUILD_TYPE)
527
 
build-stamp: debian/chromium-browser.sh
 
419
build-stamp: BUILD_ARGS := -v -C $(DEB_TAR_SRCDIR)/out/chromium
 
420
build-stamp: debian/chromium-browser.sh $(SRC_DIR)/out/Release/gn
528
421
        @set -eux
529
 
        test ! -e $(SRC_DIR)/out/$(BUILD_TYPE)-chromium
 
422
        echo building $@
 
423
        test ! -e $(SRC_DIR)/out/chromium
 
424
        #
530
425
        # Upstream changes often. Fail when they introduce a config flag we don't know about.
531
 
        -diff --ignore-case --suppress-common-lines --unified=0 debian/known_gyp_flags <(sed -e "/: *'<(/{ s,.*'<(,,g; s,).*,,; p; }" -e d build/common.gypi | LC_ALL=C sort -u |grep -v '^\(win_\|mac_\|android_\|.san\|..san\|msvs_\|ios_\|goma_\|windows_\|wix_\|directx_\)') || echo This seems bad.
532
 
 
533
 
        cd $(SRC_DIR) && $(gyp_env) $(CROSS_BUILD) build/gyp_chromium build/all.gyp $(gyp_params)
 
426
        $(SRC_DIR)/out/Release/gn gen out/argtest --args='$(defines)'
 
427
        -diff --ignore-case --suppress-common-lines --unified=0 debian/known_gn_gen_args <($(SRC_DIR)/out/Release/gn args out/argtest --list --short) || echo This seems bad.
 
428
 
 
429
        out/Release/gn gen --args='$(defines) $(browser_defines) $(ffmpeg_std_defines)' out/chromium
 
430
        test ! "$(use_system_libraries)" || python2 build/linux/unbundle/replace_gn_files.py --system-libraries $(use_system_libraries)
 
431
 
534
432
 
535
433
        ### build
536
 
        while sleep 1200; do echo "#  I ATEN'T DEAD"; done& $(BUILD_DEFINES) $(NINJA) $(BUILD_ARGS) $(BUILD_TARGETS) && { kill \%1; sleep 1; echo; true; } || { kill \%1; exit 1; sleep 2; echo; false; }
537
 
        mv -v $(DEB_TAR_SRCDIR)/out/$(BUILD_TYPE) $(DEB_TAR_SRCDIR)/out/$(BUILD_TYPE)-chromium
 
434
        while sleep 1200; do echo "#  I ATEN'T DEAD"; done& ninja $(BUILD_ARGS) $(BUILD_TARGETS) && { kill \%1; sleep 1; echo; true; } || { kill \%1; exit 1; sleep 2; echo; false; }
538
435
        touch $@
539
436
 
540
 
build-stamp-ffmpeg-%: gyp_env := GYP_GENERATORS=ninja GYP_DEFINES="$(defines) $(ffmpeg_extra_defines) $(ffmpeg_defines)"
541
 
build-stamp-ffmpeg-%: BUILD_ARGS := -v -C $(DEB_TAR_SRCDIR)/out/$(BUILD_TYPE)
542
 
build-stamp-ffmpeg-%: TARGET := lib/libffmpeg.so
 
437
build-stamp-ffmpeg-%: all_gn_defines := $(defines) $(ffmpeg_%_defines) $(ffmpeg_defines)
543
438
build-stamp-ffmpeg-%:
544
439
        @set -eux
545
440
        ### configure
546
 
        test ! -e $(SRC_DIR)/out/$(BUILD_TYPE)-ffmpeg-$*
547
 
        cd $(SRC_DIR) && $(gyp_env) $(CROSS_BUILD) build/gyp_chromium build/all.gyp $(gyp_params)
 
441
        test ! -e $(SRC_DIR)/out/ffmpeg-$*
 
442
 
 
443
        cd $(SRC_DIR) && out/Release/gn gen --args='$(all_gn_defines)' out/ffmpeg-$*
548
444
 
549
445
        ### build
550
 
        $(NINJA) $(BUILD_ARGS) $(TARGET)
 
446
        ninja -v -C $(DEB_TAR_SRCDIR)/out/ffmpeg-$* libffmpeg.so
551
447
        mkdir -p debian/tmp-$*/$(LIB_DIR)
552
 
        mv -v $(DEB_TAR_SRCDIR)/out/$(BUILD_TYPE) $(DEB_TAR_SRCDIR)/out/$(BUILD_TYPE)-ffmpeg-$*
553
448
        touch $@
554
449
 
555
450