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

CC=tcc
#CFLAGS=-O -ml -DANSI
CFLAGS=-v -N -ml -DANSI -DDEBUG
LIBS=graphics.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 signals.obj \
        graph.obj msdos.obj

DOBJS=debugger.obj

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) prims.obj
	$(CC) $(CFLAGS) -ecamlrun -M @&&!
prims.obj $(OBJS) $(LIBS)
!

camlrund.exe: opnames.h $(OBJS) prims.obj $(DOBJS)
	$(CC) $(CFLAGS) -ecamlrund -M @&&!
prims.obj $(OBJS) $(DOBJS) $(LIBS)
!

debug:
	make clean
	make CFLAGS="$(CFLAGS_DEBUG)" camlrund

clean:
	del camlrun.exe
	del camlrund.exe
	del *.tdk
	del *.map
	del *.obj
	del prims
	del prims.c
	del opnames.h

install:
	copy camlrun.exe $(BINDIR)

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

opnames.h : instruct.h
	perl ../tools/mkopnam instruct.h > opnames.h

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

