Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/make -f
- #
- #export DH_VERBOSE=0
- WEEK := $(shell date +%Y%W)
- RELEASE := $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }')
- #REVISION := $(shell echo "$(RELEASE)" | sed 's/\(.*\)-\(.*\)/\2/')
- #no need to update modules so often, api is quite stable between weekly releases
- REVISION := hostmode2
- EXTRAVERSION := EXTRAVERSION=-$(REVISION)
- PACKAGE := kernel-hostmode
- FLASHER_PACKAGE := kernel-hostmode-flasher
- SOURCE_PACKAGE := $(PACKAGE)-source
- KERNEL_PACKAGE := $(PACKAGE)
- MODULES_PACKAGE := $(PACKAGE)-modules
- HEADERS_PACKAGE := $(PACKAGE)-headers
- KBUILD_PACKAGE := $(PACKAGE)-kbuild
- DEBUG_PACKAGE := $(PACKAGE)-debug
- DEBUG_MODULES_PACKAGE := $(PACKAGE)-modules-debug
- LIBC_PACKAGE := linux-kernel-headers
- BUILDTMP := $(CURDIR)/debian/build
- KSRC := $(BUILDTMP)/$(PACKAGE)
- DEFCONFIG := rx51_defconfig
- KVER = $(shell cat $(KSRC)/include/config/kernel.release 2> /dev/null)
- ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
- INCLUDE_HEADERS = acpi asm-generic asm-$(ARCH) config crypto drm Kbuild keys linux math-emu media mtd net pcmcia rdma rxrpc scsi sound video xen
- RM_SCRIPTS = bloat-o-meter show_delta
- DEBUG_MODULES = oprofile.ko
- MAKE += $(MAKEFLAGS)
- ifneq (,$(findstring parallel,$(DEB_BUILD_OPTIONS)))
- PARALLEL_JOBS := $(shell echo $(DEB_BUILD_OPTIONS) | \
- sed -e 's/.*parallel=\([0-9]\+\).*/\1/')
- ifeq ($(DEB_BUILD_OPTIONS),$(PARALLEL_JOBS))
- PARALLEL_JOBS := $(shell if [ -f /proc/cpuinfo ]; \
- then echo `cat /proc/cpuinfo | grep 'processor' | wc -l`; \
- else echo 1; fi)
- endif
- NJOBS := -j$(PARALLEL_JOBS)
- endif
- source-copy-stamp:
- dh_testdir
- $(MAKE) clean
- mkdir -p $(BUILDTMP)/$(SOURCE_PACKAGE)
- tar cf - `echo * | sed -e 's/ debian//g' -e 's/\.deb//g' ` \
- | (cd $(BUILDTMP)/$(SOURCE_PACKAGE) ; umask 000; tar xspf -)
- touch $@
- source-stamp: source-copy-stamp
- cd $(BUILDTMP) && cp -a $(SOURCE_PACKAGE) $(KSRC)
- touch $@
- configure-stamp: source-stamp
- cd $(KSRC) && $(MAKE) $(EXTRAVERSION) $(DEFCONFIG)
- cp $(CURDIR)/debian/.config $(CURDIR)/debian/build/$(PACKAGE)/.config
- cp $(CURDIR)/debian/.config $(CURDIR)/
- touch $@
- kernel-stamp: configure-stamp
- echo "compile $(PRODUCT) kernel"
- cd $(KSRC) && $(MAKE) -j 6 $(EXTRAVERSION) zImage
- touch $@
- modules-stamp: configure-stamp
- echo "compile $(PRODUCT) kernel modules"
- cd $(KSRC) && $(MAKE) -j 6 $(EXTRAVERSION) modules
- touch $@
- modules-extra: configure-stamp
- echo "compile $(PRODUCT) kernel EXTRA modules"
- cd $(KSRC) && \
- patch -p1 < $(CURDIR)/debian/modules-extra_config.patch && \
- $(MAKE) $(EXTRAVERSION) oldconfig modules && \
- patch -p1 -R < $(CURDIR)/debian/modules-extra_config.patch && \
- $(MAKE) $(EXTRAVERSION) oldconfig
- headers: kernel-stamp modules-stamp
- kernel-source-stamp: source-copy-stamp
- dh_testdir
- cd $(BUILDTMP) && \
- tar --bzip2 -cf $(SOURCE_PACKAGE).tar.bz2 $(SOURCE_PACKAGE)
- touch $@
- clean:
- dh_testdir
- dh_testroot
- $(MAKE) clean
- rm -f modules/modversions.h modules/ksyms.ver debian/files conf.vars scripts/cramfs/cramfsck \
- scripts/cramfs/mkcramfs applied_patches debian/buildinfo stamp-* .config* \
- debian/$(FLASHER_PACKAGE).postinst
- rm -rf debian/tmp-*
- rm -rf debian/build
- rm -f *-stamp
- dh_clean
- install-kernel:
- dh_testdir
- dh_testroot
- dh_installdirs
- install -d -m 755 $(CURDIR)/debian/$(PACKAGE)/boot
- fiasco-gen -o $(CURDIR)/debian/$(PACKAGE)/boot/zImage-$(RELEASE).fiasco -g \
- -k $(KSRC)/arch/arm/boot/zImage -v $(RELEASE)
- chmod 644 $(CURDIR)/debian/$(PACKAGE)/boot/zImage-$(RELEASE).fiasco
- install-debug: install-modules
- install -d -m 755 $(CURDIR)/debian/$(DEBUG_PACKAGE)/usr/lib/debug/lib/modules/$(KVER)
- install $(KSRC)/vmlinux \
- $(CURDIR)/debian/$(DEBUG_PACKAGE)/usr/lib/debug/vmlinux-$(KVER)
- chmod a-x $(CURDIR)/debian/$(DEBUG_PACKAGE)/usr/lib/debug/vmlinux-*
- mkdir -p $(CURDIR)/debian/$(DEBUG_PACKAGE)/lib/modules/$(KVER)
- for f in $$(find $(CURDIR)/debian/$(MODULES_PACKAGE) -name "*.ko"); do \
- objcopy --only-keep-debug $$f $(CURDIR)/debian/$(DEBUG_PACKAGE)/usr/lib/debug/lib/modules/$(KVER)/$$(basename $$f); \
- strip --remove-section=.comment --remove-section=.note --strip-unneeded $(CURDIR)/debian/$(MODULES_PACKAGE)/lib/modules/$(KVER)/$$(basename $$f); \
- objcopy --add-gnu-debuglink $(CURDIR)/debian/$(DEBUG_PACKAGE)/usr/lib/debug/lib/modules/$(KVER)/$$(basename $$f) $(CURDIR)/debian/$(MODULES_PACKAGE)/lib/modules/$(KVER)/$$(basename $$f); \
- done
- install-modules-debug: install-debug
- install -d -m 755 $(CURDIR)/debian/$(DEBUG_MODULES_PACKAGE)/lib/modules/$(KVER)
- -for f in $(DEBUG_MODULES); do \
- mv $(CURDIR)/debian/$(MODULES_PACKAGE)/lib/modules/$(KVER)/$$f \
- $(CURDIR)/debian/$(DEBUG_MODULES_PACKAGE)/lib/modules/$(KVER)/$$f; \
- done
- install-modules:
- dh_testdir
- dh_testroot
- mkdir -p $(CURDIR)/debian/$(MODULES_PACKAGE)/lib/modules/$(KVER)
- for f in $$(find $(KSRC) -name "*.ko"); do \
- install -c -m 644 $$f $(CURDIR)/debian/$(MODULES_PACKAGE)/lib/modules/$(KVER)/$$(basename $$f); \
- done
- #ln -sf $(KVER) $(CURDIR)/debian/$(MODULES_PACKAGE)/lib/modules/current
- install-headers:
- dh_testdir
- dh_testroot
- dh_installdirs
- install -d -m755 $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/
- install -p -o root -g root -m 644 $(KSRC)/.config $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/
- install -p -o root -g root -m 644 $(KSRC)/Makefile $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/
- install -p -o root -g root -m 644 $(KSRC)/Module.symvers $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/
- cd $(KSRC) && install -p -o root -g root -m 644 -D include/config/auto.conf \
- $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/include/config/auto.conf
- cd $(KSRC) && \
- find arch/$(ARCH) $(foreach dir,$(INCLUDE_HEADERS),include/$(dir)) -name '*.h' \
- -exec install -D -m644 {} $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/{} \;
- cd $(KSRC) && \
- find ./ \( -name Makefile -or -name Kbuild -or -name Kconfig\* \) \
- -exec install -D -m644 {} $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/{} \;
- ln -sf asm-$(ARCH) $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/include/asm
- rm -rf $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/scripts
- ln -sf ../$(KBUILD_PACKAGE)/scripts $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)
- # cp -a $(KSRC)/include/asm-$(ARCH)/arch \
- # $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/include/asm-$(ARCH)
- cp $(KSRC)/arch/$(ARCH)/kernel/asm-offsets.s \
- $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(HEADERS_PACKAGE)/arch/$(ARCH)/kernel
- #install /lib/modules symlink
- install -d -m 755 $(CURDIR)/debian/$(HEADERS_PACKAGE)/lib/modules/$(KVER)/
- ln -sf /usr/src/$(HEADERS_PACKAGE) $(CURDIR)/debian/$(HEADERS_PACKAGE)/lib/modules/$(KVER)/build
- #install kbuild
- install -d $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(KBUILD_PACKAGE)
- cp -a $(KSRC)/scripts $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(KBUILD_PACKAGE)
- #kbuild fixes
- cd $(CURDIR)/debian/$(HEADERS_PACKAGE)/usr/src/$(KBUILD_PACKAGE)/scripts && \
- ( rm -f $(RM_SCRIPTS); chmod a-x mkcompile_h )
- install-libc-headers: source-stamp
- dh_testdir
- dh_testroot
- cd $(KSRC) && \
- $(MAKE) headers_check ARCH=$(ARCH) && \
- $(MAKE) headers_install ARCH=$(ARCH) INSTALL_HDR_PATH=$(CURDIR)/debian/$(LIBC_PACKAGE)/usr
- install-modules-extra:
- dh_testdir
- dh_testroot
- mkdir -p $(CURDIR)/debian/kernel-modules-extra/lib/modules/$(KVER)/extra
- for f in $(MODULES_EXTRA); do \
- install -c -m 644 $(KSRC)/$$f \
- $(CURDIR)/debian/kernel-modules-extra/lib/modules/$(KVER)/extra/$$(basename $$f); \
- done
- install-indep:
- dh_testdir
- dh_testroot
- install -p -d -o root -g root -m 755 debian/$(SOURCE_PACKAGE)/usr/src
- install -m 644 $(BUILDTMP)/$(SOURCE_PACKAGE).tar.bz2 debian/$(SOURCE_PACKAGE)/usr/src
- install-extra: install-modules-extra
- install-arch: build-arch install-kernel install-modules install-debug install-modules-debug install-headers install-libc-headers
- ifeq ($(ARCH),arm)
- build-arch: kernel-stamp modules-stamp headers
- else
- build-arch:
- endif
- build-indep: kernel-source-stamp
- build: build-arch build-indep
- binary-indep: install-indep
- dh_testdir
- dh_testroot
- dh_installchangelogs -i
- dh_installdocs -i
- dh_installdeb -i
- dh_gencontrol -i
- dh_md5sums -i
- dh_builddeb -i
- ifeq ($(ARCH),arm)
- binary-arch: build-arch install-arch
- else
- binary-arch: install-libc-headers
- endif
- sed \
- -e 's,@VERSION@,$(RELEASE),g' \
- -e 's,@KVER@,$(KVER),g' \
- < $(CURDIR)/debian/$(FLASHER_PACKAGE).postinst.in \
- > $(CURDIR)/debian/$(FLASHER_PACKAGE).postinst
- dh_testdir
- dh_testroot
- dh_installchangelogs -s
- dh_installdocs -s
- ifeq ($(ARCH),arm)
- dh_strip -p$(HEADERS_PACKAGE)
- endif
- dh_compress -s
- dh_fixperms -s --exclude /usr/src/kernel-headers
- dh_installdeb -s
- dh_shlibdeps -s
- dh_gencontrol -s
- dh_md5sums -s
- dh_builddeb -s
- binary: binary-indep binary-arch
- .PHONY: build clean binary-indep binary-arch binary install
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement