jw-pkg/make/rpmdist.mk

134 lines
4.1 KiB
Makefile
Raw Normal View History

UPLOAD_SH = $(MOD_SCRIPT_DIR)/upload.sh
ifeq ($(RPM_PROJECT),)
RPM_PROJECT ?= $(PROJECT)
endif
MKSPEC_SH ?= $(MOD_SCRIPT_DIR)/mkspec_wrapper.sh $(TOPDIR)/make/mkspec.sh
FTP_SRC_GROUP ?= $(shell id -g)
FTP_SRC_USER ?= $(shell whoami)
FTP_RUN_GROUP ?= $(shell id -g)
FTP_RUN_USER ?= $(shell whoami)
FTP_DEV_GROUP ?= $(shell id -g)
FTP_DEV_USER ?= $(shell whoami)
FTP_HOST ?= ftp.jannet.de
FTP_FILE_MODE ?= 644
FTP_DIR_MODE ?= 755
FTP_HOST ?= ftp.jannet.de
FTP_HOST_LOGIN ?= root
RPM_PROJECT ?= $(PROJECT)
RPM_VERSION ?= $(DIST_VERSION)
RPM_ARCH ?= i586
RPMBUILD ?= rpmbuild
include $(MODDIR)/make/tag-defs.mk
2002-07-10 12:24:05 +00:00
CLEAN += $(wildcard *.spec *.rpm *~ *.rpmrc *.dist .*.swp)
2002-07-10 12:24:05 +00:00
DIST_SRC_DIR = dist/src/$(RPM_PROJECT)-$(RPM_VERSION)
2002-07-01 18:26:01 +00:00
DIST_PCKG_DIR = dist/pckg
#DIST_FILE = $(DIST_PCKG_DIR)/$(PROJECT)-$(DIST_VERSION).tar.gz
2002-07-01 18:26:01 +00:00
PCKG_TAR ?= $(RPM_PROJECT)-$(RPM_VERSION).tar.gz
PCKG_RPM_RUN_I386 ?= $(RPM_PROJECT)-run-$(RPM_VERSION).$(RPM_ARCH).rpm
PCKG_RPM_DEVEL_I386 ?= $(RPM_PROJECT)-devel-$(RPM_VERSION).$(RPM_ARCH).rpm
PCKG_RPM_SRC ?= $(RPM_PROJECT)-$(RPM_VERSION).src.rpm
include $(MODDIR)/make/upload-defs.mk
2002-07-01 18:26:01 +00:00
DIST_FILES = $(shell echo $(REMOTE_TARGETS) | sed 's/\b.*\///g; s/:.*\b//g')
RPMS_DIR = /usr/src/packages/RPMS/$(RPM_ARCH)
2002-07-01 18:26:01 +00:00
SRPMS_DIR = /usr/src/packages/SRPMS
2004-11-29 21:56:13 +00:00
DIST_DIRS = $(DIST_SRC_DIR) $(DIST_PCKG_DIR)
DIST_PCKG_RPM = $(DIST_PCKG_DIR)/$(PCKG_RPM_RUN_I386) $(DIST_PCKG_DIR)/$(PCKG_RPM_DEVEL_I386)
include $(MODDIR)/make/tag-rules.mk
include $(MODDIR)/make/upload-rules.mk
all:
install:
clean: rpm-clean
distclean: rpm-clean
tgz: $(PCKG_TAR)
ftag: ftag.dist
rpm-upload-stable: rpm-upload-STABLE.dist
rpm-upload-rc: rpm-upload-RC.dist
rpm-release: update-repo.dist
rpm-clean: clean.rpm
rpm-uninstall: rpmuninstall.dist
rpm-install: rpminstall.dist
clean.rpm:
rm -rf $(DIST_SRC_DIR) $(PCKG_TAR) *.dist
2002-07-01 18:26:01 +00:00
cpmod.dist:
2002-07-02 10:12:06 +00:00
for mod in $(SUBDIRS); do \
make -C $$mod distclean ;\
mkdir -p $(DIST_SRC_DIR)/$$mod ;\
tar -C $$mod \
--exclude=dist \
--exclude=pckg \
--exclude=Debug \
--exclude=CVS \
--exclude=old \
--exclude=v1.1 \
--exclude='*.o' \
--exclude='*~' \
--exclude=xml-flat \
2002-07-02 10:12:06 +00:00
--exclude=contrib \
-cf - . | tar -C $(DIST_SRC_DIR)/$$mod -xf - ;\
done
2002-07-01 18:26:01 +00:00
touch $@
2002-07-01 18:26:01 +00:00
cpfiles.dist:
mkdir -p $(DIST_SRC_DIR)
cp $(wildcard Makefile configure.ac.tmpl) $(DIST_SRC_DIR)
sh $(MKSPEC_SH) -V $(RPM_VERSION) -S $(notdir $(PCKG_TAR)) -N $(RPM_PROJECT) -R "$(RPM_REQUIRED)" \
-P $(PROJECT) \
> $(DIST_SRC_DIR)/$(RPM_PROJECT)-$(RPM_VERSION).spec
2002-07-10 12:24:05 +00:00
echo $(RPM_VERSION) > $(DIST_SRC_DIR)/VERSION
2002-07-01 18:26:01 +00:00
touch $@
2002-07-01 18:26:01 +00:00
%.tar.gz: cpfiles.dist cpmod.dist
mkdir -p $(DIST_PCKG_DIR)
tar $(addprefix --exclude=,$(patsubst %,"%",$(basename $(shell find . -name *.in | sed 's%\./%*/%; s%\(.*\)%\1%g')))) \
-czvf $@ -C $(dir $(DIST_SRC_DIR)) $(notdir $(DIST_SRC_DIR))
2004-07-29 11:38:49 +00:00
2002-07-01 18:26:01 +00:00
%.src.rpm: %.tar.gz
$(RPMBUILD) -ts $<
2002-07-01 18:26:01 +00:00
cp $(SRPMS_DIR)/$(notdir $@) $@
2004-11-29 21:56:13 +00:00
$(DIST_PCKG_RPM): $(DIST_PCKG_DIR)/$(PCKG_TAR)
if [ $< -nt $(RPMS_DIR)/$(notdir $@) ]; then $(RPMBUILD) -tb $<; fi
cp $(RPMS_DIR)/$(notdir $@) $@
2002-07-03 20:33:20 +00:00
$(DIST_PCKG_DIR)/CURRENT_%: $(TOPDIR)/VERSION
2002-07-01 18:26:01 +00:00
echo $(CURRENT_$*) > $@
build.dist: $(DIST_FILES)
2004-11-29 21:56:13 +00:00
rpminstall.dist: $(DIST_PCKG_RPM)
for p in $^; do \
if ! /bin/rpm -q `basename $$p | sed "s/\.$(RPM_ARCH)\.rpm//"` > /dev/null 2>&1 ; then \
echo installing $$p ;\
sudo /bin/rpm -U $$p; \
fi; \
done
2004-11-29 21:56:13 +00:00
touch $@
rpmuninstall.dist: $(DIST_PCKG_RPM)
for s in devel run; do \
if /bin/rpm -q $(RPM_PROJECT)-$$s > /dev/null 2>&1 ; then \
sudo /bin/rpm -e $(RPM_PROJECT)-$$s --nodeps; \
fi; \
done
upload-%.dist: %_$(PROJECT_CAPNAME)_RPM_RUN_I386
cvs commit $<
$(UPLOAD_SH) $< $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/$<:640:750:$(FTP_RUN_USER).$(FTP_RUN_GROUP)
touch $@
update-repo.dist: upload.dist
ssh -l root $(FTP_HOST) /etc/cron.hourly/create_packet_descriptions.sh
touch $@