354 lines
9.2 KiB
Makefile
354 lines
9.2 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.
|
||
|
#
|
||
|
# Watcom C++ 10.x 32 bit version. Supports Rational's DOS4GW
|
||
|
# DOS Extender, PMODE/W, Causeway, FlashTek's X32-VM,
|
||
|
# Phar Lap's TNT DOS Extender, 32-bit Windows development and
|
||
|
# 32-bit OS/2 development.
|
||
|
#
|
||
|
#############################################################################
|
||
|
|
||
|
# Include standard startup script definitions
|
||
|
.IMPORT: SCITECH
|
||
|
.INCLUDE: "$(SCITECH)\makedefs\startup.mk"
|
||
|
|
||
|
# Import enivornment variables that we use
|
||
|
.IMPORT .IGNORE : USE_TNT USE_X32 USE_X32VM USE_PMODEW STKCALL USE_CAUSEWAY
|
||
|
.IMPORT .IGNORE : USE_WIN386 USE_OS232 USE_OS2GUI WC_LIBBASE NOOPT DOSSTYLE
|
||
|
.IMPORT .IGNORE : OS2_SHELL USE_CODEVIEW USE_DOS32A USE_QNX4 LEAVE_LINKFILE
|
||
|
|
||
|
# We are compiling for a 32 bit envionment
|
||
|
_32BIT_ := 1
|
||
|
|
||
|
# Setup special environment for QNX 4 (Unix'ish)
|
||
|
.IF $(USE_QNX4)
|
||
|
USE_QNX := 1
|
||
|
L := .a # Libraries
|
||
|
LP := lib # LP - Library file prefix (name of file on disk)
|
||
|
LL := lib # Library link prefix (name of library on link command line)
|
||
|
LE := .a # Library link suffix (extension of library on link command line)
|
||
|
.ENDIF
|
||
|
|
||
|
# Default commands for compiling, assembling linking and archiving
|
||
|
CC := wcc386
|
||
|
CPP := wpp386
|
||
|
CFLAGS := -zq-j-s-fpi87
|
||
|
.IF $(USE_NASM)
|
||
|
AS := nasm
|
||
|
ASFLAGS := -t -f obj -d__FLAT__ -dSTDCALL_MANGLE -iINCLUDE -i$(SCITECH)\INCLUDE
|
||
|
.ELSE
|
||
|
.IF $(USE_TASM32)
|
||
|
AS := tasm32
|
||
|
DLL_TASM := tasm32
|
||
|
.ELIF $(USE_TASMX)
|
||
|
AS := tasmx
|
||
|
DLL_TASM := tasmx
|
||
|
.ELSE
|
||
|
AS := tasm
|
||
|
DLL_TASM := tasm
|
||
|
.ENDIF
|
||
|
ASFLAGS := /t /mx /m /w-res /w-mcp /D__FLAT__ /DSTDCALL_MANGLE /iINCLUDE /i$(SCITECH)\INCLUDE
|
||
|
GAS := gcc
|
||
|
GAS_FLAGS := -D__WATCOMC__ -D__SW_3S -D__SW_S -U__GNUC__ -UDJGPP -U__unix__ -Wall -I. -I$(SCITECH)\include -x assembler-with-cpp
|
||
|
.ENDIF
|
||
|
LD := wlink
|
||
|
LDFLAGS =
|
||
|
.IF $(USE_OS232)
|
||
|
RC := rc
|
||
|
.ELSE
|
||
|
RC := wrc
|
||
|
.ENDIF
|
||
|
.IF $(USE_WIN32)
|
||
|
RCFLAGS := -q /bt=nt
|
||
|
.ELIF $(USE_OS232)
|
||
|
.IF $(USE_OS2GUI)
|
||
|
CFLAGS += -D__OS2_PM__
|
||
|
.ENDIF
|
||
|
.ELSE
|
||
|
RCFLAGS := -q
|
||
|
.ENDIF
|
||
|
LIB := wlib
|
||
|
LIBFLAGS := -q
|
||
|
ILIB := wlib
|
||
|
ILIBFLAGS := -c
|
||
|
INTEL_X86 := 1
|
||
|
|
||
|
# Set the compiler warning level
|
||
|
.IF $(MAX_WARN)
|
||
|
CFLAGS += -w4
|
||
|
.ELSE
|
||
|
CFLAGS += -w1
|
||
|
.ENDIF
|
||
|
|
||
|
# Optionally turn on debugging information (Codeview format)
|
||
|
.IF $(DBG)
|
||
|
.IF $(USE_WIN32)
|
||
|
.IF $(USE_CODEVIEW)
|
||
|
CFLAGS += -d2 -hc
|
||
|
LDFLAGS += D CODEVIEW OPT CVPACK
|
||
|
.ELSE
|
||
|
CFLAGS += -d2
|
||
|
LDFLAGS += D A
|
||
|
.ENDIF
|
||
|
.ELSE
|
||
|
CFLAGS += -d2
|
||
|
LDFLAGS += D A
|
||
|
.ENDIF
|
||
|
LIBFLAGS += -p=768
|
||
|
.IF $(USE_NASM)
|
||
|
ASFLAGS += -F borland -g
|
||
|
.ELSE
|
||
|
.IF $(USE_TASM32)
|
||
|
ASFLAGS += /q # TASM32 fucks up Watcom C++ debug info
|
||
|
.ELIF $(OS2_SHELL)
|
||
|
ASFLAGS += /q # TASM for OS/2 fucks up Watcom C++ debug info
|
||
|
.ELSE
|
||
|
ASFLAGS += /zi
|
||
|
.ENDIF
|
||
|
.ENDIF
|
||
|
.ELSE
|
||
|
.IF $(USE_NASM)
|
||
|
ASFLAGS += -F null
|
||
|
.ELSE
|
||
|
ASFLAGS += /q
|
||
|
.ENDIF
|
||
|
.END
|
||
|
|
||
|
# Optionally turn on optimisations (with or without stack conventions)
|
||
|
.IF $(STKCALL)
|
||
|
.IF $(OPT)
|
||
|
CFLAGS += -onatx-5s-fp5
|
||
|
.ELIF $(OPT_SIZE)
|
||
|
CFLAGS += -onaslmr-5s-fp5
|
||
|
.ELIF $(NOOPT)
|
||
|
CFLAGS += -od-5s
|
||
|
.ELSE
|
||
|
CFLAGS += -3s
|
||
|
.END
|
||
|
.ELSE
|
||
|
.IF $(OPT)
|
||
|
CFLAGS += -onatx-5r-fp5
|
||
|
.ELIF $(OPT_SIZE)
|
||
|
CFLAGS += -onaslmr-5r-fp5
|
||
|
.ELIF $(NOOPT)
|
||
|
CFLAGS += -od-5r
|
||
|
.END
|
||
|
.END
|
||
|
|
||
|
# Optionally turn on direct i387 FPU instructions optimised for Pentium
|
||
|
.IF $(FPU)
|
||
|
CFLAGS += -DFPU387
|
||
|
ASFLAGS += -dFPU387
|
||
|
.END
|
||
|
|
||
|
# Optionally compile a beta release version of a product
|
||
|
.IF $(BETA)
|
||
|
CFLAGS += -DBETA
|
||
|
ASFLAGS += -dBETA
|
||
|
.END
|
||
|
|
||
|
.IF $(USE_TNT) # Use Phar Lap's TNT DOS Extender
|
||
|
CFLAGS += -bt=nt -DTNT
|
||
|
ASFLAGS += -dTNT
|
||
|
LDFLAGS += SYS NT OP STUB=GOTNT.EXE
|
||
|
LIB_OS = DOS32
|
||
|
.ELIF $(USE_X32VM) # Use FlashTek X-32VM DOS extender
|
||
|
CFLAGS += -bt=dos
|
||
|
LDFLAGS += SYS X32RV
|
||
|
DX_CFLAGS += -DX32VM
|
||
|
DX_ASFLAGS += -dX32VM
|
||
|
LIB_OS = DOS32
|
||
|
.ELIF $(USE_X32) # Use FlashTek X-32 DOS extender
|
||
|
CFLAGS += -bt=dos
|
||
|
LDFLAGS += SYS X32R
|
||
|
DX_CFLAGS += -DX32VM
|
||
|
DX_ASFLAGS += -dX32VM
|
||
|
LIB_OS = DOS32
|
||
|
.ELIF $(USE_QNX4) # Build QNX 4 app
|
||
|
CFLAGS += -bt=qnx386
|
||
|
LDFLAGS += SYS QNX386FLAT OP CASEEXACT OP OFFSET=40k OP STACK=32k
|
||
|
CFLAGS += -D__QNX__ -D__UNIX__
|
||
|
ASFLAGS += -d__QNX__ -d__UNIX__
|
||
|
LIB_OS = QNX4
|
||
|
.ELIF $(USE_OS232)
|
||
|
.IF $(BUILD_DLL)
|
||
|
CFLAGS += -bm-bd-bt=os2-sg-DBUILD_DLL
|
||
|
ASFLAGS += -dBUILD_DLL
|
||
|
.ELSE
|
||
|
CFLAGS += -bm-bt=os2-sg
|
||
|
.ENDIF
|
||
|
DX_ASFLAGS += -d__OS2__
|
||
|
LIB_OS = os232
|
||
|
.ELIF $(USE_SNAP) # Build 32 bit Snap app
|
||
|
.IF $(BUILD_DLL)
|
||
|
CFLAGS += -bm-bd-bt=nt-DBUILD_DLL
|
||
|
ASFLAGS += -dBUILD_DLL
|
||
|
.ELSE
|
||
|
CFLAGS += -bm-bt=nt-D_WIN32
|
||
|
.ENDIF
|
||
|
LDFLAGS += OP nodefaultlibs
|
||
|
.IF $(STKCALL)
|
||
|
DEFLIBS := clib3s.lib,math3s.lib,noemu387.lib,
|
||
|
.ELSE
|
||
|
DEFLIBS := clib3r.lib,math3r.lib,noemu387.lib,
|
||
|
.ENDIF
|
||
|
LIB_OS = SNAP
|
||
|
.ELIF $(USE_WIN32) # Build 32 bit Windows NT app
|
||
|
.IF $(WIN32_GUI)
|
||
|
.ELSE
|
||
|
CFLAGS += -D__CONSOLE__
|
||
|
.ENDIF
|
||
|
.IF $(BUILD_DLL)
|
||
|
CFLAGS += -bm-bd-bt=nt-sg-DBUILD_DLL -D_WIN32
|
||
|
ASFLAGS += -dBUILD_DLL
|
||
|
.ELSE
|
||
|
CFLAGS += -bm-bt=nt-sg-D_WIN32
|
||
|
.ENDIF
|
||
|
DX_ASFLAGS += -d__WINDOWS32__
|
||
|
LIB_OS = WIN32
|
||
|
DEFLIBS := 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,wsock32.lib,rpcrt4.lib,
|
||
|
.ELIF $(USE_WIN386) # Build 32 bit Win386 extended app
|
||
|
.IF $(BUILD_DLL)
|
||
|
CFLAGS += -bd-bt=windows-DBUILD_DLL
|
||
|
ASFLAGS += -dBUILD_DLL
|
||
|
.ELSE
|
||
|
CFLAGS += -bt=windows
|
||
|
.ENDIF
|
||
|
DX_ASFLAGS += -d__WIN386__
|
||
|
LIB_OS = WIN386
|
||
|
.ELIF $(USE_PMODEW) # PMODE/W
|
||
|
CFLAGS += -bt=dos
|
||
|
USE_DOS4GW := 1
|
||
|
USE_REALDOS := 1
|
||
|
LDFLAGS += SYS PMODEW
|
||
|
DX_CFLAGS += -DDOS4GW
|
||
|
DX_ASFLAGS += -dDOS4GW
|
||
|
LIB_OS = DOS32
|
||
|
.ELIF $(USE_CAUSEWAY) # Causeway
|
||
|
CFLAGS += -bt=dos
|
||
|
USE_DOS4GW := 1
|
||
|
USE_REALDOS := 1
|
||
|
LDFLAGS += SYS CAUSEWAY
|
||
|
DX_CFLAGS += -DDOS4GW
|
||
|
DX_ASFLAGS += -dDOS4GW
|
||
|
LIB_OS = DOS32
|
||
|
.ELIF $(USE_DOS32A) # DOS32/A
|
||
|
CFLAGS += -bt=dos
|
||
|
USE_DOS4GW := 1
|
||
|
USE_REALDOS := 1
|
||
|
LDFLAGS += SYS DOS32A
|
||
|
DX_CFLAGS += -DDOS4GW
|
||
|
DX_ASFLAGS += -dDOS4GW
|
||
|
LIB_OS = DOS32
|
||
|
.ELSE # Use DOS4GW
|
||
|
CFLAGS += -bt=dos
|
||
|
USE_DOS4GW := 1
|
||
|
USE_REALDOS := 1
|
||
|
LDFLAGS += SYS DOS4G
|
||
|
DX_CFLAGS += -DDOS4GW
|
||
|
DX_ASFLAGS += -dDOS4GW
|
||
|
LIB_OS = DOS32
|
||
|
.END
|
||
|
|
||
|
# Disable linking to default C runtime library and PM library
|
||
|
|
||
|
.IF $(NO_RUNTIME)
|
||
|
LDFLAGS += OP nodefaultlibs
|
||
|
DEFLIBS :=
|
||
|
.ELSE
|
||
|
|
||
|
# Place to look for PM library files
|
||
|
|
||
|
.IF $(USE_SNAP) # Build 32 bit Snap app or dll
|
||
|
PMLIB :=
|
||
|
.ELIF $(USE_WIN32)
|
||
|
.IF $(STKCALL)
|
||
|
PMLIB := spm.lib,
|
||
|
.ELSE
|
||
|
PMLIB := pm.lib,
|
||
|
.ENDIF
|
||
|
.ELIF $(USE_OS232)
|
||
|
.IF $(STKCALL)
|
||
|
.IF $(USE_OS2GUI)
|
||
|
PMLIB := spm_pm.lib,
|
||
|
.ELSE
|
||
|
PMLIB := spm.lib,
|
||
|
.ENDIF
|
||
|
.ELSE
|
||
|
.IF $(USE_OS2GUI)
|
||
|
PMLIB := pm_pm.lib,
|
||
|
.ELSE
|
||
|
PMLIB := pm.lib,
|
||
|
.ENDIF
|
||
|
.ENDIF
|
||
|
.ELIF $(USE_QNX4)
|
||
|
.IF $(STKCALL)
|
||
|
PMLIB := libspm.a,
|
||
|
.ELSE
|
||
|
PMLIB := libpm.a,
|
||
|
.ENDIF
|
||
|
.ELIF $(USE_TNT)
|
||
|
.IF $(STKCALL)
|
||
|
PMLIB := tnt\spm.lib,
|
||
|
.ELSE
|
||
|
PMLIB := tnt\pm.lib,
|
||
|
.ENDIF
|
||
|
.ELIF $(USE_X32)
|
||
|
.IF $(STKCALL)
|
||
|
PMLIB := x32\spm.lib,
|
||
|
.ELSE
|
||
|
PMLIB := x32\pm.lib,
|
||
|
.ENDIF
|
||
|
.ELSE
|
||
|
.IF $(STKCALL)
|
||
|
PMLIB := dos4gw\spm.lib,
|
||
|
.ELSE
|
||
|
PMLIB := dos4gw\pm.lib,
|
||
|
.ENDIF
|
||
|
.ENDIF
|
||
|
.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)\$(WC_LIBBASE)
|
||
|
LIB_DEST := $(LIB_BASE)
|
||
|
|
||
|
LDFLAGS += op map
|
||
|
|
||
|
# Define which file contains our rules
|
||
|
|
||
|
RULES_MAK := wc32.mk
|