]> git.saurik.com Git - wxWidgets.git/blobdiff - src/makewat.env
two fixes from Justin Bradford
[wxWidgets.git] / src / makewat.env
index 3f5cdb83554b7ebbd21e1e91cf7649626783fa37..a5ddc677b99860a25479903b82e6836d1c031351 100644 (file)
-# File:         makewat.env
+###############################################################################
+# File:         src/makewat.env
 # Purpose:      Watcom environments for wxWindows makefiles.
 # Author:       Julian Smart and others
-#
-# The main things to change are:
+# Version:      $Id$
+# Changelist:  2003-02-25 - Juergen Ulbts - update from wxWindows 2.5.x/HEAD branch
+###############################################################################
+
+# The following environment variables must be set:
 #
 #   WATCOM:    set to where the compiler is installed
-#   WXDIR:     set to where the wxWindows is installed
-#   MODE:      set to windows [16 bit windows], nt [win32s], or win386 [32-bit non-WIN32]
+#   WXWIN:     set to where the wxWindows is installed
+#   PATH:      set correctly, i.e. contains all Watcom directories
+#   LIB:       same as PATH
+#   INCLUDE:   same as PATH
+
+# set wxUSE_GUI=0 to build wxBase instead of (default) wxMSW
+!ifndef wxUSE_GUI
+wxUSE_GUI=1
+!endif
 
+# set FINAL=1 to disable debug and enable optimizations
+!ifndef FINAL
 FINAL=0
-WATCOMDIR=$(%WATCOM)
+!endif
+
+# set WATCOM_SUFFIX to nothing if you use only Watcom compiler, set it to
+# something Watcom-specific if you want to build wxWindows with more than one
+# compiler
+WATCOM_SUFFIX=_w
+
+# change/remove this if you want to create programs for older Windows versions,
+# increase the version to be able to use more Win2K+-only features
+WINVERFLAGS = /dWINVER=0x400 /d_WIN32_IE=0x0300
+
+# optimize for space/time: /os or /ot
+!ifeq FINAL 1
+OPTFLAGS=/oails /5r
+!else
+OPTFLAGS=/od
+!endif
+
+
+###############################################################################
+# You shouldn't have to modify anything after this point
+###############################################################################
 
 .EXTENSIONS:
 .EXTENSIONS: .exe .obj .c .cc .cpp .res .rc .def
 
-#WXDIR = d:\wx2\wxwind~1
+!ifndef %WATCOM
+!error WATCOM environment variable must be set!
+!endif
+WATCOMDIR=$(%WATCOM)
+
+!ifndef %WXWIN
+!error WXWIN environment variable must be set!
+!endif
 WXDIR = $(%WXWIN)
-WXINC = $(WXDIR)\include
 
 # Suffixes
 OBJSUFF=obj
 SRCSUFF=cpp
 
+!ifeq FINAL 1
 WXDEBUG=0
-
-!ifneq NOPRECOMP 1
-PRECOMP     = /fh=$(WXDIR)\src\msw\watcom.pch
+!else
+WXDEBUG=1
 !endif
 
 !ifeq WXDEBUG 1
-DEBUGFLAGS     = /D__WXDEBUG__ /o1
+DEBUGFLAGS  = /D__WXDEBUG__
+DEBUGCFLAGS = $(DEBUGFLAGS) /d2
+DEBUGCXXFLAGS = $(DEBUGFLAGS) /d2i
 DEBUGINFO   = debug all
+DEBUGSUFFIX = d
 !else
-DEBUGFLAGS     =
+DEBUGCFLAGS =
+DEBUGCXXFLAGS =
 DEBUGINFO   =
+DEBUGSUFFIX = 
 !endif
 
-RC = wrc
+# TOOLKIT is used as the name of lib subdir containing wx/setup.h
+# BASEDIRPREFIX is used to construct OUTPUTDIR
+!ifeq wxUSE_GUI 0
+TOOLKIT = base
+BASEDIRPREFIX = Base
+LINKSYSTEM = nt
+!else
+TOOLKIT = msw
+LINKSYSTEM = nt_win
+BASEDIRPREFIX = 
+!endif
+
+ARCHINCDIR=$(WXDIR)\lib\$(TOOLKIT)$(DEBUGSUFFIX)
+
+# set the things which depend on debug/release
+#
+# note that the values for LIBPAGESIZE are minimal possible, the library
+# doesn't link (Error! Library too large) with values smaller than given
+!ifeq FINAL 1
+CONFIGURATION=Release
+LIBPAGESIZE=/p=1024
+!else
+CONFIGURATION=Debug
+LIBPAGESIZE=/p=2048
+!endif
+
+# set OUTPUTDIR to the directory to be used for the .obj files created during
+# the build (under $WXWIN)
+!ifndef OUTPUTDIR
+OUTPUTDIR=$(WXDIR)\$(BASEDIRPREFIX)$(CONFIGURATION)Watcom
+# no trailing slash for win98
+!endif
 
+!ifneq NOPRECOMP 1
+PRECOMP     = /fh=$(OUTPUTDIR)\watcom.pch
+!endif
+
+# the basename of the library
+LIBNAME=wx$(TOOLKIT)$(DEBUGSUFFIX)$(WATCOM_SUFFIX)
+
+# only LEVEL=386 is currently supported, 16 bit compilation is probably broken
 LEVEL       = 386
-CCC         = wpp$(LEVEL)
-CC         =  wcc$(LEVEL)
-OS_TARGET   = nt_win
-MODEL       =
-# If you use win95, assumptions will be made about Win95 icon format etc.
-# so nt_win is probably better for simultaneous Win32s/Win95/NT operation.
-LINKOPTION  = nt_win # win95
+CXX         = wpp$(LEVEL)
+CC          = wcc$(LEVEL)
+LIB         = wlib /q
+RC          = wrc
 BINDCOMMAND = wrc
 WATLIBDIR   = $(WATCOMDIR)\lib386\nt
-MINDATA     =
-MAXDATA     =
 STACK       = option stack=64k
-LIBS   = $(WXDIR)\lib\wx.lib $(WXDIR)\lib\regex.lib $(WXDIR)\lib\zlib.lib $(WXDIR)\lib\png.lib $(WXDIR)\lib\tiff.lib $(WXDIR)\lib\jpeg.lib &
-      $(WATLIBDIR)\comctl32.lib $(WATLIBDIR)\comdlg32.lib &
-      $(WATLIBDIR)\ole32.lib $(WATLIBDIR)\oleaut32.lib $(WATLIBDIR)\opengl32.lib &
-      $(WATLIBDIR)\uuid.lib $(WXDIR)\lib\watcom\odbc32.lib 
-IFLAGS      = -i=$(WXINC) -i=$(WXDIR)\contrib\include -i=$(%watcom)\h;$(%watcom)\h\nt;$(WXDIR)\src\regex;$(WXDIR)\src\png;$(WXDIR)\src\zlib;$(WXDIR)\src\jpeg;$(WXDIR)\src\tiff;$(WXDIR)\include\wx\msw\gnuwin32
-RESFLAGS1   = -r -bt=nt /i$(WXDIR)\include /i$(WXDIR)\contrib\include
-RESFLAGS2   = -R $(name) /i$(WXDIR)\include /i$(WXDIR)\contrib\include
-
-# Here are some possible optimization flags:
-# /5r  Pentium timings
-# /fp5 /fpi87 Inline 80x87 instructions optimized for Pentium: coprocessor must be present
-# /ox  Standard optimizations
-# /or  Reordering for Pentium timings (included in /ox)
-# The Watcom-recommended flags for optimum Pentium speed are:
-# /oneatx /zp4 /5 /fpi87 /fp5
-
-OPTFLAGS=/ox /5r
-
-# /d1 for line numbers only: anything else produces an enormous wx32.lib
-CPPFLAGS    = /bt=nt /w1 /DWIN32 /D__WIN32__ /D__WIN95__ /D__WINDOWS__ /zq $(OPTFLAGS) $(MODEL) $(PRECOMP) $(DEBUGFLAGS) /d__WXMSW__ $(EXTRACPPFLAGS) # /d__WATCOMC__
+LIBS        = $(WXDIR)\lib\$(LIBNAME).lib &
+              $(WXDIR)\lib\regex$(WATCOM_SUFFIX).lib &
+              $(WXDIR)\lib\zlib$(WATCOM_SUFFIX).lib &
+!ifneq wxUSE_GUI 0
+              $(WXDIR)\lib\png$(WATCOM_SUFFIX).lib &
+              $(WXDIR)\lib\tiff$(WATCOM_SUFFIX).lib &
+              $(WXDIR)\lib\jpeg$(WATCOM_SUFFIX).lib &
+!endif
+              $(WATLIBDIR)\comctl32.lib &
+              $(WATLIBDIR)\comdlg32.lib &
+              $(WATLIBDIR)\odbc32.lib &
+              $(WATLIBDIR)\ole32.lib &
+              $(WATLIBDIR)\oleaut32.lib &
+              $(WATLIBDIR)\opengl32.lib &
+              $(WATLIBDIR)\uuid.lib
+IFLAGS      = -i=$(ARCHINCDIR);$(WXDIR)\include &
+              -i=$(%watcom)\h;$(%watcom)\h\nt &
+              -i=$(WXDIR)\src\regex;$(WXDIR)\src\png;$(WXDIR)\src\zlib;$(WXDIR)\src\jpeg;$(WXDIR)\src\tiff &
+              -i=$(WXDIR)\include\wx\msw\gnuwin32
+RESFLAGS    = -q -r -bt=nt /i$(WXDIR)\include /i$(WXDIR)\contrib\include $(WINVERFLAGS)
+
+# NB: /bm switch is needed for thread-safe runtime, if you don't use
+#     wxThread you may remove it
+CPPFLAGS = /dWIN32 /bm /fo=$(OUTPUTDIR)\ /fr /zq $(IFLAGS) $(OPTFLAGS) $(WINVERFLAGS) $(EXTRACPPFLAGS)
+!ifeq wxUSE_GUI 0
+CPPFLAGS += /dwxUSE_GUI=0
+!endif
+
+# zm and zv as well as the liker options below are used to make the resulting
+# .exe smaller
+CFLAGS = $(CPPFLAGS) $(DEBUGCFLAGS) $(EXTRACFLAGS) /zm
+CXXFLAGS = $(CPPFLAGS) $(DEBUGCXXFLAGS) $(PRECOMP) /zm /zv /w=8 $(EXTRACXXFLAGS)
+LDFLAGS = option eliminate, vfremoval
 
 .cpp.obj: # $< # .AUTODEPEND
-    *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+    *$(CXX) $(CXXFLAGS) $<
 
 .c.obj: # $< # .AUTODEPEND
-    *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+    *$(CC) $(CFLAGS) $<
 
-# This doesn't work for wcc
-#    %create tmp.lbc
-#    @%append tmp.lbc $(CPPFLAGS) $(IFLAGS) $<
-#    echo $<
-#    $(CC) @tmp.lbc
-
-dummy:  .SYMBOLIC
-    @echo Please give a target for wxWin makefiles: the usual one is 'all'.
+defaulttarget: all .SYMBOLIC
 
 erasepch:   .SYMBOLIC
-    -erase $(WXDIR)\src\msw\watcom.pch
+    -erase $(OUTPUTDIR)\watcom.pch
+