cgal/Maintenance/rpm/GNUmakefile

154 lines
5.4 KiB
Makefile

CGAL_URL := $(shell ./get_cgal_trunk_url)
RPM_BUILD_ARCH:=$(shell rpm --showrc | awk '/^build arch/ { print $$4}')
RPMBUILD:=./rpmbuild
EXTRA_RPM_OPTIONS:=
RPM_OPTIONS:=$(EXTRA_RPM_OPTIONS)
# SUDO variable
# If you are not root, put:
# SUDO = sudo
# of
# SUDO = su -c
# or an equivalent command, to became root, in the local file my_makefile
# (which is not submitted to SVN).
SUDO:=
all:
@printf "Specify:\n make CGAL\n make CGAL-manual-tools\n"
@printf "or:\n make CGAL.install\n make CGAL-manual-tools.install\n"
#############################################################################
#
# CGAL-manual-tools package
#
#############################################################################
CGAL_MANUAL_REVISION:=$(shell rpm -q --qf '%{version}\n' --specfile SPECS/CGAL-manual-tools.spec | head -1)
CGAL_MANUAL_RELEASE_NUMBER:=$(shell rpm -q --qf '%{release}\n' --specfile SPECS/CGAL-manual-tools.spec | head -1)
RPM_OPTIONS+= --define "cgal_manual_revision $(CGAL_MANUAL_REVISION)"
CGAL_MANUAL_PACKAGE_VERSION=$(CGAL_MANUAL_REVISION)-$(CGAL_MANUAL_RELEASE_NUMBER).$(RPM_BUILD_ARCH)
CGAL_MANUAL_PACKAGE_PATH=RPMS/$(RPM_BUILD_ARCH)/CGAL-manual-tools-$(CGAL_MANUAL_PACKAGE_VERSION).rpm
CGAL_MANUAL_SRC_PACKAGE_PATH=SRPMS/CGAL-manual-tools-$(CGAL_MANUAL_REVISION)-$(CGAL_MANUAL_RELEASE_NUMBER).src.rpm
CGAL_MANUAL_PACKAGE_INSTALLED_VERSION=$(shell rpm -q --qf '%{VERSION}-%{RELEASE}.%{ARCH}' CGAL-manual-tools)
CGAL_MANUAL_PACKAGE_SOURCES = \
SOURCES/Manual_tools-$(CGAL_MANUAL_REVISION).tar.gz \
SOURCES/Manual-$(CGAL_MANUAL_REVISION).tar.gz
CGAL_MANUAL_PACKAGE_DEPS = \
$(CGAL_MANUAL_PACKAGE_SOURCES) \
SPECS/CGAL-manual-tools.spec
.PHONY:: prepare-CGAL-manual-tools-sources
prepare-CGAL-manual-tools-sources: $(CGAL_MANUAL_PACKAGE_SOURCES)
SOURCES/Manual_tools-$(CGAL_MANUAL_REVISION).tar.gz:
cd SOURCES && svn export -r $(CGAL_MANUAL_REVISION) --force \
$(CGAL_URL)/Manual_tools && \
tar czf Manual_tools-$(CGAL_MANUAL_REVISION).tar.gz Manual_tools/
rm -rf SOURCES/Manual_tools/
SOURCES/Manual-$(CGAL_MANUAL_REVISION).tar.gz:
cd SOURCES && svn export -r $(CGAL_MANUAL_REVISION) --force \
$(CGAL_URL)/Manual && \
tar czf Manual-$(CGAL_MANUAL_REVISION).tar.gz -C Manual/ .
rm -rf SOURCES/Manual/
$(CGAL_MANUAL_PACKAGE_PATH): $(CGAL_MANUAL_PACKAGE_DEPS)
ifeq ($(CGAL_MANUAL_PACKAGE_VERSION), $(CGAL_MANUAL_PACKAGE_INSTALLED_VERSION))
@echo CGAL-manual-tools.$(CGAL_MANUAL_PACKAGE_VERSION) already \
installed.
@echo You should increase the Release: tag.
else
$(RPMBUILD) $(RPM_OPTIONS) -bb SPECS/CGAL-manual-tools.spec
endif
$(CGAL_MANUAL_SRC_PACKAGE_PATH): $(CGAL_MANUAL_PACKAGE_DEPS)
$(RPMBUILD) $(RPM_OPTIONS) -bs SPECS/CGAL-manual-tools.spec
CGAL-manual-tools.src: $(CGAL_MANUAL_SRC_PACKAGE_PATH)
.PHONY:: CGAL-manual-tools CGAL-manual-tools.install CGAL-manual-tools.rpmlint
.PHONY:: CGAL-manual-tools.src
CGAL-manual-tools: $(CGAL_MANUAL_PACKAGE_PATH) $(CGAL_MANUAL_SRC_PACKAGE_PATH)
CGAL-manual-tools.install: $(CGAL_MANUAL_PACKAGE_PATH)
ifeq ($(findstring not installed,$(CGAL_MANUAL_PACKAGE_INSTALLED_VERSION)),)
$(SUDO) rpm -Uvh $(CGAL_MANUAL_PACKAGE_PATH)
else
$(SUDO) rpm -ivh $(CGAL_MANUAL_PACKAGE_PATH)
endif
CGAL-manual-tools.rpmlint: $(CGAL_MANUAL_PACKAGE_PATH) $(CGAL_MANUAL_SRC_PACKAGE_PATH)
rpmlint $(CGAL_MANUAL_PACKAGE_PATH) $(CGAL_MANUAL_SRC_PACKAGE_PATH)
#############################################################################
#
# CGAL package
#
#############################################################################
CGAL_VERSION:=$(shell rpm --specfile SPECS/CGAL.spec -q --qf '%{version}\n' | head -1)
RPM_OPTIONS += --define "cgal_version $(CGAL_VERSION)"
ifdef CGAL_INTERNAL_RELEASE
RPM_OPTIONS += --define "internal_release $(CGAL_INTERNAL_RELEASE)"
endif
CGAL_RELEASE_NUMBER:=$(shell rpm $(RPM_OPTIONS) --specfile SPECS/CGAL.spec -q --qf '%{release}\n' | head -1)
CGAL_PACKAGE_VERSION=$(CGAL_VERSION)-$(CGAL_RELEASE_NUMBER).$(RPM_BUILD_ARCH)
CGAL_PACKAGE_PATH=RPMS/$(RPM_BUILD_ARCH)/CGAL-$(CGAL_PACKAGE_VERSION).rpm
CGAL_DEVEL_PACKAGE_PATH=RPMS/$(RPM_BUILD_ARCH)/CGAL-devel-$(CGAL_PACKAGE_VERSION).rpm
CGAL_DEMO_PACKAGE_PATH=RPMS/$(RPM_BUILD_ARCH)/CGAL-demo-$(CGAL_PACKAGE_VERSION).rpm
CGAL_SRC_PACKAGE_PATH=SRPMS/CGAL-$(CGAL_VERSION)-$(CGAL_RELEASE_NUMBER).src.rpm
CGAL_PACKAGE_INSTALLED_VERSION=$(shell rpm -q --qf '%{VERSION}-%{RELEASE}.%{ARCH}' CGAL)
CGAL_PACKAGE_DEPS = \
SPECS/CGAL.spec
$(CGAL_PACKAGE_PATH): $(CGAL_PACKAGE_DEPS)
ifeq ($(CGAL_PACKAGE_VERSION), $(CGAL_PACKAGE_INSTALLED_VERSION))
@echo CGAL-manual-tools.$(CGAL_PACKAGE_VERSION) already \
installed.
@echo You should increase the Release: tag.
else
$(RPMBUILD) $(RPM_OPTIONS) -bb SPECS/CGAL.spec
endif
$(CGAL_SRC_PACKAGE_PATH): $(CGAL_PACKAGE_DEPS)
$(RPMBUILD) $(RPM_OPTIONS) -bs SPECS/CGAL.spec
.PHONY:: CGAL.src CGAL CGAL.install CGAL.rpmlint
CGAL.src: $(CGAL_PACKAGE_DEPS)
$(RPMBUILD) $(RPM_OPTIONS) -bs --nodeps SPECS/CGAL.spec
CGAL: $(CGAL_PACKAGE_PATH)
CGAL.install: $(CGAL_PACKAGE_PATH) $(CGAL_DEVEL_PACKAGE_PATH)
ifeq ($(findstring not installed,$(CGAL_PACKAGE_INSTALLED_VERSION)),)
$(SUDO) rpm -Uvh $(CGAL_PACKAGE_PATH) $(CGAL_DEVEL_PACKAGE_PATH)
else
$(SUDO) rpm -ivh $(CGAL_PACKAGE_PATH) $(CGAL_DEVEL_PACKAGE_PATH)
endif
CGAL.rpmlint: $(CGAL_PACKAGE_PATH) $(CGAL_DEVEL_PACKAGE_PATH) $(CGAL_SRC_PACKAGE_PATH)
rpmlint $(CGAL_PACKAGE_PATH) $(CGAL_DEVEL_PACKAGE_PATH) $(CGAL_SRC_PACKAGE_PATH)
-include my_makefile