CFLAGS = 
YFLAGS = -d
NOBJS = nc.o ncmain.o ncm.o ncomp.o ncsub.o ncinit.o \
	ncmak.o ncnode.o code.o modcode.o init.o math.o symbol.o \
	initchan.o ncstim.o ncplot.o emalloc.o drand.o strtod.o \
	ncdisp.o ncrot.o prcomp.o gprim.o gausnn.o

SOBJS = nc.o ncmain.o ncm.o code.o init.o math.o symbol.o gr.o drand.o \
	stimsub.o stimcode.o ncmaks.o convarr.o emalloc.o strtod.o gprim.o \
	gausnn.o

SHELL=/bin/csh
CXX = cc
CC = cc
YACC=../yaccsrc/yacc

#.SUFFIXES: .cc

#%.o:	%.cc
#	$(CXX) -c $(CFLAGS) $<
#
#.cc.o:	
#	$(CXX) -c $(CFLAGS) $*.cc

all:	stim nc plotmod gausnn

nc:	$(NOBJS)
#	$(CXX) -s -i -z -o nc $(NOBJS) -lP -lm
	$(CXX) $(CFLAGS) -o nc $(NOBJS) -L../libP -lP -lm
#	$(CXX) $(CFLAGS) -o nc $(NOBJS) -L../libP -lP -lmalloc -lm
#	$(CXX) $(CFLAGS) -o nc $(NOBJS) -lP 
	@size nc; echo 

stim:	$(SOBJS)
#	$(CXX) $(CFLAGS) -o stim $(SOBJS) -lmalloc
	$(CXX) $(CFLAGS) -o stim $(SOBJS) -lm
	@size stim; echo 

stimcode.o: modcode.c
	$(CXX) $(CFLAGS) -c -DXSTIM modcode.c && mv modcode.o stimcode.o

ncmaks.o: ncmak.c
	$(CXX) $(CFLAGS) -c -DXSTIM ncmak.c && mv ncmak.o ncmaks.o

plotmod: plotmod.o ncplot.o gprim.o strtod.o emalloc.o
	$(CXX) $(CFLAGS) -o plotmod plotmod.o ncplot.o gprim.o strtod.o \
	emalloc.o -L../libP -lP -lm
	@size plotmod; echo 

gausnn: gmain.o gausnn.o drand.o emalloc.o
	$(CXX) $(CFLAGS) -o gausnn gmain.o gausnn.o drand.o emalloc.o -lm

test:	test.o 
	$(CC) $(CFLAGS) -o test test.o -L/usr/local/lib -lcc -lm

xxx:
	echo "$(PATH)"

wave:	wave.o 
	$(CC) $(CFLAGS) -o wave wave.o -lm

wave.h:	wave
	wave > wave.h

ncstim.o: wave.h ncstim.c
	$(CXX) $(CFLAGS) -c ncstim.c

y.tab.h: nc.y

nc.o:	nc.y y.tab.h
#	$(YACC) -d nc.y && mv y.tab.c y.tab.cc	
	$(YACC) -d nc.y 
#	bison -y nc.y
	$(CXX) $(CFLAGS) -c y.tab.c 
	mv y.tab.o nc.o || rm y.tab.c

code.o:	code.c
	$(CXX) $(CFLAGS) -c -DMAXSIZE=1048576 code.c

code.o init.o initchan.o math.o modcode.o ncdisp.o ncinit.o ncm.o \
	ncmain.o ncmak.o ncomp.o ncplot.o ncrot.o ncstim.o ncsub.o \
	prcomp.o stimcode.o symbol.o y.tab.o: nc.h

ncplot.o init.o modcode.o asub.o ncsub.o ncomp.o ncinit.o ncdisp.o \
	prcomp.o ncmak.o stimsub.o ncstim.o modcode.o initchan.o: control.h

ncmain.o ncm.o ncmak.o ncinit.o ncstim.o ncsub.o ncomp.o asub.o stimcode.o \
	code.o init.o symbol.o modcode.o ncdisp.o prcomp.o ncplot.o:	y.tab.h

ncmak.o ncplot.o ncstim.o asub.o ncsub.o ncomp.o modcode.o ncinit.o\
	init.o plotmod.o stimcode.o stimsub.o ncdisp.o prcomp.o:	ncelem.h

initchan.o modcode.o ncdisp.o ncinit.o ncmak.o ncomp.o ncplot.o ncrot.o \
	ncstim.o ncsub.o plotmod.o prcomp.o stimcode.o \
	stimsub.o wave.o: ncomp.h

initchan.o modcode.o ncinit.o ncmak.o ncomp.o ncplot.o ncstim.o ncsub.o \
	prcomp.o wave.o: ncsub.h

gprim.o modcode.o ncplot.o stimcode.o y.tab.o: gr.h

initchan.o ncinit.o ncmak.o ncplot.o ncstim.o ncsub.o stimplot.o \
	code.o stimsub.o:	adef.h

stimsub.o convarr.o stimcode.o: stim.h

code.o frame.o gprim.o gr.o init.o modcode.o ncplot.o: stdplt.h

x.tab.h:	y.tab.h
	-cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.h

clean:
	rm -f $(NOBJS) $(SOBJS) wave wave.o y.tab.c y.tab.h nc stim \
	 plotmod gausnn core

backup:	
	@echo "Please insert the 'nc' backup disk; type <RET> when ready..."
#	@line
	cd ..;tar cvf /dev/fd0 nc/{*.cc,*.c,*.y,*.h,*.m,fib*,acker*,pfilt,neurc*,makefile}
	@echo nc is backed up...

backup1:	
	@echo "Please insert the 'nc' backup disk drive f0"
	@echo "Type <RET> when ready..."
	@line
	cd ..; tar cv nc/{*.cc,*.c,*.y,*.h,*.m,fib*,acker*,pfilt,neurc*}
	@echo g++ nc is backed up...

databak:
	@echo "Please insert the 'nc data' backup disk,"
	@echo " and type <RET> when ready..."
	@line
	cd ..; tar cv nc/{acker*,tcomp*,*.n,*.m,*.doc,makefile}
	@echo nc is backed up...

backhz:
	@echo "Please insert the 'hz data' backup disk,"
	@echo " and type <RET> when ready..."
	@line
	tar cv makefile hz*
	@echo hz files are backed up...

copy:
	cd ..; tar cvf imodc imod/{*.cc,*.c,*.y,*.h,fib*,acker*,tcomp*,makefile}
	@echo nc is backed up...

