.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

# 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
patch: merged/$(DIFFVER)-$(KERNVER).diff

merged/$(DIFFVER)-$(KERNVER).diff: kernel/linux-$(DIFFVER)/.copied \
				kernel/linux-$(KERNVER)/.patched
	mkdir -p merged
	BASEVER=$(DIFFVER) tools/mkpatch

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 pool/patch-contents pool/patch-version
	mkdir -p numbered
	tools/create-links < $<

pool/patch-contents: CONTENTS
	tools/mkcontents

pool/patch-version: CONTENTS
	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
	rm -f pool/patch-contents pool/patch-version

clean-other:
	rm  -rf *~ doc/*~
