#
###########################################################################
#	INSTALLING KAOS WITH MAKEFILE
############################################################################
# 	If you have not defined environmental variables
#	${KAOSHOME} and ${KAOSUSERHOME} yet in ".login" and ".cshrc", do so now.
#	If you have not used "kaos_install", do so now.
#
# (1)	Note that a default directory for the user-customized kaos ("kaos_u") is
# 	set to ${HOME}/kaos. 
#	If you want to install "kaos_u" in another directory, 
#	edit the variable KAOS_USER_HOME below.
#
# (2)	To make all executables, type
#	either "make all" (if you are installing kaos from scratch)
#	or "make all_u" (if kaos is already installed on the system and you
#		want to make a local version of it with new dynamical systems.)
#
# 	To make the main program only, type
# 	either "make kaos",
#	or "make kaos_u".
#
#	To make a batch program only, type
#	either "make kaos_batch"
#	or "make kaos_batch_u"
#

KAOS_SHARE_HOME = ${KAOSHOME}
KAOS_USER_HOME = ${HOME}/kaos
KAOS_MAN_DEST = /usr/man/manl
KAOS_BINSRC_HOME = ${KAOS_SHARE_HOME}/binsrclib
KAOS_COMPANION_HOME = ${KAOS_SHARE_HOME}/companionlib

KAOS_SHARE_MAIN = kaos
KAOS_USER_MAIN = kaos_u
KAOS_SHARE_BATCH = kaos_batch
KAOS_USER_BATCH = kaos_batch_u
KAOS_MAN_HOME = ${KAOS_SHARE_HOME}/doc/kaos.1

MATHLIBS = -lm
WINLIBS = -lsuntool -lsunwindow -lpixrect
CFLAGS = -sun4 -O

KAOS_SHARE_HEADERS = \
${KAOS_SHARE_HOME}/include/kaos.h \
${KAOS_SHARE_HOME}/include/sunos_kaos_def.h \
${KAOS_SHARE_HOME}/include/main_kaos_def.h \
${KAOS_SHARE_HOME}/modellib/class_kaos_def.h \
${KAOS_SHARE_HOME}/modellib/class_kaos_init.h \
${KAOS_SHARE_HOME}/include/main_kaos_init.h \
${KAOS_SHARE_HOME}/include/sunview_kaos_init.h

KAOS_USER_HEADERS = ${KAOS_SHARE_HEADERS}

MODELLIB = ${KAOS_SHARE_HOME}/modellib/modellib.a
COMPLIB = ${KAOS_SHARE_HOME}/complib/complib.a
SUNMAINLIB = ${KAOS_SHARE_HOME}/sunmainlib/sunmainlib.a
INTLIB = ${KAOS_SHARE_HOME}/intlib/intlib.a
FIXPTLIB = ${KAOS_SHARE_HOME}/fixptlib/fixptlib.a
EIGENLIB = ${KAOS_SHARE_HOME}/eigenlib/eigenlib.a
SYMBOLLIB = ${KAOS_SHARE_HOME}/symbollib/symbollib.a
AUXLIB = ${KAOS_SHARE_HOME}/auxlib/auxlib.a
PRINTLIB = ${KAOS_SHARE_HOME}/printlib/printlib.a
EXECLIB = ${KAOS_SHARE_HOME}/execlib/execlib.a
AUTOLIB = ${KAOS_SHARE_HOME}/autolib/autolib.a
GRAPHLIB = ${KAOS_SHARE_HOME}/graphlib/graphlib.a
TSERLIB = ${KAOS_SHARE_HOME}/tserlib/tserlib.a
FFTLIB = ${KAOS_SHARE_HOME}/fftlib/fftlib.a
LYAPLIB = ${KAOS_SHARE_HOME}/lyaplib/lyaplib.a
DIMSLIB = ${KAOS_SHARE_HOME}/dimslib/dimslib.a
SCANLIB = ${KAOS_SHARE_HOME}/scanlib/scanlib.a
HELPLIB = ${KAOS_SHARE_HOME}/helplib/helplib.a
BATCHLIB = ${KAOS_SHARE_HOME}/batchlib/batchlib.a

SHARE_USERLIB = ${KAOS_SHARE_HOME}/userlib/userlib.a
USER_USERLIB = ${KAOS_USER_HOME}/userlib/userlib.a
DEPENDENCY = \
${KAOS_SHARE_HOME}/sunmainlib/load_param.o \
${KAOS_SHARE_HOME}/sunmainlib/save_param.o \
${KAOS_SHARE_HOME}/fixptlib/fmapi_user.o \
${KAOS_SHARE_HOME}/fixptlib/fmap_user.o \
${KAOS_SHARE_HOME}/fixptlib/usrfuni.o\
${KAOS_SHARE_HOME}/sunmainlib/encode_color_symbol.o \
${KAOS_SHARE_HOME}/sunmainlib/dist_periodic.o\
${KAOS_SHARE_HOME}/complib/free_ivector.o \
${KAOS_SHARE_HOME}/complib/ludcmp.o \
${KAOS_SHARE_HOME}/complib/lubksb.o \
${KAOS_SHARE_HOME}/complib/ivector.o \
${KAOS_SHARE_HOME}/complib/free_svector.o \
${KAOS_SHARE_HOME}/sunmainlib/func_init.o \
${KAOS_SHARE_HOME}/sunmainlib/initialize_model.o

KAOS_SHARE_MAIN_SUBLIBS = \
${SUNMAINLIB} ${COMPLIB} ${MODELLIB} ${SYMBOLLIB} ${EXECLIB}\
${AUXLIB} ${INTLIB} ${FIXPTLIB} ${EIGENLIB} ${PRINTLIB} \
${AUTOLIB} ${TSERLIB} ${FFTLIB} ${LYAPLIB} ${DIMSLIB} \
${SCANLIB} ${GRAPHLIB} ${HELPLIB} ${SHARE_USERLIB}

KAOS_USER_MAIN_SUBLIBS = \
${SUNMAINLIB} ${COMPLIB} ${MODELLIB} ${SYMBOLLIB} ${EXECLIB} \
${AUXLIB} ${INTLIB} ${FIXPTLIB} ${EIGENLIB} ${PRINTLIB} \
${AUTOLIB} ${TSERLIB} ${FFTLIB} ${LYAPLIB} ${DIMSLIB} \
${SCANLIB} ${GRAPHLIB} ${HELPLIB} ${USER_USERLIB}

KAOS_SHARE_BATCH_SUBLIBS = \
${COMPLIB} ${BATCHLIB} ${SYMBOLLIB} ${MODELLIB} ${SHARE_USERLIB} ${DEPENDENCY}

KAOS_USER_BATCH_SUBLIBS = \
${COMPLIB} ${BATCHLIB} ${SYMBOLLIB} ${MODELLIB} ${USER_USERLIB} ${DEPENDENCY}

all:
	make ${KAOS_SHARE_MAIN}
	make ${KAOS_SHARE_BATCH}
	cd ${KAOS_BINSRC_HOME}; make all; make install; cd ..
	cd ${KAOS_COMPANION_HOME}; make all; cd ..   # mrm 2/6/90

all_u:
	make ${KAOS_USER_MAIN}
	make ${KAOS_USER_BATCH}

bin:
	cd ${KAOS_BINSRC_HOME}; make all; make install; cd ..
	
companion:
	cd ${KAOS_COMPANION_HOME}; make all; make install; cd ..
	
clean:
	rm -f *.o
	rm -f *lib/*.o
	rm -f ,*.[ch]
	rm -f *%
	rm -f core a.out ${KAOS_SHARE_MAIN_SUBLIBS} ${KAOS_SHARE_BATCH_SUBLIBS}
	rm -f fort.*

install:	${KAOS_SHARE_MAIN} ${KAOS_MAN_HOME}
	install -s -m 644 ${PROGRAM} ${KAOS_SHARE_HOME}
	install -c -m 644 ${KAOS_MAN_HOME} ${KAOS_MAN_DEST}

install_u:	${KAOS_USER_MAIN}
	install -s -m 644 ${PROGRAM} ${KAOS_USER_HOME}

${KAOS_MAN_HOME}:

# Creating a SCCS archive from modules
#sccs_start:
#	sccs create *.[ch] *lib/*.[c]
#	rm -f ,*.[ch]

# edting all existing source modules (*.c *.h) possibily out of an archive
#sccs_all:
#	bin/rexec sccs edit

# inserting sccsid for all existing modules
#sccs_sccsid:
#	bin/rexec ${TOPDIR}/bin/sccsid

${KAOS_SHARE_MAIN}:	${KAOS_SHARE_HOME}/${KAOS_SHARE_MAIN}_main.o ${KAOS_SHARE_MAIN_SUBLIBS} ${KAOS_SHARE_HEADERS}
	cc ${KAOS_SHARE_HOME}/${KAOS_SHARE_MAIN}_main.o ${KAOS_SHARE_MAIN_SUBLIBS} -o $@ ${CFLAGS} ${WINLIBS} ${MATHLIBS}

${KAOS_USER_MAIN}:	${KAOS_SHARE_HOME}/${KAOS_SHARE_MAIN}_main.o ${KAOS_USER_MAIN_SUBLIBS} ${KAOS_USER_HEADERS}
	cc ${KAOS_SHARE_HOME}/${KAOS_SHARE_MAIN}_main.o ${KAOS_USER_MAIN_SUBLIBS} -o $@ ${CFLAGS} ${WINLIBS} ${MATHLIBS}

${KAOS_SHARE_HOME}/${KAOS_SHARE_MAIN}_main.o:	${KAOS_SHARE_HEADERS}
	cc -c $*.c ${CFLAGS} ${MATHLIBS}

${KAOS_SHARE_BATCH}: ${KAOS_SHARE_HOME}/${KAOS_SHARE_BATCH}.o ${KAOS_SHARE_BATCH_SUBLIBS} ${KAOS_SHARE_HEADERS}
	cc ${KAOS_SHARE_HOME}/${KAOS_SHARE_BATCH}.o ${KAOS_SHARE_BATCH_SUBLIBS} -o $@ ${CFLAGS} ${WINLIBS} ${MATHLIBS}

${KAOS_USER_BATCH}: ${KAOS_SHARE_HOME}/${KAOS_SHARE_BATCH}.o ${KAOS_USER_BATCH_SUBLIBS} ${KAOS_SHARE_HEADERS}
	cc ${KAOS_SHARE_HOME}/${KAOS_SHARE_BATCH}.o ${KAOS_USER_BATCH_SUBLIBS} -o ${KAOS_SHARE_BATCH} ${CFLAGS} ${WINLIBS} ${MATHLIBS}

${KAOS_SHARE_HEADERS}:	FORCE

${KAOS_USER_HEADERS}:	FORCE

${MODELLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${COMPLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${SUNMAINLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${AUXLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${INTLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${EXECLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${FIXPTLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${PRINTLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${SYMBOLLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${AUTOLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${TSERLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${FFTLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${LYAPLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${DIMSLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${SCANLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${GRAPHLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${HELPLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${EIGENLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${BATCHLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${SHARE_USERLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

${USER_USERLIB}:	FORCE
	cd ${@D} ; ${MAKE} ${@F}

FORCE:
