#
# Turbo C v1.5 MAKE file for TopView Interface.
#

# change the next line to select the desired memory model--t,s,m,c,l,h
!if !$d(MDL)
MDL = s
!elif $(MDL) != "t" && $(MDL) != "s" && $(MDL) != "c" && $(MDL) != "m" && $(MDL) != "l" && $(MDL) != "h"
!error Invalid memory model
!endif

# If you want different optimizations, change the next line
# you MUST leave in the -a- otherwise a number of functions will break
CFLAGS = -m$(MDL) -Z -O -G -d -w -a-

# default rule to compile a module
.c.obj:
        tcc $(CFLAGS) -c $<

# the final goal of the makefile is to create the demo program
demo.exe:  tvapi$(MDL).lib demo.obj
        tcc -m$(MDL) demo.obj tvapi$(MDL).lib

# define the various object modules
DVOBJS = dvver.obj dvapi.obj dvmem.obj dvinit.obj dvshadow.obj dvjstart.obj

#these modules include TVSTREAM.H
STRMOBJS=tvmstrm.obj tvwlsize.obj tvworig.obj tvwcolor.obj tvwattr.obj \
tvwcursr.obj tvwmove.obj tvwresiz.obj tvwtitle.obj tvwscrol.obj tvqcolor.obj \
tvqattr.obj tvqctrl.obj tvqcursr.obj tvqhiden.obj tvqframe.obj tvqlsize.obj \
tvqtitle.obj tvqlattr.obj tvqleave.obj tvqsize.obj tvqfattr.obj tvqpos.obj \
tvwhide.obj tvwctrl.obj tvwleave.obj tvwframe.obj tvwlattr.obj tvwfattr.obj \
tvwredrw.obj tvwrepat.obj tvwrepch.obj tvqfield.obj tvfattr.obj tvfchar.obj \
tvfclear.obj tvfcursr.obj tvfwrite.obj tvfswrit.obj tvfqtype.obj tvfscrol.obj \
tvftype.obj tvfqhead.obj tvfqent.obj tvfqsize.obj tvfent.obj tvfhead.obj \
tvwreord.obj tvfpoint.obj tvfreset.obj tvqaread.obj tvwaread.obj tvjhide.obj \
tvjsusp.obj tvjshow.obj tvjfree.obj tvjback.obj tvjfore.obj tvwatach.obj \
tvfbuild.obj tvfmark.obj

#these require MASM or A86 to recompile
ASMOBJS=tvint15.obj tvint15w.obj tvint15i.obj tvint15n.obj tvtnew.obj tvjnew.obj

#these are the high-level user interface functions
UIOBJS=uimbuild.obj uimshow.obj uiwopen.obj uisignal.obj

dummyobj.1: tvperase.obj tvbclear.obj tvbclose.obj tvbopen.obj tvlock.obj \
   tvpopen.obj tvkclear.obj tvkclose.obj tvsound.obj \
   tvposwin.obj tvkread.obj tvkwrite.obj tvknew.obj tvkopen.obj \
   tvkstat.obj tvbread.obj tvbnew.obj tvbstat.obj tvbfind.obj \
   tvmtop.obj tvmbot.obj tvmasync.obj tvmallow.obj tvmfore.obj \
   tvohandl.obj tvbhandl.obj tvkhandl.obj tvosize.obj tvkfree.obj \
   tvwfree.obj tvwclear.obj tvwrdraw.obj tviopen.obj tvistop.obj \
   tvbfree.obj tv_free.obj tvoclear.obj tvtfree.obj tv_close.obj \
   tvthandl.obj tvoclose.obj tvoopen.obj tvadir.obj tvaapply.obj \
   tvwwidth.obj tvwsize.obj tvweof.obj \
   tvwread.obj tvwwrite.obj tvwswrit.obj tvwfill.obj tvpnew.obj \
   tvmem.obj tvintbit.obj tvshadow.obj tvwhandl.obj \
   tvwnread.obj tvpstat.obj tvpadd.obj tvpsub.obj tvpgoto.obj tvpscale.obj

dummyobj.2:  tvinew.obj tviadd.obj tvilen.obj \
   tviread.obj tvistat.obj tvsleep.obj tviset.obj tvputch.obj tvisobj.obj \
   tvlocate.obj tvgetbuf.obj tvobject.obj tverrmsg.obj \
   tvtstop.obj tvtstart.obj tvbsize.obj tvbaddr.obj tvksize.obj \
   tvkadd.obj tvksub.obj \
   tvbname.obj tvbeof.obj tvpicon.obj tvoadd.obj tvosub.obj \
   tvaopen.obj tvtpost.obj tvoread.obj tvwwritc.obj tvwwrita.obj tvqorig.obj \
   tvbsend.obj tvqfield.obj tvtinter.obj tvpsize.obj tvanew.obj tvasize.obj \
   tvwprntf.obj tvcalloc.obj tvmalloc.obj tvfree.obj tvfalt.obj \
   tvrealoc.obj tvbwrite.obj \
   tvkgetc.obj tvastat.obj tvwpoint.obj \
   tvver.obj tvinit.obj tvwat.obj \
   tvqpos.obj tvielaps.obj tvkesc.obj tvwcreat.obj \
   tvostat.obj tvpread.obj tvkmouse.obj

ui: $(UIOBJS)

tvapi$(MDL).lib: $(DVOBJS) $(STRMOBJS) $(ASMOBJS) dummyobj.1 dummyobj.2 ui
        del tvapi$(MDL).lib
        tlib tvapi$(MDL)/c @tvlib

tvstream.h: tvapi.h
        touch tvstream.h

tvint15.obj:   tvapi.h tvint15.c
        tcc $(CFLAGS) -c -B -N- tvint15
tvint15w.obj:  tvstream.h tvint15w.c
        tcc $(CFLAGS) -c -B -N- tvint15w
tvint15i.obj:  tvapi.h tvint15i.c
        tcc $(CFLAGS) -c -B -N- tvint15i
tvint15n.obj:  tvapi.h tvint15n.c
        tcc $(CFLAGS) -c -B -N- tvint15n
tvtnew.obj:    tvapi.h tvtnew.c
        tcc $(CFLAGS) -c -B -N- tvtnew
tvjnew.obj:    tvapi.h tvjnew.c
        tcc $(CFLAGS) -c -B -N- tvjnew

demo.obj:  demo.c tvstream.h tvui.h dvp.h

$(STRMOBJS):   tvstream.h
tverrmsg.obj:  tvapi.h
tvielaps.obj:  tvapi.h
tvkesc.obj:    tvapi.h
tvwcreat.obj:  tvapi.h
tvbsend.obj:   tvapi.h
tvosize.obj:   tvapi.h
tvostat.obj:   tvapi.h
tvtinter.obj:  tvapi.h
tvpsize.obj:   tvapi.h
tvasize.obj:   tvapi.h
tvver.obj:     tvapi.h
tvmem.obj:     tvapi.h
tvintbit.obj:  tvapi.h
tvshadow.obj:  tvapi.h
tvwhandl.obj:  tvapi.h
tvohandl.obj:  tvapi.h
tvbhandl.obj:  tvapi.h
tvkhandl.obj:  tvapi.h
tvkfree.obj:   tvapi.h
tvbfree.obj:   tvapi.h
tv_free.obj:   tvapi.h
tvoclear.obj:  tvapi.h
tvtfree.obj:   tvapi.h
tv_close.obj:  tvapi.h
tvwfree.obj:   tvapi.h
tvwclear.obj:  tvapi.h
tvwrdraw.obj:  tvapi.h
tviopen.obj:   tvapi.h
tvistop.obj:   tvapi.h
tvthandl.obj:  tvapi.h
tvoclose.obj:  tvapi.h
tvoopen.obj:   tvapi.h
tvperase.obj:  tvapi.h
tvbclear.obj:  tvapi.h
tvbclose.obj:  tvapi.h
tvbopen.obj:   tvapi.h
tvlock.obj:    tvapi.h
tvkclear.obj:  tvapi.h
tvkclose.obj:  tvapi.h
tvsound.obj:   tvapi.h
tvposwin.obj:  tvapi.h
tvkread.obj:   tvapi.h
tvkwrite.obj:  tvapi.h
tvknew.obj:    tvapi.h
tvkopen.obj:   tvapi.h
tvkstat.obj:   tvapi.h
tvbread.obj:   tvapi.h
tvbnew.obj:    tvapi.h
tvbstat.obj:   tvapi.h
tvbfind.obj:   tvapi.h
tvmtop.obj:    tvapi.h
tvmbot.obj:    tvapi.h
tvmasync.obj:  tvapi.h
tvmallow.obj:  tvapi.h
tvmfore.obj:   tvapi.h
tvwwidth.obj:  tvapi.h
tvwsize.obj:   tvapi.h
tvweof.obj:    tvapi.h
tvwread.obj:   tvapi.h
tvwnread.obj:  tvapi.h
tvwwrite.obj:  tvapi.h
tvwswrit.obj:  tvapi.h
tvwfill.obj:   tvapi.h
tvinew.obj:    tvapi.h
tviadd.obj:    tvapi.h
tvilen.obj:    tvapi.h
tviread.obj:   tvapi.h
tvistat.obj:   tvapi.h
tvsleep.obj:   tvapi.h
tviset.obj:    tvapi.h
tvputch.obj:   tvapi.h
tvisobj.obj:   tvapi.h
tvlocate.obj:  tvapi.h
tvgetbuf.obj:  tvapi.h
tvobject.obj:  tvapi.h
tvpnew.obj:    tvapi.h
tvpstat.obj:   tvapi.h
tvpadd.obj:    tvapi.h
tvpsub.obj:    tvapi.h
tvtstop.obj:   tvapi.h
tvtstart.obj:  tvapi.h
tvbsize.obj:   tvapi.h
tvbaddr.obj:   tvapi.h
tvksize.obj:   tvapi.h
tvkadd.obj:    tvapi.h
tvksub.obj:    tvapi.h
tvbname.obj:   tvapi.h
tvbeof.obj:    tvapi.h
tvpicon.obj:   tvapi.h
tvpgoto.obj:   tvapi.h
tvpscale.obj:  tvapi.h
tvoadd.obj:    tvapi.h
tvosub.obj:    tvapi.h
tvaopen.obj:   tvapi.h
tvtpost.obj:   tvapi.h
tvoread.obj:   tvapi.h
tvwwritc.obj:  tvapi.h
tvwwrita.obj:  tvapi.h
tvqorig.obj:   tvapi.h
tvwprntf.obj:  tvapi.h
tvmalloc.obj:  tvapi.h
tvcalloc.obj:  tvapi.h
tvrealoc.obj:  tvapi.h
tvfree.obj:    tvapi.h
tvbwrite.obj:  tvapi.h
tvinit.obj:    tvapi.h
tvwat.obj:     tvapi.h
tvfalt.obj:    tvapi.h
tvkgetc.obj:   tvapi.h
tvpopen.obj:   tvapi.h
tvastat.obj:   tvapi.h
tvanew.obj:    tvapi.h
tvwpoint.obj:  tvapi.h
tvpread.obj:   tvapi.h
tvkmouse.obj:  tvapi.h
tvaapply.obj:  tvapi.h
tvadir.obj:    tvapi.h

$(DVOBJS):     tvapi.h

uimbuild.obj:  tvstream.h tvui.h
uimshow.obj:   tvstream.h tvui.h
uiwopen.obj:   tvapi.h tvui.h
uisignal.obj:  tvstream.h tvui.h
