227 lines
7.0 KiB
Makefile
227 lines
7.0 KiB
Makefile
#############################################################################
|
|
#
|
|
# 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
|