mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 20:13:32 +01:00
215 lines
6.9 KiB
Makefile
215 lines
6.9 KiB
Makefile
# abbreviations
|
|
define EXTRAVERSION
|
|
$(shell $(CAT) EXTRAVERSION)
|
|
endef
|
|
define COMPLETE_VERSION
|
|
$(shell $(CAT) COMPLETE_VERSION)
|
|
endef
|
|
|
|
HOST ?= $(HOSTNAME)
|
|
KERNEL_BASE ?= lx-$(HOST)
|
|
BOOT_LABEL ?= lx-$(KERNEL_VERSION)-$(RPM_RELEASE)
|
|
KERNEL_PKG_SUFFIX ?= .tar.gz
|
|
CUSTOMER ?= jannet
|
|
KERNEL_DLOAD_DIR ?= /home/samba/dat/exe/linux/os
|
|
KERNEL_PKG ?= $(KERNEL_DLOAD_DIR)/$(shell echo $(KERNEL_VERSION) | $(SED) 's/\([0-9]\.[0-9]*\)\..*/\1/')/linux-$(shell echo $(KERNEL_VERSION) | $(SED) 's/\(2\.6\.[0-9]+\)-..*/\1/')$(KERNEL_PKG_SUFFIX)
|
|
UPLOAD_HOST ?= ftp.jannet.de
|
|
UPLOAD_PATH ?= /srv/ftp/pub/packages/$(CUSTOMER)/$(KERNEL_BASE)
|
|
UPLOAD_OWNER ?= $(shell whoami)
|
|
|
|
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_PKG_BASE = $(KERNEL_DLOAD_DIR)/$(KERNEL_MAJOR).$(KERNEL_MINOR)/linux-$(KERNEL_VERSION).tar
|
|
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
|
|
#HOST = $(shell cd ../..; pwd | xargs basename)
|
|
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')
|
|
|
|
RPMBUILD = $(shell which rpmbuild 2>/dev/null)
|
|
ifeq ($(RPMBUILD),)
|
|
RPMBUILD = $(shell which rpm 2>/dev/null)
|
|
endif
|
|
|
|
#ifeq ($(wildcard RELEASE-$(KERNEL_VERSION)),)
|
|
#RPM_RELEASE := $(shell make newrelease; exit 1)
|
|
#else
|
|
#RPM_RELEASE_NUM := $(strip $(shell grep Id: RELEASE-$(KERNEL_VERSION) | $(SED) "s/.*RELEASE-$(KERNEL_VERSION),v[ ]*[0-9]*\.\([0-9]*\)[^0-9]*.*/\1/"))
|
|
#ifeq ($(UNAME_SUFFIX),)
|
|
#RPM_RELEASE = $(RPM_RELEASE_NUM)
|
|
#else
|
|
#RPM_RELEASE = $(UNAME_SUFFIX)$(RPM_RELEASE_NUM)
|
|
#endif
|
|
#endif
|
|
BASE = $(KERNEL_BASE)-$(COMPLETE_VERSION)
|
|
TMP_INSTALL = $(KERNEL_BASE)-$(COMPLETE_VERSION)
|
|
BASE_RUN = $(KERNEL_BASE)-run-$(COMPLETE_VERSION)
|
|
BASE_DEVEL = $(KERNEL_BASE)-devel-$(COMPLETE_VERSION)
|
|
|
|
ifeq ($(BOOT_LABEL),)
|
|
BOOT_LABEL = lx-$(COMPLETE_VERSION)
|
|
endif
|
|
|
|
KERNEL_TGZ = $(notdir $(KERNEL_PKG))
|
|
F_SPEC = $(BASE).spec
|
|
F_TGZ = $(BASE).tar.gz
|
|
F_SPM = $(BASE).src.rpm
|
|
F_RPM_RUN = $(BASE_RUN).$(ARCH).rpm
|
|
F_RPM_DEVEL = $(BASE_DEVEL).$(ARCH).rpm
|
|
F_RPMS = $(F_RPM_RUN) $(F_RPM_DEVEL)
|
|
F_BOOTFILES = $(addsuffix -$(COMPLETE_VERSION),$(addprefix $(TMP_INSTALL)/boot/,vmlinuz config System.map))
|
|
F_CURRENT = $(addprefix CURRENT_, SRC RPM_SRC RPM_RUN_I386 RPM_DEVEL_I386)
|
|
F_ULDONE = $(addsuffix .uldone,$(F_RPMS) $(F_TGZ) $(F_SPM) current)
|
|
# note that order matters for F_ULDONE and F_RPMS (remote directory attributes)
|
|
KERNEL_INSTALL_PREFIX= $(shell pwd)/$(TMP_INSTALL)
|
|
|
|
BUILD = sh $(MODDIR)/devutil/jcs/build_linux.sh \
|
|
-c config-$(KERNEL_VERSION) \
|
|
-t $(HOST) \
|
|
-b $(WD) \
|
|
-a i386 \
|
|
-s $(KERNEL_SRC_DIR) \
|
|
-i $(TMP_INSTALL)
|
|
MKSPEC := $(MODDIR)/devutil/jcs/mkspec-linux.sh
|
|
|
|
# exports
|
|
export KERNEL_VERSION
|
|
export KERNEL_INSTALL_PREFIX
|
|
|
|
# first target
|
|
all: rpm
|
|
|
|
# file rules
|
|
%.lxdone: config-$(KERNEL_VERSION) $(LOCAL_PRE_BUILD) linux-$(KERNEL_VERSION)/Makefile
|
|
$(BUILD) $(basename $@)
|
|
touch $@
|
|
|
|
$(TMP_INSTALL)/$(F_SPEC): linux-$(KERNEL_VERSION)/Makefile $(MKSPEC) Makefile
|
|
sh $(MKSPEC) -d $(TMP_INSTALL) -b $(KERNEL_BASE) -v $(shell echo $(COMPLETE_VERSION) | $(SED) 's/-[0-9][0-9]*.*//') -r $(RPM_RELEASE) -a $(ARCH) -l $(BOOT_LABEL) > $@
|
|
|
|
$(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)-$(RPM_RELEASE): build.lxdone $(LOCAL_AFTER_KERNEL_BUILD)
|
|
@echo -n
|
|
|
|
.PRECIOUS: $(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)
|
|
|
|
$(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)-$(RPM_RELEASE): $(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)
|
|
cp $< $@
|
|
|
|
$(F_TGZ): Makefile build.lxdone $(F_BOOTFILES) $(TMP_INSTALL)/$(F_SPEC)
|
|
tar -czf $@ \
|
|
$(F_BOOTFILES) \
|
|
$(addprefix $(TMP_INSTALL)/, \
|
|
lib \
|
|
$(F_SPEC) \
|
|
)
|
|
|
|
%.src.rpm: %.tar.gz
|
|
$(RPMBUILD) -ts $<
|
|
cp /usr/src/packages/SRPMS/$@ .
|
|
|
|
rpm.done: $(F_SPM)
|
|
$(RPMBUILD) --rebuild $(F_SPM)
|
|
touch $@
|
|
|
|
%.$(ARCH).rpm: rpm.done
|
|
cp /usr/src/packages/RPMS/$(ARCH)/$@ .
|
|
|
|
CURRENT_RPM_RUN_I386: $(F_RPM_RUN)
|
|
echo $(UPLOAD_PATH)/rpm/run/$(F_RPM_RUN) > $@
|
|
|
|
CURRENT_RPM_DEVEL_I386: $(F_RPM_RUN)
|
|
echo $(UPLOAD_PATH)/rpm/devel/$(F_RPM_DEVEL) > $@
|
|
|
|
CURRENT_RPM_SRC: $(F_RPM_RUN)
|
|
echo $(UPLOAD_PATH)/rpm/src/$(F_RPM_SRC) > $@
|
|
|
|
CURRENT_SRC: $(F_RPM_RUN)
|
|
echo $(UPLOAD_PATH)/src/$(F_TGZ) > $@
|
|
|
|
update.done:
|
|
cvs update -dP
|
|
make rpm
|
|
touch $@
|
|
|
|
upload.done: $(F_RPMS)
|
|
touch $@
|
|
|
|
%.tar.gz.uldone: %.tar.gz
|
|
upload.sh $< rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/src/$<:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
|
|
touch $@
|
|
|
|
%.src.rpm.uldone: %.src.rpm
|
|
upload.sh $< rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/rpm/src/$<:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
|
|
touch $@
|
|
|
|
%.rpm.uldone: %.rpm
|
|
upload.sh $< rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/rpm/$(shell echo $@ | $(SED) 's/.*\(run\|devel\).*/\1/')/$<:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
|
|
touch $@
|
|
|
|
current.uldone: $(F_CURRENT)
|
|
upload.sh $^ rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
|
|
touch $@
|
|
|
|
tag.done:
|
|
cvs tag $(TAG)
|
|
touch $@
|
|
|
|
copy-run.done: $(F_RPM_RUN)
|
|
scp $< root@$(HOST):/root/rpm/
|
|
touch $@
|
|
copy-devel.done: $(F_RPM_DEVEL)
|
|
scp $< root@$(HOST):/root/rpm/
|
|
touch $@
|
|
|
|
ping:
|
|
ping $(HOST)
|
|
ssh:
|
|
$(CVS_RSH) -l root $(HOST)
|
|
|
|
# user targets
|
|
unpack: unpack.done
|
|
build: build.lxdone
|
|
driver: driver.done
|
|
tgz: $(F_TGZ)
|
|
spm: $(F_SPM)
|
|
rpm: $(F_RPMS)
|
|
upload: update.done rpm $(F_ULDONE)
|
|
tag: tag.done
|
|
install: build.lxdone install.lxdone
|
|
copy-run: copy-run.done
|
|
copy-devel: copy-devel.done
|
|
copy: copy-run copy-devel
|
|
patch: patches.done
|
|
shutdown:
|
|
$(CVS_RSH) -l root $(HOST) "shutdown -h now"
|
|
reboot:
|
|
-l root $(HOST) "reboot"
|
|
update-rpm: copy
|
|
$(CVS_RSH) -l root $(HOST) rpm -U $(addprefix rpm/,$(F_RPMS))
|
|
erase-rpm:
|
|
$(CVS_RSH) -l root $(HOST) rpm -e $(KERNEL_BASE)-run $(KERNEL_BASE)-devel
|
|
dist: clean
|
|
cd ..;\
|
|
tar -czf kernel.tar.gz `find kernel -maxdepth 1 -type f | grep -ve "setup\|trash\|CVS"`
|
|
mv ../kernel.tar.gz .
|
|
clean:
|
|
$(RM) -rf $(KERNEL_BASE)-*
|
|
$(RM) -rf install/* reiser.patch *~ *.done *.lxdone *.uldone *.patch *.diff *.rpm *.tar.gz *.tar \
|
|
$(SCOPE_DRIVER_BASE)
|
|
$(RM) -rf linux linux-$(KERNEL_VERSION) CURRENT_* pax_global_header
|
|
$(RM) -f toplevel-makefile EXTRAVERSION COMPLETE_VERSION
|
|
|
|
distclean: clean
|