# source files to be compiled
SOURCES = class_choose_algorithm.c class_def.c default_init.c malloc_init.c

# user dynamical systems
CLASS_USER =\
	userds0 userds1 userds2


MATHLIBS = -lm
CFLAGS = -sun4 -O
HEADERS = ../include/main_kaos_def.h
LIBRARY = modellib.a

${LIBRARY}: 	${LIBRARY}{${SOURCES:.c=.o}} ../complib/imatrix.o ../complib/svector.o
	ar rv $@ $?
	ranlib $@

lib.a(%.o):	%.o

${SOURCES:.c=.o}:	${HEADERS}
	cc -c $*.c ${CFLAGS} ${MATHLIBS}

${HEADERS}:

# dynamical system class "class_demo"
CLASS_DEMO =\
	d4hammm d4hampp d4dissmmp lorenz nlmathieu dpfosc2 henonmap\
	kotorusmap dissstandmap siegelmap martyd3 henonheiles\
	vanderpol duffing simpletorusmap
class_demo:
	kwrite_init $@ 2 ${CLASS_USER} ${CLASS_DEMO}
	kwrite_def $@ 12 13 5 3 ${CLASS_USER} ${CLASS_DEMO}
	kwrite_model $@ ${CLASS_USER} ${CLASS_DEMO}
	kwrite_f $@ ${CLASS_DEMO}
	kwrite_info $@ ${CLASS_DEMO}
	echo Moving the files for the dynamical system class $@ to ones kaos looks up ...
	cp $@_kaos_def.h class_kaos_def.h
	cp $@_kaos_init.h class_kaos_init.h
	cp $@_kaos_model.h class_kaos_model.h
	cp $@_choose_algorithm.c class_choose_algorithm.c
	echo
	echo The dynamical system class [$@] is created!

# dynamical system_class "class_old"
CLASS_OLD =\
	d4hammm d4hampp d4genfn d4dissmmm d4dissmmp d4dissppp\
	d4dissppm hdrbtrap lorenz taylorcouette d4symmbroken \
	d4symmbrgen nlmathieu dpfosc henonmap kotorusmap dissstandmap\
	siegelmap dpfosc2 pp2harvest threeosc
class_old:
	kwrite_init $@ 1 ${CLASS_OLD}
	kwrite_def $@ 6 16 2 3 ${CLASS_OLD}
	kwrite_model $@ ${CLASS_OLD}
	kwrite_f $@ ${CLASS_OLD}
	echo Copying the dynamical system class $@ files onto temporary files...
	cp $@_kaos_def.h class_kaos_def.h
	cp $@_kaos_init.h class_kaos_init.h
	cp $@_kaos_model.h class_kaos_model.h
	cp $@_choose_algorithm.c class_choose_algorithm.c
	echo Dynamical system class $@ is created!

class_test:
	kwrite_init $@ 2 ${CLASS_USER} ${CLASS_DEMO}
	kwrite_def $@ 12 10 5 3 ${CLASS_USER} ${CLASS_DEMO}
	kwrite_model $@ ${CLASS_USER} ${CLASS_DEMO}
