############################################################################# # # 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