# # Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved. # TOPDIR = ../.. TREEROOT = $(shell cd ${TOPDIR}; pwd) include $(TOPDIR)/include/builddefs SPECF = $(PKG_NAME).spec LDIRT = *.rpm $(SPECF) rpmmacros rpmfiles* rpm-*.rc LSRCFILES = macros.template $(SPECF).in rpm-2.rc.template default install install-dev install-lib: include $(BUILDRULES) # Generate a binary rpm file dist : default $(SPECF) rpm-$(RPM_VERSION).rc $(RPMBUILD) -ba --rcfile ./rpm-$(RPM_VERSION).rc $(SPECF) # Because rpm prior to v.2.90 does not support macros and old style config # is not supported by rpm v.3, we have to resort to such ugly hacks ifneq ($(RPM_VERSION),2) rpm-$(RPM_VERSION).rc : rpmmacros @$(SED) -e '/^macrofiles:/s|~/.rpmmacros|rpmmacros|' $@ rpmmacros : macros.template @$(SED) -e 's|%topdir%|$(TREEROOT)|g' < $< > $@ else rpm-2.rc: rpm-2.rc.template @$(SED) -e 's|%topdir%|$(TOPDIR)|g' < $< > $@ endif # Generate the rpm specfile format file list from the install-sh manifest rpmfiles rpmfiles-dev rpmfiles-lib: $(SORT) -u $$DIST_MANIFEST | $(AWK) > $@ '\ $$1 == "d" { printf ("%%%%dir %%%%attr(%s,%s,%s) %s\n", $$2, $$3, $$4, $$5); } \ $$1 == "f" { if (match ($$6, "$(PKG_MAN_DIR)") || \ match ($$6, "$(PKG_DOC_DIR)")) \ printf ("%%%%doc "); \ if (match ($$6, "$(PKG_MAN_DIR)")) \ printf ("%%%%attr(%s,%s,%s) %s*\n", $$2, $$3, $$4, $$6); \ else \ printf ("%%%%attr(%s,%s,%s) %s\n", $$2, $$3, $$4, $$6); } \ $$1 == "l" { if (match ($$3, "$(PKG_MAN_DIR)") || \ match ($$3, "$(PKG_DOC_DIR)")) \ printf ("%%%%doc "); \ if (match ($$3, "$(PKG_MAN_DIR)")) \ printf ("%%%%attr(0777,root,root) %s*\n", $$3); \ else \ printf ("%%%%attr(0777,root,root) %s\n", $$3); }' .PHONY: $(SPECF) ${SPECF} : ${SPECF}.in $(SED) -e's|@pkg_name@|$(PKG_NAME)|g' \ -e's|@pkg_version@|$(PKG_VERSION)|g' \ -e's|@pkg_release@|$(PKG_RELEASE)|g' \ -e's|@pkg_distribution@|$(PKG_DISTRIBUTION)|g' \ -e's|@build_root@|$(DIST_ROOT)|g' \ -e'/^BuildRoot: *$$/d' \ -e's|@make@|$(MAKE)|g' < $< > $@