# 
# -----------------------------------------------------------------------------
# 
# This file is part of the computer algebra system SIMATH.
# 
# SIMATH is a common software product of the SIMATH group in Saarbruecken
# and the Siemens AG. Copyright (C) 1992-1994 by the SIMATH group in
# Saarbruecken and the Siemens AG/Munich.
# 
# The computer algebra system SIMATH is free software for universities
# and scientific research institutions as long as it is used for purely
# scientific purposes only. This software is distributed in the hope that
# it will be useful, but
# 
# 			WITHOUT ANY WARRANTY.
# 
# 
# Permission is hereby granted to copy the system for any 
# 
# 			PURELY SCIENTIFIC
# 
# purposes, provided the above notices are retained on all copies.
# 
# If you intend to use SIMATH for other applications, please contact
# 	
# 	SIEMENS AG
# 	Corporate Research and Development
# 	Dept. ZFE ST SN 3
# 	D-81730 Munich
# 
# Upon reception of this software, please send e-mail messages to
# 
# 	simath@math.uni-sb.de 			and to	
# 	Heribert.Peuckert@zfe.siemens.de
# 
# to inform us that you got a copy of the system. 
# 
# Redistribution of this software - either in source or binary form - is
# not permitted.

# This Makefile includes ./Makefile.flags in the current working
# directory.  All modifications should be done in ./Makefile.flags and
# not in this file.

include Makefile.flags

all:	kern paths proc_SM libraries simcalc

kern: 
	/bin/sh test_kern

paths: 
	cp config.h ./header 
 
proc_SM: config.h 
	(cd proc; make) 
 
libraries: config.h
	(cd sources; make)

simcalc: config.h
	(cd sim; make)

install:
	@echo
	@echo "Type \"make SIMATH_install\" to install the system."
	@echo "This will overwrite the former version of SIMATH."
	@echo

SIMATH_install:
	-$(INSTALLDIR) ${SM_HOME}
	-$(INSTALLDIR) ${SM_HOME}/calcul
	-$(INSTALLDIR) ${SM_HOME}/calcul/help.text
	-$(INSTALLDIR) ${SM_HOME}/data
	-$(INSTALLDIR) ${SM_HOME}/data/isiprime
	-$(INSTALLDIR) ${SM_HOME}/data/isiprime/D
	-$(INSTALLDIR) ${SM_HOME}/data/isiprime/W_D
	-$(INSTALLDIR) ${SM_HOME}/etc
	-$(INSTALLDIR) ${SM_HOME}/examples
	-$(INSTALLDIR) ${SM_HOME}/examples/advanced
	-$(INSTALLDIR) ${SM_HOME}/examples/advanced/Groebner_basis
	-$(INSTALLDIR) ${SM_HOME}/examples/advanced/function_fields
	-$(INSTALLDIR) ${SM_HOME}/examples/advanced/number_fields
	-$(INSTALLDIR) ${SM_HOME}/examples/basics
	-$(INSTALLDIR) ${SM_HOME}/header
	-$(INSTALLDIR) ${SM_HOME}/proc
	-$(INSTALLDIR) ${SM_HOME}/sources
	-$(INSTALLDIR) ${SM_HOME}/modlib
	$(INSTALLFILE) errmsg ${SM_HOME}/errmsg
	install-dir "$(INSTALLFILE)" etc/ ${SM_HOME}/etc
	install-dir "$(INSTALLFILE)" data/isiprime/ ${SM_HOME}/data/isiprime
	$(INSTALLFILE) sources/srclib.C_sm ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.arith1 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.arith2 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.arith3 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.arith4 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.ec1 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.ec2 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.ec3 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.ec4 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.kern ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.list ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.matr1 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.matr2 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.matr3 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.pol1 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.pol2 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.pol3 ${SM_HOME}/sources
	$(INSTALLFILE) sources/srclib.pol4 ${SM_HOME}/sources
	$(INSTALLFILE) sources/lib_arith1.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_arith2.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_arith3.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_arith4.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_ec1.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_ec2.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_ec3.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_ec4.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_kern.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_list.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_matr1.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_matr2.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_matr3.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_pol1.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_pol2.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_pol3.a ${SM_HOME}/modlib
	$(INSTALLFILE) sources/lib_pol4.a ${SM_HOME}/modlib
	install-dir "$(INSTALLFILE)" calcul/calc. ${SM_HOME}/calcul
	install-dir "$(INSTALLFILE)" calcul/help.text/ ${SM_HOME}/calcul/help.text
	install-dir "$(INSTALLFILE)" header/ ${SM_HOME}/header
	$(INSTALLBIN) proc/dr ${SM_HOME}/proc
	$(INSTALLBIN) proc/SM ${SM_HOME}/proc
	$(INSTALLBIN) proc/CC ${SM_HOME}/proc
	$(INSTALLBIN) proc/CCC ${SM_HOME}/proc
	$(INSTALLBIN) proc/cmd ${SM_HOME}/proc
	$(INSTALLBIN) proc/preV3_1.x ${SM_HOME}/proc	
	$(INSTALLBIN) proc/preproc.x ${SM_HOME}/proc
	$(INSTALLBIN) proc/srctrans ${SM_HOME}/proc
	$(INSTALLBIN) proc/cut_doc ${SM_HOME}/proc
	$(INSTALLBIN) sim/simcalc.dir/simcalc ${SM_HOME}/proc
	$(INSTALLFILE) examples/README ${SM_HOME}/examples
	$(INSTALLFILE) examples/advanced/README ${SM_HOME}/examples/advanced
	install-dir "$(INSTALLFILE)" examples/advanced/Groebner_basis/ ${SM_HOME}/examples/advanced/Groebner_basis
	install-dir "$(INSTALLFILE)" examples/advanced/function_fields/ ${SM_HOME}/examples/advanced/function_fields
	install-dir "$(INSTALLFILE)" examples/advanced/number_fields/ ${SM_HOME}/examples/advanced/number_fields
	install-dir "$(INSTALLFILE)" examples/basics/ ${SM_HOME}/examples/basics
	(cd ${SM_HOME}/modlib; ranlib lib_arith1.a)
	(cd ${SM_HOME}/modlib; ranlib lib_arith2.a)
	(cd ${SM_HOME}/modlib; ranlib lib_arith3.a)
	(cd ${SM_HOME}/modlib; ranlib lib_arith4.a)
	(cd ${SM_HOME}/modlib; ranlib lib_ec1.a)
	(cd ${SM_HOME}/modlib; ranlib lib_ec2.a)
	(cd ${SM_HOME}/modlib; ranlib lib_ec3.a)
	(cd ${SM_HOME}/modlib; ranlib lib_ec4.a)
	(cd ${SM_HOME}/modlib; ranlib lib_kern.a)
	(cd ${SM_HOME}/modlib; ranlib lib_list.a)
	(cd ${SM_HOME}/modlib; ranlib lib_matr1.a)
	(cd ${SM_HOME}/modlib; ranlib lib_matr2.a)
	(cd ${SM_HOME}/modlib; ranlib lib_matr3.a)
	(cd ${SM_HOME}/modlib; ranlib lib_pol1.a)
	(cd ${SM_HOME}/modlib; ranlib lib_pol2.a)
	(cd ${SM_HOME}/modlib; ranlib lib_pol3.a)
	(cd ${SM_HOME}/modlib; ranlib lib_pol4.a)
	chmod 777 ${SM_HOME}/modlib

links:
	-$(INSTALLDIR) ${BINDIR}
	-${LN} ${SM_HOME}/proc/SM ${BINDIR}/SM
	-${LN} ${SM_HOME}/proc/CC ${BINDIR}/CC
	-${LN} ${SM_HOME}/proc/CCC ${BINDIR}/CCC
	-${LN} ${SM_HOME}/proc/simcalc ${BINDIR}/simcalc
	-${LN} ${SM_HOME}/proc/srctrans ${BINDIR}/srctrans
	-${LN} ${SM_HOME}/proc/cmd ${BINDIR}/cmd
	-${LN} ${SM_HOME}/proc/dr ${BINDIR}/dr

clean:
	-rm -f core
	-rm -f *.bak
	-rm -f *_CC
	-rm -f *.o
	-rm -f *~
	-rm -f SM.lex.x preV3_1.x preproc.x
	-rm -f simcalc*
	-rm -f sim/libsim*.a sim/srctrans.fehl
	-rm -f -r srctrans.hilf
	-rm -f -r modlib
	-rm -f header/config.h
	(cd proc; make clean)
	(cd sources; make clean)
	(cd sim; make clean)
	touch config.h


