################################################################# ### ### 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 = @BUILD_SUBDIRS@ SUBDIRS = @SUBDIRS@ PERL = @PERL@ TMP_DIR = @TMP_DIR@ MYGZIP = @MYGZIP@ GUNZIP = @GUNZIP@ ############################################################## # 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/ok_s.lst Tst/regress.cmd ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Short/ok_s.lst Tst-Long: ${SINGULAR} Tst/Long/ok_l.lst Tst/regress.cmd ${PERL} Tst/regress.cmd -r -s ${SINGULAR} Tst/Long/ok_l.lst ############################################################## # distribution targets # S_VERSION = $${SINGULAR_VERSION-@SINGULAR_VERSION@} SINGUNAME = @SINGUNAME@ localdir = /usr/local install_prefix = ${localdir}/Singular/${S_VERSION} BINDIST_DIRS = Singular doc SHAREDIST_DIRS = Singular doc emacs TMPDIR = ${TMP_DIR}/singdist LN_S = @LN_S@ MKINSTALLDIRS = ./mkinstalldirs BINDIST_NAME = Singular-${S_VERSION}-${SINGUNAME} SHAREDIST_NAME = Singular-${S_VERSION}-share install-dist install-local: 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 dist: ${SHAREDIST_NAME}.tgz ${BINDIST_NAME}.tgz sharedist ${SHAREDIST_NAME}.tar.gz: if test -d ${TMPDIR}; then rm -rf ${TMPDIR}; fi ${MAKE} install-sharedist localdir=${TMPDIR} chmod -R a+rX ${TMPDIR} cd ${TMPDIR}; tar cf ${SHAREDIST_NAME}.tar Singular; ${MYGZIP} ${SHAREDIST_NAME}.tar mv ${TMPDIR}/${SHAREDIST_NAME}.tar.gz . rm -rf ${TMPDIR} bindist ${BINDIST_NAME}.tar.gz: if test -d ${TMPDIR}; then rm -fr ${TMPDIR}; fi ${MAKE} install-bindist localdir=${TMPDIR} chmod -R a+rX ${TMPDIR} cd ${TMPDIR}; tar cf ${BINDIST_NAME}.tar Singular; ${MYGZIP} ${BINDIST_NAME}.tar mv ${TMPDIR}/Singular-${S_VERSION}-${SINGUNAME}.tar.gz . rm -rf ${TMPDIR} install-root: ${MKINSTALLDIRS} ${localdir}/bin ${LN_S} ${localdir}/Singular/${S_VERSION}/${SINGUNAME}/Singular ${localdir}/bin/Singular-${S_VERSION} ${LN_S} ${localdir}/Singular/${S_VERSION}/${SINGUNAME}/ESingular ${localdir}/bin/ESingular-${S_VERSION} ## ## old targets -- need to be updated ## 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 ZIP = zip test_t: echo ${S_VERSION} .PHONY: sharedist bindist static-bindist infodist win-sharedist _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; \ ${MYGZIP} ${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}; \ ${MYGZIP} 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}; \ ${MYGZIP} 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 #