Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

273 lines
5.5 KiB

!ifdef NTMAKEENV
!include $(NTMAKEENV)\makefile.def
!else
#************************************************************************
#
# Make file for symbol handler
#
#
# CPU = i386 [default] (host CPU type)
# MIPS
# ALPHA
#
# TARGET = i386 [default] (target CPU type)
# MIPS
# ALPHA
# MAC68K
# MACPPC
#
#************************************************************************
#
# Revision History:
#
#
#************************************************************************
!ifndef LINKER
LINKER=link
!endif
!ifndef INC
INC = inc
!endif
cquiet = -nologo
aquiet = -t
!ifdef NO_DBCS
MBCS =
!else
MBCS = -D_MBCS
!endif
!if "$(CPU)" == ""
CPU = i386
!endif
MACHINE=$(CPU)
CFLAGS=-DNO_STRICT
!if "$(MACHINE)" == "i386"
OS=0
HOST_CPU=X86
!else
!if "$(MACHINE)" == "MIPS"
OS=1
HOST_CPU=MIPS
OSDEBUG4=1
!else
!if "$(MACHINE)" == "ALPHA"
OS=2
HOST_CPU=ALPHA
OSDEBUG4=1
!else
!error "Platform unsupported"
!endif
!endif
!endif
!if "$(TARGET)" == ""
TARGET = i386
!endif
!if "$(TARGET)" == "i386" || "$(TARGET)" == "MIPS"
TOS =
!else
!if "$(TARGET)" == "MAC68K"
TOS = m0
CFLAGS = $(CFLAGS) -DTARGMAC68K
!else
!if "$(TARGET)" == "MACPPC"
TOS = m1
CFLAGS = $(CFLAGS) -DTARGMACPPC
!else
!if "$(TARGET)" == "ALPHA"
TOS =
CFLAGS = $(CFLAGS) -DTARGALPHA
!else
!error "Target platform unsupported"
!endif
!endif
!endif
!endif
!ifdef OSDEBUG4
CFLAGS= $(CFLAGS) -DOSDEBUG4X
!endif
!ifndef RELEASE
DEBUG = d
CFLAGS=$(CFLAGS) -Zi -Od -DDEBUGVER
ODIR=oShN$(OS)$(TOS)d
LFLAGS=-nologo -debug
!else
DEBUG =
CFLAGS=$(CFLAGS) -MD -O2 -DNDEBUG
ODIR=oShN$(OS)$(TOS)
RCDEF=-DRETAIL
!if "$(DBGINFO)" != ""
LFLAGS=-debug: -debugtype:cv -map
CFLAGS=$(CFLAGS) -Zi
!else
LFLAGS=-nologo -debug:none
!endif
!endif
!ifndef NOBROWSER
BRS = -FR$(ODIR)^\
!else
BRS =
!endif
!ifndef ZSWITCH
ZSWITCH = -Zi -Fd$(ODIR)\sapi.pdb
!endif
!ifndef TARGETNB09$(TOS)
LINKPDB =-PDB:shn$(OS)$(TOS)$(DEBUG).pdb
!else
LINKPDB =-PDB:none
!endif
!ifdef ADDR_16
ADDR =-DADDR_16
!else
!ifdef ADDR_32
ADDR =-DADDR_32
!else
ADDR =-DADDR_MIXED
!endif
!endif
!if "$(LANGAPI)" == ""
LANGAPI=\langapi
!endif
CFLAGS = $(CFLAGS) -MD -c -Gy -W3 -WX -DTARGET32 -DHOST32 -DWIN32 -D_$(HOST_CPU)_ -DBUILD_SAPI $(BRS) $(MBCS) $(ZSWITCH) #-DDOLPHIN_M3=1
ASSEMBLE = $(AS) $(AFLAGS) $(aquiet) -I$(LANGAPI)\debugger -I$(INC) -I$(LANGAPI)\include
LIBS = msvcrt$(DEBUG).lib kernel32.lib user32.lib oldnames.lib mspdb.lib advapi32.lib
#############################################################################
#
# Inference Rules
#
.SUFFIXES: .exe .obj .c .asm .inc .h .hmd .hpt .dll
.c{$(ODIR)}.obj:
@$(CC) $(cquiet) @<<cl.rsp $<
$(CFLAGS) -D$(MACHINE) $(BRS) -Fo$(ODIR)\ -I$(LANGAPI)\debugger -I$(INC) -I$(LANGAPI)\include\ -Yushinc.h -Fp$(ODIR)\precomp.pch $(SAPI_DIR)
<<KEEP
.cpp{$(ODIR)}.obj:
@$(CC) $(cquiet) @<<clpp.rsp $<
$(CFLAGS) -D$(MACHINE) $(BRS) -Fo$(ODIR)\ -I$(LANGAPI)\debugger -I$(INC) -I$(LANGAPI)\include\ $(SAPI_DIR)
<<KEEP
.asm{$(ODIR)}.obj:
echo no asm file allowed
PDB_LIBS = instrapi.lib
DLL = shn$(OS)$(TOS)$(DEBUG)
OBJS=\
$(PDB_LIBS) \
$(ODIR)\shwin32.obj \
$(ODIR)\shinit.obj \
$(ODIR)\shsymbol.obj \
$(ODIR)\sh.obj \
$(ODIR)\ph.obj \
$(ODIR)\th.obj \
$(ODIR)\shsymlb0.obj \
$(ODIR)\shsymlb1.obj \
$(ODIR)\sl.obj \
$(ODIR)\loadomf.obj \
$(ODIR)\$(DLL).res
all: $(ODIR) $(DLL).dll
#
# shn$(OS)$(TOS)[D].DLL -- $(OS) hosted symbol handler targeting $(TOS)
#
shn$(OS)$(TOS)$(DEBUG).dll: $(OBJS:instrapi.lib=) makefile
$(LINKER) -def:<<shn$(OS)$(TOS)$(DEBUG).def @<<shn$(OS)$(TOS)$(DEBUG).lrf
LIBRARY SHN$(OS)$(TOS)$(DEBUG) initinstance
PROTMODE
DATA multiple nonshared
EXPORTS
DBGVersionCheck
SHInit
<<KEEP
$(LFLAGS)
$(LINKPDB)
-nodefaultlib
-dll
-out:shn$(OS)$(TOS)$(DEBUG).dll
-implib:$(ODIR)\shn$(OS)$(TOS)$(DEBUG).lib
-machine:$(MACHINE)
-base:@dllbase.txt,shn$(OS)$(TOS)
$(ODIR)\precomp.obj
$(OBJS: =^
)
$(LIBS)
<<KEEP
!ifndef NOBROWSER
bscmake /o sapi $(ODIR)\*.sbr
!endif
$(ODIR):
@-mkdir $(ODIR)
$(ODIR)\$(DLL).res: makefile inc\appver.h inc\version.rc $(LANGAPI)\include\version.h
rc $(RCDEF) -I$(LANGAPI)\include -Iinc -r <<$(ODIR)\$(DLL).rc
#include "appver.h"
#define VER_INTERNALNAME_STR "$(DLL).dll"
#define VER_FILEDESCRIPTION_STR "Microsoft\256 C/C++ Symbol Handler"
#define VER_ORIGINALFILENAME_STR "$(DLL).dll"
#include "version.rc"
<<keep
$(ODIR)\shwin32.obj : shwin32.c $(INC)\shwin32.h
@$(CC) $(cquiet) @<<cl.rsp shwin32.c
$(CFLAGS) $(BRS) -Fo$(ODIR)\ -I$(LANGAPI)\debugger -I$(INC) -I$(LANGAPI)\include\ $(SAPI_DIR)
<<KEEP
$(ODIR)\shinit.obj : \
$(ODIR)\precomp.obj \
$(LANGAPI)\include\version.h \
$(INC)\shwin32.h
$(ODIR)\precomp.obj: \
$(LANGAPI)\debugger\types.h \
$(LANGAPI)\debugger\cvtypes.h \
$(LANGAPI)\include\\cvinfo.h \
$(LANGAPI)\debugger\shapi.h \
$(LANGAPI)\include\\cvexefmt.h \
$(INC)\sapi.h \
$(INC)\cvproto.h \
$(INC)\shassert.h \
$(INC)\shiproto.h
@$(CC) $(cquiet) @<<precomp.rsp precomp.c
$(CFLAGS) $(BRS) -Fo$(ODIR)\ -I$(LANGAPI)\debugger -I$(INC) -I$(LANGAPI)\include\ -Yc -Yd -Fp$(ODIR)\precomp.pch $(SAPI_DIR)
<<KEEP
$(ODIR)\loadomf.obj : $(ODIR)\precomp.obj
$(ODIR)\ph.obj : $(ODIR)\precomp.obj
$(ODIR)\sh.obj : $(ODIR)\precomp.obj $(INC)\shwin32.h
$(ODIR)\shsymbol.obj : $(ODIR)\precomp.obj
$(ODIR)\shsymlb0.obj : $(ODIR)\precomp.obj
$(ODIR)\shsymlb1.obj : $(ODIR)\precomp.obj
$(ODIR)\sl.obj : $(ODIR)\precomp.obj
$(ODIR)\th.obj : $(ODIR)\precomp.obj
!endif # NTMAKEENV