Source code of Windows XP (NT5)
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.
|
|
##########################################################################
#
# Microsoft Confidential
# Copyright (C) Microsoft Corporation 1991-96
# All Rights Reserved.
#
##########################################################################
#
# Shell Applet/DLL makefile
#
#
# Required definitions:
#
# ROOT
# Path to common project root.
#
# NAME
# Base name of project used for:
# .def input file, if any
# .rc input file
# .rcv input file
# .res output file
#
# Definitions used if defined:
#
# BUILDDLL
# Build .exe if this is not defined.
#
# BUILDLIB
# Build .exe if this is not defined.
#
# BUILD
# One of:
# debug debug Win32 build
# retail retail Win32 build
# all debug and retail
# depend generate dependencies
#
# DEFNAME
# Use NAME.def if not defined
#
# RESNAME
# Use NAME.res if not defined
#
# RCNAME
# Use NAME.rc if not defined
#
# RCVNAME
# Use NAME.rcv if not defined
#
# ILINK
# Use incremental link
#
# CVWRETAIL
# Compile with debug flags compatible with VC++ debugger.
#
# LEGO
# Compile with flags for LEGO support.
#
# BROWSE
# Create .sbr files for browser database.
#
# DBCS
# Define DBCS.
#
# MAKELIST
# Make an assembly listing for each compiled file.
#
# PRIVINC
# Use NAME.h/pch as precompiled header if not defined.
#
# APPEXT
# Use .dll, .exe or .lib (based upon BUILDDLL) as extension if this
# is not defined.
#
# DLLBASE
# Specifies the base address of the component, as passed
# to the linker. May also be:
# PREFBASE use coffbase.txt
#
# DLLENTRY
# Use LibMain as the DLL entry-point if not defined. Valid
# only if BUILDDLL is defined.
#
# RES_DIR
# Use .\messages\usa as the resources dir, if not defined.
#
# STATOBJx
# Other object modules or libraries to use to build an import
# library. 'x' may be 0 thru 9. Start with 0.
#
# FIRSTOBJS
# Guaranteed to be the first object modules linked, if this
# really matters to you.
#
# PCHOBJx
# C object modules compiled with a precompiled header. 'x'
# may be 0 thru 9. Start with 0.
#
# THKOBJx
# Object modules used for thunks. 'x' may be 0 thru 9. Start
# with 0.
#
# MISCOBJx
# All other object modules. 'x' may be 0 thru 9. Start with 0.
#
# LIBx
# List of libraries to link, in order of 'x' (which may be
# 0 thru 9). If LIB0 is not defined, then "libw" and "mnocrtw"
# are prepended to the link line.
#
# CLEANLIST
# List of files to clean, outside of the default files.
#
# DESTINATION
# Directory to copy default targets to after successful build.
#
# CFLAGS
# C compiler switches to be used on cl command line.
#
# SRCDIR
# The directory that contains the source. If not defined,
# then it is set to the parent.
#
# WIN32
# Build 32-bit component.
#
# NOPDB
# Compile with /Zd debug option rather than /Zi
#
WANT_C1032 = TRUE
!ifdef ILINK DOILINK = TRUE !endif
!ifndef NAME !ERROR NAME variable not defined. !endif
!ifndef ROOT !ERROR ROOT environment variable not defined. !endif
#
# Set destination directory.
#
!if "$(BUILD)" == "debug" || "$(BUILD)" == "retail" || "$(BUILD)" == "maxdebug" DEFAULTVERDIR = $(BUILD) !endif
#
# Set tools' paths
#
INCLUDES = includes.exe
#
# Set tool options
#
INCLUDES_SWITCHES = -e -i -L. -S.
#
# Set fundamentals
#
!ifndef PRIVINC PRIVINC = $(NAME) !endif
!ifndef APPEXT !ifdef BUILDDLL APPEXT = dll !elseif defined(BUILDLIB) APPEXT = lib ! else APPEXT = exe !endif !endif # APPEXT
# Default .def file name.
!ifndef DEFNAME DEFNAME = $(NAME).def !endif
# Default .res file name.
!ifndef RESNAME RESNAME = $(NAME).res !endif
# Default .rc file name.
!ifndef RCNAME RCNAME = $(NAME).rc !endif
# Default .rcv file name.
!ifndef RCVNAME RCVNAME = $(NAME).rcv !endif
# Default entry point and base for dlls.
!ifdef WIN32 !ifdef BUILDDLL !if "$(DLLBASE)" == "PREFBASE" DLLBASE = @$(ROOT)\dev\inc\coffbase.txt,$(NAME) !endif !ifndef DLLENTRY DLLENTRY = LibMain !endif !endif !endif
# Default to having the retail version of a dll produce a public lib
!if "$(VERDIR)" == "retail" && defined(BUILDDLL) MKPUBLIC = TRUE !endif
#
# Lists of object modules
#
STATOBJS = $(STATOBJ0) $(STATOBJ1) $(STATOBJ2) $(STATOBJ3) \
$(STATOBJ4) $(STATOBJ5) $(STATOBJ6) $(STATOBJ7) \
$(STATOBJ8) $(STATOBJ9)
MISCOBJS = $(FIRSTOBJS) $(MISCOBJ0) $(MISCOBJ1) $(MISCOBJ2) \
$(MISCOBJ3) $(MISCOBJ4) $(MISCOBJ5) $(MISCOBJ6) \
$(MISCOBJ7) $(MISCOBJ8) $(MISCOBJ9)
PCHOBJS = $(PCHOBJ0) $(PCHOBJ1) $(PCHOBJ2) $(PCHOBJ3) $(PCHOBJ4) \
$(PCHOBJ5) $(PCHOBJ6) $(PCHOBJ7) $(PCHOBJ8) $(PCHOBJ9)
THKOBJS = $(THKOBJ0) $(THKOBJ1) $(THKOBJ2) $(THKOBJ3) $(THKOBJ4) \
$(THKOBJ5) $(THKOBJ6) $(THKOBJ7) $(THKOBJ8) $(THKOBJ9)
!ifdef PCHOBJ0 INFERPCH = TRUE MISCOBJ9 = $(MISCOBJ9) pch.obj PCH_C_SRC = pch.c !endif # PCHOBJ0
!ifdef CPPPCHOBJS INFERPCHCPP = TRUE MISCOBJ9 = $(MISCOBJ9) pchcpps.obj PCH_CPP_SRC = pchcpps.cpp !endif # CPPPCHOBJS
OBJS = $(MISCOBJS) $(PCHOBJS) $(THKOBJS) $(CPPOBJS) $(CPPPCHOBJS)
!ifndef LIB0 LIB0 = libw mnocrtw !endif LIBS = $(LIB0) $(LIB1) $(LIB2) $(LIB3) $(LIB4) $(LIB5) \
$(LIB6) $(LIB7) $(LIB8) $(LIB9)
#-----------------------------------------------------------------------
# Branch depending on the level of makefile recursion
#-----------------------------------------------------------------------
!ifndef VERDIR
# (repcmd doesn't seem to like leading or trailing spaces)
!ifdef VERSIONLIST VERSIONLIST =debug retail $(VERSIONLIST) !else VERSIONLIST =debug retail !endif
COMMONMKFILE = makefile
!include $(ROOT)\shell\shell.mk
$(RESNAME): cd $(BUILD) $(MAKE) BUILD=$(BUILD) VERDIR=$(BUILD) $(MISC) -f ..\makefile $(RESNAME) cd ..
!else ## VERDIR
!ifndef SRCDIR SRCDIR = .. !endif
#
# Macros for 'clean' command
#
CLEANLIST = $(CLEANLIST) $(NAME).$(APPEXT) *.pch $(RESNAME) !ifdef INFERPCH CLEANLIST = $(CLEANLIST) pch.c !endif # INFERPCH
!ifdef INFERPCHCPP CLEANLIST = $(CLEANLIST) pchcpps.cpp !endif # INFERPCHCPP
!ifdef BUILDDLL CLEANLIST = $(CLEANLIST) $(NAME).rdf $(NAME).lib !endif
#
# Set 32-bitness for WIN32
#
!ifndef WIN32 IS_16 = TRUE !else IS_32 = TRUE !endif
IS_PRIVATE = TRUE IS_SDK = TRUE MASM6 = TRUE
#
# Set compile flags
#
!ifndef WIN32
#
# Win16 flags
#
!if "$(VERDIR)" == "debug" CFLAGS = $(CFLAGS) -Od -Zid /f- AFLAGS = $(AFLAGS) /Zim RCFLAGS = $(RCFLAGS) -DDEBUG !else CFLAGS = $(CFLAGS) -Oxs AFLAGS = $(AFLAGS) /Zm
!ifdef CVWRETAIL CFLAGS = $(CFLAGS) -Zid AFLAGS = $(AFLAGS) /Zi !endif
!endif # VERDIR
!else # !WIN32
#
# Win32 flags
#
# (error out on strict warnings, like the NT build does)
CFLAGS = $(CFLAGS) -W3 -WX
CFLAGS = $(CFLAGS) -Gz -GF -Gy # stdcall # strings are const, merged # function separation !if "$(VERDIR)" == "debug"
CFLAGS = $(CFLAGS) -Od
!ifdef NOPDB CFLAGS = $(CFLAGS) -Zd !else CFLAGS = $(CFLAGS) -Zi !endif
L32FLAGS = $(L32FLAGS) -debug RCFLAGS = $(RCFLAGS) -DDEBUG
# (make sure we can get .pdb files that work)
NOMERGETEXT = TRUE
!else # DEBUG
# (full opt, favor size)
CFLAGS = $(CFLAGS) -Oxs
!endif # DEBUG
#
# Support incremental linking.
#
!ifdef DOILINK CFLAGS = $(CFLAGS) -Zi L32FLAGS = $(L32FLAGS) -incremental:yes -debug !endif # DOILINK
#
# Support for lego
#
!ifdef LEGO AFLAGS = $(AFLAGS) /Zi LEGO_LIBFLAGS = -debugtype:cv !endif # LEGO
!endif # WIN32
#
# Create .SBR files for browser database
#
!ifdef BROWSE CFLAGS = $(CFLAGS) -Fr !endif
FEATURE_IE40 = 1
!ifdef FEATURE_IE40 CFLAGS = $(CFLAGS) -DFEATURE_IE40 -DNASH !endif
#
# Hideous hack to ensure CL and ML are set in the environment
#
!if [set CL=;] !endif
!if [set ML=;] !endif
#
# Set international things
#
# note INTL_SRC, and LANG are external macros set by international
!ifdef LANG TARGETS = $(TARGETS) $(NAME).$(LANG) !else TARGETS = $(TARGETS) $(NAME).$(APPEXT)
!if defined(BUILDDLL) && defined(MKPUBLIC) TARGETS = $(TARGETS) $(NAME).lib !endif
!endif # LANG
#
# Include other shell makefile
#
!include $(ROOT)\shell\shell.mk
#
# More compile flags after the include
#
!ifdef DBCS CFLAGS = $(CFLAGS) -DDBCS AFLAGS = $(AFLAGS) -DDBCS RCFLAGS = $(RCFLAGS) -DDBCS !endif
# Don't build with memphis structures
CFLAGS = $(CFLAGS) -D_WIN32_WINDOWS=0x0400
!ifndef WIN32 !ifndef NOPASCAL CFLAGS = $(CFLAGS) -Gc !endif
!ifdef NOMORECFLAGS CL = $(CFLAGS) !else !ifdef BUILDDLL !ifdef LARGEDLL CL = $(CFLAGS) -ALw -GD -W3 -DBUILDDLL !else CL = $(CFLAGS) -AMw -GD -W3 -DBUILDDLL !endif !else CL = $(CFLAGS) -AMd -GA -W3 !endif # BUILDDLL
!if "$(VERDIR)" == "retail" CL = $(CL) -G3 !else CL = $(CL) -G2 !endif !endif # NOMORECFLAGS
!endif # !WIN32
!ifdef MAKELIST CL = $(CL) -Fc !endif
!ifdef WIN32 RCFLAGS = $(RCFLAGS) -DWIN32 !ifdef BUILDDLL CL = $(CFLAGS) -W3 -DBUILDDLL -DWIN32 -D_X86_ !else CL = $(CFLAGS) -W3 -DWIN32 -D_X86_ !endif !endif
ML = $(AFLAGS)
CCH = $(CC) -Yc$(PRIVINC).h CCU = $(CC) -Yu$(PRIVINC).h CCX = $(CC)
LFLAGS = /ALIGN:16 /MAP /NOE /NOD !if "$(VERDIR)" == "debug" || DEFINED(CVWRETAIL) LFLAGS = /CO $(LFLAGS) # debug linker flags L32FLAGS = $(L32FLAGS) -debug !endif
!ifndef RES_DIR RES_DIR = $(SRCDIR)\messages\usa !endif
##############
# build rules
##############
default: $(NAME).$(APPEXT)
#
# Individual makefiles should have more dependencies if needed
# Note that the RES file doesn't really depend on the PCH file, but
# it does depend on everthing the PCH file depends on.
#
$(RESNAME): $(RES_DIR)\$(RCNAME) $(RES_DIR)\$(RCVNAME) !ifdef WIN32 @set OLDPATH=$(PATH) @set PATH=$(ROOT)\dev\tools\c1032\bin;$(PATH) !endif $(RC) -r $(RCFLAGS) -I$(SRCDIR) -I$(RES_DIR) -Fo$(RESNAME) $(RES_DIR)\$(RCNAME) !ifdef WIN32 @set PATH=%OLDPATH% !endif
!ifdef INFERPCH $(RESNAME): $(PRIVINC).pch !else # INFERPCH
!ifdef INFERPCHCPP $(RESNAME): pchcpps.pch !endif # INFERPCHCPP
!endif # INFERPCH
##################
# inference rules
##################
{$(SRCDIR)}.c.lst: @$(CC) -Fc$*.lst $(SRCDIR)\$*.c
{$(SRCDIR)}.cpp.lst: @$(CC) -Fc$*.lst $(SRCDIR)\$*.cpp
{$(SRCDIR)}.c.obj: @$(CC) $(SRCDIR)\$*.c
{$(SRCDIR)}.cpp.obj: @$(CC) $(SRCDIR)\$*.cpp
{$(SRCDIR)}.asm.obj: @$(ASM) $(SRCDIR)\$*.asm
!ifdef INFERPCH $(PCH_C_SRC): echo #include "$(PRIVINC).h" > $(PCH_C_SRC) !endif # INFERPCH
!ifdef INFERPCHCPP $(PCH_CPP_SRC): echo #include "$(PRIVINC).h" > $(PCH_CPP_SRC) !endif # INFERPCHCPP
#
# Rules for compiling modules
#
# (Individual makefiles should have more dependencies if needed)
#
$(PRIVINC).pch pch.obj: $(PCH_C_SRC) $(SRCDIR)\$(PRIVINC).h !ifndef WIN32 @$(CCH) -I$(SRCDIR) -NT _TEXT $(PCH_C_SRC) !else @$(CCH) -I$(SRCDIR) $(FORCE_CPP) $(PCH_C_SRC) !endif
pchcpps.pch pchcpps.obj: $(PCH_CPP_SRC) $(SRCDIR)\$(PRIVINC).h @$(CCH) -I$(SRCDIR) -Fppchcpps.pch $(PCH_CPP_SRC)
!ifndef WIN32 !ifdef PCHOBJ0 $(PCHOBJ0): $(PRIVINC).pch !ifdef CODESEG0 @$(CCU) -NT $(CODESEG0) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ1 $(PCHOBJ1): $(PRIVINC).pch !ifdef CODESEG1 @$(CCU) -NT $(CODESEG1) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ2 $(PCHOBJ2): $(PRIVINC).pch !ifdef CODESEG2 @$(CCU) -NT $(CODESEG2) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ3 $(PCHOBJ3): $(PRIVINC).pch !ifdef CODESEG3 @$(CCU) -NT $(CODESEG3) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ4 $(PCHOBJ4): $(PRIVINC).pch !ifdef CODESEG4 @$(CCU) -NT $(CODESEG4) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ5 $(PCHOBJ5): $(PRIVINC).pch !ifdef CODESEG5 @$(CCU) -NT $(CODESEG5) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ6 $(PCHOBJ6): $(PRIVINC).pch !ifdef CODESEG6 @$(CCU) -NT $(CODESEG6) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ7 $(PCHOBJ7): $(PRIVINC).pch !ifdef CODESEG7 @$(CCU) -NT $(CODESEG7) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ8 $(PCHOBJ8): $(PRIVINC).pch !ifdef CODESEG8 @$(CCU) -NT $(CODESEG8) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !ifdef PCHOBJ9 $(PCHOBJ9): $(PRIVINC).pch !ifdef CODESEG9 @$(CCU) -NT $(CODESEG9) $(SRCDIR)\$*.c !else @$(CCU) $(SRCDIR)\$*.c !endif !endif !endif
!ifdef WIN32 !ifdef CPPOBJS $(CPPOBJS): @$(CCX) $(SRCDIR)\$*.cpp !endif # CPPOBJS
!ifdef CPPPCHOBJS $(CPPPCHOBJS): pchcpps.pch @$(CCU) -Fppchcpps.pch $(SRCDIR)\$*.cpp !endif # CPPPCHOBJS
!ifdef PCHOBJ0 $(PCHOBJS): $(PRIVINC).pch @$(CCU) $(FORCE_CPP) $(SRCDIR)\$*.c !endif # PCHOBJ0
!endif # WIN32
#
# Compose the list of dependencies for the project
#
DEPENDS = $(DEPENDS) $(OBJS)
!ifndef BUILDLIB DEPENDS = $(DEPENDS) $(SRCDIR)\$(DEFNAME) !endif
!if defined(WIN32) && !defined(BUILDLIB) DEPENDS = $(DEPENDS) $(RESNAME) !endif
#
# Rule for building app or DLL (16-bit)
#
!ifndef WIN32 $(NAME).$(APPEXT):: $(DEPENDS) $(LINK16) @<< $(LFLAGS) + !ifdef FIRSTOBJS $(FIRSTOBJS) + !endif !ifdef THKOBJS $(THKOBJS) + !endif !ifdef MISCOBJ0 $(MISCOBJ0) + !endif !ifdef MISCOBJ1 $(MISCOBJ1) + !endif !ifdef MISCOBJ2 $(MISCOBJ2) + !endif !ifdef MISCOBJ3 $(MISCOBJ3) + !endif !ifdef MISCOBJ4 $(MISCOBJ4) + !endif !ifdef MISCOBJ5 $(MISCOBJ5) + !endif !ifdef MISCOBJ6 $(MISCOBJ6) + !endif !ifdef MISCOBJ7 $(MISCOBJ7) + !endif !ifdef MISCOBJ8 $(MISCOBJ8) + !endif !ifdef MISCOBJ9 $(MISCOBJ9) + !endif !ifdef PCHOBJ0 $(PCHOBJ0) + !endif !ifdef PCHOBJ1 $(PCHOBJ1) + !endif !ifdef PCHOBJ2 $(PCHOBJ2) + !endif !ifdef PCHOBJ3 $(PCHOBJ3) + !endif !ifdef PCHOBJ4 $(PCHOBJ4) + !endif !ifdef PCHOBJ5 $(PCHOBJ5) + !endif !ifdef PCHOBJ6 $(PCHOBJ6) + !endif !ifdef PCHOBJ7 $(PCHOBJ7) + !endif !ifdef PCHOBJ8 $(PCHOBJ8) + !endif !ifdef PCHOBJ9 $(PCHOBJ9) + !endif $(NAME).$(APPEXT) $(NAME).map !ifdef LIB0 $(LIB0) + !endif !ifdef LIB1 $(LIB1) + !endif !ifdef LIB2 $(LIB2) + !endif !ifdef LIB3 $(LIB3) + !endif !ifdef LIB4 $(LIB4) + !endif !ifdef LIB5 $(LIB5) + !endif !ifdef LIB6 $(LIB6) + !endif !ifdef LIB7 $(LIB7) + !endif !ifdef LIB8 $(LIB8) + !endif !ifdef LIB9 $(LIB9) + !endif $(SRCDIR)\$(DEFNAME) << $(MAPSYM) $(NAME).map !ifdef BUILDDLL #[
!ifdef MKPUBLIC #[
# Use the stripped def file to produce the lib.
mkpublic $(SRCDIR)\$(DEFNAME) $(NAME).rdf $(IMPLIB) $(NAME).lib $(NAME).rdf !else #][
# Use the normal def file to produce the lib.
$(IMPLIB) $(NAME).lib $(SRCDIR)\$(DEFNAME) !endif #]
!endif #]
!endif
!ifdef WIN32
#
# Tell the world we're building Nashville bits
#
!if defined(FEATURE_IE40) !message !message FEATURE_IE40 is turned on !message !endif
#
# Rule for building static library
#
!if defined(BUILDLIB)
$(NAME).$(APPEXT): $(DEPENDS) $(LINK32) -lib $(LEGOLIBS) @<< -out:$(NAME).$(APPEXT) $(MISCOBJS) $(PCHOBJS) $(CPPOBJS) $(CPPPCHOBJS) <<
!endif # BUILDLIB
#
# Rule for building lib, derived from DLL
#
!if defined(BUILDDLL)
$(NAME).lib $(NAME).rxp: $(SRCDIR)\$(DEFNAME) $(STATOBJS) $(LINK32) -lib $(LEGO_LIBFLAGS) $(LEGOLIBS) @<< -out:$(NAME).lib -def:$(SRCDIR)\$(DEFNAME) $(MISCOBJS) $(PCHOBJS) $(CPPOBJS) $(CPPPCHOBJS) << !ifdef STATOBJ0 $(LINK32) -lib $(LEGOLIBS) $(NAME).lib $(STATOBJS) !endif # STATOBJ0
if exist $(NAME).rxp del $(NAME).rxp ren $(NAME).exp $(NAME).rxp !endif # BUILDDLL
#
# Rule for building DLL or EXE
#
!if !defined(BUILDLIB)
!ifdef BUILDDLL $(NAME).$(APPEXT):: $(DEPENDS) $(NAME).rxp $(NAME).lib !else # BUILDDLL
$(NAME).$(APPEXT):: $(DEPENDS) !endif # BUILDDLL
$(LINK32) -link @<< $(L32FLAGS) -out:$(NAME).$(APPEXT) !ifndef DOILINK -map:$(NAME).map !endif # DOILINK
!ifdef BUILDDLL -dll !ifdef DLLBASE -base:$(DLLBASE) !else # DLLBASE
-base:0x410000 !endif # DLLBASE
$(NAME).rxp !else # BUILDDLL
-base:0x400000 !endif # BUILDDLL
$(MISCOBJS) $(PCHOBJS) $(CPPOBJS) $(CPPPCHOBJS) $(LIBS) $(RESNAME) << !ifdef DOILINK pdbmap $(NAME).$(APPEXT) !endif # DOILINK
$(MAPSYM) -s $(NAME).map
!ifdef MKPUBLIC $(NAME).$(APPEXT)::$(NAME).rlb
$(NAME).rlb : $(DEPENDS) $(SRCDIR)\$(DEFNAME) $(STATOBJS) mkpublic $(SRCDIR)\$(DEFNAME) $(NAME).rdf $(LINK32) -lib $(LEGOLIBS) @<< -out:$(NAME).rlb -def:$(NAME).rdf $(MISCOBJS) $(PCHOBJS) $(CPPOBJS) $(CPPPCHOBJS) << !ifdef STATOBJ0 $(LINK32) -lib $(LEGOLIBS) @<< -out:$(NAME).rlb $(NAME).rlb $(STATOBJS) << !endif # STATOBJ0
!endif # MKPUBLIC
!endif # BUILDLIB
!endif # WIN32
#
# Rule for building thunks
#
!ifndef WIN32 #[
# // If there are any THKOBJS then build them here.
# // REVIEW - HACK You'd be better off not working out what the next line does :-)
!if "$(THKOBJS)" != " " #[
# // Include files inserted by the thunk compiler for the 16-bit half.
THUNKDIR=$(ROOT)\shell\thunk
THUNKINCS16=$(THUNKDIR)\thk.inc \
$(THUNKDIR)\winerror.inc \
$(THUNKDIR)\win31err.inc
$(THKOBJS): $(THUNKDIR)\$(VERDIR)\$(@B).asm $(THUNKDIR)\$(@B).inc \ $(THUNKDIR)\fltthk.inc @set OLDML=%ML% @set OLDINCLUDE=%INCLUDE% @set ML=-DIS_16 -nologo -W2 -Zd -c -Cx -DMASM6 -DDEBLEVEL=1 $(DDEBUG) -Zd -Gc @set INCLUDE=$(THUNKDIR);$(INCLUDE) @mlx -Fo$@ $(THUNKDIR)\$(VERDIR)\$(@B).asm @set ML=%OLDML% @set INCLUDE=%OLDINCLUDE% !endif #]
!endif #]
#
# Rule for binding resources to Win16 app or DLL
#
!ifndef WIN32 $(NAME).$(APPEXT):: $(DEPENDS) $(RESNAME) $(RC) $(RCFLAGS) $(RCFFLAGS) -fe $(NAME).$(APPEXT) $(RESNAME) !endif
#
# Include source file dependencies.
#
!if exist($(SRCDIR)\depend.mk) !include $(SRCDIR)\depend.mk !elseif "$(BUILD)" != "depend" !message Warning: DEPEND.MK not found. !endif
#
# Build source file dependencies.
#
# If nmake complains it doesn't know how to make depend.mk, you
# need to add a rule in your makefile that explains how to make
# it.
#
!if "$(BUILD)" != "depend" depend: $(MAKE) BUILD=depend !else depend: $(SRCDIR)\depend.mk !endif
!endif ## VERDIR
|