!IF 0

Copyright (c) 1991  Microsoft Corporation

Module Name:

    makefile

Abstract:

    makefile for Vdm Redir program

Author:

    Richard L Firth (rfirth) 13-Sep-1991

Revision History:

    13-Sep-1991 rfirth
        Created

!ENDIF



.SUFFIXES:
.SUFFIXES:  .asm .h

#
# nmake doesn't work properly if we try to stick the objects in obj, so put
# them in current dir for now. WHEN CHANGE OBJPATH TO BE OBJ, CHANGE clean TOO
#

#OBJPATH     = .
OBJPATH     = obj

ASM         = masm
!IFDEF NTVDM_BASED_BUILD
LINK        = link16
!ELSE
LINK        = link
!ENDIF

#
# convert NTDEBUG into DEBUG flag. NTDEBUG can be not present or retail, either
# of which mean no debugging; or ntsd, cvp or sym, which means debugging support
# required
#
!IFNDEF COUNTRY
COUNTRY=usa
!ENDIF
!IFDEF NTDEBUG
!IF "$(NTDEBUG)" == "retail"
DEBUGGING=0
!ELSE
DEBUGGING=1
!ENDIF
!ELSE
DEBUGGING=0
!ENDIF

#
# assembler and linker debugging options
#

!IF $(DEBUGGING)
ASMDEBUG    = /DDEBUG=1 /Zi
LINKDEBUG   = /CO
!ELSE
ASMDEBUG    = /DDEBUG=0
LINKDEBUG   =
!ENDIF
ASMINC      = /I..\inc /I..\..\..\inc
ASMFLAGS    = /Mx
LINKFLAGS   = /MAP /CP:1

#
# any other non-debug related options (for assembler) go in USERDEFS
#

USERDEFS    = /DCALL_DOS



#
# Inference rules - asm to obj, h to inc
#

.asm{$(OBJPATH)\}.obj:
    $(ASM) $(ASMINC) $(ASMDEBUG) $(USERDEFS) $<,$@;

.h.inc:
    h2inc -c $< -o $*.inc

.asm.lst:
    $(ASM) $(ASMINC) $(ASMDEBUG) $(USERDEFS) /L $<;



#
# what it is we're building
#

TARGET      = $(OBJPATH)\redir.exe
#TARGET      = $(OBJPATH)\ntdosnet.exe
MAPFILE     = $(TARGET:.exe=.map)
DEFFILE     = ;

OBJS        = $(OBJPATH)\redir.obj    \
              $(OBJPATH)\resident.obj \
              $(OBJPATH)\namepipe.obj \
              $(OBJPATH)\mailslot.obj \
              $(OBJPATH)\netapis.obj  \
              $(OBJPATH)\int2a.obj    \
              $(OBJPATH)\int5c.obj    \
              $(OBJPATH)\neterror.obj \
              $(OBJPATH)\msgapi.obj

LIBS        =



#
# how to build it
#

all:    makedir $(TARGET)

$(TARGET):  $(OBJS)
    $(LINK) @<<
$(OBJS)
$(TARGET) $(LINKFLAGS) $(LINKDEBUG)
$(MAPFILE)
$(LIBS)
$(DEFFILE)
<<

#
# where to put it
#

!IF "$(_NT386TREE)" != ""
#    if exist $(_NT386TREE)\bin86 copy $(TARGET) $(_NT386TREE)\bin86
    binplace $(TARGET)
!ENDIF
!IF "$(_NTMIPSTREE)" != ""
#    if exist $(_NTMIPSTREE)\bin86 copy $(TARGET) $(_NTMIPSTREE)\bin86
    binplace $(TARGET)
!ENDIF
!IF "$(_NTALPHATREE)" != ""
#    if exist $(_NTALPHATREE)\bin86 copy $(TARGET) $(_NTALPHATREE)\bin86
    binplace $(TARGET)
!ENDIF



#
# clean build - delete all objs
#

#clean:  makedir clean2

clean:
    if exist $(OBJPATH)\*.obj del $(OBJPATH)\*.obj

clean2:
    if exist $(OBJPATH)\*.obj del $(OBJPATH)\*.obj
    $(MAKE)

#    !-del $**
#    -del $(TARGET)
#    $(MAKE)



#
# makedir - ensure the subdirectory for the object files exists
#

makedir:
    @-if not exist $(OBJPATH) md $(OBJPATH)



#
# file dependencies
#

$(OBJPATH)\redir.obj:   \
        redir.asm       \
        enumapis.inc    \
        debugmac.inc    \
        localmac.inc    \
        asmmacro.inc    \
        int5c.inc       \
        segorder.inc    \
        redirmsg.inc

$(OBJPATH)\resident.obj:\
        resident.asm    \
        enumapis.inc    \
        debugmac.inc    \
        localmac.inc    \
        asmmacro.inc    \
        segorder.inc

$(OBJPATH)\namepipe.obj:\
        enumapis.inc    \
        debugmac.inc    \
        localmac.inc    \
        asmmacro.inc    \
        segorder.inc

$(OBJPATH)\mailslot.obj:\
        enumapis.inc    \
        debugmac.inc    \
        localmac.inc    \
        asmmacro.inc    \
        segorder.inc

$(OBJPATH)\netapis.obj: \
        enumapis.inc    \
        debugmac.inc    \
        localmac.inc    \
        asmmacro.inc    \
        segorder.inc

$(OBJPATH)\int2a.obj:   \
        debugmac.inc    \
        segorder.inc

$(OBJPATH)\int5c.obj:   \
        debugmac.inc    \
        int5c.inc       \
        segorder.inc

$(OBJPATH)\neterror.obj:\
        enumapis.inc    \
        debugmac.inc    \
        localmac.inc    \
        asmmacro.inc    \
        segorder.inc

redirmsg.inc : $(COUNTRY)\redirmsg.inc
    copy $(COUNTRY)\redirmsg.inc .
