linux-rpm.mk: Add support for automatic patching

- Add support for automatic patching
  - Add support for oldstyle rpmbuild functionality inside rpm
This commit is contained in:
Jan Lindemann 2005-03-30 15:42:59 +00:00 committed by Jan Lindemann
commit a6122c4f26

View file

@ -13,6 +13,10 @@
#UPLOAD_PATH = /home/ftp/dat/pub/packages/$(CUSTOMER)/linux/$(HOST)
#UPLOAD_OWNER = $(shell whoami)
RPMBUILD = $(shell which rpmbuild 2>/dev/null)
ifeq ($(RPMBUILD),)
RPMBUILD = $(shell which rpm 2>/dev/null)
endif
# abbreviations
KERNEL_MINOR := $(shell echo $(KERNEL_VERSION) | cut -d\. -f2)
#HOST = $(shell cd ../..; pwd | xargs basename)
@ -20,7 +24,7 @@ WD := $(shell pwd)
KERNEL_SRC_DIR = $(shell tar -tzf $(KERNEL_DIR)/$(KERNEL_PKG) | head -1)
TMP_INSTALL = $(KERNEL_BASE)-$(KERNEL_VERSION)-$(KERNEL_RELEASE)
TAG = $(shell echo V_$(KERNEL_VERSION)_$(KERNEL_RELEASE) | sed 's/\./_/g')
ARCH = $(shell rpmbuild --showrc | sed '/build arch / !d; s/.*build arch *://; s/ //g')
ARCH = $(shell $(RPMBUILD) --showrc | sed '/build arch / !d; s/.*build arch *://; s/ //g')
ifeq ($(wildcard RELEASE-$(KERNEL_VERSION)),)
KERNEL_RELEASE := $(shell make newrelease; exit 1)
@ -63,6 +67,12 @@ BUILD = build_linux.sh \
-i $(TMP_INSTALL)
MKSPEC := $(shell which mkspec-linux.sh)
PATCHES += $(wildcard $(LINUX_KERNEL_PATCH_DIR)/*-$(KERNEL_VERSION).patch) \
$(wildcard $(LINUX_KERNEL_PATCH_DIR)/*-$(KERNEL_VERSION).diff)
LOCAL_PATCHES = $(notdir $(PATCHES))
LOCAL_PRE_BUILD = patches.done
# exports
export KERNEL_VERSION
export KERNEL_INSTALL_PREFIX
@ -116,11 +126,11 @@ $(F_TGZ): Makefile build.lxdone $(F_BOOTFILES) $(TMP_INSTALL)/$(F_SPEC)
)
%.src.rpm: %.tar.gz
rpmbuild -ts $<
$(RPMBUILD) -ts $<
cp /usr/src/packages/SRPMS/$@ .
rpm.done: $(F_SPM)
rpmbuild --rebuild $(F_SPM)
$(RPMBUILD) --rebuild $(F_SPM)
touch $@
%.$(ARCH).rpm: rpm.done
@ -183,6 +193,16 @@ ping:
ssh:
ssh -l root $(HOST)
patches.done: unpack.done $(addsuffix .done,$(notdir $(PATCHES)))
touch $@
%.patch.done: %.patch
patch -d linux-$(KERNEL_VERSION) -p1 < $<
touch $@
%.patch:
cp $(filter %/$@,$(PATCHES)) $@
# user targets
unpack: unpack.done
build: build.lxdone