# makefile for lfw dsp

COOPSDIR= ..\kernel
OBJDIR= objects

# compile and link flags
CFLAGS= -v40 -dIBM -eo .o40 -s -g -q -o -ma -mn -mi -mf -as -i$(COOPSDIR)
AFLAGS= -v40 -s -l
LFLAGS= -v40
OBJECTS=        $(OBJDIR)\ads.o40 \
		$(OBJDIR)\adsseq.o40 \
		$(OBJDIR)\dapc.o40 \
		$(OBJDIR)\das.o40 \
		$(OBJDIR)\ddaq.o40 \
		$(OBJDIR)\digout.o40 \
		$(OBJDIR)\diir.o40 \
		$(OBJDIR)\dio.o40 \
		$(OBJDIR)\dmiop.o40 \
		$(OBJDIR)\drecord.o40 \
		$(OBJDIR)\dsrv.o40 \
		$(OBJDIR)\dsys.o40 \
		$(OBJDIR)\dufg.o40 \
		$(OBJDIR)\filter.o40 \
		$(OBJDIR)\fltbuf.o40 \
		$(OBJDIR)\ifltterm.o40 \
		$(OBJDIR)\gresii.o40 \
		$(OBJDIR)\ldt.o40 \
		$(OBJDIR)\modesw.o40 \
		$(OBJDIR)\pfg.o40 \
		$(OBJDIR)\ramp.o40 \
		$(OBJDIR)\rdt.o40 \
		$(OBJDIR)\samphold.o40 \
		$(OBJDIR)\scaler.o40 \
		$(OBJDIR)\C30Timer.o40 \
		$(OBJDIR)\vicvac.o40

# coops kernel
COOPSLIB= $(COOPSDIR)\objects\dsp\dsplib

# application library (output of make)
LIBRARY= $(OBJDIR)\applib

# the executable
all: aamain1.out aamain2.out

# Update the object files if necessary


$(OBJDIR)\ads.o40:      ads.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\adsseq.o40:   adsseq.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\list.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\dapc.o40:     dapc.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			filter.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\das.o40:      das.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\ddaq.o40:     ddaq.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\digout.o40:   digout.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\diir.o40:     diir.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			filter.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\dio.o40:      dio.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\dmiop.o40:    dmiop.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\terminal.h \
			$(COOPSDIR)\list.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\drecord.o40:    drecord.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\list.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\dsrv.o40:     dsrv.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			filter.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\dsys.o40:     dsys.c \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\dufg.o40:     dufg.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\filter.o40:   filter.a \
			filter.h
	asm30 $(AFLAGS) $(@B).a $@


$(OBJDIR)\fltbuf.o40:   fltbuf.c \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\ifltterm.o40: ifltterm.c \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\terminal.h
	cl30 $(CFLAGS)  $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\gresii.o40:      gresii.c \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			gresreg.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\ldt.o40:      ldt.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\modesw.o40:   modesw.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\sequence.h \
			$(COOPSDIR)\list.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\ramp.o40:     ramp.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\pfg.o40:      pfg.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\list.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\rdt.o40:      rdt.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\samphold.o40:   samphold.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\list.h \
			$(COOPSDIR)\sequence.h
			
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\scaler.o40:   scaler.c \
			$(COOPSDIR)\dspobjec.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\C30Timer.o40:   C30Timer.c
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

$(OBJDIR)\vicvac.o40:   vicvac.c
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40

cnfgdsp2.o40: cnfgdsp2.c \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\message.h \
			hydra.cmd
	cl30 $(CFLAGS) $(@B).c

cnfgdsp1.o40: cnfgdsp1.c \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\message.h \
			hydra.cmd
	cl30 $(CFLAGS) $(@B).c

$(OBJDIR)\aamain.o40:   aamain.c \
			$(COOPSDIR)\shell.h \
			$(COOPSDIR)\except.h \
			$(COOPSDIR)\object.h \
			$(COOPSDIR)\generic.h \
			$(COOPSDIR)\message.h
	cl30 $(CFLAGS) $(@B).c
	copy $(@B).o40 $@
	del $(@B).o40
    
    
# Update the executable file if necessary, and if so, add the resource back in.

aamain1.out: $(OBJDIR)\aamain.o40 cnfgdsp1.o40 $(OBJECTS) $(COOPSLIB).lib
	del $(LIBRARY).lib
	ar30 -ae $(LIBRARY) $(OBJDIR)\*.o40
	lnk30 $(LFLAGS) $(OBJDIR)\aamain.o40 cnfgdsp1.o40 -o $@ -m $(@R).map hydra.cmd
	copy aamain1.out ..
	
aamain2.out: $(OBJDIR)\aamain.o40 cnfgdsp2.o40 $(OBJECTS) $(COOPSLIB).lib
	del $(LIBRARY).lib
	ar30 -ae $(LIBRARY) $(OBJDIR)\*.o40
	lnk30 $(LFLAGS) $(OBJDIR)\aamain.o40 cnfgdsp2.o40 -o $@ -m $(@R).map hydra.cmd
	copy aamain2.out ..
	
