Leaked source code of windows server 2003
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.
 
 
 
 
 
 

442 lines
10 KiB

############################################################################
#
# Copyright (C) 1995-1996 Microsoft Corporation. All Rights Reserved.
#
# File: proj.mk
# Content: makefile for building the components of a project.
# The rules for how to build all file types are here.
#
#@@BEGIN_MSINTERNAL
# History:
# Date By Reason
# ==== == ======
# 06-jan-95 craige initial implementation
# 06-feb-95 craige made it easier to use other tools
# 21-feb-96 colinmc forced WIN95 on rc line to ensure we pick up the
# correct version info stuff
# 14-jun-96 craige added MISC variable for misc dir.
# 08-jul-96 a-marcan added CPL suffix and target
# 18-dec-96 ketand added NEEDMMX for assembling MMX. changed default to
# to optimize for Pentiums instead of 486.
#@@END_MSINTERNAL
############################################################################
!if "$(DXROOT)" == ""
!error Environment variable DXROOT must be set to point at DirectX source
!endif
!ifdef IS_16
!ifdef IS_32
!error Must define one of IS_16 or IS_32, not both
!endif
!endif
!ifndef IS_16
!ifndef IS_32
!error Must define IS_16 or IS_32
!endif
!endif
!if [set PATH=;]
!endif
!if [set INCLUDE=;]
!endif
!if [set LIB=;]
!endif
!ifdef logo
LOGO = 1
!endif
C8PATH = $(DXROOT)\public\tools\c816
C9PATH = $(DXROOT)\public\tools\c932
C10PATH = $(DXROOT)\public\tools\c1032
#############################################################################
#
# Set up default variables. You can customize the build environment
# by setting the following variables in your DEFAULT.MK file. Note that
# these must be set to something; if they are not, default values will
# kick in here.
#
# C16INC - 16-bit include path for C compiler
# C16LIB - 16-bit libraries path for C compiler
# C16BIN - 16-bit binaries path for C compiler
#
# C32INC - 32-bit include path for C compiler
# C32LIB - 32-bit libraries path for C compiler
# C32BIN - 32-bit binaries path for C compiler
#
# SDK16INC - Win16 SDK include path
# SDK16LIB - Win16 SDK libraries path
# SDK16BIN - Win16 SDK binaries path
#
# SDK32INC - Win32 SDK include path
# SDK32LIB - Win32 SDK libraries path
# SDK32BIN - Win32 SDK binaries path
#
# MASMBIN - MASM binaries path
#
#############################################################################
!ifndef C16INC
C16INC = $(C8PATH)\inc
!endif
!ifndef C16LIB
C16LIB = $(C8PATH)\LIB
!endif
!ifndef C16BIN
C16BIN = $(C8PATH)\BIN
!endif
!ifndef C32INC
C32INC = $(C10PATH)\inc
!endif
!ifndef C32LIB
C32LIB = $(C10PATH)\LIB
!endif
!ifndef C32BIN
C32BIN = $(C10PATH)\BIN
!endif
!ifndef SDK16LIB
SDK16LIB=$(DXROOT)\public\sdk\lib16;$(DXROOT)\public\sdk\lib16
!endif
!ifndef SDK16INC
SDK16INC=$(DXROOT)\public\inc16;$(DXROOT)\public\sdk\inc16;$(DXROOT)\public\ddk\inc16;$(DXROOT)\public\ddk\inc
!endif
!ifndef SDK16BIN
SDK16BIN=$(DXROOT)\public\tools\win9x\common;$(DXROOT)\public\tools\binr;$(DXROOT)\public\sdk\bin
!endif
!ifndef SDK32LIB
SDK32LIB=$(DXROOT)\public\sdk\lib;$(DXROOT)\public\sdk\lib
!endif
!ifndef SDK32INC
SDK32INC=$(DXROOT)\public\inc;$(DXROOT)\public\sdk\inc
!endif
!ifndef SDK32BIN
SDK32BIN=$(DXROOT)\public\tools\win9x\common;$(DXROOT)\public\tools\binr;$(DXROOT)\public\sdk\bin
!endif
!ifndef MASMBIN
MASMBIN=$(DXROOT)\public\tools\masm611c;$(DXROOT)\public\tools\masm61
!ifdef NEEDMMX
MASMBIN=$(DXROOT)\public\tools\masm611d;$(DXROOT)\public\tools\masm611c;$(DXROOT)\public\tools\masm61
!endif
!endif
!ifndef MISC
MISC=dxg\misc
!endif
#############################################################################
#
# Set up path, include, libs
#
#############################################################################
INCLUDE=$(DXROOT)\inc;$(DXROOT)\$(MISC);$(DXROOT)\ddhelp;$(DXROOT)\$(DEBUG)\inc
!ifdef IS_16
INCLUDE=$(INCLUDE);$(SDK16INC);$(C16INC)
PATH=$(SDK16BIN);$(MASMBIN);$(C16BIN)
LIB=$(DXROOT)\$(DEBUG)\lib16;$(SDK16LIB);$(C16LIB)
!else
INCLUDE=$(INCLUDE);$(SDK32INC);$(DXROOT)\public\inc;$(C32INC)
PATH=$(C32BIN);$(SDK32BIN);$(MASMBIN)
LIB=$(DXROOT)\$(DEBUG)\lib;$(SDK32LIB);$(C32LIB)
!endif
!ifdef PATHEXTRA
PATH=$(PATHEXTRA);$(PATH)
!endif
PATH=$(PATH);$(DXROOT)\bin
!ifdef LINKNEW
PATH=$(DXROOT)\linknew;$(PATH)
!endif
!ifdef USEDDK16
INCLUDE=$(INCLUDE);$(DXROOT)\public\ddk\inc16
!endif
!ifdef USEDDK32
INCLUDE=$(INCLUDE);$(DXROOT)\public\ddk\inc
!endif
#############################################################################
#
# new suffixes
#
#############################################################################
.SUFFIXES:
.SUFFIXES: .lbc .c .asm .cxx .cpp .vxd .exe .dll .drv .h .inc .lbw .lib .sym .rc .res .m4 .cpl .ovl .inl
#############################################################################
#
# C compiler definitions
#
#############################################################################
CC =cl
CFLAGS = $(CFLAGS) -W3 -c -Zp -DMSBUILD
!ifndef NOWX
CFLAGS = $(CFLAGS) -WX
!endif
!ifdef IS_16
!ifdef WANT_286
CFLAGS =$(CFLAGS) -G2s -DIS_16
!else
CFLAGS =$(CFLAGS) -Gf3s -DIS_16
!endif
!else
OPT_FLAGS = -Gf5ys
CFLAGS =$(CFLAGS) $(OPT_FLAGS) -DIS_32 -DWIN32
!endif
!ifndef LOGO
CFLAGS =$(CFLAGS) -nologo
!endif
!ifdef WANTASM
CFLAGS = $(CFLAGS) -Fa$(PBIN)\$(@B).cod -FAsc
!endif
#############################################################################
#
# Linker definitions
#
#############################################################################
!ifdef IS_16
LINK =link
LFLAGS =$(LFLAGS) /MAP /NOPACKCODE /NOE /NOD /L /ALIGN:16
!ifndef LOGO
LFLAGS =$(LFLAGS) /NOLOGO
!endif
!else
LINK =link -link
LFLAGS =$(LFLAGS) -nodefaultlib -align:0x1000
!ifndef LOGO
LFLAGS =$(LFLAGS) -nologo
!endif
!endif
#############################################################################
#
# resource compiler definitions
#
#############################################################################
RCFLAGS =$(RCFLAGS) -I..
!ifdef IS_16
RCFLAGS =$(RCFLAGS) -DIS_16
RC = rc
!else
RCFLAGS =$(RCFLAGS) -DWIN32 -DIS_32 -DWIN95
RC = rc
!endif
#############################################################################
#
# assembler definitions
#
#############################################################################
ASM = mlx
!ifndef NOAWX
AFLAGS = $(AFLAGS) -WX
!endif
!ifdef IS_16
AFLAGS =$(AFLAGS) -DIS_16
!else
AFLAGS =$(AFLAGS) -DIS_32 -DWIN32
!ifdef ASMNOCOFF
!else
AFLAGS =$(AFLAGS) -DSTD_CALL -DBLD_COFF -coff
!endif
!endif
AFLAGS =$(AFLAGS) -W3 -Zd -c -Cx -DMASM6
#############################################################################
#
# librarian definitions
#
#############################################################################
LIBEXE = lib
#############################################################################
#
# M4 pre-proccessor definitions
#
#############################################################################
!if "$(OS)" == "Windows_NT"
M4 = $(DXROOT)\bin\$(PROCESSOR_ARCHITECTURE)\m4.exe
!else
M4 = $(DXROOT)\bin\m4.exe
!endif
M4FLAGS = -I..
!ifdef IS_16
M4FLAGS = $(M4FLAGS) -DIS_16
!else
M4FLAGS = $(M4FLAGS) -DIS_32 -DWIN32
!endif
#############################################################################
#
# target directories
#
#############################################################################
PINC =$(DXROOT)\inc
PLIB =$(_NTDRIVE)$(_NTROOT)\public\sdk\lib\win9x\i386
#!ifdef IS_16
#PLIB =$(DXROOT)\$(DEBUG)\lib16
#!else
#PLIB =$(DXROOT)\$(DEBUG)\lib
#!endif
#############################################################################
#
# targets
#
#############################################################################
goal: $(GOALS)
{}.c{$(PBIN)}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$@ $(@B).c
<<
{..}.c{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj ..\$(@B).c
<<
{..\..\$(MISC)}.c{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj ..\..\$(MISC)\$(@B).c
<<
{..\..\..\$(MISC)}.c{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj ..\..\..\$(MISC)\$(@B).c
<<
{..\..\$(MISC)}.cpp{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj ..\..\$(MISC)\$(@B).cpp
<<
{..\..\..\$(MISC)}.cpp{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj ..\..\..\$(MISC)\$(@B).cpp
<<
{..}.cpp{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj ..\$(@B).cpp
<<
{..}.cxx{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj ..\$(@B).cxx
<<
{$(PINC)}.asm{$(PBIN)}.obj:
$(ASM) @<<
$(AFLAGS) -Fo$@ $?
<<
{}.asm{$(PBIN)}.obj:
$(ASM) @<<
$(AFLAGS) -Fo$@ $(@B).asm
<<
{..}.asm{}.obj:
$(ASM) @<<
$(AFLAGS) -Fo$(@B).obj ..\$(@B).asm
<<
{$(PINC)}.asm{}.obj:
$(ASM) @<<
$(AFLAGS) -Fo$(@B).obj $(PINC)\$(@B).asm
<<
{}.rc{$(PBIN)}.res:
$(RC) $(RCFLAGS) -r -Fo$@ $(@B).rc
{..}.rc{}.res:
$(RC) $(RCFLAGS) -r -Fo$(@B).res ..\$(@B).rc
{}.exe{$(PBIN)}.exe:
@copy $(@F) $@
@copy $(@B).map $(PBIN) > NUL
{}.dll{$(PBIN)}.dll:
@copy $(@F) $@
@copy $(@B).map $(PBIN) > NUL
{}.drv{$(PBIN)}.drv:
@copy $(@F) $@
@copy $(@B).map $(PBIN) > NUL
{}.vxd{$(PBIN)}.vxd:
@copy $(@F) $@
@copy $(@B).map $(PBIN) > NUL
{}.cpl{$(PBIN)}.cpl:
@copy $(@F) $@
@copy $(@B).map $(PBIN) > NUL
{}.ovl{$(PBIN)}.ovl:
@copy $(@F) $@
@copy $(@B).map $(PBIN) > NUL
{}.lib{$(PLIB)}.lib:
@copy $(@F) $@
{}.lbw{$(PLIB)}.lbw:
@copy $(@F) $@
{}.sym{$(PBIN)}.sym:
@copy $(@F) $@
{}.asm{$(PINC)}.asm:
@copy $? $@
{}.h{$(PINC)}.h:
@copy $(@F) $@
{..}.h{$(PINC)}.h:
@copy ..\$(@F) $@
{}.inc{$(PINC)}.inc:
@copy $(@F) $@
{..}.inc{$(PINC)}.inc:
@copy ..\$(@F) $@
{..\..}.inc{$(PINC)}.inc:
@copy ..\..\$(@F) $@
{..}.h{}.inc:
@h2inc -c ..\$(@B).h -o $@
{..}.m4{}.c:
@echo ..\$*.m4
@$(M4) $(M4FLAGS) ..\$(@B).m4 > $(@B).c
{..}.m4{}.cpp:
@echo ..\$*.m4
@$(M4) $(M4FLAGS) ..\$(@B).m4 > $(@B).cpp
{.}.c{}.obj:
@$(CC) @<<
$(CFLAGS) -Fo$(@B).obj -I.. $(@B).c
<<
!ifdef IS_16
!if "$(EXT)" == "dll" || "$(EXT)" == "DLL" || "$(EXT)" == "drv" || "$(EXT)" == "DRV"
$(NAME).lib: $(PBIN)\$$(@B).$(EXT)
@mkpublic $(NAME).def $(NAME)
@implib $@ $(NAME)
!endif
!endif