!endif
WXDIR = $(WXWIN)
-CFG = $(WXDIR)\src\msw\wxwin32.cfg
+CFG = $(WXDIR)\src\msw\wxw32
BCCDIR=$(MAKEDIR)\..
ARCHINCDIR=$(WXDIR)\lib\msw
ARCHSETUPH=$(ARCHINCDIR)\wx\setup.h
+#see below for SETUPSRCDIR
+
# Using a config file isn't compatible across all BC++ versions
# LNKCFG=$(WXDIR)\src\msw\bclnk32.cfg
FINAL=0
!endif
-!if "$(FINAL)" == "0"
-OPT = -Od
-DEBUG_FLAGS= -v -DWXDEBUG=1 -D__WXDEBUG__ -DUSE_DEFINE
-!else
+!ifndef WXMAKINGDLL
+WXMAKINGDLL=0
+!endif
+
+!if "$(FINAL)" == "1"
OPT = -O2
DEBUG_FLAGS = -DUSE_DEFINE
+LINKDEBUGFLAGS=
+!else
+OPT = -Od
+DEBUG_FLAGS= -v -DWXDEBUG=1 -D__WXDEBUG__ -DUSE_DEFINE
+LINKDEBUGFLAGS=/v
+!endif
+
+# allow to use debugger but no wxDebugging functions
+!if "$(FINAL)" == "hybrid"
+OPT = -Od
+DEBUG_FLAGS= -v
+LINKDEBUGFLAGS=/v
!endif
!ifndef DLL
# DLL use wxWin STATIC 0 0 1
#
-!if "$(WXMAKINGDLL)" == "1"
-DLL_FLAGS= -DWXMAKINGDLL=1 -D_RTLDLL
-WXLIB= $(WXLIBDIR)\wx233.lib
+# Determine the library name depending on the options, to allow
+# multiple versions to coexist.
+# Note that the clean target will only delete the appropriate .lib for the current
+# options and all the obj files, and note that you must delete the obj files if you
+# change the options so that they are compiled using the correct ones.
+!if "$(WXMAKINGDLL)" == "1" || "$(WXUSINGDLL)" == "1"
+WXLIBNAME=wx32
!else
+WXLIBNAME=wx32
+!endif
+
+## Use this if you want to use the UNIV controls set rather than the native ones
+## make -f makefile.b32 WXUSINGUNIV=1
+!if "$(WXUSINGUNIV)" == "1"
+USE_UNIV="UNIV"
+CFG=$(CFG)v
+WXLIBNAME=$(WXLIBNAME)v
+ARCHINCDIR=$(ARCHINCDIR)v
+SETUPSRCDIR=$(WXDIR)\include\wx\univ
+PORT=__WXUNIVERSAL__
+!else
+USE_UNIV=""
+PORT=__WXMSW__
+SETUPSRCDIR=$(WXDIR)\include\wx\msw
+!endif
-LINK_FLAGS= /aa /c
+#not sure what to do with unicode builds - we need to define something ?
+#!if "$(UNICODE)" == "1"
+#WXLIBNAME=$(WXLIBNAME)u
+#!endif
+
+
+#a hybrid , does not set __WXDEBUG__ but sets -v (see above)
+!if "$(FINAL)" == "hybrid"
+WXLIBNAME=$(WXLIBNAME)h
+CFG=$(CFG)h
+!endif
+
+!if "$(FINAL)" == "0"
+WXLIBNAME=$(WXLIBNAME)d
+CFG=$(CFG)d
+!endif
+
+!if "$(wxUSE_GUI)" == "0"
+WXLIBNAME=$(WXLIBNAME)b
+CFG=$(CFG)b
+CPPFLAGS=-DwxUSE_GUI=0
+!endif
+
+!if "$(WXMAKINGDLL)" != "1" && "$(WXUSINGDLL)" != "1"
+WXLIBNAME=$(WXLIBNAME)s
+!endif
+
+!if "$(WXMAKINGDLL)" == "1" || "$(WXUSINGDLL)" == "1"
+INCEXT=dll$(INCEXT)
+!endif
+
+!ifndef WXLIBDIR
+WXLIBDIR=$(WXDIR)\lib
+!endif
+
+WXLIB=$(WXLIBDIR)\$(WXLIBNAME).lib
+WXDLL=$(WXLIBDIR)\$(WXLIBNAME).dll
+
+!if "$(WXMAKINGDLL)" == "1"
+DLL_FLAGS= -DWXMAKINGDLL=1 -D_RTLDLL
+!else
!if "$(WXUSINGDLL)" == "1"
DLL_FLAGS= -DWXUSINGDLL=1 -D_RTLDLL
-WXLIB= $(WXLIBDIR)\wx233.lib
!else
DLL_FLAGS=
-WXLIB= $(WXLIBDIR)\wx32.lib
!endif
!endif
LINK_FLAGS= /Tpd /c $(EXTRALINKFLAGS)
!endif
-CPPFLAGS=$(DLL_FLAGS) $(EXTRACPPFLAGS) @$(CFG)
+CFG=$(CFG).cfg
+CPPFLAGS=$(CPPFLAGS) $(DLL_FLAGS) @$(CFG) $(EXTRACPPFLAGS)
DUMMY=dummy
WAITFLAG = /w
.$(SRCSUFF).obj:
- bcc32 $(CPPFLAGS) -c {$< }
+ bcc32 $(CPPFLAGS) -c {$< }
.c.obj:
- bcc32 $(CPPFLAGS) -P- -c {$< }
+ bcc32 $(CPPFLAGS) -P- -c {$< }