version 1.3, 2000/03/05 06:11:56 |
version 1.23, 2004/02/23 00:09:30 |
|
|
# $OpenXM: OpenXM/misc/packages/Generic/openxm/Makefile,v 1.2 2000/03/05 02:29:51 takayama Exp $ |
# $OpenXM: OpenXM/misc/packages/Generic/openxm/Makefile,v 1.22 2004/02/22 09:17:11 takayama Exp $ |
# This is a Makefile to generate source and binary distributions of |
# The FIRST part is a Makefile FOR COMMITTERS: it is used |
# the OpenXM package on various plathomes. |
# to generate source and binary distributions of |
|
# the OpenXM package on various operating systems. |
|
|
## For committers: prepare mycvs under your search path |
# If you add new directory under OpenXM/lib, edit SHARED_FILES. |
|
|
|
# If you add new files to be installed under /usr/local/bin, man, etc, |
|
# you have to edit several files. See OpenXM/misc/packages/README. |
|
|
|
## For committers: prepare cvs-OpenXM under your search path |
## to access to CVS servers. |
## to access to CVS servers. |
RCVS=mycvs -d kerberos.math.kobe-u.ac.jp:/usr/cvs |
RCVS=cvs-OpenXM -d kerberos.math.sci.kobe-u.ac.jp:/usr/cvs |
TYPE=`uname -s`-`uname -m` |
### cvs-OpenXM is the following shell script in my case. |
|
## #!/bin/sh |
|
## CVS_RSH=ssh |
|
## export CVS_RSH |
|
## cvs $* |
|
|
|
## Configurations. |
## OpenXM Version Number. |
## OpenXM Version Number. |
VERSION=1.1.2 |
PREFIX=/usr/local |
|
VERSION=head |
|
TAG=HEAD |
|
FTP_AREA=/export/home01/ftp/pub/OpenXM/${VERSION} |
|
|
RELEASE= |
RELEASE= |
## If you like to have a release name as a part of tar ball, then uncomment |
## If you like to have a release name as a part of tar ball, then uncomment |
## the next line. |
## the next line. |
##RELEASE=`uname -a` |
##RELEASE=`uname -a` |
|
|
BINARY_TAR_BALL_FOR_FREE_BSD=./work/OpenXM-binary-FreeBSD-i386.tgz |
TYPE=`uname -s`-`uname -m` |
|
|
usage : |
OpenXM_HOME=$(HOME)/OpenXM |
|
TAR_WORK=$(HOME)/tmp |
|
#TAR_WORK=${OpenXM_HOME}/misc/packages/Generic/openxm/work |
|
INSTALL_WORK=${OpenXM_HOME}/misc/packages/Generic/openxm/work/openxm-install-dir |
|
|
|
### Variables for the real Makefile |
|
### Variables should be set before the first target. |
|
srcdir = . |
|
prefix=${PREFIX} |
|
MAN_DIR=${prefix}/man/man1 |
|
WORK=work/openxm-${VERSION} |
|
### End of variables for the real Makefile |
|
|
|
### Common |
|
SHARED_FILES = OpenXM/Copyright OpenXM/doc OpenXM/include OpenXM/man \ |
|
OpenXM/lib/asir-contrib OpenXM/lib/java-support \ |
|
OpenXM/lib/k097 OpenXM/lib/math OpenXM/lib/pari \ |
|
OpenXM/lib/sm1 OpenXM/lib/asir |
|
BINARY_FILES = OpenXM/bin OpenXM/lib/*.a OpenXM/lib/*.so* OpenXM/lib/*.a.* \ |
|
OpenXM/rc |
|
MAN_PAGES = openxm.1 sm1.1 |
|
|
|
EXECUTABLES=gnuplot4ox gnuplot_x11 k0 ox ox_sm1 oxlog oxweave sm1 tigers ox_math |
|
|
|
usage : usage-of-real-make |
|
@echo "--------------------------------------------------" |
|
@echo "Usage for building distributions (for COMMITTERS):" |
@echo "Targets are " |
@echo "Targets are " |
@echo " fetch : get the sources from the cvs server under work" |
@echo " fetch : get the sources from the cvs server under $(WORK)" |
@echo " make-tar-ball : generate OpenXM-source.tgz under work" |
@echo " tar-ball : generate openxm-${VERSION}.tar.gz under $(TAR_WORK)" |
@echo " make-tar-ball-01 : generate OpenXM-source-01.tgz under work" |
@echo " tar-ball-01 : generate openxm01-${VERSION}.tar.gz under $(TAR_WORK)" |
@echo " make-binary-tar-ball : generate OpenXM-binary-OS-CPU.tgz under work" |
@echo " binary-tar-ball : generate OpenXM-binary-OS-CPU.tgz under $(TAR_WORK)" |
@echo " make-binary-tar-ball-using-binary-FreeBSD : generate OpenXM-binary-OS-CPU.tgz under work" |
@echo " shared-tar-ball : generate OpenXM-shared.tgz under $(TAR_WORK)" |
@echo " by using binary for FreeBSD because document generation might fails on other operating systems." |
@echo " install-tar-to-ftp-area : copy openxm-${VERSION}.tar.gz to ${FTP_AREA}" |
|
@echo " clean-work " |
|
@echo " clean-for-make " |
|
@echo "--------------------------------------------------" |
@echo -n "Type is " |
@echo -n "Type is " |
@echo $(TYPE) |
@echo $(TYPE) |
|
@echo -n "INSTALL_WORK is " |
|
@echo $(INSTALL_WORK) |
|
@echo -n "TAR_WORK is " |
|
@echo $(TAR_WORK) |
|
@echo -n "FTP_AREA is " |
|
@echo $(FTP_AREA) |
|
@echo " " |
|
@echo "A shell script cvs-OpenXM is necessary (write by yourself)" |
|
@echo "under your search path." |
|
|
|
### The SECOND part is a Makefile to build binaries from source. |
|
### It only calls the Makefile at OpenXM/src. |
|
### Start of Makefile to work in the directory work/openxm-$(VERSION) |
|
### Original version is in misc/packages/FreeBSD/openxm-1.1.2 |
|
### Absolute path should be used for TAR_WORK |
|
|
|
usage-of-real-make: |
|
@echo "Usage for building OpenXM binaries (main Makefile is at OpenXM/src):" |
|
@echo "Targets are " |
|
@echo " configure, all, install, clean, distclean" |
|
@echo "You need to specify the PREFIX to install, e.g., make install PREFIX=/usr/local" |
|
|
|
configure : |
|
@if [ ! -f .configure_done ] ; then \ |
|
(cd $(srcdir)/OpenXM/src ; make configure ) ; \ |
|
fi |
|
@touch .configure_done |
|
|
|
all : configure |
|
@if [ ! -f .all_done ] ; then \ |
|
(cd $(srcdir)/OpenXM/src ; make binary-dist) ; \ |
|
fi |
|
@touch .all_done |
|
|
|
all-ideal : configure |
|
@if [ ! -f .all_done ] ; then \ |
|
(cd $(srcdir)/OpenXM/src ; make ; make install) ; \ |
|
fi |
|
@touch .all_done |
|
|
|
install : install-binary-files install-shared-files |
|
make install-shell-scripts PREFIX=${prefix} |
|
|
|
install-shell-scripts: |
|
# Install shell scripts to ${prefix}/bin, which is typically /usr/local/bin |
|
(cd ${prefix}/OpenXM/rc ; make ; make install PREFIX=${prefix}) |
|
|
|
|
|
install-binary-files: all |
|
@echo "install-binary-files with PREFIX= " |
|
@echo ${prefix} |
|
tar cf - ${BINARY_FILES} | (cd ${prefix} ; tar xf -) |
|
(cd ${prefix}/OpenXM/bin ; make clean-for-install) |
|
-for i in $(EXECUTABLES); do strip ${prefix}/OpenXM/bin/$$i ; done |
|
|
|
install-shared-files: all |
|
@echo "install-binary-files with PREFIX= " |
|
@echo ${prefix} |
|
tar cf - ${SHARED_FILES} | (cd ${prefix} ; tar xf -) |
|
|
|
install-man-pages-for-rpm: |
|
-(cd ${prefix}/OpenXM/man/man1 ; cp $(MAN_PAGES) ${PREFIX}/man/man1) |
|
|
|
install.man : install |
|
-(cd ${prefix}/OpenXM/man/man1 ; cp ${MAN_PAGES} ${MAN_DIR}) |
|
-gzip ${MAN_DIR}/sm1.1 ${MAN_DIR}/openxm.1 |
|
|
|
clean : |
|
-(cd $(srcdir)/OpenXM/src ; make clean) |
|
rm -f .*_done* |
|
|
|
distclean : |
|
-(cd $(srcdir)/OpenXM/src ; make distclean) |
|
rm -f .*_done* |
|
|
|
clean-installed-openxm: |
|
/bin/rm -rf ${prefix}/OpenXM |
|
|
|
########### end of the real Makefile |
|
|
|
|
|
|
fetch : |
fetch : |
@if [ ! -f ./.fetch_done ]; then \ |
@if [ ! -f ./.fetch_done ]; then \ |
/bin/rm -rf work ; mkdir work ; \ |
/bin/rm -rf work ; mkdir work ; mkdir ${WORK} ; \ |
( cd work ; $(RCVS) export -rHEAD OpenXM OpenXM_contrib OpenXM_contrib2) \ |
( cd ${WORK} ; ${RCVS} export -r${TAG} OpenXM OpenXM_contrib OpenXM_contrib2) ; \ |
|
cp Makefile ${WORK}/Makefile ; \ |
fi |
fi |
@touch ./.fetch_done |
@touch ./.fetch_done |
|
|
make-tar-ball: fetch |
build-tar-work: |
(cd work/OpenXM/src ; make generate-source-distribution) |
@if [ ! -d ${TAR_WORK} ]; then \ |
(cd work ; tar czvf OpenXM-source.tgz OpenXM OpenXM_Contrib OpenXM_contrib2 ) |
mkdir ${TAR_WORK} ; \ |
|
fi |
|
|
make-tar-ball-01: fetch |
build-ftp-area: |
@if [ ! -f ./.make-tar-ball-01_done ]; then \ |
@if [ ! -d ${FTP_AREA} ]; then \ |
(cd work/OpenXM/src ; make generate-source-distribution) ; \ |
mkdir ${FTP_AREA} ; \ |
(cd work ; tar czvf OpenXM-source-01.tgz OpenXM OpenXM_Contrib ) ; \ |
|
fi |
fi |
@touch ./.make-tar-ball-01_done |
|
|
|
make-binary-tar-ball : make-tar-ball-01 |
tar-ball: fetch build-tar-work |
(cd work/OpenXM/src ; make binary-dist ) |
@if [ ! -f ./.tar-ball_done ]; then \ |
(cd work ; tar czf work/OpenXM-binary-$(TYPE)$(RELEASE).tgz OpenXM/Copyright OpenXM/bin OpenXM/doc OpenXM/include OpenXM/lib OpenXM/man OpenXM/rc OpenXM/install.txt) |
cp Makefile ${WORK}/Makefile ; \ |
(cd work/OpenXM/src ; make distclean ) |
(cd work ; tar czvf ${TAR_WORK}/openxm-${VERSION}.tar.gz openxm-${VERSION}) ; \ |
|
fi |
|
touch ./.tar-ball_done |
|
|
make-binary-tar-ball-using-binary-FreeBSD : |
tar-ball-01: fetch build-tar-work |
@if [ ! -f $(BINARY_TAR_BALL_FOR_FREE_BSD) ]; then \ |
@if [ ! -f ./.tar-ball-01_done ]; then \ |
echo "Generate $BINARY_TAR_BALL_FOR_FREE_BSD first" ; \ |
cp Makefile ${WORK}/Makefile ; \ |
exit \ |
(cd ${WORK}/OpenXM/src ; make generate-source-distribution) ; \ |
|
(cd work ; tar czvf ${TAR_WORK}/openxm01-${VERSION}.tar.gz openxm-${VERSION}/OpenXM openxm-${VERSION}/OpenXM_contrib ) ; \ |
fi |
fi |
/bin/rm -rf work/binary-$(TYPE) |
@touch ./.tar-ball-01_done |
mkdir work/binary-$(TYPE) |
|
tar xzf - $(BINARY_TAR_BALL_FOR_FREE_BSD) | (cd work/binary-$(TYPE) ; tar xzf - ) |
|
(cd work/binary-$(TYPE) ; /bin/rm -rf OpenXM/bin ) |
|
(cd work/OpenXM/src ; make binary-dist ) |
|
(cd work ; tar czf - OpenXM/bin OpenXM/lib OpenXM/rc ) | (cd work/binary-$(TYPE) ; tar xzf - ) |
|
(cd work ; tar czf work/OpenXM-binary-$(TYPE)$(RELEASE).tgz OpenXM/Copyright OpenXM/bin OpenXM/doc OpenXM/include OpenXM/lib OpenXM/man OpenXM/rc OpenXM/install.txt) |
|
(cd work/OpenXM/src ; make distclean ) |
|
|
|
clean : |
binary-tar-ball : fetch |
|
cp Makefile ${WORK}/Makefile |
|
rm -rf ${INSTALL_WORK} |
|
mkdir ${INSTALL_WORK} ${INSTALL_WORK}/bin ${INSTALL_WORK}/man |
|
mkdir ${INSTALL_WORK}/man/man1 |
|
(cd ${WORK} ; make install-binary-files PREFIX=${INSTALL_WORK}) |
|
(cd ${INSTALL_WORK} ; tar czf ${TAR_WORK}/OpenXM-binary-$(TYPE)$(RELEASE).tgz ${BINARY_FILES}) |
|
|
|
shared-tar-ball : fetch |
|
cp Makefile ${WORK}/Makefile |
|
rm -rf ${INSTALL_WORK} |
|
mkdir ${INSTALL_WORK} ${INSTALL_WORK}/bin ${INSTALL_WORK}/man |
|
mkdir ${INSTALL_WORK}/man/man1 |
|
(cd ${WORK} ; make install-shared-files PREFIX=${INSTALL_WORK}) |
|
(cd ${INSTALL_WORK} ; tar czf ${TAR_WORK}/OpenXM-shared.tgz ${SHARED_FILES}) |
|
|
|
install-tar-to-ftp-area: build-ftp-area tar-ball |
|
cp ${TAR_WORK}/openxm-${VERSION}.tar.gz ${FTP_AREA} |
|
|
|
clean-work : |
/bin/rm -rf .*_done *~ |
/bin/rm -rf .*_done *~ |
/bin/rm -rf work |
/bin/rm -rf work work-fake |
|
|
|
clean-for-make: |
|
(cd ${WORK} ; make distclean) |
|
rm -f .configure_done .all_done |