TOOLSBINDIR	= $(SNNSDIR)/tools/bin/$(MACHINENAME)
KERNELLIBDIR	= $(SNNSDIR)/kernel/bin/$(MACHINENAME)
KERNELSOURCES	= $(SNNSDIR)/kernel/sources

# -- C-Compiler Configuration --

CC = $(COMPILER)
CFLAGS = $(CCFLAGS) $(FPOPTIONS) -I$(KERNELSOURCES)

# -- Archive Configuration --

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

# -- Libraries --

LIBKERNEL	= $(KERNELLIBDIR)/libkernel.a $(KERNELLIBDIR)/libfunc.a

# -- Source files --

USE_LIB_SOURCE	= netlearn.c bignet.c netperf.c snnsbat.c \
		feedback-gennet.c convert2snns.c

NO_LIB_SOURCE	= analyze.c pat_sel.c mkhead.c mkout.c mkpat.c

ART_SOURCE	= m_art.c m_art1.c m_art2.c m_artmap.c

SOURCES 	= $(USE_LIB_SOURCE) $(NO_LIB_SOURCE) $(ART_SOURCE)


# -- Object files --

USE_LIB_OBJECTS	= $(USE_LIB_SOURCE:.c=.o)
NO_LIB_OBJECTS	= $(NO_LIB_SOURCE:.c=.o)
ART_OBJECTS	= $(ART_SOURCE:.c=.o)

OBJECTS		= $(USE_LIB_OBJECTS) $(NO_LIB_OBJECTS) $(ART_OBJECTS)

# -- Programs  --

USE_LIB_PROGS	= $(USE_LIB_SOURCE:.c=)
NO_LIB_PROGS	= $(NO_LIB_SOURCE:.c=)
ART_PROG	= m_art


PROGRAMS	= $(USE_LIB_PROGS) $(NO_LIB_PROGS) $(ART_PROG)

# Rules

.KEEP_STATE:

default: $(NO_LIB_PROGS) $(USE_LIB_PROGS) $(ART_PROG)

all: $(NO_LIB_PROGS) $(USE_LIB_PROGS) $(ART_PROG)

$(NO_LIB_PROGS): $(NO_LIB_OBJECTS)
	$(CC) $@.o -lm -o $@

$(USE_LIB_PROGS): $(USE_LIB_OBJECTS)
	$(CC) $@.o $(LIBKERNEL) -lm -o $@

$(ART_PROG): $(ART_OBJECTS)
	$(CC) $(ART_OBJECTS) $(LIBKERNEL) -lm -o $(ART_PROG)


install:
	strip $(PROGRAMS)
	cp $(PROGRAMS) $(TOOLSBINDIR)

list:
	cat $(SOURCES) > kernelsrc.all

clean:
	/bin/rm -f $(OBJECTS)

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

bignet.o: ../../kernel/sources/glob_typ.h
bignet.o: ../../kernel/sources/kr_ui.h ../../kernel/sources/krui_typ.h
convert2snns.o: ../../kernel/sources/glob_typ.h ../../kernel/sources/kr_ui.h
convert2snns.o: ../../kernel/sources/krui_typ.h
m_art.o: ../../kernel/sources/glob_typ.h
m_art.o: ../../kernel/sources/kr_ui.h ../../kernel/sources/krui_typ.h
m_art.o: m_art1.h m_artmap.h m_art2.h
m_art1.o: ../../kernel/sources/glob_typ.h
m_art1.o: ../../kernel/sources/kr_ui.h ../../kernel/sources/krui_typ.h
m_art2.o: ../../kernel/sources/glob_typ.h
m_art2.o: ../../kernel/sources/kr_ui.h ../../kernel/sources/krui_typ.h
m_artmap.o: ../../kernel/sources/glob_typ.h
m_artmap.o: ../../kernel/sources/kr_ui.h ../../kernel/sources/krui_typ.h
netlearn.o: ../../kernel/sources/glob_typ.h
netlearn.o: ../../kernel/sources/kr_ui.h ../../kernel/sources/krui_typ.h
netperf.o: ../../kernel/sources/glob_typ.h
netperf.o: ../../kernel/sources/kr_ui.h ../../kernel/sources/krui_typ.h
snnsbat.o: ../../kernel/sources/glob_typ.h ../../kernel/sources/kr_ui.h
snnsbat.o: ../../kernel/sources/krui_typ.h snnsbat.h
