# makefile : Builds perl and perlglob on NT
#
# Usage:     NMAKE option (build perl and perlglob)
#    or:     NMAKE clean  (erase all compiled files)
#
# option:    DEBUG=[0|1]  (DEBUG not defined is equivalent to DEBUG=1)
#
#	On MIPS, Alpha and i86 platforms:
#
#	The LIB environment variable should point to the 
#					SDK libraries and then the VC libraries
#
#	The INCLUDE environment variable should point to the 
#					SDK includes and then the VC includes
#
#	The path should include the VC binaries
#
#

!include <ntwin32.mak>

CPP = cl.exe
CPPFLAGS = /W3 /DWIN32 /D_CONSOLE /I ".\inc"
LINKFLAGS = -subsystem:console -incremental:yes

!if "$(DEBUG)" != "0"
OBJ_DIR=WinDebug
CPPFLAGS=$(CPPFLAGS) /D_DEBUG /DDEBUGGING /Fd$(OBJ_DIR)\ /Fo$(OBJ_DIR)\ /FR"$(OBJ_DIR)/" /Od /Zi
LINKFLAGS=$(LINKFLAGS) -debug:full
LIBS=kernel32.lib wsock32.lib ole32.lib oleaut32.lib advapi32.lib shell32.lib user32.lib uuid.lib setargv.obj
LIBSGLOB=setargv.obj
!else
OBJ_DIR=WinRel
CPPFLAGS=$(CPPFLAGS) /DNDEBUG /Fd$(OBJ_DIR)\ /Fo$(OBJ_DIR)\ /FR"$(OBJ_DIR)/" /O2
LINKFLAGS=$(LINKFLAGS) -debug:none
LIBS=kernel32.lib wsock32.lib ole32.lib oleaut32.lib advapi32.lib shell32.lib user32.lib uuid.lib setargv.obj
LIBSGLOB=setargv.obj
!endif

#############################################################################
# Targets

all: $(OBJ_DIR) ntt\perl.exe ntt\perlglob.exe

$(OBJ_DIR):
        @if not exist $(OBJ_DIR) md $(OBJ_DIR)

#############################################################################
# Special inference rules

.c{$(OBJ_DIR)}.obj:
   $(CPP) $(CPPFLAGS) /c $<

#############################################################################
# file list

OBJS= \
        $(OBJ_DIR)\AV.obj \
        $(OBJ_DIR)\DEB.obj \
        $(OBJ_DIR)\DOIO.obj \
        $(OBJ_DIR)\DOOP.obj \
        $(OBJ_DIR)\DUMP.obj \
        $(OBJ_DIR)\GLOBALS.obj \
        $(OBJ_DIR)\GV.obj \
        $(OBJ_DIR)\HV.obj \
        $(OBJ_DIR)\MG.obj \
        $(OBJ_DIR)\main.obj \
        $(OBJ_DIR)\NT.obj \
        $(OBJ_DIR)\NTLIB.obj \
        $(OBJ_DIR)\NTOLE.obj \
        $(OBJ_DIR)\NTXS.obj \
        $(OBJ_DIR)\OP.obj \
        $(OBJ_DIR)\PERL.obj \
        $(OBJ_DIR)\PERLY.obj \
        $(OBJ_DIR)\PP.obj \
        $(OBJ_DIR)\PP_CTL.obj \
        $(OBJ_DIR)\PP_HOT.obj \
        $(OBJ_DIR)\PP_SYS.obj \
        $(OBJ_DIR)\REGCOMP.obj \
        $(OBJ_DIR)\REGEXEC.obj \
        $(OBJ_DIR)\RUN.obj \
        $(OBJ_DIR)\SCOPE.obj \
        $(OBJ_DIR)\SV.obj \
        $(OBJ_DIR)\TAINT.obj \
        $(OBJ_DIR)\TOKE.obj \
        $(OBJ_DIR)\UTIL.obj

OBJSGLOB= \
        $(OBJ_DIR)\PERLGLOB.obj

#############################################################################
# Final linking

ntt\perl.exe: $(OBJ_DIR) $(OBJS)
        link $(LINKFLAGS) -out:ntt\perl.exe @<<
$(OBJS)
$(LIBS)
$(RESOURCES)
<<

ntt\perlglob.exe: $(OBJ_DIR) $(OBJSGLOB)
        link $(LINKFLAGS) -out:ntt\perlglob.exe @<<
$(OBJSGLOB)
$(LIBSGLOB)
$(RESOURCES)
<<

#############################################################################

# Note
$(OBJ_DIR)\NTOLE.obj: \
        ntole.cpp \
        nt.h \
        perl.h \
        extern.h
        $(CPP) $(CPPFLAGS) /c ntole.cpp



clean:
        -erase ntt\perl.exe
        -erase ntt\perlglob.exe
        -erase ntt\perl.ilk
        -erase ntt\perlglob.ilk
        -erase ntt\perl.pdb
        -erase ntt\perlglob.pdb
        -erase $(OBJ_DIR)\*.*

#############################################################################
