windows-nt/Source/XPSP1/NT/shell/ext/url/makefile
2020-09-26 16:20:57 +08:00

283 lines
6.9 KiB
Makefile

###############################################################################
#
# Microsoft Confidential
# Copyright (C) Microsoft Corporation 1995
# All Rights Reserved.
#
# URL Shell extension makefile
#
###############################################################################
!if "$(NTMAKEENV)" != ""
#
# This section is for the NT build ONLY.
# For NT build, change the 'sources' or 'dirs' file, not this makefile
#
clean:
!else
#
# Non-NT build makefile start HERE.
#
####################
# macro definitions
####################
ROOT = ..\..\..
BASE_NAME = url
DLL = 1
CORE_DIR = $(ROOT)\win
SHELL_DIR = $(CORE_DIR)\shell
SHELLDLL_DIR = $(SHELL_DIR)\shelldll
!ifndef BUILD
BUILD = debug
!endif
LIBS = kernel32.lib gdi32.lib user32.lib advapi32.lib shlwapi.lib shell32.lib comctl32.lib
LIBS = $(LIBS) libcmt.lib
LIBS = $(LIBS) uuid.lib
ENTRY_POINT = DllMain
EXT_C_SWITCHES = -Gz -W3
EXT_DEFINES = -D_MT \
-DEXPV \
-DMIME
!if "$(BUILD)" == "debug"
EXT_DEFINES = $(EXT_DEFINES) \
-DVSTF
!endif
EXT_DEFINES = $(EXT_DEFINES: = )
EXT_INCLUDE = $(CORE_DIR)\inc
EXT_TARGETS = $(DEST_DIR)\$(OUT_NAME).lib \
$(DEST_DIR)\$(OUT_NAME).rlb
ASM_SRC =
ASM_OBJ =
URL_C_SRC = assoc.c \
comc.c \
debspew.c \
filetype.c \
fsassoc.c \
inetcpl.c \
inifile.c \
init.c \
memmgr.c \
olevalid.c \
resstr.c \
serial.c \
isguids.c \
shlvalid.c \
util.c \
valid.c
#SHELLDLL_C_SRC = $(SHELLDLL_DIR)\hash.c
#C_SRC = $(URL_C_SRC) $(SHELLDLL_C_SRC)
C_SRC = $(URL_C_SRC)
C_SRC = $(C_SRC: = )
URL_C_OBJ = $(DEST_DIR)\assoc.obj \
$(DEST_DIR)\comc.obj \
$(DEST_DIR)\filetype.obj \
$(DEST_DIR)\fsassoc.obj \
$(DEST_DIR)\inetcpl.obj \
$(DEST_DIR)\init.obj \
$(DEST_DIR)\memmgr.obj \
$(DEST_DIR)\serial.obj \
$(DEST_DIR)\isguids.obj \
$(DEST_DIR)\util.obj \
$(DEST_DIR)\valid.obj
!if "$(BUILD)" == "debug"
URL_C_OBJ = $(URL_C_OBJ) \
$(DEST_DIR)\debspew.obj \
$(DEST_DIR)\inifile.obj \
$(DEST_DIR)\olevalid.obj \
$(DEST_DIR)\resstr.obj \
$(DEST_DIR)\shlvalid.obj
!endif
SHELLDLL_C_OBJ = $(DEST_DIR)\hash.obj
C_OBJ = $(URL_C_OBJ) \
$(SHELLDLL_C_OBJ)
C_OBJ = $(C_OBJ: = )
CPP_SRC = autodial.cpp \
comcpp.cpp \
contmenu.cpp \
dataobj.cpp \
dllinit.cpp \
enumfmte.cpp \
extricon.cpp \
ftps.cpp \
guids.cpp \
inetps.cpp \
intshcut.cpp \
persist.cpp \
propsht.cpp \
newshk.cpp \
refcount.cpp \
shlexhk.cpp \
shlink.cpp \
url.cpp
CPP_OBJ = $(DEST_DIR)\autodial.obj \
$(DEST_DIR)\comcpp.obj \
$(DEST_DIR)\contmenu.obj \
$(DEST_DIR)\dataobj.obj \
$(DEST_DIR)\dllinit.obj \
$(DEST_DIR)\enumfmte.obj \
$(DEST_DIR)\extricon.obj \
$(DEST_DIR)\ftps.obj \
$(DEST_DIR)\guids.obj \
$(DEST_DIR)\inetps.obj \
$(DEST_DIR)\intshcut.obj \
$(DEST_DIR)\persist.obj \
$(DEST_DIR)\propsht.obj \
$(DEST_DIR)\newshk.obj \
$(DEST_DIR)\refcount.obj \
$(DEST_DIR)\shlexhk.obj \
$(DEST_DIR)\shlink.obj \
$(DEST_DIR)\url.obj
SRC = $(ASM_SRC) $(C_SRC) $(CPP_SRC)
#
# Set documentation macros.
#
INTSHCUT_DOC_LIST = intshcut.txt
DOC_LIST = $(INTSHCUT_DOC_LIST)
DOCS_DIR = docs
#################
# common headers
#################
!include $(ROOT)\inet\ohare\ohare.mk
!include $(ROOT)\inet\ohare\win32.mk
#######################
# build pseudo-targets
#######################
#
# Build Internet Shortcut documentation (API descriptions and WinHelp).
#
docs: checkdoc apidescs winhelp
##############
# build rules
##############
#
# Build stolen Shell modules.
#
$(DEST_DIR)\filetype.obj: filetype.c
@$(CL) @<<
$(CL_SWITCHES) -W3 $(DEFINES) -Yu$(PCH_C_INCLUDE) -Fp$(PCH_C_PCH) -Fo$@ filetype.c
<<
$(DEST_DIR)\fsassoc.obj: fsassoc.c
@$(CL) @<<
$(CL_SWITCHES) -W3 $(DEFINES) -USTRICT -Fo$@ fsassoc.c
<<
$(DEST_DIR)\hash.obj: hash.c
@$(CL) @<<
$(CL_SWITCHES) -W3 $(DEFINES) -USTRICT -Fo$@ hash.c
<<
#
# Add explicit resource dependency on icons.
#
$(DEST_DIR)\$(BASE_NAME).res: webdoc.ico
#
# Add GUID object file to private import library.
#
$(DEST_DIR)\$(OUT_NAME).lib: $(DEST_DIR)\isguids.obj
$(LINK) -lib -out:$@ $@ $(DEST_DIR)\isguids.obj
#
# Preprocess PDK import library module definition file.
#
$(DEST_DIR)\$(BASE_NAME).rdf: $(BASE_NAME).def
$(CL) -nologo -EP $(DEFINES) -DPDK -Tc$(BASE_NAME).def > $@
#
# Create PDK import library, and add GUID object file.
#
$(DEST_DIR)\$(OUT_NAME).rlb: $(OBJ_LIST) $(DEST_DIR)\$(BASE_NAME).rdf $(DEST_DIR)\isguids.obj
$(LINK) -lib @<<
-def:$(DEST_DIR)\$(BASE_NAME).rdf
-machine:ix86
$(OBJ_LIST)
-out:$@
<<
$(LINK) -lib -out:$@ $@ $(DEST_DIR)\isguids.obj
#
# Create documentation directory.
#
checkdoc: banner
@if not exist $(DOCS_DIR)\nul mkdir $(DOCS_DIR)
#
# Generate Internet Shortcut interface and API descriptions.
#
apidescs: $(DOCS_DIR)\isifaces.rtf $(DOCS_DIR)\isapis.rtf $(DOCS_DIR)\mimeapis.rtf
$(DOCS_DIR)\isifaces.rtf: $(INTSHCUT_DOC_LIST)
$(AUTODOC) -rd -x INTSHCUTIFACE -o $@ $**
$(DOCS_DIR)\isapis.rtf: $(INTSHCUT_DOC_LIST)
$(AUTODOC) -rd -x INTSHCUTAPI -o $@ $**
$(DOCS_DIR)\mimeapis.rtf: $(INTSHCUT_DOC_LIST)
$(AUTODOC) -rd -x MIMEAPI -o $@ $**
#
# Generate Internet Shortcut WinHelp file.
#
winhelp: $(DOCS_DIR)\intshcut.hlp
$(DOCS_DIR)\intshcut.hlp: $(DOCS_DIR)\intshcut.hpj $(DOCS_DIR)\intshcut.rtf
$(HC) $(DOCS_DIR)\intshcut.hpj
$(MOVE) intshcut.hlp $(DOCS_DIR)
$(DOCS_DIR)\intshcut.hpj $(DOCS_DIR)\intshcut.rtf: $(DOC_LIST)
$(AUTODOC) -rh -x INTSHCUTIFACE -x INTSHCUTAPI -x MIMEAPI -o $(DOCS_DIR)\intshcut.rtf $**
!endif # !if NTMAKEENV