KERNELBINDIR	= $(SNNSDIR)/kernel/bin/$(MACHINENAME)
KERNELDEMODIR	= $(SNNSDIR)/kernel/bin/$(MACHINENAME)
KERNELLIBDIR	= $(SNNSDIR)/kernel/bin/$(MACHINENAME)


# -- C-Compiler Configuration --

CC = $(COMPILER)
CFLAGS = $(CCFLAGS) $(FPOPTIONS) 

# -- Archive Configuration --

AR              = ar
ARFLAGS 	= rc
RANLIB          = $(RLIB)

# -- Libraries --

LIBKERNEL	= libkernel.a
LIBFUNCS	= libfunc.a

# -- Source files --

UTILIY_SOURCE	= make_tbl.c calc_err.c

M_ART_MOD_SRC   = m_art1.c m_art2.c m_artmap.c
ART_SOURCE	= $(M_ART_MOD_SRC)


SOURCES 	= func_mac.h func_tbl.c glob_typ.h init_f.c\
		kernel.c kernel.h kr_const.h kr_def.h kr_funcs.c\
		kr_funcs.h kr_io.c kr_io.h kr_mac.h kr_mem.c kr_mem.h\
		kr_typ.h kr_ui.c kr_ui.h krui_typ.h learn_f.c\
		strdup.c strdup.h kr_td.c kr_td.h\
		netperf.c version.h random.h snnsbat.c strdup.c\
		trans_f.c update_f.c tbl_func.c sigmoid.tbl\
                kr_inversion.h kr_inversion.c matrix.h matrix.c ext_typ.h\
		kr_art.h krart_df.h\
		kr_art.c art_typ.h art_ui.c art_ui.h arttr_f.c\
                kr_art1.c kr_art1.h kr_art2.c kr_art2.h kr_amap.c kr_amap.h\
		cc_learn.c cc_learn.h rcc_learn.c rcc_learn.h\
		cc_rcc.c cc_rcc.h cc_rcc_topo.c cc_rcc_topo.h\
                dlvq_learn.c dlvq_learn.h\
		$(UTILIY_SOURCE) $(ART_SOURCE)

# -- Object files --

KERNELOBJECTS	= kr_mem.o kernel.o kr_ui.o kr_io.o kr_inversion.o\
		strdup.o\
		kr_art.o art_ui.o kr_art1.o kr_art2.o kr_amap.o

USR_FUNC_OBJECTS= kr_funcs.o trans_f.o update_f.o init_f.o learn_f.o\
		kr_td.o\
		tbl_func.o func_tbl.o matrix.o arttr_f.o cc_learn.o\
		rcc_learn.o cc_rcc.o cc_rcc_topo.o\
                dlvq_learn.o


ART_OBJECTS	= $(M_ART_MOD_SRC:.c=.o)



# Rules

.KEEP_STATE:

all:  $(LIBKERNEL) $(LIBFUNCS)

$(LIBKERNEL): $(KERNELOBJECTS)
	$(AR) $(ARFLAGS) $(LIBKERNEL) $(KERNELOBJECTS)
	$(RANLIB) $(LIBKERNEL)

$(LIBFUNCS): $(USR_FUNC_OBJECTS)
	$(AR) $(ARFLAGS) $(LIBFUNCS) $(USR_FUNC_OBJECTS)
	$(RANLIB) $(LIBFUNCS)

install:
	cp $(LIBKERNEL) $(KERNELLIBDIR)
	cp $(LIBFUNCS) $(KERNELLIBDIR)
	$(RANLIB) $(KERNELLIBDIR)/$(LIBKERNEL)
	$(RANLIB) $(KERNELLIBDIR)/$(LIBFUNCS)
# because of checking of timestamps this is neccessary !

list:
	cat $(SOURCES) > kernelsrc.all

clean:
	/bin/rm -f $(KERNELOBJECTS) $(USR_FUNC_OBJECTS)
	/bin/rm -f $(LIBKERNEL) $(LIBFUNCS)
	/bin/rm -f $(ART_OBJECTS)

tarfile:
	tar cvf kernel.tar $(SOURCES) Makefile*
	compress kernel.tar
# DO NOT DELETE THIS LINE -- make depend depends on it.

art_ui.o: kr_typ.h glob_typ.h ext_typ.h kr_ui.h krui_typ.h kr_const.h
art_ui.o: kernel.h art_typ.h kr_art.h kr_art1.h kr_art2.h kr_amap.h
art_ui.o: krart_df.h art_ui.h
arttr_f.o: kr_typ.h
arttr_f.o: glob_typ.h ext_typ.h kr_def.h kr_const.h func_mac.h kr_art.h
arttr_f.o: kr_art1.h kr_art2.h kr_amap.h krart_df.h arttr_f.ph
calc_err.o: sigmoid.tbl
cc_learn.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h kr_def.h kernel.h
cc_learn.o: kr_mac.h kr_ui.h krui_typ.h cc_type.h cc_mac.h cc_learn.ph
cc_learn.o: cc_rcc.h
cc_rcc.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h kr_def.h random.h kr_mac.h
cc_rcc.o: kernel.h kr_ui.h krui_typ.h cc_mac.h cc_type.h cc_rcc.ph
cc_rcc_topo.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
cc_rcc_topo.o: kr_def.h kr_mac.h kernel.h cc_mac.h cc_rcc.h cc_rcc_topo.ph
dlvq_learn.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
dlvq_learn.o: kr_def.h kernel.h kr_ui.h krui_typ.h kr_mac.h cc_mac.h cc_rcc.h
dlvq_learn.o: dlvq_type.h dlvq_learn.ph
func_tbl.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
func_tbl.o: learn_f.h init_f.h trans_f.h update_f.h arttr_f.h tbl_func.h
func_tbl.o: kr_td.h cc_learn.h rcc_learn.h dlvq_learn.h func_tbl.ph
init_f.o: kr_typ.h glob_typ.h
init_f.o: ext_typ.h kr_const.h kr_def.h kernel.h random.h kr_mac.h kr_art.h
init_f.o: kr_art1.h kr_art2.h kr_amap.h krart_df.h kr_ui.h krui_typ.h
init_f.o: cc_rcc.h matrix.h init_f.ph
kernel.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
kernel.o: kr_def.h random.h kernel.ph kr_mem.h kr_funcs.h kr_mac.h
kernel.o: cc_rcc_topo.h kr_art.h kr_art1.h kr_art2.h kr_amap.h
kr_amap.o: kr_const.h kr_mac.h kr_def.h kr_typ.h
kr_amap.o: glob_typ.h ext_typ.h kr_funcs.h kernel.h kr_art.h krart_df.h
kr_amap.o: kr_amap.ph
kr_art.o: krart_df.h kr_const.h kr_mac.h kr_def.h
kr_art.o: kr_typ.h glob_typ.h ext_typ.h kr_funcs.h kernel.h kr_art.ph
kr_art1.o: kr_const.h kr_mac.h kr_def.h kr_typ.h
kr_art1.o: glob_typ.h ext_typ.h kr_funcs.h kernel.h kr_art.h krart_df.h
kr_art1.o: kr_art1.ph
kr_art2.o: kr_const.h
kr_art2.o: kr_mac.h kr_def.h kr_typ.h glob_typ.h ext_typ.h kr_funcs.h
kr_art2.o: kernel.h kr_art.h krart_df.h kr_art2.ph
kr_funcs.o: kr_typ.h
kr_funcs.o: glob_typ.h ext_typ.h kr_const.h kr_def.h kr_funcs.ph kernel.h
kr_funcs.o: func_tbl.h
kr_inversion.o: kr_typ.h glob_typ.h ext_typ.h
kr_inversion.o: kr_const.h kernel.h kr_def.h kr_mac.h kr_inversion.ph
kr_io.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h kr_def.h kr_ui.h krui_typ.h
kr_io.o: kernel.h kr_mac.h version.h dlvq_learn.h kr_io.ph
kr_mem.o: kr_typ.h glob_typ.h
kr_mem.o: ext_typ.h kernel.h kr_const.h kr_def.h kr_mem.ph kr_mac.h
kr_td.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
kr_td.o: kr_def.h kernel.h kr_mac.h kr_td.ph
kr_ui.o: random.h kr_typ.h
kr_ui.o: glob_typ.h ext_typ.h kr_const.h kr_def.h kr_io.h kr_funcs.h kernel.h
kr_ui.o: kr_mem.h kr_ui.ph krui_typ.h version.h kr_mac.h
learn_f.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
learn_f.o: kr_def.h kernel.h kr_mac.h kr_art.h kr_art1.h kr_art2.h kr_amap.h
learn_f.o: krart_df.h learn_f.ph
matrix.o: matrix.ph glob_typ.h
rcc_learn.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
rcc_learn.o: kr_def.h kernel.h kr_mac.h random.h kr_ui.h krui_typ.h cc_type.h
rcc_learn.o: cc_mac.h rcc_learn.ph cc_rcc.h
tbl_func.o: glob_typ.h ext_typ.h kr_const.h func_mac.h tbl_func.ph
tbl_func.o: sigmoid.tbl kr_typ.h
trans_f.o: kr_typ.h glob_typ.h ext_typ.h
trans_f.o: kr_const.h func_mac.h kr_mac.h cc_mac.h trans_f.ph
update_f.o: kr_typ.h glob_typ.h ext_typ.h kr_const.h
update_f.o: kr_def.h kernel.h kr_ui.h krui_typ.h kr_mem.h random.h kr_mac.h
update_f.o: krart_df.h kr_art1.h kr_art2.h kr_amap.h kr_art.h kr_td.h
update_f.o: rcc_learn.h cc_rcc.h cc_mac.h dlvq_learn.h update_f.ph
kr_typ.o: glob_typ.h ext_typ.h
kr_ui.o: krui_typ.h
kr_ui.o: krui_typ.h
