# Roddy and Dennis take on the SUIT/DOS monster
# Compiler options:
# -c    compile, do not link.
# -N    stack checking ON
# -v    source debugging on
# -w-use  disable warning that an identifier is declared but never used
# -w-par  disable warning that a parameter is never used
# -Y and -Yo  the overlay options!
# -P-  only compile as C code

VERSION = v2.3
SUIT = c:\suit\$(VERSION)
ARCH = dos

BORLAND = \bin\borlandc
#CC = $(BORLAND)\BIN\bcc.exe
CC = BCC
LINK = tlink
#CC = BCCX
LIB = TLIB
TOUCH = \unix\touch
MODEL = h
#INCLUDEDIRS = -I$(BORLAND)\include -I.
INCLUDEDIRS = -I$(BORLAND)\include -I$(SUIT)\include
LDFLAGS = -L$(SUIT)\$(ARCH)\lib;$(BORLAND)\lib
#LDFLAGS = -L.;$(BORLAND)\lib
CFLAGS = -w-par -m$(MODEL) -N $(INCLUDEDIRS) -v -P-C -DIBM_PC

.c.obj :
    $(CC) $(CFLAGS) -c -Y  {$< }

RESIDENT_OBJECTS = \
gp.obj      property.obj    tree.obj    output.obj  \
input.obj   utility.obj tools.obj   interest.obj    \
deftypes.obj    scrolbox.obj    switch.obj  spring.obj  \
font.obj    dialog.obj  suitmem.obj dynfind.obj \
dynsort.obj dyncreat.obj    dynput.obj  dyndebug.obj    \
dyndel.obj  dynsize.obj motif.obj   bulletin.obj    \
hash.obj    suithash.obj    stacker.obj
#connect.obj

OVERLAID_OBJECTS = \
radio.obj   clock.obj   ball.obj    placemat.obj    \
menu.obj    textbox.obj bounded.obj arrow.obj   \
elevator.obj    button.obj  hints.obj   initial.obj \
editprop.obj    textedit.obj    trashcan.obj    chips.obj   \
uvalogo.obj polygon.obj help.obj filebox.obj

# objects that need to be overlay aware (-Y)

gp.obj: gp.c
    $(CC) $(CFLAGS) -c -Y {$* }
property.obj: property.c
    $(CC) $(CFLAGS) -c -Y {$* }
tree.obj: tree.c
    $(CC) $(CFLAGS) -c -Y {$* }
output.obj: output.c
    $(CC) $(CFLAGS) -c -Y {$* }
input.obj: input.c
    $(CC) $(CFLAGS) -c -Y {$* }
utility.obj: utility.c
    $(CC) $(CFLAGS) -c -Y {$* }
tools.obj: tools.c
    $(CC) $(CFLAGS) -c -Y {$* }
interest.obj: interest.c
    $(CC) $(CFLAGS) -c -Y {$* }
deftypes.obj: deftypes.c
    $(CC) $(CFLAGS) -c -Y {$* }
scrolbox.obj: scrolbox.c
    $(CC) $(CFLAGS) -c -Y {$* }
switch.obj: switch.c
    $(CC) $(CFLAGS) -c -Y {$* }
spring.obj: spring.c
    $(CC) $(CFLAGS) -c -Y {$* }
font.obj: font.c
    $(CC) $(CFLAGS) -c -Y {$* }
dialog.obj: dialog.c
    $(CC) $(CFLAGS) -c -Y {$* }
suitmem.obj: suitmem.c
    $(CC) $(CFLAGS) -c -Y {$* }
dynfind.obj: dynfind.c
    $(CC) $(CFLAGS) -c -Y {$* }
dynsort.obj: dynsort.c
    $(CC) $(CFLAGS) -c -Y {$* }
dyncreat.obj: dyncreat.c
    $(CC) $(CFLAGS) -c -Y {$* }
dynput.obj: dynput.c
    $(CC) $(CFLAGS) -c -Y {$* }
dyndebug.obj: dyndebug.c
    $(CC) $(CFLAGS) -c -Y {$* }
dyndel.obj: dyndel.c
    $(CC) $(CFLAGS) -c -Y {$* }
dynsize.obj: dynsize.c
    $(CC) $(CFLAGS) -c -Y {$* }
motif.obj: motif.c
    $(CC) $(CFLAGS) -c -Y {$* }
bulletin.obj: bulletin.c
    $(CC) $(CFLAGS) -c -Y {$* }
hash.obj: hash.c
    $(CC) $(CFLAGS) -c -Y {$* }
suithash.obj: suithash.c
    $(CC) $(CFLAGS) -c -Y {$* }
stacker.obj: stacker.c
    $(CC) $(CFLAGS) -c -Y {$* }

# objects that need to be overlay modules (-Yo)

radio.obj: radio.c
    $(CC) $(CFLAGS) -c -Yo {$* }
clock.obj: clock.c
    $(CC) $(CFLAGS) -c -Yo {$* }
ball.obj: ball.c
    $(CC) $(CFLAGS) -c -Yo {$* }
placemat.obj: placemat.c
    $(CC) $(CFLAGS) -c -Yo {$* }
menu.obj: menu.c
    $(CC) $(CFLAGS) -c -Yo {$* }
textbox.obj: textbox.c
    $(CC) $(CFLAGS) -c -Yo {$* }
bounded.obj: bounded.c
    $(CC) $(CFLAGS) -c -Yo {$* }
arrow.obj: arrow.c
    $(CC) $(CFLAGS) -c -Yo {$* }
elevator.obj: elevator.c
    $(CC) $(CFLAGS) -c -Yo {$* }
button.obj: button.c
    $(CC) $(CFLAGS) -c -Yo {$* }
hints.obj: hints.c
    $(CC) $(CFLAGS) -c -Yo {$* }
initial.obj: initial.c
    $(CC) $(CFLAGS) -c -Yo {$* }
editprop.obj: editprop.c
    $(CC) $(CFLAGS) -c -Yo {$* }
textedit.obj: textedit.c
    $(CC) $(CFLAGS) -c -Yo {$* }
trashcan.obj: trashcan.c
    $(CC) $(CFLAGS) -c -Yo {$* }
chips.obj: chips.c
    $(CC) $(CFLAGS) -c -Yo {$* }
uvalogo.obj: uvalogo.c
    $(CC) $(CFLAGS) -c -Yo {$* }
polygon.obj: polygon.c
    $(CC) $(CFLAGS) -c -Yo {$* }
help.obj: help.c
    $(CC) $(CFLAGS) -c -Yo {$* }
# not working  --- really? dennis sez it does. --  mjc
filebox.obj: filebox.c
   $(CC) $(CFLAGS) -c -Yo {$* }

suit_res.lib: $(RESIDENT_OBJECTS)
    $(LIB) $(SUIT)\$(ARCH)\lib\suit_res  /c @&&|
+-gp +-property +-tree +-output +-input +-utility +-tools +-interest +-deftypes &
+-dialog +-scrolbox +-switch +-spring +-font +-suitmem +-dynfind +-dynsort +-dyncreat +-dynput &
+-dyndel +-dynsize +-motif +-bulletin +-hash +-suithash +-stacker +-dyndebug
|

suit_ovl.lib: $(OVERLAID_OBJECTS)
    $(LIB) $(SUIT)\$(ARCH)\lib\suit_ovl  /c @&&|
+-hints +-initial +-bounded +-arrow &
+-elevator +-button +-editprop +-filebox +-textedit +-trashcan +-placemat +-menu +-textbox &
+-chips +-uvalogo +-radio +-clock +-polygon +-ball &
+-help
|

$(SUIT)\$(ARCH)\lib\suit_res.lib: $(RESIDENT_OBJECTS)
    $(LIB) $(SUIT)\$(ARCH)\lib\suit_res  /c @&&|
+-gp +-property +-tree +-output +-input +-utility +-tools +-interest +-deftypes &
+-dialog +-scrolbox +-switch +-spring +-font +-suitmem +-dynfind +-dynsort +-dyncreat +-dynput &
+-dyndel +-dynsize +-motif +-bulletin +-hash +-suithash +-stacker +-dyndebug
|

$(SUIT)\$(ARCH)\lib\suit_ovl.lib: $(OVERLAID_OBJECTS)
    $(LIB) $(SUIT)\$(ARCH)\lib\suit_ovl  /c @&&|
+-hints +-initial +-bounded +-arrow &
+-elevator +-button +-editprop +-filebox +-textedit +-trashcan +-placemat +-menu +-textbox &
+-chips +-uvalogo +-radio +-clock +-polygon +-ball &
+-help
|


#  application below here -------------------

example: example.obj $(SUIT)\$(ARCH)\lib\suit_ovl.lib $(SUIT)\$(ARCH)\lib\suit_res.lib
        $(LINK) /v $(LDFLAGS) c0h example,example, ,graphics suit_res /o suit_ovl /o- srgp OVERLAY emu mathh ch

demo: demo.obj $(SUIT)\$(ARCH)\lib\suit_ovl.lib $(SUIT)\$(ARCH)\lib\suit_res.lib
        $(LINK) /v $(LDFLAGS) c0h demo,demo, ,graphics suit_res /o suit_ovl /o- srgp OVERLAY emu mathh ch

poly: poly.obj $(SUIT)\$(ARCH)\lib\suit_ovl.lib $(SUIT)\$(ARCH)\lib\suit_res.lib
        $(LINK) /v $(LDFLAGS) c0h poly,poly, ,graphics suit_res /o suit_ovl /o- srgp OVERLAY emu mathh ch

3cell: 3cell.obj $(SUIT)\$(ARCH)\lib\suit_ovl.lib $(SUIT)\$(ARCH)\lib\suit_res.lib
        $(LINK) /v $(LDFLAGS) c0h 3cell,3cell, ,graphics suit_res /o suit_ovl /o- srgp OVERLAY emu mathh ch

#   $(CC) $(CFLAGS) $(LDFLAGS) example.obj suit.lib srgp.lib graphics.lib

#demo: demo.obj $(DEST)
#   $(CC) $(CFLAGS) $(LDFLAGS) demo.obj suit.lib srgp.lib graphics.lib

#poly: poly.obj $(DEST)
#   $(CC) $(CFLAGS) $(LDFLAGS) poly.obj suit.lib srgp.lib graphics.lib

#3cell: 3cell.obj $(DEST)
#   $(CC) $(CFLAGS) $(LDFLAGS) 3cell.obj suit.lib srgp.lib graphics.lib

############################################################

clean:
    del $(DEST)
    del *.obj
