################################################################# ### ### Top-level Makefile for Singular ### ### The main purpose of this Makefile is to call `make' ### recursively in the subdirectories determined at configuration ### time. ### ################################################################# @SET_MAKE@ SHELL = /bin/sh SINGULAR = @SINGULAR@ BUILD_SUBDIRS = @CONFIG_SUBDIRS@ @BUILD_SUBDIRS@ SUBDIRS = @SUBDIRS@ PERL = @PERL@ TMP_DIR = @TMP_DIR@ ############################################################## # default target ${SINGULAR}: ${MAKE} install ############################################################## # general targets # simply descend for these targets .PHONY: all install uninstall TEXINFO_TEX_FILES = epsf.tex texinfo.tex txi-cs.tex txi-de.tex txi-no.tex TEXINFO_TEX_DIR = Texinfo/doc all install uninstall: @ for SUBDIR in ${BUILD_SUBDIRS}; \ do \ echo ${MAKE} $@ in $${SUBDIR}; \ ( cd $${SUBDIR} && ${MAKE} $@;); \ (if test "$${SUBDIR}" = Texinfo && test -d doc; then \ for FILE in ${TEXINFO_TEX_FILES}; \ do \ if test "$@" = uninstall; then\ echo rm -f doc/$${FILE};\ rm -f doc/$${FILE}; \ else \ echo cp ${TEXINFO_TEX_DIR}/$${FILE} doc; \ cp ${TEXINFO_TEX_DIR}/$${FILE} doc; \ fi; \ done;\ fi;); \ done install-doc: cd doc; make install ############################################################## # cleaning up .PHONY: local-clean local-distclean local-maintainer-clean \ clean distclean mostlyclean maintainer-clean # we use a canned sequence to avoid code redundancy define recurse @ for SUBDIR in ${SUBDIRS}; \ do \ echo ${MAKE} $@ in $${SUBDIR}; \ ( cd $${SUBDIR} && ${MAKE} $@; ) \ done endef local-clean: rm -rf *~ a.out core *.o *.log local-distclean: local-clean rm -rf Makefile config.cache config.log config.status TAGS* *.gz *.tar local-maintainer-clean: local-distclean @ echo "This command is intended for maintainer use, only" rm -rf configure clean mostlyclean: local-clean $(recurse) distclean: local-distclean $(recurse) maintainer-clean: uninstall local-maintainer-clean $(recurse) ############################################################## # some extra targets for the specific packages .PHONY: factory libfac MP gmp smallgmp Singular factory libfac MP gmp smallgmp: cd $@; ${MAKE} all ############################################################## # documentation .PHONY: info dvi ps doc doc/singular.hlp html info dvi ps doc/singular.hlp html: ${SINGULAR} cd doc; ${MAKE} $@ doc info/singular.hlp: cd doc; ${MAKE} install ############################################################## # Tst targets .PHONY: Tst-All Tst Tst-Old Tst-Short Tst-Long Tst-All: Tst-Old Tst-Short Tst-Long Tst: Tst-Old Tst-Short Tst-Old: ${SINGULAR} Tst/Old/universal.lst Tst/regress.cmd ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Old/universal.lst Tst-Short: ${SINGULAR} Tst/Short Tst/regress.cmd ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Short/*.tst Tst-Long: ${SINGULAR} Tst/Short Tst/regress.cmd ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Long/*.tst ############################################################## # distribution targets # S_VERSION = $${SINGULAR_VERSION-@SINGULAR_VERSION@} SINGUNAME = @SINGUNAME@ localdir = /usr/local install_prefix = ${localdir}/Singular/${S_VERSION} BINDIST_DIRS = Singular SHAREDIST_DIRS = Singular doc emacs TMPDIR = ${TMP_DIR}/singdist LN_S = @LN_S@ MKINSTALLDIRS = ./mkinstalldirs install-dist: install-bindist install-sharedist install-bindist: for DIR in ${BINDIST_DIRS}; \ do \ (cd $${DIR}; ${MAKE} install-bindist install_prefix=${install_prefix});\ done install-sharedist: ${SINGULAR} for DIR in ${SHAREDIST_DIRS}; \ do \ (cd $${DIR}; ${MAKE} install-sharedist install_prefix=${install_prefix}); \ done install-local-dist: install-dist ${MKINSTALLDIRS} ${localdir}/bin ${LN_S} ${install_prefix}/${SINGUNAME}/Singular ${localdir}/bin/Singular-${S_VERSION} sharedist: if test -e ${TMPDIR}; then rm -f ${TMPDIR}; fi ${MAKE} install-sharedist localdir=${TMPDIR} cd ${TMPDIR}; tar czf Singular-${S_VERSION}-share.tgz mv ${TMPDIR}/Singular-${S_VERSION}-share.tgz . rm -rf ${TMPDIR} bindist: if test -e ${TMPDIR}; then rm -r ${TMPDIR}; fi ${MAKE} install-bindist localdir=${TMPDIR} cd ${TMPDIR}; tar czf Singular-${S_VERSION}-${SINGUNAME}.tgz mv ${TMPDIR}/Singular-${S_VERSION}-${SINGUNAME}.tgz . rm -rf ${TMPDIR} BINDIR_NAME = Singular/${S_VERSION}/${SINGUNAME} LIBDIR_NAME = Singular/${S_VERSION}/LIB GFTABLESDIR_NAME= Singular/${S_VERSION}/LIB/gftables DOCDIR_NAME = Singular/${S_VERSION}/doc HTMLDIR_NAME = Singular/${S_VERSION}/html INFODIR_NAME = Singular/${S_VERSION}/info EMACSDIR_NAME = Singular/${S_VERSION}/emacs BINDIST_NAME = Singular-${S_VERSION}-${SINGUNAME} SHAREDIST_NAME = Singular-${S_VERSION}-share ZIP = zip test_t: echo ${S_VERSION} .PHONY: sharedist bindist static-bindist infodist win-sharedist _sharedist: ${SINGULAR} cd doc; ${MAKE} all ps cd emacs; ${MAKE} all rm -rf ${TMPDIR}/ ${MKINSTALLDIRS} ${TMPDIR}/${LIBDIR_NAME} ${MKINSTALLDIRS} ${TMPDIR}/${GFTABLESDIR_NAME} ${MKINSTALLDIRS} ${TMPDIR}/${DOCDIR_NAME} ${MKINSTALLDIRS} ${TMPDIR}/${HTMLDIR_NAME} ${MKINSTALLDIRS} ${TMPDIR}/${INFODIR_NAME} ${MKINSTALLDIRS} ${TMPDIR}/${EMACSDIR_NAME} cp Singular/LIB/*.lib ${TMPDIR}/${LIBDIR_NAME} rm -f ${TMPDIR}/${LIBDIR_NAME}/tst.lib cp Singular/LIB/gftables/[0-9]* ${TMPDIR}/${GFTABLESDIR_NAME} cp doc/singular.idx doc/manual.ps doc/usercard.ps \ doc/manual.dvi doc/usercard.dvi \ ${TMPDIR}/${DOCDIR_NAME} cp doc/singular.hlp ${TMPDIR}/${INFODIR_NAME} cp -R doc/html/* ${TMPDIR}/${HTMLDIR_NAME} cp emacs/*.el ${TMPDIR}/${EMACSDIR_NAME} cp emacs/.emacs-singular ${TMPDIR}/${EMACSDIR_NAME} chmod -R a+rX ${TMPDIR}/Singular cd ${TMPDIR}; \ ${ZIP} -r ${SHAREDIST_NAME} Singular; \ tar cf ${SHAREDIST_NAME}.tar Singular; gzip ${SHAREDIST_NAME}.tar mv ${TMPDIR}/${SHAREDIST_NAME}.zip ${TMPDIR}/${SHAREDIST_NAME}.tar.gz . rm -rf ${TMPDIR}/ _bindist: ${SINGULAR} cd Singular; ${MAKE} Singular-$@ libparse rm -rf ${TMPDIR} ${MKINSTALLDIRS} ${TMPDIR}/${BINDIR_NAME} cp Singular/Singular-$@ ${TMPDIR}/${BINDIR_NAME}/Singular cp Singular/ESingular ${TMPDIR}/${BINDIR_NAME}/ESingular cp Singular/libparse ${TMPDIR}/${BINDIR_NAME} -strip ${TMPDIR}/${BINDIR_NAME}/* cd ${TMPDIR}; chmod -R a+rX *;\ tar cf ${BINDIST_NAME}.tar Singular; \ gzip ${BINDIST_NAME}.tar mv ${TMPDIR}/${BINDIST_NAME}.tar.gz . rm -rf ${TMPDIR} static-bindist: ${SINGULAR} cd Singular; ${MAKE} Singular-$@ libparse rm -rf ${TMPDIR} ${MKINSTALLDIRS} ${TMPDIR}/${BINDIR_NAME} cp Singular/Singular-$@ ${TMPDIR}/${BINDIR_NAME}/Singular-static cp Singular/libparse ${TMPDIR}/${BINDIR_NAME} -strip ${TMPDIR}/${BINDIR_NAME}/* cat INSTALL.unix | sed -e "s//${S_VERSION}/g" > \ ${TMPDIR}/Singular/INSTALL cd ${TMPDIR}; chmod -R a+rX *;\ tar cf ${BINDIST_NAME}-static.tar Singular; \ gzip ${BINDIST_NAME}-static.tar mv ${TMPDIR}/${BINDIST_NAME}-static.tar.gz . rm -rf ${TMPDIR} infodist: rm -rf ${TMPDIR} ${MKINSTALLDIRS} ${TMPDIR}/${SINGUNAME}/bin/ cp `which info` ${TMPDIR}/${SINGUNAME}/bin/ -strip ${TMPDIR}/${SINGUNAME}/bin/info cd ${TMPDIR}; tar cf info-${SINGUNAME}.tar ${SINGUNAME}; \ gzip info-${SINGUNAME}.tar mv ${TMPDIR}/info-${SINGUNAME}.tar.gz . rm -rf ${TMPDIR} INSTALL = ./Singular/install-sh -c SH_PROGRAM = /bin/sh INFO_PROGRAM = /bin/info CYGWIN_DLL = /bin/cygwin1.dll windist: ${SINGULAR} cd Singular; ${MAKE} Singular-bindist libparse rm -rf ${TMPDIR} ${MKINSTALLDIRS} ${TMPDIR}/${BINDIR_NAME} ${INSTALL} Singular/Singular-bindist \ ${TMPDIR}/${BINDIR_NAME}/Singular.exe ${INSTALL} Singular/libparse ${TMPDIR}/${BINDIR_NAME} ${INSTALL} ${SH_PROGRAM} ${TMPDIR}/${BINDIR_NAME} ${INSTALL} ${INFO_PROGRAM} ${TMPDIR}/${BINDIR_NAME} ${INSTALL} ${CYGWIN_DLL} ${TMPDIR}/${BINDIR_NAME} cat INSTALL.win | sed -e "s//${S_VERSION}/g" > \ ${TMPDIR}/Singular/INSTALL cd ${TMPDIR}; chmod -R a+rX *;\ ${ZIP} -r sing Singular mv ${TMPDIR}/sing.zip Singular-${S_VERSION}-${SINGUNAME}.zip rm -rf ${TMPDIR} srcdist: rm -rf ${TMPDIR} ${MKINSTALLDIRS} ${TMPDIR}/Singular-${S_VERSION} cd ${TMPDIR}/Singular-${S_VERSION}; cvs co All cd ${TMPDIR}; \ tar cf Singular-${S_VERSION}.tar Singular-${S_VERSION}; \ gzip Singular-${S_VERSION}.tar cp ${TMPDIR}/Singular-${S_VERSION}.tar.gz . rm -rf ${TMPDIR} # You can remeber the password with "iwd" == "ich war dabei" CRYPT = enigma # it does not seem to decrypt correctly with the HP crypt cryptdist: srcdist ${CRYPT} S-${S_VERSION}-iwd < Singular-${S_VERSION}.tar.gz > Singular-${S_VERSION}.tar.gz.crypt ############################################################## # stuff for configure Makefile : Makefile.in config.status CONFIG_FILES=Makefile ./config.status doc/Makefile: doc/Makefile.in config.status CONFIG_FILES=doc/Makefile ./config.status config.status: configure ./config.status --recheck configure: configure.in @echo "You need to rerun autoconf. I am proceeding, for now." @touch configure # autoconf #