| #!/usr/bin/make -f | |
| export DH_VERBOSE = 1 | |
| AOT_SUPPORTED_ARCHS := amd64 arm | |
| # Use DEB_BUILD_OPTIONS's parallel=n option (see Policy 4.9.1) | |
| ifneq (,$(findstring parallel,$(DEB_BUILD_OPTIONS))) | |
| PARALLEL_JOBS := $(shell echo $(DEB_BUILD_OPTIONS) | \ | |
| sed -e 's/.*parallel=\([0-9]\+\).*/\1/') | |
| else | |
| PARALLEL_JOBS := 1 | |
| endif | |
| ifeq (amd64,$(DEB_HOST_ARCH_CPU)) | |
| BUILD_TYPE += ReleaseX64 | |
| BUILD_TYPE_PRODUCT += ProductX64 | |
| ARCH += x64 | |
| else | |
| ifeq (i386,$(DEB_HOST_ARCH_CPU)) | |
| BUILD_TYPE += ReleaseIA32 | |
| BUILD_TYPE_PRODUCT += ProductIA32 | |
| ARCH += ia32 | |
| else | |
| ifeq (arm,$(DEB_HOST_ARCH_CPU)) | |
| ifeq ($(DEB_BUILD_ARCH_CPU),$(DEB_HOST_ARCH_CPU)) | |
| BUILD_TYPE += ReleaseARM | |
| BUILD_TYPE_PRODUCT += ProductARM | |
| else | |
| BUILD_TYPE += ReleaseXARM | |
| BUILD_TYPE_PRODUCT += ProductXARM | |
| endif | |
| ARCH += arm | |
| else | |
| $(error unsupported target arch '$(DEB_HOST_ARCH_CPU)') | |
| endif | |
| endif | |
| endif | |
| # Only run AOT builds for supported archs. | |
| ifneq (,$(findstring $(DEB_HOST_ARCH_CPU),$(AOT_SUPPORTED_ARCHS))) | |
| AOT_BUILD_CMD := \ | |
| python tools/build.py -v -m release -a $(ARCH) $(TOOLCHAIN) \ | |
| copy_gen_kernel_snapshot copy_dart2aot; \ | |
| python tools/build.py -v -m product -a $(ARCH) $(TOOLCHAIN) \ | |
| copy_gen_snapshot copy_dartaotruntime; \ | |
| mkdir -p out/$(BUILD_TYPE)/dart-sdk/bin/utils; \ | |
| cp out/$(BUILD_TYPE_PRODUCT)/dart-sdk/bin/utils/gen_snapshot \ | |
| out/$(BUILD_TYPE)/dart-sdk/bin/utils/gen_snapshot; \ | |
| cp out/$(BUILD_TYPE_PRODUCT)/dart-sdk/bin/dartaotruntime \ | |
| out/$(BUILD_TYPE)/dart-sdk/bin/dartaotruntime | |
| else | |
| AOT_BUILD_CMD := # empty | |
| endif | |
| # Verbose? | |
| ifeq (1,$(DH_VERBOSE)) | |
| BUILD_ARGS += V=1 | |
| endif | |
| %: | |
| dh $@ | |
| override_dh_auto_clean: | |
| echo $(DEB_BUILD_OPTIONS) | |
| rm -fr dart/out dart/Makefile | |
| find . -name *.tmp -execdir rm -f {} \; | |
| find . -name *.pyc -execdir rm -f {} \; | |
| find . -name *.mk -execdir rm -f {} \; | |
| find . -name *.Makefile -execdir rm -f {} \; | |
| override_dh_auto_configure: | |
| python dart/tools/generate_buildfiles.py | |
| override_dh_auto_build: | |
| cd dart; \ | |
| python tools/build.py -v -m release -a $(ARCH) $(TOOLCHAIN) create_sdk; \ | |
| $(AOT_BUILD_CMD); \ | |
| cd .. | |
| # Building the Dart SDK will already strip all binaries. | |
| override_dh_strip: | |
| # This override allows us to ignore spurious missing library errors when | |
| # cross-compiling. | |
| override_dh_shlibdeps: | |
| dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info | |
| override_dh_auto_install: | |
| mkdir -p debian/tmp/out | |
| cp -R dart/out/$(BUILD_TYPE)/dart-sdk debian/tmp/out | |
| mv debian/tmp/out/dart-sdk debian/tmp/out/dart | |
| dh_install | |
| dh_link |