123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649 |
- #############################################################################
- #
- # Common makefile definitions
- #
- #############################################################################
- !IFNDEF SRCROOT
- SRCROOT=$(MAINTARGROOT)
- !ENDIF
- !IFNDEF DESTROOT
- DESTROOT=$(SRCROOT)
- !ENDIF
- !IFNDEF PROJCLEAN
- PROJCLEAN=DefaultClean
- !ENDIF
- FEDSRC=$(FEDROOT)\src
- FEDEXT=$(FEDROOT)\extern
- SRCDIR=$(FEDSRC)\$(SRCROOT)
- DESTDIR=$(FEDROOT)\Objs\$(FLAVOR)\$(DESTROOT)
- !IFNDEF PCHINCLOCAL
- PCHINCLOCAL=$(SRCDIR)\*.h
- !ENDIF
- # Use DX6 by default, or define DX5, DX6, or DX7 to use dx5, dx6, or dx7
- !IFDEF DX5
- DXROOT=$(FEDEXT)\dx
- !ELSE
- !IFDEF DX6
- DXROOT=$(FEDEXT)\dx6
- !ELSE
- !IFDEF DX7
- DXROOT=$(FEDEXT)\dx7
- !ELSE
- # default to DX7
- DXROOT=$(FEDEXT)\dx7
- !ENDIF
- !ENDIF
- !ENDIF
- MAINTARG=$(MAINTARGROOT).$(MAINTARGEXT)
- MAINTARGFULLPATH=$(DESTDIR)\$(MAINTARG)
- #todo: use an env var to specify prefix installation location
- !if defined(prefix)
- CC=c:\prefix\bin\prefix.exe
- !else
- CC=cl
- !endif
- LINK=link
- BSCMAKE=bscmake
- LIB=lib
- MIDL=midl
- MSDEV=msdev
- REMDIR=$(FEDSRC)\tools\bin32\delnode -q
- MKDEP=$(FEDSRC)\tools\bin32\mkdep
- REGSVR=regsvr32 /s /c
- SPLITSYMBOLSTOOL=$(FEDSRC)\tools\build\SplitSymbols
- #############################################################################
- # MIDL Build Rule Arguments
- !IFNDEF MIDLINCLOCAL
- MIDLINCLOCAL=
- !ENDIF
- MIDLINC =/I $(FEDEXT)\vc\inc
- MIDLARGS=$(MIDLINC) $(MIDLINCLOCAL) \
- /win32 \
- /Oicf /no_def_idir /out $(DESTDIR) \
- /h $(*B).h \
- /tlb $(*B).tlb \
- /dlldata $(*B)_d.c \
- /iid $(*B)_i.c \
- /proxy $(*B)_p.c
- #############################################################################
- # Registration username/password
- !if defined(user)
- REGUSER=$(user)
- REGPW=$(pw)
- !else
- REGUSER=Interactive User
- REGPW=
- !endif
- #############################################################################
- # Registration commands
- REGEXE=if exist $(MAINTARGFULLPATH) $(MAINTARGFULLPATH) -RegServer "$(REGUSER)" $(REGPW)
- UNREGEXE=if exist $(MAINTARGFULLPATH) $(MAINTARGFULLPATH) -UnregServer
- REGDLL=if exist $(MAINTARGFULLPATH) $(REGSVR) $(MAINTARGFULLPATH)
- UNREGDLL=if exist $(MAINTARGFULLPATH) $(REGSVR) /u $(MAINTARGFULLPATH)
- #############################################################################
- # What registry key to use
- !if defined (ALLEGIANCE_DEV)
- COMPILE_DEV_REGKEY=/D_ALLEGIANCE_DEV_
- !else
- COMPILE_DEV_REGKEY=
- !endif
- #############################################################################
- #
- # Path
- #
- #############################################################################
- !include "path.mak"
- #############################################################################
- #
- # Version info
- #
- #############################################################################
- !IFDEF VER
- RARGSVERSION= /d VER=$(VER)
- !ELSE
- RARGSVERSION=
- !ENDIF
- #############################################################################
- #
- # Static Retail build
- #
- #############################################################################
- # /O1 == /Og /Os /Oy /Ob1 /Gs /Gf /Gy
- # /O2 == /Og /Ot /Oy /Ob1 /Gs /Gf /Gy /Oi
- #
- # /Og global optimization
- # /Os small code sequences
- # /Ot fast code sequences
- # /Oy frame pointer omission
- # /Ob1 inline
- # /Ob2 automatic inline
- # /Gs stack probes
- # /Gf string pooling
- # /Gy function level linking
- #
- # /Oi inline intrisics
- # /Oa assume no aliasing
- # /Ow assume aliasing across function calls
- # /Gr _fastcall
- # /G5 Pentium
- # /G6 Pentium Pro
- OPTIMIZATION_FLAGS=/Og /Os /Oy /Ob1 /Gs /Gf /Gy
- #OPTIMIZATION_FLAGS=/O1
- #############################################################################
- #
- # Static Retail build
- #
- #############################################################################
- !IFDEF sretail
- FLAVOR=SRetail
- STATICFLAVOR=SRetail
- CARGSFLAVOR= $(COMPILE_DEV_REGKEY) /D "NDEBUG" /D "OPTIMIZED" /MT $(OPTIMIZATION_FLAGS) /GR-
- RARGSFLAVOR= /d "NDEBUG" /D "OPTIMIZED" $(RARGSVERSION)
- LIBSFLAVOR=libcmt.lib libcpmt.lib libcimt.lib
- MFCLIBSFLAVOR=nafxcw.lib ctl3d32s.lib comctl32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /RELEASE /nodefaultlib /OPT:REF /OPT:ICF,4
- !ELSEIFDEF stest
- #############################################################################
- #
- # Static Test build
- #
- #############################################################################
- FLAVOR=STest
- STATICFLAVOR=STest
- CARGSFLAVOR= $(COMPILE_DEV_REGKEY) /D "_DEBUG" /D "DEBUG" /D "OPTIMIZED" /MT $(OPTIMIZATION_FLAGS) /GR
- RARGSFLAVOR= /d "_DEBUG" /d "DEBUG" /D "OPTIMIZED" $(RARGSVERSION)
- LIBSFLAVOR=libcmtd.lib libcpmtd.lib libcimtd.lib
- MFCLIBSFLAVOR=nafxcwd.lib ctl3d32s.lib comctl32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /nodefaultlib /OPT:REF /OPT:ICF,4
- !ELSEIFDEF sdebug
- #############################################################################
- #
- # Static Debug build
- #
- #############################################################################
- FLAVOR=SDebug
- STATICFLAVOR=SDebug
- CARGSFLAVOR = $(COMPILE_DEV_REGKEY) /D "_DEBUG" /D "DEBUG" /MTd /Od /GR /GZ
- RARGSFLAVOR= /d "_DEBUG" /d "DEBUG" $(RARGSVERSION)
- LIBSFLAVOR=libcmtd.lib libcpmtd.lib libcimtd.lib
- MFCLIBSFLAVOR=nafxcwd.lib ctl3d32s.lib comctl32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /nodefaultlib
- !ELSEIFDEF retail
- #############################################################################
- #
- # Retail build
- #
- #############################################################################
- FLAVOR=Retail
- CARGSFLAVOR= $(COMPILE_DEV_REGKEY) /D "NDEBUG" /D "OPTIMIZED" /D"_AFXDLL" /MD $(OPTIMIZATION_FLAGS) /GR-
- RARGSFLAVOR= /d "NDEBUG" /D "OPTIMIZED" /D"_AFXDLL" $(RARGSVERSION)
- LIBSFLAVOR=msvcrt.lib msvcprt.lib
- MFCLIBSFLAVOR=mfc42.lib mfcs42.lib ctl3d32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /RELEASE /nodefaultlib /fixed:no /OPT:REF /OPT:ICF,4
- !ELSEIFDEF test
- #############################################################################
- #
- # Test build
- #
- #############################################################################
- FLAVOR=Test
- CARGSFLAVOR= $(COMPILE_DEV_REGKEY) /D "_DEBUG" /D "DEBUG" /D "OPTIMIZED" /D"_AFXDLL" /MD $(OPTIMIZATION_FLAGS) /GR
- RARGSFLAVOR= /d "_DEBUG" /d "DEBUG" /D "OPTIMIZED" /D"_AFXDLL" $(RARGSVERSION)
- LIBSFLAVOR=msvcrtd.lib msvcprtd.lib
- MFCLIBSFLAVOR=mfc42d.lib mfcs42d.lib mfco42d.lib ctl3d32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /nodefaultlib /OPT:REF /OPT:ICF,4
- !ELSEIFDEF training
- #############################################################################
- #
- # Debug Training build
- #
- #############################################################################
- FLAVOR=Debug
- CARGSFLAVOR = $(COMPILE_DEV_REGKEY) /D "_DEBUG_TRAINING" /D "_DEBUG" /D "DEBUG" /D"_AFXDLL" /MDd /Od /GR /GZ
- RARGSFLAVOR= /d "_DEBUG" /d "DEBUG" /D"_AFXDLL" $(RARGSVERSION)
- LIBSFLAVOR=msvcrtd.lib msvcprtd.lib
- MFCLIBSFLAVOR=mfc42d.lib mfcs42d.lib mfco42d.lib ctl3d32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /nodefaultlib
- !ELSEIFDEF icap
- #############################################################################
- #
- # IceCap build
- #
- # This only works for the standard retail build.
- #
- #############################################################################
- FLAVOR=ICap
- RARGSFLAVOR= /d "_DEBUG" /d "DEBUG" /D "OPTIMIZED" /D"_AFXDLL" $(RARGSVERSION)
- MFCLIBSFLAVOR=mfc42.lib mfcs42.lib ctl3d32.lib
- NOMAP=1
- icepick=1
- !ifdef icepick
- CARGSFLAVOR= $(COMPILE_DEV_REGKEY) /D "ICAP" /D "NDEBUG" /D "OPTIMIZED" /D"_AFXDLL" /ML $(OPTIMIZATION_FLAGS) /GR- /Zi
- LARGSFLAVOR= /INCREMENTAL:NO /RELEASE /nodefaultlib /fixed:no /dbgimplib /debug /debugtype:cv,fixup /opt:ref
- LIBSFLAVOR=libc.lib libcp.lib icecap.lib
- !else
- CARGSFLAVOR= $(COMPILE_DEV_REGKEY) /D "NDEBUG" /D "OPTIMIZED" /D"_AFXDLL" /ML /GR- /Zi /Osyb1 /Gs /Gf /Gy /fastcap
- LARGSFLAVOR= /INCREMENTAL:NO /RELEASE /nodefaultlib /fixed:no /debug /debugtype:cv
- LIBSFLAVOR=libc.lib libcp.lib icecap.lib
- !endif
- !ELSEIFDEF prefix
- #############################################################################
- #
- # prefix build
- #
- # This only works for the standard retail build.
- #
- #############################################################################
- FLAVOR=prefix
- CARGSFLAVOR= $(COMPILE_DEV_REGKEY) /D "NDEBUG" /D "OPTIMIZED" /D"_AFXDLL" /MD $(OPTIMIZATION_FLAGS) /GR-
- RARGSFLAVOR= /d "NDEBUG" /D "OPTIMIZED" /D"_AFXDLL" $(RARGSVERSION)
- LIBSFLAVOR=msvcrt.lib msvcprt.lib
- MFCLIBSFLAVOR=mfc42.lib mfcs42.lib ctl3d32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /RELEASE /nodefaultlib /fixed:no
- !ELSE
- #############################################################################
- #
- # Debug build
- #
- #############################################################################
- FLAVOR=Debug
- CARGSFLAVOR = $(COMPILE_DEV_REGKEY) /D "_DEBUG" /D "DEBUG" /D"_AFXDLL" /MDd /Od /GR /GZ
- RARGSFLAVOR= /d "_DEBUG" /d "DEBUG" /D"_AFXDLL" $(RARGSVERSION)
- LIBSFLAVOR=msvcrtd.lib msvcprtd.lib
- MFCLIBSFLAVOR=mfc42d.lib mfcs42d.lib mfco42d.lib ctl3d32.lib
- LARGSFLAVOR=/debug /debugtype:map,cv /INCREMENTAL:NO /nodefaultlib
- !ENDIF
- #############################################################################
- #
- # BoundsChecker build
- #
- #############################################################################
- !ifdef BCHK
- !ifndef BCBINDIR
- !error For BC build, specify location of nmcl.exe in BCBINDIR variable!
- !endif
- !ifdef STATICFLAVOR
- !IFDEF sretail
- FLAVOR = SBChecker
- !else
- FLAVOR = SBCheckerD
- !endif
- !else
- !IFDEF retail
- FLAVOR = BChecker
- !else
- FLAVOR = BCheckerD
- !endif
- !endif
- CC = "$(BCBINDIR)\nmcl.exe" $(BCOPTS)
- LINK = "$(BCBINDIR)\nmlink.exe"
- !endif
- #############################################################################
- #
- # Numega TrueTime build
- #
- #############################################################################
- !ifdef TRUETIME
- !ifndef TTBINDIR
- !error For TT build, specify location of nmcl.exe in TTBINDIR variable!
- !endif
- !ifdef STATICFLAVOR
- !IFDEF sretail
- FLAVOR = STrueTime
- !else
- FLAVOR = STrueTimeD
- !endif
- !else
- !IFDEF retail
- FLAVOR = TrueTime
- !else
- FLAVOR = TrueTimeD
- !endif
- !endif
- CC = "$(TTBINDIR)\nmcl.exe" /NMttOn $(TTOPTS)
- LINK = "$(TTBINDIR)\nmlink.exe" /NMttOn
- !endif
- !if defined(VERBOSE)
- NOLOGO=
- !else
- CC=@$(CC)
- LINK=@$(LINK)
- LIB=@$(LIB)
- MIDL=@$(MIDL)
- BSCMAKE=@$(BSCMAKE)
- MSDEV=@$(MSDEV)
- REMDIR=@$(REMDIR)
- MKDEP=@$(MKDEP)
- NOLOGO=/nologo
- REGEXE=@$(REGEXE)
- UNREGEXE=@$(UNREGEXE)
- REGDLL=@$(REGDLL)
- UNREGDLL=@$(UNREGDLL)
- !endif
- #############################################################################
- #
- # DreamCast build
- #
- #############################################################################
- !ifdef DREAMCAST
- !IFDEF retail
- FLAVOR=DreamCast
- !else
- FLAVOR=DreamCastD
- !endif
- CESubsystem=windowsce,2.10
- CEVersion=210
- CEConfigName=Maxall (WWE) 2.10
- CECrt=C
- CECrtDebug=C
- CECrtMT=C
- CECrtMTDebug=C
- CEx86NoDefaultLib=libc.lib /nodefaultlib:libcd.lib /nodefaultlib:libcmt.lib\
- /nodefaultlib:libcmtd.lib /nodefaultlib:msvcrt.lib /nodefaultlib:msvcrtd.lib
- CEx86Corelibc=corelibc.lib
- CARGSFLAVOR=/nologo /Qsh4 /MC /W3 /Zi /Oi /Qs /Qfast /c\
- /D "UNICODE" /D "STRICT"\
- /D "SHx" /D "SH4" /D "_SH4_"\
- /D "DRAGON" /D "DREAMCAST"\
- /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D UNDER_CE=$(CEVersion)\
- /I $(FEDSRC)\dreamcast\
- /Fo$(DESTDIR)\ /Fd$(PDB)
- !IFDEF retail
- CARGSFLAVOR= $(CARGSFLAVOR) /O2 /D "NDEBUG"
- !else
- CARGSFLAVOR= $(CARGSFLAVOR) /Od /D "_DEBUG" /D "DEBUG"
- !endif
- LIBSFLAVOR=
- CC=shcl
- LIB=link.exe -lib
- !endif
- #############################################################################
- #
- # Win95
- #
- #############################################################################
- !IFDEF WIN95
- CARGSFLAVOR= $(CARGSFLAVOR) /D"WIN95"
- !ENDIF
- #############################################################################
- #
- # BSC options
- #
- #############################################################################
- BSC=$(DESTDIR)\$(MAINTARGROOT).bsc
- !IFDEF retail
- # don't build browse info for retail builds
- BSCARG=
- BSCTARG=
- !else
- !IFNDEF NOBSC
- BSCARG=/Fr$* /Zn
- BSCTARG=$(BSC)
- !ELSE
- BSCARG=
- BSCTARG=
- !ENDIF
- !endif
- #############################################################################
- #
- # Compiler options
- #
- #############################################################################
- PDB=$(DESTDIR)\$(MAINTARGROOT).pdb
- !ifdef DREAMCAST
- CARGSINC= $(CARGSFLAVOR)
- !else
- CARGSINC= $(CARGSFLAVOR) \
- $(BSCARG) \
- $(NOLOGO) /W3 /WX /Zi /c \
- /Gi- /Gm- /GX- \
- /D "WIN32" /D "_WINDOWS" /D "STRICT" \
- /Fo$(DESTDIR)\ /FD /Fd$(PDB)
- !endif
- CARGS=$(CARGSLOCAL) $(CARGSINC)
- !ifdef USERNAME
- !if "$(USERNAME)"=="a-markcu"
- USERNAME=markcu
- !endif
- CARGS=/D "$(USERNAME)" $(CARGS)
- !endif
- !ifdef DREAMCAST
- INCLUDESYS=$(FEDEXT)\dreamcast\inc
- INCLUDEINC=$(FEDEXT)\dreamcast\inc;$(FEDSRC)\Inc;
- INCLUDE=$(INCLUDELOCAL);$(INCLUDEINC);
- !else
- INCLUDESYS=$(DXROOT)\include;$(FEDEXT)\vc\inc;$(FEDEXT)\vc\inc\sys;$(FEDEXT)\vc\atl\inc;
- INCLUDEINC=$(DXROOT)\include;$(FEDSRC)\Inc;$(FEDEXT)\vc\inc;$(FEDEXT)\vc\inc\sys;$(FEDEXT)\vc\atl\inc;$(FEDEXT)\icecap\include;$(FEDEXT)\Zone;$(FEDSRC)\Zone;$(FEDEXT)\icqapi;$(FEDSRC)\Guids
- INCLUDE=$(INCLUDELOCAL);$(INCLUDEINC);
- !endif
- #############################################################################
- #
- # Resources
- #
- #############################################################################
- !if defined(VERBOSE)
- RC=RC
- !else
- RC=@RC
- !endif
- LANG=Usa
- #############################################################################
- #
- # Message Files
- #
- #############################################################################
- !if defined(VERBOSE)
- MC=MC
- !else
- MC=@MC
- !endif
- #############################################################################
- #
- # Link
- #
- #############################################################################
- LIBARGS= $(NOLOGO) /out:$(MAINTARGFULLPATH)
- !if defined(VERBOSE)
- MAPSYM=MAPSYM
- !else
- MAPSYM=@MAPSYM -nologo
- !endif
- #############################################################################
- #
- # Targets
- #
- #############################################################################
- !MESSAGE -----------------------------------------------------------------------------
- !MESSAGE Building $(MAINTARG), Flavor: $(FLAVOR), Language: $(LANG)
- First: $(DESTDIR) $(IDLTARGS) $(MAINTARGFULLPATH)
- Shell:
- $(OSCMDSHELL)
- DefaultClean: $(DESTDIR)
- del $(DESTDIR)\*.h <$(FEDSRC)\tools\yes.txt
- del $(DESTDIR)\*.c <$(FEDSRC)\tools\yes.txt
- del $(DESTDIR)\*.obj <$(FEDSRC)\tools\yes.txt
- del $(DESTDIR)\*.sbr <$(FEDSRC)\tools\yes.txt
- del $(DESTDIR)\*.pch <$(FEDSRC)\tools\yes.txt
- del $(DESTDIR)\*.pdb <$(FEDSRC)\tools\yes.txt
- del $(DESTDIR)\*.res <$(FEDSRC)\tools\yes.txt
- Clean: $(PROJCLEAN)
- Full: Clean $(MAINTARGFULLPATH)
- $(DESTDIR):
- -if not exist $(FEDROOT)\Objs md $(FEDROOT)\Objs
- -if not exist $(FEDROOT)\Objs\$(FLAVOR) md $(FEDROOT)\Objs\$(FLAVOR)
- -if not exist $(DESTDIR) md $(DESTDIR)
- #############################################################################
- #
- # Precompiled headers
- #
- #############################################################################
- !ifdef PCHROOT
- PCHFILE=$(DESTDIR)\$(PCHROOT).pch
- PCHHEADER=$(PCHROOT).h
- !if defined(prefix)
- CARGSPCH=
- !else
- CARGSPCH=/Yu$(PCHHEADER) /Fp$(PCHFILE)
- !endif
- $(PCHFILE): $(PCHINCLOCAL) $(PCHINC)
- $(CC) $(CARGS) /Yc$(PCHHEADER) /Fp$(PCHFILE) $(SRCDIR)\$(@B).cpp
- !else
- CARGSPCH=
- !endif
- !ifdef MSGFILE
- MSGRCFILE=$(DESTDIR)\$(MSGFILE).rc
- $(MSGFILE): $(MSGRCFILE)
- $(MSGRCFILE): $(SRCDIR)\$(MSGFILE).msg
- !if defined(VERBOSE)
- $(MC) $(SRCDIR)\$(@B).msg -r $(DESTDIR) -h $(DESTDIR) 2>&1 | $(SED) -n -e "/Redefining value of English/!p"
- !else
- $(MC) $(SRCDIR)\$(@B).msg -r $(DESTDIR) -h $(DESTDIR)
- !endif
- # $(MC) $(SRCDIR)\$(@B).msg
- !endif
- .cpp{$(DESTDIR)}.obj:
- $(CC) $(CARGS) $(CARGSPCH) $(SRCDIR)\$(@B).cpp
- #.c{$(DESTDIR)}.obj:
- # $(CC) $(CARGS) $(SRCDIR)\$(@B).c
- #############################################################################
- #
- # Automatic Dependency Generation
- #
- !ifndef NODEPENDENCIES
- !include "makedep.inc"
- !endif
|