WARNINGS=-Wall
#OPTIMIZE=-fomit-frame-pointer -O2
MODEL=-mshort -m68030
#DONTDEBUG=-DNO_FATAL -DNO_TRACE -DNO_ALERT -DNO_DEBUG
DEBUGFLAGS=$(DONTDEBUG)
OPTIONS=
CFLAGS=$(MODEL) $(WARNINGS) $(OPTIMIZE) $(DEBUGFLAGS) $(OPTIONS)
LDFLAGS=$(MODEL)

#	Programs used

CC=/gnu/bin/gcc
AR=/gnu/bin/gcc-ar
INSTALL=/usr/local/bin/install
MKPTYPES=/usr/bin/mkptypes
TOGLCLR=/gnu/bin/toglclr
STRIP=/gnu/bin/xstrip

#	Install directories

INCLUDEDIR=/gnu/include
LIBDIR=/gnu/lib
BINDIR=/usr/local/bin
APPDIR=/multitos/app

LIBS=-lscsilib -liio16 -lgnu16

GEN=devproto.h tapeproto.h scsidevproto.h scsiproto.h

lib=scsilib.olb

all:spscsi.xdd polldev.xdd ttscsi.xdd tapedev.xdd cddev.xdd tape

st:st.o tt-scsi.o
	$(CC) $(LDFLAGS) -o $@ $^

reset:reset.o spscsi.o
	$(CC) $(LDFLAGS) -o $@ $^ -liio16
	strip $@

tapedev.xdd:$(lib) tapeproto.h tapeinit.o tapedev.o version.o
	$(LD) -o $@ $(filter %.o,$^) $(LIBS)
	@$(STRIP) $@

tapedev.tos:$(lib) tapeproto.h tapedev.oo version.o
	$(CC) -o $@ tapedev.oo version.o -l$(lib) -liio16
	@$(STRIP) $@

cddev.xdd:$(lib) devproto.h cddevinit.o cddev.o version.o
	$(LD) -o $@ $(filter %.o,$^) -lscsilib -liio16 -lgnu16
	@$(STRIP) $@

spscsi.xdd:scsidevproto.h scsiinit.o scsidev.o spscsi.o version.o
	$(LD) -o $@ $(filter %.o,$^) -liio16 -lgnu16
	@$(STRIP) $@

polldev.xdd:pollproto.h scsiinit.o polldev.o spscsi.o version.o
	$(LD) -o $@ $(filter %.o,$^) -liio16 -lgnu16
	@$(STRIP) $@

ttscsi.xdd:pollproto.h scsiinit.o polldev.o tt-scsi.o version.o
	$(LD) -o $@ $(filter %.o,$^) -liio16 -lgnu16

tape: tape.o
	$(CC) $(LDFLAGS) -o $@ tape.o
	@$(STRIP) $@

devproto.h:cddev.c
	$(MKPTYPES) $< > $@

tapeproto.h:tapedev.c
	$(MKPTYPES) $< > $@

scsidevproto.h:scsidev.c
	$(MKPTYPES) $< > $@

pollproto.h:polldev.c
	$(MKPTYPES) $< > $@

scsiproto.h:scsicmd.c
	$(MKPTYPES) $< > $@
	$(INSTALL) $@ $(INCLUDEDIR)
	$(INSTALL) sioctl.h $(INCLUDEDIR)

lib:scsilib.olb

scsilib.olb:scsiproto.h scsicmd.h scsicmd.o
	@$(RM) -f scsilib.olb
	$(AR) rs scsilib.olb scsicmd.o
	$(INSTALL) scsilib.olb $(LIBDIR)
	$(INSTALL) scsicmd.h $(INCLUDEDIR)

.SUFFIXES: .cpp

.cpp.o:
	$(CC) -c -o $*.o $<

scsicmd.o:scsiproto.h scsicmd.c scsicmd.h
spscsi.o:spscsi.cpp ttconst.h spconst.h spmacro.h

uue:ehscsi.tgz
	uue ehscsi.tgz
	@pc2sun ehscsi.uue

distfiles=	Makefile atarierr.h cddev.c cddevinit.s \
		filesys.h kmacros.h polldev.c scsicmd.c scsicmd.h scsidev.c \
		scsiinit.s scsipoll.c sioctl.h spconst.h spmacro.h \
		spscsi.cpp steal.h tape.c tapedev.c tapeinit.s tt-scsi.cpp \
		ttconst.h version.c \
		DOC/NEWS DOC/README.EHSCSI


ehscsi.tgz:$(distfiles)
	tar cvfz ehscsi.tgz $(distfiles)

clean:
	rm -f *.o *.oo core *.xdd tape *.tgz *.olb

realclean:clean
	rm -f *~ *#* $(GEN)

scsicmd.oo:scsicmd.c scsiproto.h  scsicmd.h
	$(CC) $(MODEL) $(OPTIMIZE) -DNOKERNEL -c -o scsicmd.oo scsicmd.c

tapedev.oo:tapeproto.h tapedev.c
	$(CC) $(MODEL) $(OPTIMIZE) -DPROG_DEVICE -c -o tapedev.oo tapedev.c

install:all
	$(INSTALL) ttscsi.xdd /multitos
	$(INSTALL) cddev.xdd /multitos
	$(INSTALL) tapedev.xdd /multitos
	$(INSTALL) tape $(BINDIR)
	$(INSTALL) scsilib.olb $(LIBDIR)
	$(INSTALL) scsicmd.h scsiproto.h $(INCLUDEDIR)

