# # The source package name will be the first token from $(DEBIAN)/changelog # src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog) # Allow for overriding common_src_pkg_name when we have perflavour source packages -include $(DEBIAN)/rules.d/vars.mk common_src_pkg_name?=src_pkg_name # Get some version info series := oneiric release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog) revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac) revision ?= $(word $(words $(revisions)),$(revisions)) prev_revisions := $(filter-out $(revision),0.0 $(revisions)) prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) family=ubuntu # This is an internally used mechanism for the daily kernel builds. It # creates packages whose ABI is suffixed with a minimal representation of # the current git HEAD sha. If .git/HEAD is not present, then it uses the # uuidgen program, # # AUTOBUILD can also be used by anyone wanting to build a custom kernel # image, or rebuild the entire set of Ubuntu packages using custom patches # or configs. AUTOBUILD= # # This is a way to support some external variables. A good example is # a local setup for ccache and distcc See LOCAL_ENV_CC and # LOCAL_ENV_DISTCC_HOSTS in the definition of kmake. # For example: # LOCAL_ENV_CC="ccache distcc" # LOCAL_ENV_DISTCC_HOSTS="localhost 10.0.2.5 10.0.2.221" # -include $(CURDIR)/../.$(series)-env ifneq ($(AUTOBUILD),) skipabi = true skipmodule = true skipdbg = true gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi) gitverpre=$(shell echo $(gitver) | cut -b -3) gitverpost=$(shell echo $(gitver) | cut -b 38-40) abi_suffix = -$(gitverpre)$(gitverpost) endif ifneq ($(NOKERNLOG),) ubuntu_log_opts += --no-kern-log endif ifneq ($(PRINTSHAS),) ubuntu_log_opts += --print-shas endif # Get the kernels own extra version to be added to the release signature. raw_kernelversion=$(shell make kernelversion) # # full_build -- are we doing a full buildd style build # ifeq ($(wildcard /CurrentlyBuilding),) full_build?=false else full_build?=true endif # # The debug packages are ginormous, so you probably want to skip # building them (as a developer). # #ifeq ($(full_build),false) #skipdbg=true #endif abinum := $(shell echo $(revision) | sed -e 's/\..*//')$(abi_suffix) prev_abinum := $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abi_suffix) abi_release := $(release)-$(abinum) uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//') ifneq ($(full_build),false) uploadnum := $(uploadnum)-Ubuntu endif # XXX: linux-libc-dev got bumped to -803.N inadvertantly by a ti-omap4 upload # shift our version higher for this package only. Ensure this only # occurs for the v2.6.35 kernel so that we do not propogate this into # any other series. raw_uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//') libc_dev_version := ifeq ($(DEBIAN),debian.master) ifeq ($(release),2.6.35) libc_dev_version := -v$(release)-$(shell expr "$(abinum)" + 1000).$(raw_uploadnum) endif endif DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH) # # Detect invocations of the form 'fakeroot debian/rules binary arch=armel' # within an x86'en schroot. This only gets you part of the way since the # packaging phase fails, but you can at least compile the kernel quickly. # arch := $(DEB_HOST_ARCH) ifneq ($(arch),$(DEB_HOST_ARCH)) CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)- endif # # Detect invocations of the form 'dpkg-buildpackage -B -aarmel' within # an x86'en schroot. This is the only way to build all of the packages # (except for tools). # ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)- endif abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch) prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch) commonconfdir := $(CURDIR)/$(DEBIAN)/config archconfdir := $(CURDIR)/$(DEBIAN)/config/$(arch) sharedconfdir := $(CURDIR)/debian.linaro/config builddir := $(CURDIR)/debian/build stampdir := $(CURDIR)/debian/stamps # # The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There # are places that you'll find linux-image hard coded, but I guess thats OK since the # assumption that the binary package always starts with linux-image will never change. # bin_pkg_name=linux-image-$(abi_release) extra_pkg_name=linux-image-extra-$(abi_release) hdrs_pkg_name=linux-headers-$(abi_release) # # The generation of content in the doc package depends on both 'AUTOBUILD=' and # 'do_doc_package_content=true'. There are usually build errors during the development # cycle, so its OK to leave 'do_doc_package_content=false' until those build # failures get sorted out. Finally, the doc package doesn't really need to be built # for developer testing (its kind of slow), so only do it if on a buildd. do_doc_package=true do_doc_package_content=true ifeq ($(full_build),false) do_doc_package_content=false endif doc_pkg_name=$(common_src_pkg_name)-doc # # Similarly with the linux-source package, you need not build it as a developer. Its # somewhat I/O intensive and utterly useless. # do_source_package=true do_source_package_content=true ifeq ($(full_build),false) do_source_package_content=false endif # linux-libc-dev may not be needed, default to building it. do_libc_dev_package=true # common headers normally is built as an indep package, but may be arch do_common_headers_indep=true # add a 'full source' mode do_full_source=false # build tools ifneq ($(wildcard $(CURDIR)/tools),) do_tools?=true else do_tools?=false endif tools_pkg_name=$(common_src_pkg_name)-tools-$(abi_release) tools_common_pkg_name=$(common_src_pkg_name)-tools-common # The general flavour specific image package. do_flavour_image_package=true # The general flavour specific header package. do_flavour_header_package=true # Support parallel= in DEB_BUILD_OPTIONS (see #209008) # # These 2 environment variables set the -j value of the kernel build. For example, # CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs # or # DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs # # The default is to use the number of CPUs. # COMMA=, DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) ifneq (,$(DEB_BUILD_OPTIONS_PARA)) CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA) endif ifeq ($(CONCURRENCY_LEVEL),) # Check the environment CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL) # No? Then build with the number of CPUs on the host. ifeq ($(CONCURRENCY_LEVEL),) CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1) endif # Oh hell, give 'em one ifeq ($(CONCURRENCY_LEVEL),) CONCURRENCY_LEVEL := 1 endif endif conc_level = -j$(CONCURRENCY_LEVEL) # target_flavour is filled in for each step kmake = make ARCH=$(build_arch) \ CROSS_COMPILE=$(CROSS_COMPILE) \ KERNELVERSION=$(abi_release)-$(target_flavour) \ CONFIG_DEBUG_SECTION_MISMATCH=y \ KBUILD_BUILD_VERSION="$(uploadnum)" \ LOCALVERSION= localver-extra= ifneq ($(LOCAL_ENV_CC),) kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS) endif