##
##  Makefile for Windows NT
##


!include <win32.mak>


O=obj/
I=include/
#CFLAGS   = -I$(I) -DWIN32 -nologo -W1 -O2
CFLAGS   = /Ipdcurses /I$(I) /DWIN32 /DPDC_STATIC_BUILD /nologo /O2 /TC
#LIBS     = $(guilibs)
EXES     = adlcomp.exe adlcomp.exe
#LOPTS	= -nologo -nodefaultlib:libcd /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
LOPTS	= -nologo -nodefaultlib:libcd

UTIL=	$(O)vstring.obj \
	$(O)virtmem.obj \
	$(O)mytime.obj
COMP=	$(O)adlcomp.obj \
	$(O)codegen.obj \
	$(O)adllex.obj \
	$(O)adlmisc.obj \
	$(O)adlmsg.obj \
	$(O)adlobj.obj \
	$(O)routcomp.obj \
	$(O)predef.obj \
	$(O)compdict.obj \
	$(O)adlglob.obj \
        $(O)adlproc.obj
RUN=	$(O)adlarith.obj \
	$(O)adldwim.obj \
	$(O)adlfuncs.obj \
	$(O)adlintrn.obj \
	$(O)adlmach.obj \
	$(O)adlmacro.obj \
	$(O)adlmain.obj \
	$(O)adlmiscr.obj \
	$(O)adlobjr.obj \
	$(O)adlrun.obj \
	$(O)adlspec.obj \
	$(O)adlstr.obj \
	$(O)adltrans.obj \
	$(O)rtlex.obj \
	$(O)rtparse.obj \
	$(O)adlerr.obj \
	$(O)adlscrn.obj \
	$(O)rtdict.obj \
	$(O)rtglob.obj
DBG=    $(O)adldebug.obj

HDRS=	$(I)adlcomp.h \
	$(I)adldef.h \
	$(I)adlprog.h \
	$(I)adlrun.h \
	$(I)adltypes.h \
	$(I)builtins.h \
	$(I)undef.h \
	$(I)virtmem.h \
	$(I)vstring.h

LIBS=pdcurses/pdcurses.lib user32.lib

all:	adlcomp/adlcomp.exe adlrun/adlrun.exe misc/adldebug.exe

adlcomp/adlcomp.exe:	$(COMP) $(UTIL)
	$(link) $(LOPTS) -out:$@ $(COMP) $(UTIL) $(LIBS)

adlrun/adlrun.exe:	$(RUN) $(UTIL)
	$(link) $(LOPTS) -out:$@ $(RUN) $(UTIL) $(LIBS)

misc/adldebug.exe:	$(DBG) $(UTIL)
	$(link) $(LOPTS) -out:$@ $(DBG) $(UTIL) $(LIBS)

$(O)vstring.obj:	util/vstring.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c util\vstring.c

$(O)virtmem.obj:	util/virtmem.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c util\virtmem.c

$(O)mytime.obj:		util/mytime.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c util\mytime.c

$(O)adlcomp.obj:	adlcomp/adlcomp.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp\adlcomp.c

$(O)codegen.obj:	adlcomp/codegen.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/codegen.c

$(O)adllex.obj:		adlcomp/adllex.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/adllex.c

$(O)adlmisc.obj:	adlcomp/adlmisc.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/adlmisc.c

$(O)adlmsg.obj:		adlcomp/adlmsg.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/adlmsg.c

$(O)adlobj.obj:		adlcomp/adlobj.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/adlobj.c

$(O)routcomp.obj:	adlcomp/routcomp.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/routcomp.c

$(O)predef.obj:		adlcomp/predef.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/predef.c

$(O)compdict.obj:	adlcomp/compdict.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/compdict.c

$(O)adlglob.obj:	adlcomp/adlglob.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/adlglob.c

$(O)adlproc.obj:	adlcomp/adlproc.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlcomp/adlproc.c

$(O)adlarith.obj:	adlrun/adlarith.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlarith.c

$(O)adldwim.obj:	adlrun/adldwim.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adldwim.c

$(O)adlfuncs.obj:	adlrun/adlfuncs.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlfuncs.c

$(O)adlintrn.obj:	adlrun/adlintrn.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlintrn.c

$(O)adlmach.obj:	adlrun/adlmach.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlmach.c

$(O)adlmacro.obj:	adlrun/adlmacro.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlmacro.c

$(O)adlmain.obj:	adlrun/adlmain.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlmain.c

$(O)adlmiscr.obj:	adlrun/adlmiscr.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlmiscr.c

$(O)adlobjr.obj:	adlrun/adlobjr.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlobjr.c

$(O)adlrun.obj:		adlrun/adlrun.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlrun.c

$(O)adlspec.obj:	adlrun/adlspec.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlspec.c

$(O)adlstr.obj:		adlrun/adlstr.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlstr.c

$(O)adltrans.obj:	adlrun/adltrans.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adltrans.c

$(O)rtlex.obj:		adlrun/rtlex.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/rtlex.c

$(O)rtparse.obj:	adlrun/rtparse.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/rtparse.c

$(O)adlerr.obj:		adlrun/adlerr.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlerr.c

$(O)adlscrn.obj:	adlrun/adlscrn.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/adlscrn.c

$(O)rtdict.obj:		adlrun/rtdict.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/rtdict.c

$(O)rtglob.obj:		adlrun/rtglob.c		$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c adlrun/rtglob.c

$(O)adldebug.obj:	misc/adldebug.c	$(HDRS)
	$(CC) $(CFLAGS) /Fo$@ /c misc/adldebug.c

clean:
	del $(O)*.obj *.pdb *.ilk *.ncb *~

clobber: clean
	del *.exe
