Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
1588 lines
39 KiB
Makefile
1588 lines
39 KiB
Makefile
#############################################################################
|
|
# #
|
|
# DirectShow SDK Master Makefile - ACTIVEX.MAK #
|
|
# #
|
|
# Win32 application master NMAKE definitions file for the Microsoft #
|
|
# DirectShow 5.1 for Windows programming samples. #
|
|
# #
|
|
# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY #
|
|
# KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE #
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR #
|
|
# PURPOSE. #
|
|
# #
|
|
# Copyright 1992 - 1998 Microsoft Corporation. All Rights Reserved. #
|
|
# #
|
|
# ------------------------------------------------------------------------- #
|
|
# This files should be included after all public macro definitions #
|
|
# and before any private targets (so that the default "all" and "clean" #
|
|
# targets are not accidentally overridden. ) #
|
|
# #
|
|
# e.g. #
|
|
# #
|
|
# TARGET_NAME = filter #
|
|
# TARGET_TYPE = DYNLINK #
|
|
# #
|
|
# SRC_FILES = file1.cpp \ #
|
|
# file2.cpp \ #
|
|
# file3.c #
|
|
# #
|
|
# RC_FILE = filter.rc #
|
|
# #
|
|
# DEF_FILE = filter.def #
|
|
# #
|
|
# END_TASK = assorted_stuff #
|
|
# #
|
|
# !include "activex.mak" #
|
|
# #
|
|
# assorted_stuff: #
|
|
# do_this #
|
|
# do_that #
|
|
# do_the_other #
|
|
# #
|
|
# ------------------------------------------------------------------------- #
|
|
# NMAKE Options (passed by macro) #
|
|
# #
|
|
# Use the table below to determine the additional options for NMAKE to #
|
|
# generate various application debugging, profiling and performance tuning #
|
|
# information. #
|
|
# #
|
|
# Application Information Type Invoke NMAKE #
|
|
# ---------------------------- ------------ #
|
|
# For No Debugging Info nmake nodebug=1 #
|
|
# For debuggable retail build nmake nodebug=1 symbols=1 #
|
|
# For performance tuning nmake nodebug=1 perf=1 #
|
|
# #
|
|
# Note: creating the environment variables NODEBUG and PERF is an #
|
|
# alternative method to setting these options via the nmake #
|
|
# command line. #
|
|
# #
|
|
# perf=1 overrides symbols=1 #
|
|
# #
|
|
# Additional NMAKE Options Invoke NMAKE #
|
|
# ---------------------------- ------------ #
|
|
# For No ANSI NULL Compliance nmake no_ansi=1 #
|
|
# (ANSI NULL is defined as PVOID 0) #
|
|
# #
|
|
# Set SYM_FILES=1 in the nmake command line to generate .sym files that #
|
|
# can be used with a kernel level debugger. #
|
|
# #
|
|
# ------------------------------------------------------------------------- #
|
|
# NMAKE Targets (common) #
|
|
# #
|
|
# all Create executables (default). #
|
|
# clean Delete object files, etc. #
|
|
# #
|
|
# Note: use "nmake clean all" to force a clean rebuild. #
|
|
# #
|
|
#############################################################################
|
|
|
|
DISABLE_PCH = 1
|
|
NO_COMMON_PCH = 1
|
|
NO_PDB_FILES = 1
|
|
|
|
# START OF MAKEFILE
|
|
!IFNDEF _ACTIVEX_MAK_
|
|
_ACTIVEX_MAK_ = 1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# recover environment
|
|
|
|
!ifndef MAKE_ENV
|
|
MAKE_ENV = $(MAKEDIR)\~qmakenv.tmp
|
|
!endif
|
|
|
|
!ifndef MAKE_PASS
|
|
MAKE_PASS = pass1
|
|
!else
|
|
!if exist( "$(MAKE_ENV)" )
|
|
!include "$(MAKE_ENV)"
|
|
!endif
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Logging
|
|
|
|
!ifndef MAKE_LOG
|
|
MAKE_LOG = $(MAKEDIR)\make.log
|
|
!endif
|
|
|
|
!ifndef MAKE_ECHO
|
|
!if "$(OS)" == "Windows_NT"
|
|
MAKE_ECHO = $(MAKEDIR)\~qmakech.tmp 2>>&1
|
|
!else
|
|
MAKE_ECHO = $(MAKEDIR)\~qmakech.tmp
|
|
!endif
|
|
!endif
|
|
|
|
!ifndef ECHO_ECHO
|
|
ECHO_ECHO = type $(MAKEDIR)\~qmakech.tmp
|
|
!endif
|
|
|
|
!ifndef TYPE_ECHO
|
|
!if "$(MAKE_LOGGING)" == "quiet"
|
|
TYPE_ECHO = rem
|
|
!else
|
|
TYPE_ECHO = $(ECHO_ECHO)
|
|
!endif
|
|
!endif
|
|
|
|
!ifndef TYPE_ECHO2
|
|
!if "$(MAKE_LOGGING)" == "verbose"
|
|
TYPE_ECHO2 = $(ECHO_ECHO)
|
|
!else
|
|
TYPE_ECHO2 = rem
|
|
!endif
|
|
!endif
|
|
|
|
!ifndef FILE_ECHO
|
|
!ifdef NO_MAKE_LOG
|
|
FILE_ECHO = rem
|
|
!else
|
|
FILE_ECHO = $(ECHO_ECHO) >> $(MAKE_LOG)
|
|
!endif
|
|
!endif
|
|
|
|
!ifndef MAKE_CMD
|
|
MAKE_CMD = $(MAKEDIR)\~qmakcmd.bat
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Set up object directory
|
|
|
|
!ifdef RETAIL
|
|
!ifndef NODEBUG
|
|
NODEBUG = 1
|
|
!endif
|
|
!endif
|
|
|
|
!ifdef DEBUG
|
|
!ifdef NODEBUG
|
|
!undef NODEBUG
|
|
!endif
|
|
!endif
|
|
|
|
!ifdef NODEBUG
|
|
DBG_RTL = retail
|
|
!else
|
|
DBG_RTL = debug
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# resolve pdb/pch clash
|
|
|
|
!ifndef DISABLE_PCH
|
|
!ifndef NO_PDB_FILES
|
|
NO_PDB_FILES = 1
|
|
!endif
|
|
!endif
|
|
|
|
|
|
# BINARY/DIRECTORY
|
|
!IFNDEF DIR_LIST
|
|
|
|
#============================================================================
|
|
#
|
|
# BINARY
|
|
#
|
|
#============================================================================
|
|
|
|
#
|
|
# if DIR_LIST is *not* defined this makefile just
|
|
# simply must be being included to build a binary
|
|
#
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Backward compat section
|
|
|
|
!if "$(DEP_LIBS)" != ""
|
|
!message Should now be using CODE_LIBS instead of DEP_LIBS!!
|
|
CODE_LIBS = $(CODE_LIBS) $(DEP_LIBS)
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Default handling
|
|
|
|
!ifdef NO_ACTIVEX_DEFAULTS
|
|
!ifndef NO_ACTIVEX_LIBS
|
|
NO_ACTIVEX_LIBS = 1
|
|
!endif
|
|
!ifndef NO_ACTIVEX_INCLUDES
|
|
NO_ACTIVEX_INCLUDES = 1
|
|
!endif
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# set CPU Type
|
|
|
|
!IF "$(CPU)" != "i386"
|
|
!IF "$(CPU)" != "MIPS"
|
|
!IF "$(CPU)" != "ALPHA"
|
|
!IF "$(CPU)" != "PPC"
|
|
!MESSAGE Missing or invalid 'CPU' environment variable
|
|
!MESSAGE ( valid options are CPU=i386, MIPS, ALPHA or PPC )
|
|
!MESSAGE
|
|
!MESSAGE WARNING: Defaulting to CPU=i386!
|
|
!MESSAGE
|
|
CPU = i386
|
|
!ENDIF
|
|
!ENDIF
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
#----------------------------------------------------------------------------
|
|
# set Target Operating System - Default to both
|
|
|
|
!IF "$(TARGET_OS)" != "WINNT"
|
|
!IF "$(TARGET_OS)" != "WIN95"
|
|
!IF "$(TARGET_OS)" != "BOTH"
|
|
#!MESSAGE Must specify TARGET_OS environment variable (BOTH, WIN95, WINNT)
|
|
TARGET_OS = BOTH
|
|
!ENDIF
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Set Default WINVER - depends on TARGET_OS
|
|
# Defaults to 4.0 for all applications except NT specific.
|
|
|
|
!IFNDEF WIN_VER
|
|
!IF "$(TARGET_OS)" == "WINNT"
|
|
WIN_VER = 5.0
|
|
!ELSE
|
|
WIN_VER = 4.0
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
!IF "$(WIN_VER)" != "5.0"
|
|
!IF "$(WIN_VER)" != "4.0"
|
|
!ERROR Must specify WIN_VER environment variable (5.0, 4.0)
|
|
!ENDIF
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Check TARGET_TYPE defined
|
|
|
|
!if "$(TARGET_TYPE)" != "DYNLINK"
|
|
!if "$(TARGET_TYPE)" != "LIBRARY"
|
|
!if "$(TARGET_TYPE)" != "PROGRAM"
|
|
!error Must define TARGET_TYPE
|
|
!endif
|
|
!endif
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Define EXT if not already done
|
|
|
|
!if "$(TARGET_EXT)" == ""
|
|
!if "$(TARGET_TYPE)" == "DYNLINK"
|
|
TARGET_EXT = dll
|
|
!elseif "$(TARGET_TYPE)" == "LIBRARY"
|
|
TARGET_EXT = lib
|
|
!elseif "$(TARGET_TYPE)" == "PROGRAM"
|
|
TARGET_EXT = exe
|
|
!endif
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Define targets
|
|
|
|
!if "$(TARGET_TYPE)" == "DYNLINK"
|
|
TARGET_LIB = $(DBG_RTL)\$(TARGET_NAME).lib
|
|
TARGET_BIN = $(DBG_RTL)\$(TARGET_NAME).$(TARGET_EXT)
|
|
!ifndef TARGET_MAP
|
|
TARGET_MAP = $(DBG_RTL)\$(TARGET_NAME).map
|
|
!endif
|
|
!if "$(DEF_FILE)" != ""
|
|
TARGET_EXP = $(DBG_RTL)\$(TARGET_NAME).exp
|
|
!else
|
|
TARGET_EXP =
|
|
!endif
|
|
!elseif "$(TARGET_TYPE)" == "LIBRARY"
|
|
TARGET_LIB = $(DBG_RTL)\$(TARGET_NAME).$(TARGET_EXT)
|
|
TARGET_BIN =
|
|
TARGET_MAP =
|
|
TARGET_EXP =
|
|
!elseif "$(TARGET_TYPE)" == "PROGRAM"
|
|
TARGET_LIB =
|
|
TARGET_BIN = $(DBG_RTL)\$(TARGET_NAME).$(TARGET_EXT)
|
|
!ifndef TARGET_MAP
|
|
TARGET_MAP = $(DBG_RTL)\$(TARGET_NAME).map
|
|
!endif
|
|
TARGET_EXP =
|
|
!else
|
|
TARGET_LIB =
|
|
TARGET_BIN =
|
|
TARGET_MAP =
|
|
TARGET_EXP =
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Define copy targets
|
|
|
|
!ifndef NO_COPY
|
|
|
|
!if "$(TARGET_LIB)" != ""
|
|
TARGET_LIB_GOAL = $(MSSDK)\samples\graphics\directshow\$(TARGET_NAME)\lib\$(DBG_RTL)
|
|
!ifndef NODEBUG
|
|
GOAL_LIB = $(TARGET_LIB_GOAL)\$(TARGET_LIB:debug\=)
|
|
!else
|
|
GOAL_LIB = $(TARGET_LIB_GOAL)\$(TARGET_LIB:retail\=)
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(TARGET_BIN)" != ""
|
|
TARGET_BIN_GOAL = $(MSSDK)\samples\graphics\directshow\$(TARGET_NAME)
|
|
!ifndef NODEBUG
|
|
GOAL_BIN = $(TARGET_BIN_GOAL)\$(TARGET_BIN:debug\=)
|
|
!else
|
|
GOAL_BIN = $(TARGET_BIN_GOAL)\$(TARGET_BIN:retail\=)
|
|
!endif
|
|
!endif
|
|
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Tool aliases
|
|
|
|
cc = cl
|
|
rc = rc
|
|
link = link
|
|
implib = lib
|
|
hc = hcrtf -x
|
|
mtl = mktyplib
|
|
|
|
#----------------------------------------------------------------------------
|
|
# general defs
|
|
|
|
!IFDEF NO_ANSI
|
|
noansi = -DNULL=0
|
|
!ENDIF
|
|
|
|
#----------------------------------------------------------------------------
|
|
# compiler flags
|
|
|
|
ccommon = -c -nologo -Gy -DINC_OLE2 -DSTRICT \
|
|
-DWIN32 -D_WIN32 $(noansi)
|
|
|
|
# !ifdef USE_MSVCRT_LIB
|
|
!ifndef USE_LIBCMT_LIB
|
|
|
|
!ifdef NODEBUG
|
|
ccommon = $(ccommon) -MD
|
|
!else
|
|
!ifdef USE_MSVC20
|
|
ccommon = $(ccommon) -MD
|
|
!else
|
|
ccommon = $(ccommon) -MDd
|
|
!endif
|
|
!endif
|
|
|
|
!else
|
|
|
|
!ifdef NODEBUG
|
|
ccommon = $(ccommon) -MT
|
|
!else
|
|
!ifdef USE_MSVC20
|
|
ccommon = $(ccommon) -MT
|
|
!else
|
|
ccommon = $(ccommon) -MTd
|
|
!endif
|
|
!endif
|
|
|
|
!endif
|
|
|
|
!ifndef ACTIVEX_NO_MT
|
|
ccommon = $(ccommon) -D_MT
|
|
!endif
|
|
|
|
# !ifdef USE_MSVCRT_LIB
|
|
!ifndef USE_LIBCMT_LIB
|
|
!if "$(TARGET_TYPE)" == "DYNLINK"
|
|
ccommon = $(ccommon) -D_DLL
|
|
!endif
|
|
!endif
|
|
|
|
!IF "$(CPU)" == "i386"
|
|
ccommon = $(ccommon) -D_X86_=1
|
|
!ELSE
|
|
!IF "$(CPU)" == "MIPS"
|
|
ccommon = $(ccommon) -D_MIPS_=1
|
|
!ELSE
|
|
!IF "$(CPU)" == "PPC"
|
|
ccommon = $(ccommon) -D_PPC_=1
|
|
!ELSE
|
|
!IF "$(CPU)" == "ALPHA"
|
|
ccommon = $(ccommon) -D_ALPHA_=1
|
|
!ENDIF
|
|
!ENDIF
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
!IF "$(TARGET_OS)" == "WINNT"
|
|
ccommon = $(ccommon) -D_WINNT
|
|
!ELSE
|
|
!IF "$(TARGET_OS)" == "WIN95"
|
|
ccommon = $(ccommon) -D_WIN95
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
!IF "$(WIN_VER)" == "5.0"
|
|
ccommon = $(ccommon) -DWINVER=0x0500
|
|
!ELSE
|
|
!IF "$(WIN_VER)" == "4.0"
|
|
ccommon = $(ccommon) -DWINVER=0x0400
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
# debug
|
|
|
|
!ifdef NODEBUG
|
|
cdebug = -DDBG=0
|
|
!else
|
|
!ifdef NODEBUGCODE
|
|
cdebug = -DDBG=0
|
|
!else
|
|
cdebug = -DDBG=1 -DDEBUG -D_DEBUG
|
|
!endif
|
|
!endif
|
|
|
|
!ifdef PERF
|
|
cdebug = $(cdebug) -DPERF
|
|
!endif
|
|
|
|
!ifdef USE_LEGO
|
|
cdebug = $(cdebug) -Zi
|
|
!else
|
|
!ifdef C_DEBUG
|
|
cdebug = $(cdebug) $(C_DEBUG)
|
|
!else
|
|
!IFDEF NODEBUG
|
|
!ifdef SYMBOLS
|
|
cdebug = $(cdebug) -Zd
|
|
!endif
|
|
!ELSE
|
|
!ifdef NO_PDB_FILES
|
|
cdebug = $(cdebug) -Z7
|
|
!else
|
|
cdebug = $(cdebug) -Zi
|
|
!endif
|
|
!ENDIF
|
|
!endif
|
|
!endif
|
|
|
|
!ifndef NO_PDB_FILES
|
|
cdebug = $(cdebug) -Fd$(DBG_RTL)\$(TARGET_NAME).pdb
|
|
!endif
|
|
|
|
# optimization
|
|
|
|
!ifdef C_OPTIMIZATION
|
|
cdebug = $(cdebug) $(C_OPTIMIZATION)
|
|
!else
|
|
!IFDEF NODEBUG
|
|
!IFDEF PERF
|
|
cdebug = $(cdebug) -Ois -GF
|
|
!ELSE
|
|
cdebug = $(cdebug) -Oxs -GF
|
|
!ENDIF
|
|
!ELSE
|
|
cdebug = $(cdebug) -Oid
|
|
!ENDIF
|
|
!endif
|
|
|
|
# calling convention (Intel only)
|
|
# - default to stdcall
|
|
|
|
!IF "$(CPU)" == "i386"
|
|
!if "$(C_CALL)" == "cdecl"
|
|
ccall = -Gd
|
|
!else
|
|
ccall = -Gz
|
|
!endif
|
|
!ELSE
|
|
ccall =
|
|
!ENDIF
|
|
|
|
# warning level
|
|
# - defaults to level 3
|
|
|
|
!ifndef C_WARNING
|
|
cwarn = -W3
|
|
!else
|
|
cwarn = $(C_WARNING)
|
|
!endif
|
|
|
|
# exception handling
|
|
# - default to standard WIN32
|
|
# - can override to use C++ exceptions
|
|
|
|
!ifdef CPP_EXCEPTION_HANDLING
|
|
cexcept = -GX -D_INC_EXCPT
|
|
!else
|
|
cexcept = -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally
|
|
!endif
|
|
|
|
# combine flags
|
|
|
|
cflags = $(ccommon) $(cdebug) $(ccall) $(cexcept) $(cwarn) $(C_DEFINES)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# resource compiler flags
|
|
|
|
rccommon = -l409 -r -DWIN32 -D_WIN32 $(noansi)
|
|
|
|
!IF "$(WIN_VER)" == "5.0"
|
|
rccommon = $(rccommon) -DWINVER=0x0500
|
|
!else
|
|
rccommon = $(rccommon) -DWINVER=0x0400
|
|
!ENDIF
|
|
|
|
!ifdef NODEBUG
|
|
rcdebug = -DDBG=0
|
|
!else
|
|
rcdebug = -DDBG=1 -DDEBUG -D_DEBUG
|
|
!endif
|
|
|
|
rcflags = $(rccommon) $(rcdebug) $(RC_DEFINES)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# library flags
|
|
|
|
# common stuff
|
|
|
|
libcommon = /NODEFAULTLIB /machine:$(CPU)
|
|
|
|
# debug type = coff|cv|both
|
|
|
|
!ifdef USE_LEGO
|
|
libdebug = -debugtype:cv,fixup
|
|
!else
|
|
!ifdef NODEBUG
|
|
!ifdef SYMBOLS
|
|
libdebug = -debugtype:coff
|
|
!endif
|
|
!else
|
|
libdebug = -debugtype:cv
|
|
!endif
|
|
!endif
|
|
|
|
# subsystem, def file, etc. switched
|
|
# in according to TARGET_TYPE and EXE_TYPE
|
|
|
|
!if "$(TARGET_TYPE)" == "DYNLINK"
|
|
liblink = /subsystem:windows,$(WIN_VER)
|
|
!if "$(DEF_FILE)" != ""
|
|
liblink = $(liblink) /def:$(DEF_FILE)
|
|
!endif
|
|
!else
|
|
!if "$(TARGET_TYPE)" == "PROGRAM"
|
|
!if "$(EXE_TYPE)" == "console"
|
|
liblink = /subsystem:console,$(WIN_VER)
|
|
!else
|
|
!if "$(EXE_TYPE)" == "windows"
|
|
liblink = /subsystem:windows,$(WIN_VER)
|
|
!else
|
|
!error EXE_TYPE=console|windows must be defined for PROGRAM
|
|
!endif
|
|
!endif
|
|
!else
|
|
liblink = /subsystem:windows,$(WIN_VER)
|
|
!endif
|
|
!endif
|
|
|
|
libflags = $(libcommon) $(liblink) $(libdebug)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# linker flags
|
|
|
|
!ifdef USE_DEFAULT_LIB
|
|
DEFAULTLIBSWITCH = /NODEFAULTLIB:MSVCRT
|
|
!else
|
|
DEFAULTLIBSWITCH = /NODEFAULTLIB
|
|
!endif
|
|
|
|
lcommon = $(DEFAULTLIBSWITCH) /INCREMENTAL:NO /NOLOGO /MACHINE:$(CPU)
|
|
|
|
!ifdef NO_PDB_FILES
|
|
lcommon = $(lcommon) /PDB:NONE
|
|
!else
|
|
lcommon = $(lcommon) /PDB:$(DBG_RTL)\$(TARGET_NAME).pdb
|
|
!endif
|
|
|
|
# declarations for use on Intel i386, i486, and Pentium systems
|
|
!IF "$(CPU)" == "i386"
|
|
DLLENTRY = @12
|
|
lcommon = $(lcommon) /align:0x1000
|
|
!ENDIF
|
|
|
|
# declarations for use on self hosted MIPS R4x000 systems
|
|
!IF "$(CPU)" == "MIPS"
|
|
DLLENTRY =
|
|
lcommon = $(lcommon)
|
|
!ENDIF
|
|
|
|
# declarations for use on self hosted PowerPC systems
|
|
!IF "$(CPU)" == "PPC"
|
|
DLLENTRY =
|
|
lcommon = $(lcommon)
|
|
!ENDIF
|
|
|
|
# declarations for use on self hosted Digital Alpha AXP systems
|
|
!IF "$(CPU)" == "ALPHA"
|
|
DLLENTRY =
|
|
lcommon = $(lcommon)
|
|
!ENDIF
|
|
|
|
# NODEBUG means a retail build
|
|
# PERF is a special case of retail:
|
|
# == retail plus performance stuff
|
|
|
|
!ifndef DEBUG_TYPE
|
|
DEBUG_TYPE = both
|
|
!endif
|
|
|
|
!ifdef USE_LEGO
|
|
ldebug = /OPT:REF /RELEASE /debug /debugtype:cv,fixup
|
|
!else
|
|
!IFDEF NODEBUG
|
|
!IFDEF PERF
|
|
ldebug = /OPT:REF /RELEASE /debug:mapped,minimal /debugtype:$(DEBUG_TYPE)
|
|
!ELSE
|
|
!ifdef SYMBOLS
|
|
ldebug = /OPT:REF /RELEASE /debug:mapped,minimal /debugtype:$(DEBUG_TYPE)
|
|
!else
|
|
ldebug = /OPT:REF /RELEASE /debug:none
|
|
!endif
|
|
!ENDIF
|
|
!ELSE
|
|
ldebug = /debug:mapped,full /debugtype:$(DEBUG_TYPE)
|
|
!ENDIF
|
|
!endif
|
|
|
|
!if "$(TARGET_TYPE)" == "DYNLINK"
|
|
!ifndef DLL_BASE
|
|
DLL_BASE = 0x1c400000
|
|
!endif
|
|
llink = /dll /base:$(DLL_BASE) /subsystem:windows,$(WIN_VER)
|
|
!if "$(DEF_FILE)" != ""
|
|
llink = $(llink)
|
|
TARGET_EXP = $(DBG_RTL)\$(TARGET_NAME).exp
|
|
!endif
|
|
!if "$(DLL_ENTRY)" != ""
|
|
!if "$(DLL_ENTRY)" != "none"
|
|
llink = $(llink) /entry:$(DLL_ENTRY)$(DLLENTRY)
|
|
!endif
|
|
!else
|
|
llink = $(llink) /entry:DllEntryPoint$(DLLENTRY)
|
|
!endif
|
|
!else
|
|
!if "$(TARGET_TYPE)" == "PROGRAM"
|
|
!if "$(EXE_TYPE)" == "console"
|
|
llink = /subsystem:console,$(WIN_VER) /entry:mainCRTStartup
|
|
!else
|
|
!if "$(EXE_TYPE)" == "windows"
|
|
llink = /subsystem:windows,$(WIN_VER) /entry:WinMainCRTStartup
|
|
!endif
|
|
!endif
|
|
!endif
|
|
!endif
|
|
|
|
lflags = $(lcommon) $(ldebug) $(llink)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# make type library flags
|
|
|
|
mtlflags = /nologo $(MTL_DEFINES)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# unicode flags
|
|
|
|
!ifdef UNICODE
|
|
cflags = $(cflags) -DUNICODE
|
|
rcflags = $(rcflags) -DUNICODE
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Include path
|
|
|
|
!ifndef NO_ACTIVEX_INCLUDES
|
|
INC_PATH = .; \
|
|
$(MSSDK)\include; \
|
|
$(MSTOOLS)\include; \
|
|
$(MSSDK)\samples\graphics\DirectShow\classes\base; \
|
|
$(MSTOOLS)\samples\graphics\DirectShow\classes\base; \
|
|
$(INC_PATH)
|
|
!endif
|
|
|
|
!if "$(INC_PATH)" != ""
|
|
INC_FLAGS = $(INC_PATH: =)***
|
|
INC_FLAGS = $(INC_FLAGS:;***=)
|
|
INC_FLAGS = $(INC_FLAGS:***=)
|
|
INC_FLAGS = -I$(INC_FLAGS:;= -I)
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Next work out what obj files need to be built from
|
|
# the list of source files
|
|
|
|
!if "$(SRC_FILES)" != ""
|
|
OBJ_FILES = $(SRC_FILES)
|
|
OBJ_FILES = $(OBJ_FILES:.cpp =.cpp*)
|
|
OBJ_FILES = $(OBJ_FILES:.c =.c*)
|
|
OBJ_FILES = $(OBJ_FILES: =)
|
|
!if "$(DBG_RTL)" == "retail"
|
|
OBJ_FILES = retail\$(OBJ_FILES:*= retail\)
|
|
!else
|
|
OBJ_FILES = debug\$(OBJ_FILES:*= debug\)
|
|
!endif
|
|
OBJ_FILES = $(OBJ_FILES:.cpp=.obj)
|
|
OBJ_FILES = $(OBJ_FILES:.c=.obj)
|
|
!endif
|
|
|
|
# Similary for res file wrt rc file
|
|
|
|
!if "$(RC_FILE)" != ""
|
|
!if "$(DBG_RTL)" == "retail"
|
|
RES_FILE = retail\$(RC_FILE:.rc=.res)
|
|
!else
|
|
RES_FILE = debug\$(RC_FILE:.rc=.res)
|
|
!endif
|
|
!endif
|
|
|
|
# and TLB file wrt ODL
|
|
|
|
!if "$(ODL_FILE)" != ""
|
|
!if "$(TLB_FILE)" == ""
|
|
!if "$(DBG_RTL)" == "retail"
|
|
TLB_FILE = retail\$(ODL_FILE:.odl=.tlb)
|
|
!else
|
|
TLB_FILE = debug\$(ODL_FILE:.odl=.tlb)
|
|
!endif
|
|
!endif
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# PCH stuff
|
|
|
|
!ifndef NO_COMMON_PCH
|
|
|
|
!ifdef NODEBUG
|
|
STREAMS_PCH = $(MSSDK)\lib\streams.pch
|
|
!else
|
|
STREAMS_PCH = $(MSSDK)\lib\streamsd.pch
|
|
!endif
|
|
|
|
!if exist( "$(STREAMS_PCH)" )
|
|
NEED_PCH_OBJ = 1
|
|
LINK_TASK = $(LINK_TASK) $(DBG_RTL)\_streams.obj
|
|
END_TASK = $(END_TASK) del_own_streams_obj
|
|
COMMON_PCH_OBJ = $(DBG_RTL)\_streams.obj
|
|
!endif
|
|
|
|
!endif
|
|
|
|
!ifndef DISABLE_PCH
|
|
|
|
!ifdef PCH_HEADER
|
|
|
|
pchusage = /Yu$(PCH_HEADER)
|
|
|
|
!ifdef PCH_NAME
|
|
!ifdef PCH_OBJ_NAME
|
|
PCH_OBJ = $(DBG_RTL)\$(PCH_OBJ_NAME).obj
|
|
!else
|
|
PCH_OBJ = $(DBG_RTL)\$(PCH_NAME).obj
|
|
!endif
|
|
PCH_PCH = $(DBG_RTL)\$(PCH_NAME).pch
|
|
!else
|
|
!ERROR must specify PCH_NAME when using PCH_HEADER
|
|
!endif
|
|
|
|
cpppch = $(pchusage) /Fp$(PCH_PCH)
|
|
|
|
!else
|
|
|
|
!if exist( "$(STREAMS_PCH)" )
|
|
PCH_OBJ =
|
|
PCH_PCH = $(STREAMS_PCH)
|
|
pchusage = /Yustreams.h
|
|
cpppch = $(pchusage) /Fp$(PCH_PCH)
|
|
!else
|
|
DISABLE_PCH = 1
|
|
!endif
|
|
|
|
!endif
|
|
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Browser files
|
|
|
|
!if "$(BROWSER)" == "TRUE"
|
|
cbrowser = -FR$(@R).sbr
|
|
TARGET_BSC = $(DBG_RTL)\$(TARGET_NAME).bsc
|
|
!else
|
|
cbrowser =
|
|
TARGET_BSC =
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Map and Sym files
|
|
|
|
!if "$(TARGET_MAP)" !=""
|
|
|
|
!ifdef SYM_FILES
|
|
END_TASK = $(END_TASK) $(TARGET_MAP:.map=.sym)
|
|
lmap = -map:$(TARGET_MAP)
|
|
!endif
|
|
|
|
!ifdef MAP_FILES
|
|
lmap = -map:$(TARGET_MAP)
|
|
!endif
|
|
|
|
LINKER_FLAGS = $(LINKER_FLAGS) $(lmap)
|
|
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Define common libraries
|
|
|
|
# base (not version!)
|
|
_CORE_LIBS = kernel32.lib \
|
|
advapi32.lib \
|
|
version.lib \
|
|
largeint.lib
|
|
|
|
# win libs
|
|
_USER_LIBS = user32.lib \
|
|
gdi32.lib \
|
|
comctl32.lib
|
|
|
|
_OLE__LIBS = ole32.lib \
|
|
oleaut32.lib \
|
|
uuid.lib
|
|
|
|
# !ifdef USE_MSVCRT_LIB
|
|
!ifndef USE_LIBCMT_LIB
|
|
|
|
!ifdef NODEBUG
|
|
_CRT__LIBS = msvcrt.lib
|
|
!else
|
|
!ifdef USE_MSVC20
|
|
_CRT__LIBS = msvcrt.lib
|
|
!else
|
|
_CRT__LIBS = msvcrtd.lib
|
|
!endif
|
|
!endif
|
|
|
|
!else
|
|
|
|
!ifdef NODEBUG
|
|
_CRT__LIBS = libcmt.lib
|
|
!else
|
|
!ifdef USE_MSVC20
|
|
_CRT__LIBS = libcmt.lib
|
|
!else
|
|
_CRT__LIBS = libcmtd.lib
|
|
!endif
|
|
!endif
|
|
|
|
!endif
|
|
|
|
_MM___LIBS = vfw32.lib \
|
|
winmm.lib
|
|
|
|
!ifdef NODEBUG
|
|
_AX1__LIBS = $(MSSDK)\lib\strmbase.lib
|
|
!else
|
|
_AX1__LIBS = $(MSSDK)\lib\strmbasd.lib
|
|
!endif
|
|
|
|
_AX2__LIBS = $(MSSDK)\lib\quartz.lib
|
|
|
|
!ifdef PERF
|
|
_AX2__LIBS = $(_AX2__LIBS) \
|
|
$(MSSDK)\lib\measure.lib
|
|
!endif
|
|
|
|
BASE_LIBS = $(_CRT__LIBS) \
|
|
$(_MM___LIBS) \
|
|
$(_CORE_LIBS) \
|
|
$(_USER_LIBS) \
|
|
$(_OLE__LIBS)
|
|
|
|
!ifndef NO_ACTIVEX_LIBS
|
|
LINK_LIBS = $(_AX2__LIBS) $(LINK_LIBS) $(_AX1__LIBS)
|
|
!if "$(TARGET_TYPE)" == "DYNLINK"
|
|
CODE_LIBS = $(_AX1__LIBS) $(CODE_LIBS)
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(TARGET_TYPE)" != "DYNLINK"
|
|
LINK_LIBS = $(CODE_LIBS) $(LINK_LIBS)
|
|
!endif
|
|
|
|
LINK_LIBS = $(LINK_LIBS) $(BASE_LIBS)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Pseudo-targets
|
|
|
|
.SILENT:
|
|
.IGNORE:
|
|
.SUFFIXES:
|
|
.SUFFIXES: .c .cpp
|
|
.PRECIOUS: $(TARGET_LIB) $(TARGET_BIN)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Rules
|
|
|
|
CC_COMMAND_LINE = $(cflags) $(cbrowser) -Fo$(DBG_RTL)\ $(INC_FLAGS) $(@B).c
|
|
|
|
CPP_COMMAND_LINE = $(cflags) $(cbrowser) -Fo$(DBG_RTL)\ $(INC_FLAGS) $(@B).cpp
|
|
|
|
.c{$(DBG_RTL)}.obj:
|
|
echo Compiling $(@B).c... > $(MAKE_ECHO)
|
|
if exist $@ del $@ > NUL
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(cc) $(ccpch) $(CC_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(cc) $(ccpch) $(CC_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
|
|
.c.cod:
|
|
echo Compiling $(@B).c - with cod file... > $(MAKE_ECHO)
|
|
if exist $@ del $@ > NUL
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(cc) -Fc $(CC_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(cc) -Fc $(CC_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
|
|
.cpp{$(DBG_RTL)}.obj:
|
|
echo Compiling $(@B).cpp... > $(MAKE_ECHO)
|
|
if exist $@ del $@ > NUL
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(cc) $(cpppch) $(CPP_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(cc) $(cpppch) $(CPP_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
|
|
.cpp.cod:
|
|
echo Compiling $(@B).cpp - with cod file... > $(MAKE_ECHO)
|
|
if exist $@ del $@ > NUL
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(cc) -Fc $(CPP_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(cc) -Fc $(CPP_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - key
|
|
|
|
#
|
|
# default
|
|
#
|
|
|
|
all : log_start \
|
|
dump_params \
|
|
pass1 \
|
|
log_done \
|
|
clear_params \
|
|
del_echo
|
|
|
|
#
|
|
# clean
|
|
#
|
|
|
|
clean: dump_params0 \
|
|
pass0 \
|
|
clear_params0 \
|
|
del_echo0 \
|
|
log_reset
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - passes
|
|
|
|
pass0: log_pass0 \
|
|
$(CLEAN_TASK) \
|
|
delete
|
|
|
|
pass1: log_pass \
|
|
make_dir \
|
|
$(START_TASK) \
|
|
$(TLB_FILE) \
|
|
$(LIB_TASK) \
|
|
$(RES_FILE) \
|
|
$(PCH_PCH) \
|
|
$(PCH_OBJ) \
|
|
$(OBJ_FILES) \
|
|
$(TARGET_LIB) \
|
|
$(GOAL_LIB) \
|
|
$(LINK_TASK) \
|
|
$(TARGET_BIN) \
|
|
$(TARGET_BSC) \
|
|
$(END_TASK) \
|
|
$(GOAL_BIN)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - logging
|
|
|
|
log_reset:
|
|
if exist $(MAKE_LOG) del $(MAKE_LOG)
|
|
|
|
log_start:
|
|
if exist $(MAKE_LOG) del $(MAKE_LOG)
|
|
echo Making $(MAKEDIR) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo TARGET_LIB = $(TARGET_LIB) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
echo TARGET_BIN = $(TARGET_BIN) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
|
|
log_done:
|
|
echo Done! > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - support
|
|
|
|
make_dir:
|
|
if not exist $(DBG_RTL)\NUL md $(DBG_RTL)
|
|
|
|
delete:
|
|
echo y | del $(DBG_RTL)\*.* > NUL
|
|
|
|
# OPK prob. if exist $(DBG_RTL)\nul del $(DBG_RTL)\** > NUL
|
|
|
|
del_own_streams_obj:
|
|
if exist $(DBG_RTL)\_streams.obj del $(DBG_RTL)\_streams.obj
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - copying
|
|
|
|
#
|
|
# copy *.lib files
|
|
#
|
|
|
|
!ifndef NO_COPY
|
|
!if "$(TARGET_LIB)" != ""
|
|
|
|
$(GOAL_LIB) : $(TARGET_LIB)
|
|
echo Copy $(TARGET_LIB) to $@... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
if not exist $(TARGET_LIB_GOAL)\NUL md $(TARGET_LIB_GOAL)
|
|
copy $(TARGET_LIB) $(TARGET_LIB_GOAL) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
|
|
!endif
|
|
!endif
|
|
|
|
#
|
|
# copy *.exe, etc. files
|
|
#
|
|
|
|
!ifndef NO_COPY
|
|
!if "$(TARGET_BIN)" != ""
|
|
|
|
$(GOAL_BIN) : $(TARGET_BIN)
|
|
echo Copy $(TARGET_BIN) to $@... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
if not exist $(TARGET_BIN_GOAL)\NUL md $(TARGET_BIN_GOAL)
|
|
copy $(TARGET_BIN) $(TARGET_BIN_GOAL) > $(MAKE_ECHO)
|
|
!ifdef MAP_FILES
|
|
if exist $(TARGET_MAP) copy $(TARGET_MAP) $(TARGET_BIN_GOAL) > NUL
|
|
!endif
|
|
!ifdef SYM_FILES
|
|
if exist $(TARGET_MAP:.map=.sym) copy $(TARGET_MAP:.map=.sym) $(TARGET_BIN_GOAL) > NUL
|
|
!endif
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
|
|
!endif
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - target type specific
|
|
|
|
#
|
|
# build library
|
|
#
|
|
|
|
!if "$(TARGET_LIB)" != ""
|
|
|
|
LIB_COMMAND_LINE = $(libflags) \
|
|
$(LIB_FLAGS) \
|
|
/out:$(TARGET_LIB) \
|
|
$(CODE_LIBS) \
|
|
$(OBJ_FILES) \
|
|
$(PCH_OBJ) \
|
|
$(RES_FILE)
|
|
|
|
$(TARGET_LIB): $(OBJ_FILES) $(RES_FILE) $(DEF_FILE) $(CODE_LIBS)
|
|
echo Build library $@... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(implib) $(LIB_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(implib) $(LIB_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
!endif
|
|
|
|
#
|
|
# link bin
|
|
#
|
|
|
|
!if "$(TARGET_BIN)" != ""
|
|
|
|
LINK_COMMAND_LINE = \
|
|
$(lflags) \
|
|
$(LINKER_FLAGS) \
|
|
/out:$(TARGET_BIN) \
|
|
$(TARGET_EXP) \
|
|
$(OBJ_FILES) \
|
|
$(PCH_OBJ) \
|
|
$(COMMON_PCH_OBJ) \
|
|
$(RES_FILE) \
|
|
$(CODE_LIBS) \
|
|
$(LINK_LIBS)
|
|
|
|
# kill extra whitespace
|
|
LINK_COMMAND_LINE = $(LINK_COMMAND_LINE: = )
|
|
LINK_COMMAND_LINE = $(LINK_COMMAND_LINE: = )
|
|
LINK_COMMAND_LINE = $(LINK_COMMAND_LINE: = )
|
|
LINK_COMMAND_LINE = $(LINK_COMMAND_LINE: = )
|
|
|
|
$(TARGET_BIN): $(OBJ_FILES) $(RES_FILE) $(DEF_FILE) $(CODE_LIBS) $(TARGET_EXP)
|
|
echo Linking $(TARGET_BIN)... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
copy << $(MAKEDIR)\~qlnkcmd.tmp > NUL
|
|
$(LINK_COMMAND_LINE: =^
|
|
)
|
|
<<NOKEEP
|
|
echo. $(link) > $(MAKE_ECHO)
|
|
type $(MAKEDIR)\~qlnkcmd.tmp >> $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(link) @$(MAKEDIR)\~qlnkcmd.tmp > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
del $(MAKEDIR)\~qlnkcmd.tmp
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
!endif
|
|
|
|
#
|
|
# compile resources
|
|
#
|
|
|
|
!if "$(RC_FILE)" != ""
|
|
RC_COMMAND_LINE = $(rcflags) \
|
|
-Fo$(RES_FILE) \
|
|
-I. \
|
|
$(INC_FLAGS) \
|
|
$(RC_FILE)
|
|
$(RES_FILE): $(RC_FILE)
|
|
echo Compiling resources... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(rc) $(RC_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(rc) $(RC_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
!endif
|
|
|
|
#
|
|
# bsc target
|
|
#
|
|
|
|
!if "$(TARGET_BSC)" != ""
|
|
!if "$(PREPEND_STRMBASE_BSC)" == "TRUE"
|
|
STRMBASE_BSC = $(MSSDK)\samples\graphics\DirectShow\classes\base\$(DBG_RTL)\strmbase.bsc
|
|
$(TARGET_BSC) :: $(STRMBASE_BSC)
|
|
copy $(STRMBASE_BSC) $(TARGET_BSC)
|
|
!endif
|
|
$(TARGET_BSC) :: $(OBJS)
|
|
echo Generating Browser database... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
if exist $(DBG_RTL)\*.sbr bscmake /nologo /o$(TARGET_BSC) $(DBG_RTL)\*.sbr
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
!endif
|
|
|
|
#
|
|
# make type library
|
|
#
|
|
|
|
!if "$(ODL_FILE)" != ""
|
|
MTL_COMMAND_LINE = $(mtlflags) \
|
|
/win32 \
|
|
/tlb $(TLB_FILE) \
|
|
/h $(ODL_HEADER) \
|
|
-I. \
|
|
$(INC_FLAGS) \
|
|
$(ODL_FILE)
|
|
$(TLB_FILE): $(ODL_FILE)
|
|
echo Making type library... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(mtl) $(MTL_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
$(mtl) $(MTL_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
!endif
|
|
|
|
#
|
|
# pch file
|
|
#
|
|
|
|
!ifndef DISABLE_PCH
|
|
!if "$(PCH_HEADER)" != ""
|
|
PCH_COMMAND_LINE = $(cflags) \
|
|
-Fo$(PCH_OBJ) \
|
|
-Fp$(PCH_PCH) \
|
|
-Yc"$(PCH_HEADER)" \
|
|
-I. \
|
|
$(INC_FLAGS)
|
|
$(PCH_PCH) $(PCH_OBJ) : $(PCH_HEADER)
|
|
echo Compiling precompiled header... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
echo $(cc) $(PCH_COMMAND_LINE) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
echo #include "$(PCH_HEADER)" > $(MAKEDIR)\~qpchfil.tmp
|
|
$(cc) $(PCH_COMMAND_LINE) /Tp $(MAKEDIR)\~qpchfil.tmp > $(MAKE_ECHO)
|
|
del $(MAKEDIR)\~qpchfil.tmp
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
echo. > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
|
|
!ifdef OBJ_FILES
|
|
$(OBJ_FILES):$(PCH_PCH)
|
|
!endif
|
|
|
|
!else
|
|
|
|
!if "$(OBJ_FILES)" != ""
|
|
!ifdef NODEBUG
|
|
$(OBJ_FILES):$(MSSDK)\lib\streams.pch
|
|
!else
|
|
$(OBJ_FILES):$(MSSDK)\lib\streamsd.pch
|
|
!endif
|
|
!endif
|
|
|
|
!endif
|
|
!endif
|
|
|
|
!ifdef NEED_PCH_OBJ
|
|
$(DBG_RTL)\_streams.obj : $(MSSDK)\samples\graphics\DirectShow\classes\base\$(DBG_RTL)\_streams.obj
|
|
copy $(MSSDK)\samples\graphics\DirectShow\classes\base\$(DBG_RTL)\_streams.obj $(DBG_RTL) > NUL
|
|
!endif
|
|
|
|
#
|
|
# sym files
|
|
#
|
|
|
|
!ifdef SYM_FILES
|
|
!if "$(TARGET_MAP)" !=""
|
|
$(TARGET_MAP:.map=.sym): $(TARGET_MAP)
|
|
echo Running mapsym... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
mapsym -nologo -o $(TARGET_MAP:.map=.sym) $(TARGET_MAP) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO2)
|
|
$(FILE_ECHO)
|
|
!endif
|
|
!endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
# include dependencies
|
|
|
|
!ifndef NODEPENDS
|
|
!if exist("_depend")
|
|
!include "_depend"
|
|
!endif
|
|
!endif
|
|
|
|
!ELSE
|
|
|
|
#============================================================================
|
|
#
|
|
# DIRECTORY
|
|
#
|
|
#============================================================================
|
|
|
|
#
|
|
# if DIR_LIST *is* defined this makefile is being
|
|
# included to build a directory (tree).
|
|
#
|
|
|
|
#----------------------------------------------------------------------------
|
|
# directives
|
|
|
|
.IGNORE:
|
|
.SILENT:
|
|
|
|
#----------------------------------------------------------------------------
|
|
# defines
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - key
|
|
|
|
#
|
|
# default
|
|
#
|
|
|
|
all : log_start \
|
|
dump_params \
|
|
set_pass_target \
|
|
pass1 \
|
|
log_done \
|
|
delete_qmakcmd_bat \
|
|
clear_params \
|
|
del_echo
|
|
|
|
clean: dump_params0 \
|
|
set_pass_target0 \
|
|
pass0 \
|
|
delete_qmakcmd_bat0 \
|
|
clear_params0 \
|
|
del_echo0
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - passes
|
|
|
|
# pass0 - do clean
|
|
|
|
pass0: log_pass0 \
|
|
$(CLEAN_TASK) \
|
|
dir_list0 \
|
|
dir_delete
|
|
|
|
pass1: log_pass \
|
|
$(START_TASK) \
|
|
dir_list1 \
|
|
$(END_TASK)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - directory lists
|
|
|
|
# dir_list0 - do clean
|
|
|
|
dir_list0: $(DIR_LIST)
|
|
!$(MAKE_CMD) $** pass0
|
|
|
|
# dir_list1 - build all targets
|
|
|
|
dir_list1: $(DIR_LIST)
|
|
!$(MAKE_CMD) $** pass1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - support
|
|
|
|
set_pass_target:
|
|
@echo @echo off > $(MAKE_CMD)
|
|
@echo cd %1 >> $(MAKE_CMD)
|
|
@echo $(MAKE) /nologo MAKE_ENV=$(MAKE_ENV) MAKE_PASS=%2 %2 >> $(MAKE_CMD)
|
|
@echo cd $(MAKEDIR) >> $(MAKE_CMD)
|
|
|
|
set_pass_target0:
|
|
@echo @echo off > $(MAKE_CMD)
|
|
@echo cd %1 >> $(MAKE_CMD)
|
|
@echo $(MAKE) /nologo MAKE_ENV=$(MAKE_ENV) MAKE_PASS=%2 %2 >> $(MAKE_CMD)
|
|
@echo cd $(MAKEDIR) >> $(MAKE_CMD)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - logging
|
|
|
|
log_start:
|
|
if exist $(MAKE_LOG) del $(MAKE_LOG)
|
|
echo Making $(MAKEDIR) tree... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
|
|
log_done:
|
|
echo Finished $(MAKEDIR) tree... > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - delete
|
|
|
|
dir_delete:
|
|
if exist ~q*.* del ~q*.*
|
|
if exist make.log del make.log
|
|
|
|
delete_log:
|
|
if exist $(MAKE_LOG) del $(MAKE_LOG)
|
|
|
|
delete_qmakcmd_bat:
|
|
if exist $(MAKE_CMD) del $(MAKE_CMD)
|
|
|
|
delete_log0:
|
|
if exist $(MAKE_LOG) del $(MAKE_LOG)
|
|
|
|
delete_qmakcmd_bat0:
|
|
if exist $(MAKE_CMD) del $(MAKE_CMD)
|
|
|
|
# BINARY/DIRECTORY
|
|
!ENDIF
|
|
|
|
#============================================================================
|
|
#
|
|
# Common (to BINARY and DIRECTORY)
|
|
#
|
|
#============================================================================
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - environment
|
|
|
|
dump_params:
|
|
if exist $(MAKE_ENV) del $(MAKE_ENV)
|
|
!ifdef NODEBUG
|
|
echo NODEBUG = $(NODEBUG) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef PERF
|
|
echo PERF = $(PERF) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef SYMBOLS
|
|
echo SYMBOLS = $(SYMBOLS) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKE_CMD
|
|
echo MAKE_CMD = $(MAKE_CMD) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKE_LOG
|
|
echo MAKE_LOG = $(MAKE_LOG) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKE_ECHO
|
|
echo MAKE_ECHO = $(MAKE_ECHO) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef ECHO_ECHO
|
|
echo ECHO_ECHO = $(ECHO_ECHO) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKEFLAGS
|
|
echo MAKEFLAGS = $(MAKEFLAGS) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef DISABLE_PCH
|
|
echo DISABLE_PCH = $(DISABLE_PCH) >> $(MAKE_ENV)
|
|
!endif
|
|
|
|
dump_params0:
|
|
if exist $(MAKE_ENV) del $(MAKE_ENV)
|
|
!ifdef NODEBUG
|
|
echo NODEBUG = $(NODEBUG) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef PERF
|
|
echo PERF = $(PERF) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef SYMBOLS
|
|
echo SYMBOLS = $(SYMBOLS) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKE_CMD
|
|
echo MAKE_CMD = $(MAKE_CMD) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKE_LOG
|
|
echo MAKE_LOG = $(MAKE_LOG) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKE_ECHO
|
|
echo MAKE_ECHO = $(MAKE_ECHO) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef ECHO_ECHO
|
|
echo ECHO_ECHO = $(ECHO_ECHO) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef MAKEFLAGS
|
|
echo MAKEFLAGS = $(MAKEFLAGS) >> $(MAKE_ENV)
|
|
!endif
|
|
!ifdef DISABLE_PCH
|
|
echo DISABLE_PCH = $(DISABLE_PCH) >> $(MAKE_ENV)
|
|
!endif
|
|
|
|
clear_params:
|
|
if exist $(MAKE_ENV) del $(MAKE_ENV)
|
|
|
|
clear_params0:
|
|
if exist $(MAKE_ENV) del $(MAKE_ENV)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# TARGETS - logging
|
|
|
|
del_echo:
|
|
if exist $(MAKE_ECHO) del $(MAKE_ECHO)
|
|
|
|
del_echo0:
|
|
if exist $(MAKE_ECHO) del $(MAKE_ECHO)
|
|
|
|
log_pass:
|
|
echo $(MAKE_PASS) - $(MAKEDIR) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
|
|
log_pass0:
|
|
echo cleaning - $(MAKEDIR) > $(MAKE_ECHO)
|
|
$(TYPE_ECHO)
|
|
$(FILE_ECHO)
|
|
|
|
# END OF FILE
|