[BACK]Return to Makefile CVS log [TXT][DIR] Up to [local] / OpenXM / misc / packages / Linux / RPM

File: [local] / OpenXM / misc / packages / Linux / RPM / Makefile (download)

Revision 1.19, Mon Sep 25 09:51:21 2000 UTC (23 years, 7 months ago) by takayama
Branch: MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.18: +19 -9 lines

It must work both for RPM version 2.5.5. and RPM version 3.x and later.

# $OpenXM: OpenXM/misc/packages/Linux/RPM/Makefile,v 1.19 2000/09/25 09:51:21 takayama Exp $

#Edit this.  VERSION number must be compatible between Generic/openxm/Makefile
# and *.spec.in
VERSION=1.1.3

## configuration only for committers
WHO=taka@orange
FTP_AREA=/export/home01/ftp/pub/OpenXM/${VERSION}

# *If you do not like to use /usr/src/redhat area to put *rpm files, 
#  do as follows.
# 0. If your rpm version is less than 3,
#      Generate ~/.rpmrc and set the TopDir for the work.
#      Here is my .rpmrc
#
#      TopDir: home/taka/OpenXM/misc/packages/Linux/RPM/work
#    If you rpm version is more than or equal to 3,
#      Generate ~/.rpmmacros and set the %_topdir for the work.
#      Here is my .rpmmacros
#
#      %_topdir  /home/taka/OpenXM/misc/packages/Linux/RPM/work
#
#  [ To extract a source from *src.rpm to SOURCES dir, 
#    type in "make make-directory" and "rpm -i your.src.rpm" ]
#
# *How to build a binary package.
# 1. Make ole by make ole at  $(OpenXM_HOME)/src/kan96xx/Doc.
#    [ ole.c will be moved to somewhere else in a future. ]
# 2. Make a directory ~/tmp if you do not have.
# 3. Generate a source tar ball openxm-$(VERSION).tar.gz by
#     cd $(OpenXM_HOME)/misc/packages/Generic/openxm ; make tar-ball
# 4. Type in make link-for-real-openxm
# 5. Type in make build-binary-rpm  (for test)
# REAL 5. Edit openxm.spec.in and remove the line BuildRoot.
#          Su and type in make build-binary-rpm
#         work should be removed by the super user.
# The binary package will be generated at  work/RPMS/i386.
#
# Example 1 :  debug this Makefile and openxm.spec.in
#  cd $(OpenXM_HOME)/misc/packages/FreeBSD/openxm-$(VERSION) ; make fake-openxm
#  make link-for-debug
#  make build-binary-rpm
#
# *To check the file names in the package
#  rpm2cpio openxm-$(VERSION)-test.i386.rpm | cpio -tv | more
# or
#  rpm -qvlp openxm-$(VERSION)-test.i386.rpm
#
#  -ivh : Install,  -e openxm-$(VERSION)-test : remove, 
#  -qvl openxm-$(VERSION)-test : list.
#
#  The maximum rpm at http://rpm.redhat.com is the most comprehensive source
#  to use rpm to build redhat packages.

OLE_DIR=../../../../../OpenXM/src/kan96xx/Doc
OLE=${OLE_DIR}/ole -q
RPM_BUILD_BINARY_ROOT=/var/tmp/openxm-binary-root
RPM_BUILD_SHARED_ROOT=/var/tmp/openxm-shared-root

usage :
	@echo "Usage:"
	@echo "build-binary-rpm "
	@echo "build-shared-rpm "
	@echo "build-source-rpm "
	@echo "make-directory"
	@echo "link-for-real-openxm "
	@echo "link-for-fake-openxm "
	@echo "copy-to-ftp-area "
	@echo "clean"

build-binary-rpm: openxm-binary-spec
	(cd work/SPECS ; rpm -bb openxm-binary.spec )

build-shared-rpm: openxm-shared-spec
	rm -f /tmp/tmp-rpm-version.t
	rpm --version | awk '{print $$3}' >/tmp/tmp-rpm-version.t
	if test "2.5.5" = `cat /tmp/tmp-rpm-version.t` ; then \
	echo "for rpm 2.x on FreeBSD 3.x" ; \
	(cd work/SPECS ; rpm --buildarch noarch --buildos Linux -bb openxm-shared.spec ) ; \
	else \
	echo "for  rpm 3.x" ; \
	(cd work/SPECS ; rpm --target noarch-OpenXM-Linux -bb openxm-shared.spec ) ; \
	fi

build-source-rpm:  openxm-binary-spec openxm-shared-spec
	(cd work/SPECS ; rpm -ba openxm-binary.spec )
	rm -f /tmp/tmp-rpm-version.t
	rpm --version | awk '{print $$3}' >/tmp/tmp-rpm-version.t
	if test "2.5.5" = `cat /tmp/tmp-rpm-version.t` ; then \
	echo " for rpm 2.x on FreeBSD 3.x" ; \
	(cd work/SPECS ; rpm --buildarch noarch --buildos Linux -ba openxm-shared.spec ) ; \
	else \
	echo " for rpm 3.x " ; \
	(cd work/SPECS ; rpm --target noarch-OpenXM-Linux -ba openxm-shared.spec ) ; \
	fi

## This is obsolete
build-rpm: openxm-spec
	(cd work/SPECS ; rpm -bb openxm.spec )

make-directory: clean
	mkdir work
	mkdir work/SOURCES work/SPECS work/BUILD work/RPMS 
	mkdir work/RPMS/i386 work/RPMS/noarch work/SPRMS work/RPMS/ppc work/RPMS/sparc work/RPMS/alpha work/SRPMS
	mkdir ${RPM_BUILD_BINARY_ROOT}
	mkdir ${RPM_BUILD_BINARY_ROOT}/usr
	mkdir ${RPM_BUILD_BINARY_ROOT}/usr/local
	mkdir ${RPM_BUILD_BINARY_ROOT}/usr/local/bin
	mkdir ${RPM_BUILD_BINARY_ROOT}/usr/local/man
	mkdir ${RPM_BUILD_BINARY_ROOT}/usr/local/man/man1
	mkdir ${RPM_BUILD_SHARED_ROOT}
	mkdir ${RPM_BUILD_SHARED_ROOT}/usr
	mkdir ${RPM_BUILD_SHARED_ROOT}/usr/local
	mkdir ${RPM_BUILD_SHARED_ROOT}/usr/local/bin
	mkdir ${RPM_BUILD_SHARED_ROOT}/usr/local/man
	mkdir ${RPM_BUILD_SHARED_ROOT}/usr/local/man/man1


openxm-spec:  make-ole
	rm -rf work/SPECS/openxm.spec
	${OLE} <openxm.spec.in >work/SPECS/openxm.spec

openxm-binary-spec: make-ole
	rm -rf work/SPECS/openxm-binary.spec
	${OLE} <openxm-binary.spec.in >work/SPECS/openxm-binary.spec

openxm-shared-spec: make-ole
	rm -rf work/SPECS/openxm-shared.spec
	${OLE} <openxm-shared.spec.in >work/SPECS/openxm-shared.spec

make-ole :
	@if test ! -f ${OLE_DIR}/ole ; \
	then \
		(cd $(OLE_DIR) ; make ole) ;  \
	fi

clean :
	-/bin/rm -rf work ${RPM_BUILD_BINARY_ROOT} ${RPM_BUILD_SHARED_ROOT}


link-for-debug: make-directory clean
	(cd work/SOURCES ; rm -rf openxm-$(VERSION).tar.gz ; ln -s $(HOME)/tmp/openxm-fake.tar.gz ./openxm-$(VERSION).tar.gz)

link-for-real-openxm: make-directory clean
	(cd work/SOURCES ; rm -rf openxm-$(VERSION).tar.gz ; ln -s $(HOME)/tmp/openxm-$(VERSION).tar.gz ./openxm-$(VERSION).tar.gz)

link-for-fake-openxm: make-directory clean
	(cd work/SOURCES ; rm -rf openxm-$(VERSION).tar.gz ; ln -s $(HOME)/tmp/openxm-fake.tar.gz ./openxm-$(VERSION).tar.gz)

copy-to-ftp-area:
	-scp work/RPMS/i386/openxm-*.rpm ${WHO}:${FTP_AREA}
	-scp work/RPMS/noarch/openxm-*.rpm ${WHO}:${FTP_AREA}
	-scp work/SRPMS/openxm-*.rpm ${WHO}:${FTP_AREA}