########################################################################## # # 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