mirror of https://github.com/lianthony/NT4.0
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.
771 lines
18 KiB
771 lines
18 KiB
# Makefile : Builds a Microsoft Foundation Class library variant.
|
|
#
|
|
# This is a part of the Microsoft Foundation Classes C++ library.
|
|
# Copyright (C) 1992-1995 Microsoft Corporation
|
|
# All rights reserved.
|
|
#
|
|
# This source code is only intended as a supplement to the
|
|
# Microsoft Foundation Classes Reference and related
|
|
# electronic documentation provided with the library.
|
|
# See these sources for detailed information regarding the
|
|
# Microsoft Foundation Classes product.
|
|
#
|
|
# Usage: NMAKE CLEAN (removes all intermediary files)
|
|
# or: NMAKE options (builds one library variant (see below))
|
|
# Note that an NMAKE CLEAN should be performed before building a new variant.
|
|
#
|
|
# 'Options' are one of each of:
|
|
# "DLL" (defaults to 0)
|
|
# If this item is 0, then a normal library is generated.
|
|
# DLL=1 is obsolete and not supported by this release.
|
|
# If this item is 2, objects suitable for the shared DLL version
|
|
# of MFC are created. Note: DLL=2 is to be used only from
|
|
# MFCDLL.MAK, MFCOLE.MAK, or MFCDB.MAK
|
|
#
|
|
# "DEBUG" (defaults to 1)
|
|
# If this item is 1, debugging support is compiled into
|
|
# the library. If this item is 0, then debugging support
|
|
# is disabled. Debug support does not include CodeView information.
|
|
#
|
|
# "CODEVIEW" (defaults to 1 for DEBUG=1, 0 for DEBUG=0)
|
|
# If this item is 1 CodeView information is compiled into
|
|
# the library. You must use the /DEBUG:FULL and /DEBUGTYPE:cv link
|
|
# options when linking your executable. A value of 0 indicates that
|
|
# no CodeView information is to be generated.
|
|
#
|
|
# "OBJ=.\obj" (defaults to '$$(MODEL)$(BASE)$(DEBUG)')
|
|
# This optional specification specifies where temporary OBJ files
|
|
# are stored during the build process. The directory is created or
|
|
# removed as necessary.
|
|
#
|
|
# "OPT=" (no default value)
|
|
# This allows additional compiler options to be added to the build.
|
|
# If more than one switch is desired, put double-quotes around the
|
|
# whole OPT= argument, e.g., "OPT=/J /W3".
|
|
#
|
|
# "NO_PCH=1"
|
|
# Set this item to override the default use of precompiled headers.
|
|
#
|
|
# "NO_PDB=1"
|
|
# Set this item to override the default use of PDB files.
|
|
#
|
|
# "BROWSE=1" (defaults to 0)
|
|
# Set this option to build the browse database for the MFC
|
|
# library. By setting BROWSE=1, both the .SBRs and the .BSC
|
|
# files will be built along with the .OBJ and .LIB files that
|
|
# are part of the normal build process.
|
|
#
|
|
# "BROWSEONLY=1" (defaults to 0)
|
|
# Set this option to build the browse files without re-building
|
|
# the MFC library itself. Note: This option is used internally
|
|
# when BROWSE=1 is selected.
|
|
#
|
|
# "PLATFORM=INTEL" (defaults depends on host)
|
|
# This option chooses the appropriate tools and sources for the
|
|
# different platforms supporting the Win32 API. Currently INTEL,
|
|
# MIPS, ALPHA, PPC, M68K, and MPPC are supported; more will
|
|
# be added as they become available. This option must be set for
|
|
# Mac targets since they are built on an Intel host.
|
|
#
|
|
# "INCREMENTAL=1" (defaults to 0)
|
|
# This option enables incremental/minimal compilation and
|
|
# incremental linking.
|
|
#
|
|
# Advanced Options:
|
|
#
|
|
# "MBCS=0" (defaults to 1)
|
|
# To build an SBCS library instead of the default (MBCS)
|
|
# you can use MBCS=0. This creates a slightly smaller
|
|
# library, but the code will not work in far-east markets.
|
|
# This option has no effect when UNICODE=1.
|
|
#
|
|
# "MT=0" (defaults to 1)
|
|
# To build a non-multithreaded library instead of the default
|
|
# (which enables multitheading and uses the multithread
|
|
# C-runtimes) you can use MT=0.
|
|
#
|
|
#############################################################################
|
|
# Define defaults if not defined
|
|
|
|
# Default PLATFORM depending on host environment
|
|
!ifndef PLATFORM
|
|
!ifndef PROCESSOR_ARCHITECTURE
|
|
PROCESSOR_ARCHITECTURE=x86
|
|
!endif
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "x86"
|
|
PLATFORM=INTEL
|
|
!endif
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "MIPS"
|
|
PLATFORM=MIPS
|
|
!endif
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA"
|
|
PLATFORM=ALPHA
|
|
!endif
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "PPC"
|
|
PLATFORM=PPC
|
|
!endif
|
|
!endif
|
|
|
|
# Default to DEBUG mode
|
|
!ifndef DEBUG
|
|
DEBUG=1
|
|
!endif
|
|
|
|
# Default to NOT DLL
|
|
!ifndef DLL
|
|
DLL=0
|
|
!endif
|
|
|
|
# Default Codeview Info
|
|
!ifndef CODEVIEW
|
|
!if "$(DEBUG)" == "1"
|
|
CODEVIEW=1
|
|
!else
|
|
CODEVIEW=0
|
|
!endif
|
|
!endif
|
|
|
|
# BROWSEONLY is default 0 and implies BROWSE=1 if BROWSEONLY=1
|
|
!ifndef BROWSEONLY
|
|
BROWSEONLY=0
|
|
!endif
|
|
|
|
!if "$(BROWSEONLY)" != "0"
|
|
!undef BROWSE
|
|
BROWSE=1
|
|
!endif
|
|
|
|
# Default to no BROWSE info
|
|
!ifndef BROWSE
|
|
BROWSE=0
|
|
!endif
|
|
|
|
# Default to no INCREMENTAL build
|
|
!ifndef DEVBUILD
|
|
DEVBUILD=0
|
|
!endif
|
|
!if "$(DEBUG)" != "0"
|
|
!ifndef INCREMENTAL
|
|
INCREMENTAL=$(DEVBUILD)
|
|
!endif
|
|
!endif
|
|
!ifndef INCREMENTAL
|
|
INCREMENTAL=0
|
|
!endif
|
|
|
|
# Default to _MBCS build
|
|
!ifndef MBCS
|
|
MBCS=1
|
|
!endif
|
|
|
|
# Default to multithreading support
|
|
!ifndef MT
|
|
MT=1
|
|
!endif
|
|
|
|
#############################################################################
|
|
# normalize cases of parameters, or error check
|
|
|
|
!if "$(CPU)" == "MIPS"
|
|
!if "$(PLATFORM)" != "MIPS"
|
|
!error Must set PLATFORM=MIPS for MIPS builds
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(CPU)" == "ALPHA"
|
|
!if "$(PLATFORM)" != "ALPHA"
|
|
!error Must set PLATFORM=ALPHA for ALPHA builds
|
|
!endif
|
|
!endif
|
|
|
|
BASE=W
|
|
!if "$(PLATFORM)" == "M68K" || "$(PLATFORM)" == "MPPC"
|
|
!undef BASE
|
|
MACOS=1
|
|
!if "$(PLATFORM)" == "M68K"
|
|
BASE=M
|
|
MACOS_ARCH='m68k'
|
|
!else
|
|
BASE=P
|
|
MACOS_ARCH='pwpc'
|
|
!endif
|
|
!if "$(UNICODE)" == "1"
|
|
!error Must set UNICODE=0 for Macintosh builds
|
|
!endif
|
|
!endif
|
|
|
|
#############################################################################
|
|
# Parse options
|
|
|
|
#
|
|
# DEBUG OPTIONS
|
|
#
|
|
!if "$(DEBUG)" != "0"
|
|
|
|
DEBUGSUF=D
|
|
DEBDEFS=/D_DEBUG
|
|
DEBOPTS=/Od
|
|
|
|
!if "$(PLATFORM)" == "M68K"
|
|
DEBOPTS=/Q68m $(DEBOPTS)
|
|
!elseif "$(PLATFORM)" == "MPPC"
|
|
DEBOPTS=/QPm $(DEBOPTS)
|
|
!endif
|
|
!endif
|
|
|
|
#
|
|
# NON-DEBUG OPTIONS
|
|
#
|
|
!if "$(DEBUG)" == "0"
|
|
|
|
DEBUGSUF=
|
|
DEBDEFS=
|
|
|
|
!if "$(PLATFORM)" == "INTEL"
|
|
DEBOPTS=/O1 /GyF
|
|
!endif
|
|
!if "$(PLATFORM)" == "MIPS"
|
|
DEBOPTS=/O1 /GyF
|
|
!endif
|
|
!if "$(PLATFORM)" == "ALPHA"
|
|
DEBOPTS=/O1 /GyF
|
|
!endif
|
|
!if "$(PLATFORM)" == "PPC"
|
|
DEBOPTS=/O1 /GyF
|
|
!endif
|
|
!if "$(PLATFORM)" == "M68K"
|
|
DEBOPTS=/O1 /GyF
|
|
!endif
|
|
!if "$(PLATFORM)" == "MPPC"
|
|
DEBOPTS=/O1 /GyF
|
|
!endif
|
|
!endif
|
|
|
|
#
|
|
# PLATFORM options
|
|
#
|
|
|
|
!if "$(PLATFORM)" == "INTEL"
|
|
CL_MODEL=/D_X86_
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "MIPS"
|
|
CL_MODEL=/D_MIPS_
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "ALPHA"
|
|
CL_MODEL=/D_ALPHA_
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "PPC"
|
|
CL_MODEL=/D_PPC_
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "M68K"
|
|
MT=0
|
|
CL_MODEL=/D_68K_ /D_MAC /NTAFX_DEF
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "MPPC"
|
|
MT=0
|
|
CL_MODEL=/D_MPPC_ /D_MAC
|
|
!endif
|
|
|
|
!if "$(CL_MODEL)" == ""
|
|
!error PLATFORM must be one of INTEL, MIPS, ALPHA, PPC, M68K, or MPPC
|
|
!endif
|
|
|
|
# TYPE = Library Type Designator
|
|
# c = normal C library
|
|
# d = DLL library
|
|
TYPE=c
|
|
DEXT=
|
|
|
|
#
|
|
# Object File Directory
|
|
#
|
|
!if "$(OBJ)" == ""
|
|
D=$$$(MODEL)$(BASE)$(DEBUGSUF)$(DEXT) # subdirectory specific to variant
|
|
!else
|
|
D=$(OBJ) # User specified directory
|
|
!endif
|
|
|
|
#
|
|
# _AFXDLL DLL Variant
|
|
#
|
|
|
|
!if "$(DLL)" == "2"
|
|
# _AFXDLL library
|
|
TYPE=e
|
|
!if "$(OBJ)" == ""
|
|
D=DLL$(DEBUGSUF).$(BASE)
|
|
!if "$(UNICODE)" == "1"
|
|
D=$(MODEL)$D
|
|
!endif
|
|
D=$$$D
|
|
!endif
|
|
TARGOPTS=$(TARGOPTS) /MD /D_DLL /GF
|
|
!if "$(MT)" != "0"
|
|
TARGOPTS=$(TARGOPTS) /D_MT
|
|
!endif
|
|
TARGDEFS=$(TARGDEFS) /D_WINDLL /D_AFXDLL
|
|
!else
|
|
# not _AFXDLL library
|
|
!if "$(MT)" != "0"
|
|
TARGOPTS=$(TARGOPTS) /MT
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(UNICODE)" == "1"
|
|
MODEL=U
|
|
TARGDEFS=$(TARGDEFS) /D_UNICODE
|
|
!else
|
|
MODEL=N
|
|
!if "$(MBCS)" != "0"
|
|
TARGDEFS=$(TARGDEFS) /D_MBCS
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(DLL)" == "2" && "$(BROWSEONLY)" != "1"
|
|
!if "$(TARG)" == ""
|
|
!error DLL=2 is used only from MFCDLL.MAK, MFCOLE.MAK, or MFCDB.MAK
|
|
!endif
|
|
GOAL=$(TARG)
|
|
!else
|
|
GOAL=$(MODEL)afx$(TYPE)$(BASE)$(DEBUGSUF)
|
|
!endif
|
|
|
|
#
|
|
# CODEVIEW options
|
|
#
|
|
!if "$(CODEVIEW)" == "1"
|
|
!if "$(NO_PDB)" == "1"
|
|
CVOPTS=/Z7
|
|
!if "$(PROFLIB)" != ""
|
|
!error Can't build for profiling without PDB files.
|
|
!endif
|
|
!else
|
|
CVOPTS=/Zi
|
|
!if "$(PROFLIB)" != ""
|
|
CVOPTS=$(CVOPTS) /Gh
|
|
!endif
|
|
!if "$(DLL)" == "2"
|
|
PDBOPTS=/Fd$(GOAL).pdb
|
|
!else
|
|
PDBOPTS=/Fd..\lib\$(GOAL).pdb
|
|
!endif
|
|
!endif
|
|
!endif
|
|
|
|
#
|
|
# INCREMENTAL options
|
|
#
|
|
!if "$(INCREMENTAL)" == "1"
|
|
INCROPTS=/Gi /Gm
|
|
!else
|
|
INCROPTS=/Gi- /Gm-
|
|
!endif
|
|
|
|
#
|
|
# COMPILER OPTIONS
|
|
#
|
|
!if "$(PLATFORM)" == "INTEL"
|
|
CL_OPT=/W4 /WX /Zl /GX /GR $(INCROPTS) $(DEBOPTS) $(CVOPTS) $(TARGOPTS)
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "MIPS"
|
|
CL_OPT=/W4 /WX /Zl /GX /GR $(INCROPTS) $(DEBOPTS) $(CVOPTS) $(TARGOPTS)
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "ALPHA"
|
|
CL_OPT=/W4 /WX /Zl /GX /GR $(INCROPTS) $(DEBOPTS) $(CVOPTS) $(TARGOPTS)
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "PPC"
|
|
CL_OPT=/W4 /WX /Zl /GX /GR $(INCROPTS) $(DEBOPTS) $(CVOPTS) $(TARGOPTS)
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "M68K"
|
|
CL_OPT=/W4 /WX /Zl /GX /GR /AL /Gt1 /Q68s $(DEBOPTS) $(CVOPTS) $(TARGOPTS)
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "MPPC"
|
|
CL_OPT=/W4 /WX /Zl /GX /GR $(DEBOPTS) $(CVOPTS) $(TARGOPTS)
|
|
!endif
|
|
|
|
!if "$(BROWSE)" != "0"
|
|
CL_OPT=/FR$D\ $(CL_OPT)
|
|
!endif
|
|
|
|
!if "$(BROWSEONLY)" != "0"
|
|
CL_OPT=/Zs $(CL_OPT)
|
|
!else
|
|
CL_OPT=/Fo$D\ $(CL_OPT)
|
|
!endif
|
|
|
|
DEFS=$(DEFS) $(DEBDEFS) $(TARGDEFS)
|
|
|
|
#############################################################################
|
|
# Library Components
|
|
|
|
OBJECT=$D\objcore.obj $D\except.obj \
|
|
$D\validadd.obj $D\dumpcont.obj $D\dumpflt.obj \
|
|
$D\arccore.obj $D\arcobj.obj $D\arcex.obj
|
|
|
|
# non-shared diagnostics
|
|
OBJDIAG=$D\dumpinit.obj $D\dumpout.obj \
|
|
$D\afxasert.obj $D\afxmem.obj $D\afxabort.obj
|
|
|
|
FILES=$D\filecore.obj $D\filetxt.obj $D\filemem.obj $D\fileshrd.obj \
|
|
$D\filex.obj $D\filest.obj
|
|
|
|
COLL1=$D\array_b.obj $D\array_d.obj $D\array_p.obj $D\array_o.obj \
|
|
$D\array_s.obj $D\array_u.obj $D\array_w.obj \
|
|
$D\list_o.obj $D\list_p.obj $D\list_s.obj
|
|
|
|
COLL2=$D\map_pp.obj $D\map_pw.obj $D\map_so.obj \
|
|
$D\map_sp.obj $D\map_ss.obj $D\map_wo.obj $D\map_wp.obj $D\plex.obj
|
|
|
|
MISC=\
|
|
$D\strcore.obj $D\strex.obj $D\timecore.obj \
|
|
$D\afxdbcs.obj $D\afxstate.obj $D\afxtls.obj
|
|
|
|
!if "$(MACOS)" != "1"
|
|
MISC=$(MISC) $D\mtcore.obj $D\mtex.obj
|
|
!endif
|
|
|
|
WINDOWS=\
|
|
$D\wincore.obj $D\winfrm.obj $D\winfrm2.obj $D\winfrmx.obj \
|
|
$D\winmdi.obj $D\tooltip.obj $D\winmini.obj $D\winhand.obj \
|
|
$D\winmain.obj $D\barcore.obj $D\bartool.obj $D\bardlg.obj \
|
|
$D\barstat.obj $D\bardock.obj $D\dockcont.obj $D\dockstat.obj \
|
|
$D\dcprev.obj $D\dcmeta.obj $D\trckrect.obj
|
|
|
|
DIALOG=\
|
|
$D\winctrl1.obj $D\winctrl2.obj $D\winctrl3.obj $D\winctrl4.obj \
|
|
$D\winbtn.obj $D\dlgcore.obj $D\dlgdata.obj $D\dlgfloat.obj \
|
|
$D\dlgprop.obj $D\dlgcomm.obj $D\dlgfile.obj $D\dlgprnt.obj \
|
|
$D\dlgclr.obj $D\dlgfnt.obj $D\dlgfr.obj $D\ccdata.obj $D\dlgtempl.obj
|
|
|
|
WINMISC=\
|
|
$D\wingdi.obj $D\wingdix.obj $D\winstr.obj $D\winmenu.obj \
|
|
$D\auxdata.obj $D\afxcrit.obj $D\afxtrace.obj $D\winutil.obj
|
|
|
|
!if "$(MACOS)" != "1"
|
|
WINMISC=$(WINMISC) $D\winocc.obj
|
|
!endif
|
|
|
|
DOCVIEW=\
|
|
$D\cmdtarg.obj $D\doccore.obj $D\doctempl.obj \
|
|
$D\docsingl.obj $D\docmulti.obj $D\docmgr.obj \
|
|
$D\viewcore.obj $D\viewprnt.obj $D\winsplit.obj $D\viewscrl.obj \
|
|
$D\viewform.obj $D\viewedit.obj $D\viewprev.obj $D\viewcmn.obj
|
|
|
|
!if "$(MACOS)" != "1"
|
|
DOCVIEW=$(DOCVIEW) $D\docmapi.obj
|
|
!endif
|
|
|
|
APPLICATION=\
|
|
$D\thrdcore.obj $D\appcore.obj $D\appinit.obj $D\appterm.obj \
|
|
$D\appui.obj $D\appui2.obj $D\appui3.obj $D\appgray.obj $D\appdlg.obj \
|
|
$D\app3d.obj $D\appprnt.obj $D\apphelp.obj $D\apphelpx.obj \
|
|
$D\filelist.obj
|
|
|
|
!if "$(DLL)" != "2"
|
|
APPLICATION=$(APPLICATION) $D\app3ds.obj \
|
|
$D\nolib.obj $D\appmodul.obj $D\dllmodul.obj $D\oleexp.obj
|
|
!endif
|
|
|
|
DB=\
|
|
$D\dbcore.obj $D\dbrfx.obj $D\dbview.obj $D\dbflt.obj \
|
|
$D\dblong.obj
|
|
|
|
!if "$(MACOS)" != "1"
|
|
DB=\
|
|
$(DB) $D\daocore.obj $D\daodfx.obj $D\daoview.obj
|
|
!endif
|
|
|
|
SOCKETS=$D\sockcore.obj
|
|
|
|
OLEREQ=$D\olelock.obj
|
|
|
|
OLE=\
|
|
$D\oleinit.obj $D\olebar.obj $D\olecli1.obj $D\olecli2.obj \
|
|
$D\olecli3.obj $D\oledobj1.obj $D\oledobj2.obj \
|
|
$D\oledisp1.obj $D\oledisp2.obj $D\oledlgs1.obj $D\oledlgs2.obj \
|
|
$D\oledlgs3.obj $D\oledata.obj \
|
|
$D\oledoc1.obj $D\oledoc2.obj $D\oledrop1.obj $D\oledrop2.obj \
|
|
$D\olemsgf.obj $D\oleenum.obj $D\olefact.obj $D\oleipfrm.obj \
|
|
$D\olelink.obj $D\olemisc.obj $D\olestrm.obj $D\olesvr1.obj \
|
|
$D\olesvr2.obj $D\olereg.obj $D\oletsvr.obj $D\oleui1.obj \
|
|
$D\oleui2.obj $D\oleunk.obj $D\oleverb.obj $D\olecall.obj \
|
|
$D\olevar.obj $D\viewrich.obj $D\oledll.obj $D\oletyplb.obj
|
|
|
|
# OLE control containment and remore automation are not yet supported
|
|
# on Macintosh
|
|
!if "$(MACOS)" != "1"
|
|
OLE=$(OLE)\
|
|
$D\occmgr.obj $D\occevent.obj $D\occcont.obj $D\occsite.obj \
|
|
$D\occlock.obj $D\occddx.obj $D\occddxf.obj $D\occdlg.obj
|
|
!endif
|
|
|
|
OLECTL=\
|
|
$D\ctlcache.obj $D\ctlcore.obj $D\ctlconn.obj \
|
|
$D\ctldata.obj $D\ctlevent.obj $D\ctlmodul.obj \
|
|
$D\ctlframe.obj $D\ctlfont.obj $D\ctlinplc.obj \
|
|
$D\ctllic.obj $D\oleconn.obj $D\ctlobj.obj $D\ctlpict.obj \
|
|
$D\ctlpropx.obj $D\ctlppg.obj $D\ctlprop.obj \
|
|
$D\ctlpset.obj $D\ctlpstg.obj $D\ctlpstm.obj \
|
|
$D\ctlrefl.obj $D\ctlreg.obj $D\ctltrack.obj \
|
|
$D\ctlview.obj $D\olepset.obj $D\ctlpbag.obj \
|
|
$D\olepro32.obj \
|
|
$D\ppgcolor.obj $D\ppgfont.obj $D\ppgpict.obj \
|
|
$D\ppgstock.obj
|
|
|
|
!if "$(DEBUG)" == "1"
|
|
OLECTL=$(OLECTL) $D\ctlinl.obj
|
|
!endif
|
|
|
|
# Sockets and DAO are not yet supported on Macintosh
|
|
!if "$(MACOS)" == "1"
|
|
DAO=
|
|
SOCKETS=
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "ALPHA"
|
|
!if "$(DEBUG)" == "1"
|
|
OLEASM=.\alpha\olecalld.obj
|
|
!else
|
|
OLEASM=.\alpha\olecalln.obj
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "PPC"
|
|
!if "$(DEBUG)" == "1"
|
|
OLEASM=.\ppc\olecalld.obj
|
|
!else
|
|
OLEASM=.\ppc\olecalln.obj
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "MPPC"
|
|
OLEASM=.\mppc\olecall_.obj
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "M68K"
|
|
OLEASM=.\m68k\olecall_.obj
|
|
!endif
|
|
|
|
!if "$(PLATFORM)" == "MPPC"
|
|
OLEDLL=$(OLE) $(OLEASM)
|
|
!else
|
|
OLEDLL=$(OLE) $(OLECTL) $(OLEASM)
|
|
!endif
|
|
|
|
!if "$(DEBUG)" == "1"
|
|
INLINES = $D\afxinl1.obj $D\afxinl2.obj $D\afxinl3.obj
|
|
!else
|
|
INLINES =
|
|
!endif
|
|
|
|
CPP_OBJS=$(OBJECT) $(OBJDIAG) $(INLINES) $(FILES) $(COLL1) $(COLL2) $(MISC) \
|
|
$(WINDOWS) $(DIALOG) $(WINMISC) $(DOCVIEW) $(APPLICATION) \
|
|
$(SOCKETS) $(OLEREQ) $(OLE) $(DAO) $(DB)
|
|
|
|
!if "$(BROWSEONLY)" == "1" && "$(DLL)" == "2"
|
|
CPP_OBJS=$(CPP_OBJS) $(OLECTL)
|
|
TARGDEFS=$(TARGDEFS) /D_AFX_CORE_IMPL /D_AFX_OLE_IMPL /D_AFX_DB_IMPL /D_AFX_NET_IMPL
|
|
!endif
|
|
|
|
OBJS=$(CPP_OBJS) $(OLEASM)
|
|
|
|
|
|
#############################################################################
|
|
# Standard tools
|
|
|
|
#############################################################################
|
|
# Set CPPFLAGS for use with .cpp.obj and .c.obj rules
|
|
# Define rule for use with OBJ directory
|
|
# C++ uses a PCH file
|
|
|
|
CPPFLAGS=$(CPPFLAGS) $(CL_MODEL) $(CL_OPT) $(PDBOPTS) $(DEFS) $(OPT)
|
|
|
|
!ifndef NO_PCH
|
|
!ifndef PCH_FILE
|
|
PCH_FILE=$D\stdafx
|
|
!if "$(BROWSE)" != "0"
|
|
PCH_FILE=$(PCH_FILE)b
|
|
!endif
|
|
PCH_FILE=$(PCH_FILE).pch
|
|
!endif
|
|
!ifndef PCH_CPP
|
|
PCH_CPP=objcore
|
|
!endif
|
|
|
|
CPPFLAGS=$(CPPFLAGS) /Yustdafx.h /Fp$(PCH_FILE)
|
|
!else
|
|
PCH_FILE=
|
|
!endif
|
|
|
|
.SUFFIXES: .cpp
|
|
|
|
.cpp{$D}.obj:
|
|
cl @<<
|
|
$(CPPFLAGS) /c $<
|
|
<<
|
|
!if "$(BROWSE)" != "0"
|
|
copy /b $*.sbr+pchmark.bin $*.sbr >NUL
|
|
!endif
|
|
|
|
.cpp{$D}.sbr:
|
|
cl @<<
|
|
$(CPPFLAGS) /c $<
|
|
<<
|
|
copy /b $*.sbr+pchmark.bin $*.sbr >NUL
|
|
|
|
#############################################################################
|
|
# Goals to build
|
|
|
|
GOALS=create.dir
|
|
!if "$(BROWSEONLY)" == "0"
|
|
GOALS=$(GOALS) ..\lib\$(GOAL).lib
|
|
!endif
|
|
!if "$(BROWSE)" != "0"
|
|
GOALS=$(GOALS) $(GOAL).bsc
|
|
!endif
|
|
|
|
goal: $(GOALS)
|
|
|
|
create.dir:
|
|
@-if not exist $D\*.* mkdir $D
|
|
|
|
clean:
|
|
-if exist $D\*.obj erase $D\*.obj
|
|
-if exist $D\*.pch erase $D\*.pch
|
|
-if exist $D\*.res erase $D\*.res
|
|
-if exist $D\*.rsc erase $D\*.rsc
|
|
-if exist $D\*.map erase $D\*.map
|
|
-if exist $D\*.* rmdir $D
|
|
-if exist ..\lib\$(GOAL).pdb del ..\lib\$(GOAL).pdb
|
|
-if exist ..\lib\$(GOAL).idb del ..\lib\$(GOAL).idb
|
|
-if exist ..\lib\$(GOAL).rep del ..\lib\$(GOAL).rep
|
|
-if exist $(GOAL).pdb del $(GOAL).pdb
|
|
-if exist $(GOAL).idb del $(GOAL).idb
|
|
-if exist $(GOAL).rep del $(GOAL).rep
|
|
|
|
#############################################################################
|
|
# Precompiled header file
|
|
|
|
!ifndef NO_PCH
|
|
|
|
!if "$(DEBUG)" == "1"
|
|
HDRS =..\include\*.h
|
|
!else
|
|
HDRS =..\include\*.h ..\include\*.inl
|
|
!endif
|
|
|
|
PCH_TARGETS=$(PCH_FILE) $D\$(PCH_CPP).obj
|
|
!if "$(BROWSEONLY)" != "0"
|
|
PCH_TARGETS=$(PCH_TARGETS) $D\$(PCH_CPP).sbr
|
|
!endif
|
|
|
|
$(PCH_TARGETS): $(PCH_CPP).cpp $(HDRS)
|
|
cl @<<
|
|
/Ycstdafx.h /Fp$(PCH_FILE) $(CL_MODEL) $(CL_OPT) $(PDBOPTS) $(DEFS) $(OPT) /c $(PCH_CPP).cpp
|
|
<<
|
|
!if "$(BROWSE)" != "0"
|
|
copy /b $D\$(PCH_CPP).sbr+pchmark.bin $D\$(PCH_CPP).sbr>NUL
|
|
!endif
|
|
|
|
!if "$(BROWSEONLY)" == "1"
|
|
$D\$(PCH_CPP).sbr: $(PCH_CPP).cpp $(PCH_FILE)
|
|
!endif
|
|
|
|
!endif # NO_PCH
|
|
|
|
#############################################################################
|
|
## PLATFORM=ALPHA specific target(s)
|
|
|
|
!if "$(PLATFORM)" == "ALPHA"
|
|
|
|
!if "$(DEBUG)" == "1"
|
|
ASMOPT=$(ASMOPT) /D_DEBUG /g2
|
|
!else
|
|
ASMOPT=$(ASMOPT)
|
|
!endif
|
|
|
|
$(OLEASM) : alpha\olecall_.s
|
|
asaxp $(ASMOPT) -o $@ alpha\olecall_.s
|
|
|
|
!endif
|
|
|
|
#############################################################################
|
|
## PLATFORM=PPC specific target(s)
|
|
|
|
!if "$(PLATFORM)" == "PPC"
|
|
|
|
!if "$(DEBUG)" == "1"
|
|
ASMOPT=$(ASMOPT)
|
|
!else
|
|
ASMOPT=$(ASMOPT)
|
|
!endif
|
|
|
|
$(OLEASM) : ppc\olecall_.s
|
|
pas $(ASMOPT) -o $@ ppc\olecall_.s
|
|
|
|
!endif
|
|
|
|
#############################################################################
|
|
## PLATFORM=M68K specific target(s)
|
|
|
|
!if "$(PLATFORM)" == "M68K"
|
|
|
|
$(OLEASM) : m68k\olecall_.s
|
|
asm68 -S -T -n AFX_DEF -c -o $@ m68k\olecall_.s
|
|
|
|
!endif
|
|
|
|
#############################################################################
|
|
## PLATFORM=MPPC specific target(s)
|
|
|
|
!if "$(PLATFORM)" == "MPPC"
|
|
|
|
$(OLEASM) : mppc\olecall_.s
|
|
asmppc -Fo $@ mppc\olecall_.s
|
|
|
|
!endif
|
|
|
|
#############################################################################
|
|
# Build the library from the up-to-date objs
|
|
|
|
SBRS=$(CPP_OBJS:.obj=.sbr)
|
|
|
|
!if "$(BROWSEONLY)" != "0"
|
|
|
|
# Build final browse database
|
|
$(GOAL).bsc: $(PCH_TARGETS) $(SBRS)
|
|
bscmake /n /Iu /El /o$@ @<<
|
|
$(SBRS)
|
|
<<
|
|
|
|
!else #BROWSEONLY
|
|
|
|
!if "$(DLL)" != "2"
|
|
# Build final library
|
|
..\lib\$(GOAL).lib: $(PCH_TARGETS) $(OBJS)
|
|
@-if exist $@ erase $@
|
|
@lib /out:$@ @<<
|
|
$(OBJS)
|
|
<<
|
|
|
|
# Recurse to build browse database
|
|
$(GOAL).bsc: $(PCH_TARGETS) $(SBRS)
|
|
$(MAKE) /f makefile. @<<
|
|
BROWSEONLY=1 PLATFORM=$(PLATFORM) DEBUG=$(DEBUG) CODEVIEW=$(CODEVIEW) \
|
|
DLL=$(DLL) NO_PCH=$(NO_PCH) OBJ=$(OBJ) OPT=$(OPT)
|
|
<<
|
|
!endif #DLL!=2
|
|
|
|
!endif #!BROWSEONLY
|
|
|
|
#############################################################################
|