# Makefile for the Caml Light runtime system, 8086 version, Turbo C compiler

CC=tcc
FLAGS_OPTI=-O -ml
FLAGS_DEBUG=-v -N -ml
OTHEROPTS=-DANSI
TCLIB=c:\lang\tc\lib

.AUTODEPEND

OBJS=interp.obj equal.obj ints.obj floats.obj str.obj io.obj intext.obj \
        hash.obj sys.obj meta.obj freelist.obj major_gc.obj minor_gc.obj \
        memory.obj misc.obj alloc.obj fail.obj main.obj \
	stacks.obj fix_code.obj roots.obj version.obj parsing.obj \
        lexing.obj graph.obj prims.obj signals.obj msdos.obj

DOBJS=interp.odj equal.odj ints.odj floats.odj str.odj io.odj intext.odj \
        hash.odj sys.odj meta.odj freelist.odj major_gc.odj minor_gc.odj \
        memory.odj misc.odj alloc.odj fail.odj main.odj \
	stacks.odj fix_code.odj roots.odj version.obj \
	debugger.odj parsing.odj lexing.odj graph.odj prims.odj signals.odj \
	msdos.odj

PRIMS=interp.c equal.c ints.c floats.c str.c \
        io.c intext.c hash.c sys.c meta.c parsing.c lexing.c graph.c

all: camlrun.exe

camlrun.exe: $(OBJS)
	$(CC) $(FLAGS_OPTI) $(OTHEROPTS) -ecamlrun -M @&&!
$(OBJS) graphics.lib
!

camlrund.exe: $(DOBJS)
	tlink /c /v @&&!
$(TCLIB)\c0l $(DOBJS)
$*
$*
$(TCLIB)\graphics $(TCLIB)\emu $(TCLIB)\mathl $(TCLIB)\cl
!

clean:
	del camlrun.exe
	del camlrund.exe
	del *.tdk
	del *.map
	del *.obj
	del *.odj

scratch: clean
	del prims
	del prims.c

install:
	copy camlrun.exe $(BINDIR)

prims.c: $(PRIMS)
	perl ..\tools\findprim prims <<!
$(PRIMS)
!
	perl ..\tools\mkprims prims > prims.c

.c.obj:
	$(CC) -c $(FLAGS_OPTI) $(OTHEROPTS) {$< }

.c.odj:
	$(CC) -c -DDEBUG $(FLAGS_DEBUG) $(OTHEROPTS) -o$*.odj $<

