| ############################################################################# |
| # |
| # SciTech Multi-platform Graphics Library |
| # |
| # ======================================================================== |
| # |
| # The contents of this file are subject to the SciTech MGL Public |
| # License Version 1.0 (the "License"); you may not use this file |
| # except in compliance with the License. You may obtain a copy of |
| # the License at http://www.scitechsoft.com/mgl-license.txt |
| # |
| # Software distributed under the License is distributed on an |
| # "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
| # implied. See the License for the specific language governing |
| # rights and limitations under the License. |
| # |
| # The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc. |
| # |
| # The Initial Developer of the Original Code is SciTech Software, Inc. |
| # All Rights Reserved. |
| # |
| # ======================================================================== |
| # |
| # Descripton: Generic DMAKE startup makefile definitions file. Assumes |
| # that the SCITECH environment variable has been set to point |
| # to where all our stuff is installed. You should not need |
| # to change anything in this file. |
| # |
| # Microsoft Visual C++ 2.x 32 bit version. Supports Phar Lap |
| # TNT DOS Extender and 32 bit Windows development. |
| # |
| ############################################################################# |
| |
| # Include standard startup script definitions |
| .IMPORT: SCITECH |
| .INCLUDE: "$(SCITECH)\makedefs\startup.mk" |
| |
| # Import enivornment variables that we use |
| .IMPORT .IGNORE : TNT_PATH VC_LIBBASE DOSSTYLE USE_TNT USE_RTTARGET MSVCDIR |
| .IMPORT .IGNORE : USE_VXD USE_NTDRV USE_W2KDRV NT_DDKROOT USE_RTTI USE_CPPEXCEPT |
| |
| # We are compiling for a 32 bit envionment |
| _32BIT_ := 1 |
| |
| # Default commands for compiling, assembling linking and archiving |
| CC := cl # C-compiler and flags |
| CFLAGS := |
| .IF $(USE_NASM) |
| AS := nasm |
| ASFLAGS := -t -f win32 -F null -d__FLAT__ -dSTDCALL_MANGLE -iINCLUDE -i$(SCITECH)\INCLUDE |
| .ELSE |
| .IF $(USE_TASM32) |
| AS := tasm32 |
| .ELIF $(USE_TASMX) |
| AS := tasmx # Assembler and flags |
| .ELSE |
| AS := tasm # Assembler and flags |
| .ENDIF |
| ASFLAGS := /t /mx /m /D__FLAT__ /DSTDCALL_MANGLE /iINCLUDE /i$(SCITECH)\INCLUDE |
| .ENDIF |
| LD := cl |
| .IF $(USE_WIN32) |
| LDFLAGS = $(CFLAGS) |
| .IF $(USE_NTDRV) |
| LDENDFLAGS = -link /INCREMENTAL:NO /DRIVER /SUBSYSTEM:NATIVE,4.00 /VERSION:4.00 /MACHINE:I386 /NODEFAULTLIB /DEBUGTYPE:CV /PDB:NONE /ALIGN:0x20 /BASE:0x10000 /ENTRY:DriverEntry@8 |
| #/MERGE:_page=page /MERGE:_text=.text /MERGE:.rdata=.text |
| .ELIF $(WIN32_GUI) |
| LDENDFLAGS = -link /INCREMENTAL:NO /DEF:$(@:b).def /SUBSYSTEM:WINDOWS /MACHINE:I386 /DEBUGTYPE:CV /PDB:NONE |
| .ELSE |
| LDENDFLAGS = -link /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /MACHINE:I386 /DEBUGTYPE:CV /PDB:NONE |
| .ENDIF |
| .ELSE |
| LDFLAGS = $(CFLAGS) |
| LDENDFLAGS := -link -stub:$(TNT_PATH:s/\/\\)\\bin\\gotnt.exe /PDB:NONE |
| .ENDIF |
| RC := rc # Watcom resource compiler |
| RCFLAGS := # Mark as Win32 compatible resources |
| LIB := lib # Librarian |
| LIBFLAGS := |
| ILIB := lib # Import librarian |
| ILIBFLAGS := /MACHINE:IX86 |
| INTEL_X86 := 1 |
| NMSYM := $(SOFTICE_PATH)\nmsym.exe |
| .IF $(USE_NTDRV) |
| NMSYMFLAGS := /TRANSLATE:source,package,always /PROMPT /SOURCE:$(MSVCDIR)\crt\src\intel;$(SCITECH)\src\pm;$(SCITECH)\src\pm\common;$(SCITECH)\src\pm\ntdrv |
| .ELSE |
| NMSYMFLAGS := /TRANSLATE:source,package,always /PROMPT /SOURCE:$(SCITECH)\src\pm;$(SCITECH)\src\pm\common;$(SCITECH)\src\pm\win32 |
| .ENDIF |
| |
| # Set the compiler warning level |
| .IF $(MAX_WARN) |
| CFLAGS += -W3 |
| .ELSE |
| CFLAGS += -W1 |
| .ENDIF |
| |
| # Optionally turn on debugging information |
| .IF $(DBG) |
| CFLAGS += /Yd /Zi # Turn on debugging for C compiler |
| .IF $(USE_TASM) |
| ASFLAGS += /zi # Turn on debugging for assembler |
| .ENDIF |
| .ELSE |
| .IF $(USE_TASM) |
| ASFLAGS += /q # Suppress object records not needed for linking |
| .ENDIF |
| .END |
| |
| # Optionally turn on optimisations |
| .IF $(VC_LIBBASE) == vc5 |
| .IF $(OPT) |
| CFLAGS += /G6 /O2 /Ox /Oi- |
| .ELIF $(OPT_SIZE) |
| CFLAGS += /G6 /O1 |
| .END |
| .ELSE |
| .IF $(OPT) |
| CFLAGS += /G5 /O2 /Ox |
| .ELIF $(OPT_SIZE) |
| CFLAGS += /G5 /O1 |
| .END |
| .ENDIF |
| |
| # Optionally turn on direct i387 FPU instructions |
| |
| .IF $(FPU) |
| CFLAGS += /DFPU387 |
| ASFLAGS += -dFPU387 |
| .END |
| |
| # Optionally compile a beta release version of a product |
| .IF $(BETA) |
| CFLAGS += /DBETA |
| ASFLAGS += -dBETA |
| .END |
| |
| # Use a larger stack during linking if requested, or use a default stack |
| # of 50k. The usual default stack provided by Visual C++ is *way* to small |
| # for real 32 bit code development. |
| |
| .IF $(USE_WIN32) |
| # Not necessary for Win32 code. |
| .ELSE |
| .IF $(STKSIZE) |
| LDENDFLAGS += /STACK:$(STKSIZE) |
| .ELSE |
| LDENDFLAGS += /STACK:51200 |
| .ENDIF |
| .ENDIF |
| |
| # DOS extender dependant flags |
| .IF $(USE_NTDRV) # Build 32 bit Windows NT driver |
| CFLAGS += /LD /Zl /Gy /Gz /GF /D__NT_DRIVER__ /D_X86_=1 /Di386=1 |
| .IF $(DBG) |
| CFLAGS += /QIf |
| .ENDIF |
| ASFLAGS += |
| DEF_LIBS := int64.lib ntoskrnl.lib hal.lib |
| DX_ASFLAGS += -d__NT_DRIVER__ |
| .IF $(USE_W2KDRV) # Build 32 bit Windows 2000 driver |
| LIB_OS = W2KDRV |
| .ELSE |
| LIB_OS = NTDRV |
| .ENDIF |
| .ELIF $(USE_WIN32) # Build 32 bit Windows NT app |
| .IF $(WIN32_GUI) |
| .ELSE |
| CFLAGS += -D__CONSOLE__ |
| .ENDIF |
| .IF $(BUILD_DLL) |
| CFLAGS += /MT /LD /DBUILD_DLL |
| ASFLAGS += -dBUILD_DLL |
| .IF $(NO_RUNTIME) |
| LDENDFLAGS += /NODEFAULTLIB |
| CFLAGS += /Zl |
| DEF_LIBS := |
| .ELSE |
| DEF_LIBS := kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib winmm.lib comdlg32.lib comctl32.lib ole32.lib oleaut32.lib version.lib winspool.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib rpcrt4.lib |
| .ENDIF |
| .ELSE |
| CFLAGS += /MT |
| DEF_LIBS := kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib winmm.lib comdlg32.lib comctl32.lib ole32.lib oleaut32.lib version.lib winspool.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib rpcrt4.lib |
| .ENDIF |
| DX_ASFLAGS += -d__WINDOWS32__ |
| LIB_OS = WIN32 |
| .ELIF $(USE_RTTARGET) |
| CFLAGS += -D__RTTARGET__ |
| DX_CFLAGS += |
| DX_ASFLAGS += -d__RTTARGET__ |
| USE_REALDOS := |
| LIB_OS = RTT32 |
| DEF_LIBS := cw32mt.lib |
| .ELSE |
| USE_TNT := 1 |
| USE_REALDOS := 1 |
| CFLAGS += /MT /D__MSDOS32__ |
| DX_CFLAGS += -DTNT |
| DX_ASFLAGS += -dTNT |
| LIB_OS = DOS32 |
| DEF_LIBS := dosx32.lib tntapi.lib |
| .ENDIF |
| |
| # Define the base directory for library files |
| |
| .IF $(CHECKED) |
| LIB_BASE_DIR := $(SCITECH_LIB)\lib\debug |
| CFLAGS += /DCHECKED=1 |
| .ELSE |
| LIB_BASE_DIR := $(SCITECH_LIB)\lib\release |
| .ENDIF |
| |
| # Define where to install library files |
| LIB_BASE := $(LIB_BASE_DIR)\$(LIB_OS)\$(VC_LIBBASE) |
| LIB_DEST := $(LIB_BASE) |
| |
| # Place to look for PMODE library files |
| |
| .IF $(USE_TNT) |
| PMLIB := $(LIB_BASE:s/\/\\)\\tnt\\pm.lib |
| .ELSE |
| PMLIB := $(LIB_BASE:s/\/\\)\\pm.lib |
| .ENDIF |
| |
| # Define which file contains our rules |
| |
| RULES_MAK := vc32.mk |