123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- --- a/Makefile
- +++ b/Makefile
- @@ -5,7 +5,7 @@
- ifeq ($(KERNELRELEASE),)
-
- MAKEFLAGS += --no-print-directory
- -SHELL := /bin/bash
- +SHELL := /usr/bin/env bash
- BACKPORT_DIR := $(shell pwd)
-
- KMODDIR ?= updates
- @@ -19,6 +19,7 @@ KLIB_BUILD ?= $(KLIB)/build/
- KERNEL_CONFIG := $(KLIB_BUILD)/.config
- KERNEL_MAKEFILE := $(KLIB_BUILD)/Makefile
- CONFIG_MD5 := $(shell md5sum $(KERNEL_CONFIG) 2>/dev/null | sed 's/\s.*//')
- +STAMP_KERNEL_CONFIG := .kernel_config_md5_$(CONFIG_MD5)
-
- export KLIB KLIB_BUILD BACKPORT_DIR KMODDIR KMODPATH_ARG
-
- @@ -36,7 +37,8 @@ mrproper:
- @rm -f .kernel_config_md5 Kconfig.versions Kconfig.kernel
- @rm -f backport-include/backport/autoconf.h
-
- -.DEFAULT:
- +.SILENT: $(STAMP_KERNEL_CONFIG)
- +$(STAMP_KERNEL_CONFIG):
- @set -e ; test -f .local-symbols || ( \
- echo "/--------------" ;\
- echo "| You shouldn't run make in the backports tree, but only in" ;\
- @@ -60,57 +62,61 @@ mrproper:
- echo "| (that isn't currently running.)" ;\
- echo "\\--" ;\
- false)
- - @set -e ; if [ "$$(cat .kernel_config_md5 2>/dev/null)" != "$(CONFIG_MD5)" ] ;\
- - then \
- - echo -n "Generating local configuration database from kernel ..." ;\
- - grep -v -f .local-symbols $(KERNEL_CONFIG) | grep = | ( \
- - while read l ; do \
- - if [ "$${l:0:7}" != "CONFIG_" ] ; then \
- - continue ;\
- - fi ;\
- - l=$${l:7} ;\
- - n=$${l%%=*} ;\
- - v=$${l#*=} ;\
- - if [ "$$v" = "m" ] ; then \
- - echo config $$n ;\
- - echo ' tristate' ;\
- - elif [ "$$v" = "y" ] ; then \
- - echo config $$n ;\
- - echo ' bool' ;\
- - else \
- - continue ;\
- - fi ;\
- - echo " default $$v" ;\
- - echo "" ;\
- - done \
- - ) > Kconfig.kernel ;\
- - kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) kernelversion | \
- - sed 's/^\(\([3-4]\|2\.6\)\.[0-9]\+\).*/\1/;t;d') ;\
- - test "$$kver" != "" || echo "Kernel version parse failed!" ;\
- - test "$$kver" != "" ;\
- - kvers="$$(seq 14 39 | sed 's/^/2.6./')" ;\
- - kvers="$$kvers $$(seq 0 19 | sed 's/^/3./')" ;\
- - kvers="$$kvers $$(seq 0 99 | sed 's/^/4./')" ;\
- - print=0 ;\
- - for v in $$kvers ; do \
- - if [ "$$print" = "1" ] ; then \
- - echo config KERNEL_$$(echo $$v | tr . _) ;\
- - echo " def_bool y" ;\
- - fi ;\
- - if [ "$$v" = "$$kver" ] ; then print=1 ; fi ;\
- - done > Kconfig.versions ;\
- - # RHEL as well, sadly we need to grep for it ;\
- - RHEL_MAJOR=$$(grep '^RHEL_MAJOR' $(KERNEL_MAKEFILE) | \
- - sed 's/.*=\s*\([0-9]*\)/\1/;t;d') ;\
- - RHEL_MINOR=$$(grep '^RHEL_MINOR' $(KERNEL_MAKEFILE) | \
- - sed 's/.*=\s*\([0-9]*\)/\1/;t;d') ;\
- - for v in $$(seq 0 $$RHEL_MINOR) ; do \
- - echo config BACKPORT_RHEL_KERNEL_$${RHEL_MAJOR}_$$v ;\
- - echo " def_bool y" ;\
- - done >> Kconfig.versions ;\
- - echo " done." ;\
- - fi ;\
- - echo "$(CONFIG_MD5)" > .kernel_config_md5
- + @rm -f .kernel_config_md5_*
- + @touch $@
- +
- +Kconfig.kernel: $(STAMP_KERNEL_CONFIG) .local-symbols
- + @printf "Generating local configuration database from kernel ..."
- + @grep -v -f .local-symbols $(KERNEL_CONFIG) | grep = | ( \
- + while read l ; do \
- + if [ "$${l:0:7}" != "CONFIG_" ] ; then \
- + continue ;\
- + fi ;\
- + l=$${l:7} ;\
- + n=$${l%%=*} ;\
- + v=$${l#*=} ;\
- + if [ "$$v" = "m" ] ; then \
- + echo config $$n ;\
- + echo ' tristate' ;\
- + elif [ "$$v" = "y" ] ; then \
- + echo config $$n ;\
- + echo ' bool' ;\
- + else \
- + continue ;\
- + fi ;\
- + echo " default $$v" ;\
- + echo "" ;\
- + done \
- + ) > $@
- + @echo " done."
- +
- +Kconfig.versions: Kconfig.kernel
- + @kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) kernelversion | \
- + sed 's/^\(\([3-4]\|2\.6\)\.[0-9]\+\).*/\1/;t;d') ;\
- + test "$$kver" != "" || echo "Kernel version parse failed!" ;\
- + test "$$kver" != "" ;\
- + kvers="$$(seq 14 39 | sed 's/^/2.6./')" ;\
- + kvers="$$kvers $$(seq 0 19 | sed 's/^/3./')" ;\
- + kvers="$$kvers $$(seq 0 99 | sed 's/^/4./')" ;\
- + print=0 ;\
- + for v in $$kvers ; do \
- + if [ "$$print" = "1" ] ; then \
- + echo config KERNEL_$$(echo $$v | tr . _) ;\
- + echo " def_bool y" ;\
- + fi ;\
- + if [ "$$v" = "$$kver" ] ; then print=1 ; fi ;\
- + done > $@
- + @RHEL_MAJOR=$$(grep '^RHEL_MAJOR' $(KERNEL_MAKEFILE) | \
- + sed 's/.*=\s*\([0-9]*\)/\1/;t;d') ;\
- + RHEL_MINOR=$$(grep '^RHEL_MINOR' $(KERNEL_MAKEFILE) | \
- + sed 's/.*=\s*\([0-9]*\)/\1/;t;d') ;\
- + for v in $$(seq 0 $$RHEL_MINOR) ; do \
- + echo config BACKPORT_RHEL_KERNEL_$${RHEL_MAJOR}_$$v ;\
- + echo " def_bool y" ;\
- + done >> $@
- +
- +.DEFAULT:
- + @$(MAKE) Kconfig.versions
- @$(MAKE) -f Makefile.real "$@"
-
- .PHONY: defconfig-help
- --- a/Makefile.real
- +++ b/Makefile.real
- @@ -59,7 +59,7 @@ defconfig-%::
-
- backport-include/backport/autoconf.h: .config Kconfig.versions Kconfig.kernel
- @$(MAKE) oldconfig
- - @echo -n "Building backport-include/backport/autoconf.h ..."
- + @printf "Building backport-include/backport/autoconf.h ..."
- @grep -f .local-symbols .config | ( \
- echo "#ifndef COMPAT_AUTOCONF_INCLUDED" ;\
- echo "#define COMPAT_AUTOCONF_INCLUDED" ;\
- @@ -80,7 +80,12 @@ backport-include/backport/autoconf.h: .c
- esac ;\
- done ;\
- echo "#endif /* COMPAT_AUTOCONF_INCLUDED */" ;\
- - ) > backport-include/backport/autoconf.h
- + ) > $@.new
- + @if cmp -s $@ $@.new; then \
- + rm -f $@.new; \
- + else \
- + mv $@.new $@; \
- + fi
- @echo " done."
-
- .PHONY: modules
|