#
# Makefile for diskcopy (works for borland make, not for GNU make). 
#

## change to reflect the real path where you installed tcc.
includepath  = c:\tc201\include
libdir       = c:\tc201\lib

compiler  = tcc -c -I$(includepath)
assembler = nasm                      #change to nasm16 on 8086/80286

#hlpoptions =             
hlpoptions = -DDEF_HELP

recoptions = 
#recoptions = -DALL_RECOVERY_MODE

options  = -w -O -d -Z $(hlpoptions) $(recoptions)

sources = diskcopy.c drive.c ems.asm memtypes.c misc.c xms.asm waitfinp.c tdrvcpy.c\
     diskcopy.h drive.h ems.h memtypes.h misc.h xms.h waitfinp.h tdrvcpy.h \
     mouse.asm mouse.h switchch.asm critical.asm hicritcl.asm drvtypes.asm \
     scanner.c parser.c scanner.h parser.h recovery.c datgen.c

objects = diskcopy.obj drive.obj ems.obj memtypes.obj misc.obj xms.obj \
     waitfinp.obj tdrvcpy.obj mouse.obj switchch.obj critical.obj \
     hicritcl.obj drvtypes.obj scanner.obj parser.obj recovery.obj \
     exepath.obj datgen.obj

diskcopy.exe:  $(objects)
   @delete diskcopy.lib
   @tlib diskcopy + diskcopy.obj
   @tlib diskcopy + drive.obj
   @tlib diskcopy + ems.obj
   @tlib diskcopy + memtypes.obj
   @tlib diskcopy + misc.obj
   @tlib diskcopy + xms.obj
   @tlib diskcopy + waitfinp.obj
   @tlib diskcopy + tdrvcpy.obj
   @tlib diskcopy + mouse.obj
   @tlib diskcopy + switchch.obj
   @tlib diskcopy + critical.obj
   @tlib diskcopy + hicritcl.obj
   @tlib diskcopy + drvtypes.obj
   @tlib diskcopy + scanner.obj
   @tlib diskcopy + parser.obj
   @tlib diskcopy + recovery.obj
   @tlib diskcopy + exepath.obj
   @tlib diskcopy + datgen.obj
   @tlink $(libdir)\c0s, diskcopy, nul, $(libdir)\cs diskcopy.lib
   @del  diskcopy.lib
   @del  diskcopy.bak

diskcopy.obj: diskcopy.c drive.h diskcopy.h memtypes.h misc.h waitfinp.h\
         tdrvcpy.h critical.h parser.h exepath.h
   @$(compiler) $(options) diskcopy.c

drive.obj: drive.c drive.h misc.h drvtypes.h
   @$(compiler) $(options) drive.c

ems.obj: ems.asm
   @$(assembler) ems.asm -f obj -o ems.obj

memtypes.obj: memtypes.c memtypes.h xms.h ems.h diskcopy.h drive.h parser.h
   @$(compiler) $(options) memtypes.c

misc.obj: misc.c
   @$(compiler) $(options) misc.c

xms.obj: xms.asm
   @$(assembler) xms.asm -f obj -o xms.obj

waitfinp.obj: waitfinp.c waitfinp.h mouse.h
   @$(compiler) $(options) waitfinp.c

tdrvcpy.obj: tdrvcpy.c diskcopy.h tdrvcpy.h memtypes.h waitfinp.h drive.h
   @$(compiler) $(options) tdrvcpy.c

scanner.obj: scanner.c diskcopy.h drive.h scanner.h parser.h datgen.h
   @$(compiler) $(options) scanner.c

parser.obj: parser.c diskcopy.h drive.h scanner.h parser.h datgen.h
   @$(compiler) $(options) parser.c

recovery.obj: recovery.c diskcopy.h drive.h
   @$(compiler) $(options) recovery.c

exepath.obj: exepath.c exepath.h
   @$(compiler) $(options) exepath.c

mouse.obj: mouse.asm
   @$(assembler) mouse.asm -f obj -o mouse.obj

switchch.obj: switchch.asm
   @$(assembler) switchch.asm -f obj -o switchch.obj

critical.obj: critical.asm
   @$(assembler) critical.asm -f obj -o critical.obj

hicritcl.obj: hicritcl.asm
   @$(assembler) hicritcl.asm -f obj -o hicritcl.obj

drvtypes.obj: drvtypes.asm
   @$(assembler) drvtypes.asm -f obj -o drvtypes.obj        

datgen.obj: datgen.c datgen.h scanner.h parser.h drive.h 
   @$(compiler) $(options) datgen.c

clean:
   @delete diskcopy.exe
   @delete diskcopy.obj
   @delete drive.obj
   @delete ems.obj
   @delete memtypes.obj
   @delete misc.obj
   @delete xms.obj
   @delete *.bak
   @delete waitfinp.obj
   @delete tdrvcpy.obj
   @delete mouse.obj
   @delete switchch.obj
   @delete critical.obj
   @delete hicritcl.obj
   @delete drvtypes.obj
   @delete scanner.obj
   @delete parser.obj
   @delete exepath.obj
   @delete recovery.obj
   @delete datgen.obj
   
backup: $(sources) diskcopy.exe
   @make clean
   @cls
   @echo Put your backup diskette in drive a:, and
   @pause
   @md a:\diskcopy
   @xcopy \diskcopy a:\diskcopy /s
   @echo Done.

debugger: diskcopy.exe
   @delete diskcopy.exe
   @delete diskcopy.obj
   @delete drive.obj
   @delete memtypes.obj
   @delete misc.obj
   @delete waitfinp.obj
   @delete tdrvcpy.obj
   @delete scanner.obj
   @delete parser.obj
   @delete exepath.obj
   @delete recovery.obj
   @delete datgen.obj
