.PHONY: all clean patch clean-merged clean-numbered clean-other # # You can force DIFFVER to a particular value when rebuilding the final patch # against a different base version without redoing everything. Eg: # # make BASEVER=2.4.27 DIFFVER=2.4.28 # # Note: If patch runs too slow, it may be wise to set TMPDIR to some # ramfs-based directory. # automatically filled from CONTENTS BASEVER:= $(shell set -- $$(grep -ih -m 1 "^++.*Based" CONTENTS); echo $$5) KERNVER:= $(shell set -- $$(grep -ih -m 1 "^++.*Kernel" CONTENTS); echo $$4) CSETVER:= $(shell set -- $$(grep -ih -m 1 "^++.*Changeset" CONTENTS); echo $$4) ifeq "$(CSETVER)" "" CSETVER:= $(BASEVER) endif DIFFVER:= $(BASEVER) KERNDIR:= /usr/src/linux-$(BASEVER) export BASEVER DIFFVER KERNVER CSETVET KERNDIR all: patch release: patch web web: patch clean-web clean-other rm -f merged/2.4*-2.4* merged/2.6*-2.6* bzip2 -9 merged/*.diff mkdir -p web/$(KERNVER) mv merged/* web/$(KERNVER) chmod ugo+r pool/* CHANGELOG CONTENTS cp CHANGELOG CONTENTS web/$(KERNVER)/ ln -s $(PWD)/ patches-$(KERNVER) tar --exclude=patches-$(KERNVER)/web \ --exclude=patches-$(KERNVER)/merged \ --exclude=patches-$(KERNVER)/kernel \ --exclude=patches-$(KERNVER)/numbered \ --exclude=patches-$(KERNVER)/patches-$(KERNVER) \ -cf - patches-$(KERNVER)/* \ | bzip2 -c9 >web/$(KERNVER)/patches-$(KERNVER).tar.bz2 rm -f patches-$(KERNVER) chmod 755 web/$(KERNVER) chmod 644 web/$(KERNVER)/* patch: merged/$(DIFFVER)-$(KERNVER).diff merged/$(DIFFVER)-$(KERNVER).diff: kernel/linux-$(DIFFVER)/.copied \ kernel/linux-$(KERNVER)/.patched mkdir -p merged BASEVER=$(DIFFVER) tools/mkpatch justpatch: kernel/linux-$(KERNVER)/.patched kernel/linux-$(KERNVER)/.patched: kernel/linux-$(BASEVER)/.copied numbered tools/patch-copy kernel/linux-%/.copied: numbered BASEVER=$* KERNDIR=$(KERNDIR:$(BASEVER)=$*) tools/make-copy numbered: CONTENTS mkdir -p numbered tools/create-links < $< tools/mkcontents tools/mkversion clean: clean-merged clean-kernel clean-numbered clean-other clean-merged: rm -rf merged clean-kernel: rm -rf kernel clean-numbered: rm -rf numbered clean-other: rm -rf *~ doc/*~ clean-web: rm -rf web rm -f patches-$(KERNVER) distclean: clean clean-web check: @sed -e 's/applying [0-9]\{3\}-/applying /' apply.log >a.log~ @sed -e 's/applying [0-9]\{3\}-/applying /' kernel/patch-*.log >b.log~ @xterm -geometry 160x25 -e sh -c '(diff -y -W 160 {a,b}.log~;rm -f {a,b}.log~) | sed -ne "1~2s/$$//p;2~2s/$$//p" | less -r' &