mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
176 lines
5.7 KiB
Makefile
176 lines
5.7 KiB
Makefile
define EXTRAVERSION
|
|
$(shell $(CAT) EXTRAVERSION)
|
|
endef
|
|
|
|
define COMPLETE_VERSION
|
|
$(shell $(CAT) COMPLETE_VERSION)
|
|
endef
|
|
|
|
KERNEL_MAJOR = $(shell echo $(KERNEL_VERSION) | cut -d\. -f1)
|
|
KERNEL_MINOR = $(shell echo $(KERNEL_VERSION) | cut -d\. -f2)
|
|
KERNEL_RELEASE = $(shell echo $(KERNEL_VERSION) | cut -d\. -f3)
|
|
KERNEL_DLOAD_DIR ?= /home/samba/dat/share/exe/linux/os
|
|
KERNEL_PKG_BASE = $(KERNEL_DLOAD_DIR)/$(KERNEL_MAJOR).$(KERNEL_MINOR)/linux-$(KERNEL_VERSION).tar
|
|
LINUX_KERNEL_PATCH_DIR ?= $(CVS_ROOT_DIR)/conf/jannet.de/all/lx-patches
|
|
HOST ?= $(HOSTNAME)
|
|
|
|
ifneq ($(wildcard $(KERNEL_PKG_BASE).*),)
|
|
ifneq ($(wildcard $(KERNEL_PKG_BASE).gz),)
|
|
KERNEL_PKG = $(KERNEL_PKG_BASE).gz
|
|
KERNEL_SRC_DIR = $(shell tar -tzf $(KERNEL_DIR)/$(KERNEL_PKG) | grep -v pax_global_header | head -1)
|
|
endif
|
|
ifneq ($(wildcard $(KERNEL_PKG_BASE).bz2),)
|
|
KERNEL_PKG = $(KERNEL_PKG_BASE).bz2
|
|
KERNEL_SRC_DIR = $(shell tar -tjf $(KERNEL_DIR)/$(KERNEL_PKG) | grep -v pax_global_header | head -1)
|
|
endif
|
|
else
|
|
KERNEL_PKG = $(KERNEL_PKG_BASE).bz2
|
|
KERNEL_SRC_DIR = linux-$(KERNEL_VERSION)
|
|
endif
|
|
WD := $(shell $(PWD))
|
|
TAG = $(shell echo V_$(KERNEL_VERSION)_$(RPM_RELEASE) | $(SED) 's/\./_/g')
|
|
ARCH = $(shell $(RPMBUILD) --showrc | $(SED) '/build arch / !d; s/.*build arch *://; s/ //g')
|
|
|
|
PATCHES += $(wildcard $(LINUX_KERNEL_PATCH_DIR)/*-$(KERNEL_VERSION).patch) \
|
|
$(wildcard $(LINUX_KERNEL_PATCH_DIR)/*-$(KERNEL_VERSION).diff)
|
|
LOCAL_PATCHES = $(notdir $(PATCHES))
|
|
SUBMAKEFILE = $(MODDIR)/make/linux-rpm-build.mk
|
|
|
|
KERNEL_URL = ftp.kernel.org:/pub/linux/kernel/v$(KERNEL_MAJOR).$(KERNEL_MINOR)/linux-$(KERNEL_VERSION).tar.bz2
|
|
KERNEL_TGZ = $(notdir $(KERNEL_URL))
|
|
|
|
# exports
|
|
export KERNEL_VERSION
|
|
export KERNEL_INSTALL_PREFIX
|
|
|
|
# first target
|
|
all: rpm
|
|
install: install.this
|
|
clean: thisclean
|
|
distclean: clean
|
|
|
|
# file rules
|
|
$(KERNEL_PKG):
|
|
mkdir -p $(dir $(KERNEL_PKG))
|
|
ftp -a $(KERNEL_URL)
|
|
install -m 664 $(notdir $(KERNEL_PKG)) $@
|
|
|
|
EXTRAVERSION: linux-$(KERNEL_VERSION)/Makefile
|
|
$(SED) '/^ *EXTRAVERSION *=/ !d; s/^ *EXTRAVERSION *= *-*//; s/ *$$//' $< >$@
|
|
|
|
COMPLETE_VERSION: EXTRAVERSION
|
|
#ifeq ($(shell echo $(KERNEL_VERSION) | $(SED) '/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/ !d'),)
|
|
# echo -n $(KERNEL_VERSION)-$(EXTRAVERSION) | $(SED) 's/- *$$//' > $@
|
|
#else
|
|
echo -n $(KERNEL_MAJOR).$(KERNEL_MINOR).$(KERNEL_RELEASE)$(EXTRAVERSION) > $@
|
|
#endif
|
|
|
|
config-$(KERNEL_VERSION):
|
|
cp $(shell ls config-$(KERNEL_MAJOR).$(KERNEL_MINOR).* | $(SED) 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]\)[.$$]./\1.\2.0\3/; s/\.\([0-9]\)$$/.0\1/' | sort -g | $(SED) 's/\.0/./g; $$ !d') $@
|
|
cvs add $@
|
|
cvs commit $@
|
|
|
|
toplevel-makefile: unpack.done patches.done
|
|
awk -v release=$(RPM_RELEASE) '{ \
|
|
if ($$0 ~ /EXTRAVERSION *= *-/) { \
|
|
oldextra=$$3; \
|
|
gsub(/-/,_,oldextra); \
|
|
printf "EXTRAVERSION = _%s-%s\n", oldextra, release \
|
|
} else if ($$0 ~ /EXTRAVERSION *= *\./) { \
|
|
oldextra=$$3; \
|
|
gsub(/-/,_,oldextra); \
|
|
printf "EXTRAVERSION = %s-%s\n",oldextra, release \
|
|
} else if ($$0 ~ /EXTRAVERSION *= *$$/) { \
|
|
if (release ~ "^ *$$") { \
|
|
printf "EXTRAVERSION =\n" \
|
|
} else { \
|
|
printf "EXTRAVERSION = -%s\n",release \
|
|
} \
|
|
} else { \
|
|
print $$0 \
|
|
} \
|
|
}' linux-$(KERNEL_VERSION)/Makefile >$@
|
|
|
|
linux-$(KERNEL_VERSION)/Makefile: toplevel-makefile
|
|
cp $< $@
|
|
|
|
unpack.done: $(KERNEL_PKG)
|
|
$(RM) -rf linux-$(KERNEL_VERSION)
|
|
ifeq ($(suffix $(KERNEL_PKG)),.gz)
|
|
tar -xzf $(KERNEL_PKG)
|
|
endif
|
|
ifeq ($(suffix $(KERNEL_PKG)),.bz2)
|
|
tar -xjf $(KERNEL_PKG)
|
|
endif
|
|
ln -s linux-$(KERNEL_VERSION) linux
|
|
touch $@
|
|
|
|
update.done:
|
|
cvs update -dP
|
|
make rpm
|
|
touch $@
|
|
|
|
version:
|
|
date >> RELEASE-$(KERNEL_VERSION)
|
|
cvs commit -m "$(KERNEL_VERSION)" RELEASE-$(KERNEL_VERSION)
|
|
exit 1
|
|
|
|
patch-%:
|
|
mkdir -p patches
|
|
make patches/$*-$(KERNEL_VERSION).patch
|
|
|
|
clean-patch-%:
|
|
$(RM) -f patches/$*-$(KERNEL_VERSION).patch
|
|
make patches/$*-$(KERNEL_VERSION).patch
|
|
|
|
patches/%-$(KERNEL_VERSION).patch:
|
|
make unpack.done
|
|
export LANG=en_US ;\
|
|
diff --exclude=CVS --unidirectional-new-file -aur \
|
|
linux-$(KERNEL_VERSION) linux-$(KERNEL_VERSION)-$* | \
|
|
grep -vie "^Nur in \|Only in " > $@.part; exit 0
|
|
mv $@.part $@
|
|
|
|
patches.done: unpack.done $(addsuffix .done,$(notdir $(PATCHES)))
|
|
touch $@
|
|
|
|
%.patch.done: %.patch
|
|
patch -d linux-$(KERNEL_VERSION) -p1 < $<
|
|
touch $@
|
|
|
|
%.diff.done: %.diff
|
|
patch -d linux-$(KERNEL_VERSION) -p1 < $<
|
|
touch $@
|
|
|
|
%.patch:
|
|
make $(filter %/$@,$(PATCHES))
|
|
cp $(filter %/$@,$(PATCHES)) $@
|
|
|
|
%.diff:
|
|
make $(filter %/$@,$(PATCHES))
|
|
cp $(filter %/$@,$(PATCHES)) $@
|
|
|
|
unpack: unpack.done
|
|
patch: patches.done
|
|
prepare: unpack patch EXTRAVERSION COMPLETE_VERSION
|
|
install: all
|
|
|
|
DEFERRED_TARGETS = \
|
|
current.uldone ping ssh build \
|
|
tgz spm rpm upload tag copy-run copy-devel copy \
|
|
shutdown reboot update-rpm erase-rpm
|
|
|
|
$(DEFERRED_TARGETS): prepare
|
|
make -f $(MODDIR)/make/linux-rpm-build.mk $@
|
|
thisclean:
|
|
touch EXTRAVERSION COMPLETE_VERSION
|
|
make -f $(SUBMAKEFILE) clean
|
|
|
|
install.this:
|
|
make -f $(SUBMAKEFILE) install
|
|
|
|
export \
|
|
TOPDIR MODDIR KERNEL_VERSION RPM_RELEASE HOST KERNEL_PKG_SUFFIX CUSTOMER \
|
|
KERNEL_BASE_DIR KERNEL_PKG KERNEL_BASE UPLOAD_HOST UPLOAD_PATH \
|
|
UPLOAD_OWNER BOOT_LABEL BOOT_LABEL PATCHES KERNEL_MAJOR KERNEL_MINOR \
|
|
KERNEL_RELEASE WD
|