2025-04-27 07:49:33 -04:00

97 lines
2.8 KiB
PHP

#
# Default rules for building VXDs in the NT build environment.
#
#
# Provide a default DDB name.
#
!ifndef DDB_NAME
DDB_NAME = $(VXDNAME)_DDB
!endif
#
# Build a default .DEF file for the VXD.
#
$(VXDNAME).DEF: $(BASEDIR)\PRIVATE\INET\IISREARC\UL\WIN9X\INC\VXD.INC
type << > $(VXDNAME).DEF
VXD $(VXDNAME) DYNAMIC
DESCRIPTION '$(DESCRIPTION)'
EXETYPE DEV386
SEGMENTS
_LPTEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE
_LTEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE
_LDATA CLASS 'LCODE' PRELOAD NONDISCARDABLE
_TEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE
_DATA CLASS 'LCODE' PRELOAD NONDISCARDABLE
CONST CLASS 'LCODE' PRELOAD NONDISCARDABLE
_TLS CLASS 'LCODE' PRELOAD NONDISCARDABLE
_BSS CLASS 'LCODE' PRELOAD NONDISCARDABLE
_LMSG CLASS 'MCODE' PRELOAD NONDISCARDABLE IOPL
_IMSG CLASS 'MCODE' PRELOAD DISCARDABLE IOPL
_ITEXT CLASS 'ICODE' DISCARDABLE
_IDATA CLASS 'ICODE' DISCARDABLE
_PTEXT CLASS 'PCODE' NONDISCARDABLE
_PMSG CLASS 'MCODE' NONDISCARDABLE IOPL
_PDATA CLASS 'PDATA' NONDISCARDABLE SHARED
_STEXT CLASS 'SCODE' RESIDENT
_SDATA CLASS 'SCODE' RESIDENT
_DBOSTART CLASS 'DBOCODE' PRELOAD NONDISCARDABLE CONFORMING
_DBOCODE CLASS 'DBOCODE' PRELOAD NONDISCARDABLE CONFORMING
_DBODATA CLASS 'DBOCODE' PRELOAD NONDISCARDABLE CONFORMING
_16ICODE CLASS '16ICODE' PRELOAD DISCARDABLE
_RCODE CLASS 'RCODE'
EXPORTS
$(DDB_NAME) @1
<<
#
# Link and binplace the VXD.
#
# N.B. The 32-bit linker cannot attach a resource to a VXD; we
# therefore do this with ADRC2VXD.
#
$O\$(VXDNAME).VXD: $(OBJECTS) $O\$(VXDNAME).RES $(VXDNAME).DEF
$(LINKER) @<< /def:$(VXDNAME).DEF
/nologo
/map
/out:$O\$(VXDNAME).VXD
/nodefaultlib
/align:0x200
/ignore:4039
/ignore:4078
/vxd
/NOD
$(OBJECTS)
$(TARGETLIBS)
<<NOKEEP
$(MAPSYM_CMD)
$(WIN9X)\bin\adrc2vxd $O\$(VXDNAME).VXD $O\$(@B).res
$(BINPLACE_CMD)
$(BINPLACE_CMD:VXD=SYM)
#
# Make the version resource with a 16bit resource compiler because the
# 32bit versions produce UNICODE strings which ADRC2VXD can't handle.
#
# N.B. We must play silly games with the INCLUDE and PATH environment
# variables because 16-bit tools (specifically RC16.EXE) are lame.
#
$O\$(VXDNAME).res:
set T_INCLUDE=$(INCLUDE)
set T_PATH=$(PATH)
set INCLUDE=$(WIN9X)\ddk\inc;$(WIN9X)\sdk\inc16;$(IISBASEDIR)\inc
set PATH=$(TOOLS16)
rc16 $(RC_DEFINES) -r -fo$O\$(VXDNAME).res ..\$(VXDNAME).rc
set PATH=%%T_PATH%%
set INCLUDE=%%T_INCLUDE%%