| 1 | # File: makewat.env |
| 2 | # Purpose: Watcom environments for wxWindows makefiles. |
| 3 | # Author: Julian Smart and others |
| 4 | # |
| 5 | # The main things to change are: |
| 6 | # |
| 7 | # WATCOM: set to where the compiler is installed |
| 8 | # WXDIR: set to where the wxWindows is installed |
| 9 | # MODE: set to windows [16 bit windows], nt [win32s], or win386 [32-bit non-WIN32] |
| 10 | |
| 11 | FINAL=0 |
| 12 | WATCOMDIR=$(%WATCOM) |
| 13 | #.EXTENSIONS: .exe .obj .c .cc .cpp .res .rc .def |
| 14 | |
| 15 | # Set this to win386 if compiling under WIN386 mode, or |
| 16 | # to windows for normal 16-bit Windows, nt if compiling for WIN32s/NT |
| 17 | MODE= nt # windows |
| 18 | |
| 19 | WXDIR = c:\wx |
| 20 | WXINC = $(WXDIR)\include\msw |
| 21 | WXBASEINC = $(WXDIR)\include\base |
| 22 | |
| 23 | # Suffixes |
| 24 | OBJSUFF=obj |
| 25 | SRCSUFF=cpp |
| 26 | |
| 27 | WXDEBUG=0 |
| 28 | |
| 29 | !ifneq NOPRECOMP 1 |
| 30 | PRECOMP = /fh=$(WXDIR)\src\msw\watcom.pch |
| 31 | !endif |
| 32 | |
| 33 | RC = wrc |
| 34 | |
| 35 | !ifeq MODE win386 |
| 36 | |
| 37 | ##### WIN386 OPTIONS |
| 38 | |
| 39 | # Set LEVEL to 386 if using 32-bit compilation |
| 40 | LEVEL = 386 |
| 41 | CCC = wpp$(LEVEL) |
| 42 | CC = wcc$(LEVEL) |
| 43 | OS_TARGET = win386 |
| 44 | MODEL = |
| 45 | LINKOPTION = win386 |
| 46 | BINDCOMMAND = wbind |
| 47 | WATLIBDIR = $(WATCOMDIR)\lib386\win |
| 48 | MINDATA = option mindata=100K |
| 49 | MAXDATA = option maxdata=100K |
| 50 | STACK = option stack=64k |
| 51 | EXTRALIBS = $(WXDIR)\contrib\ctl3d\ctl3d32.obj |
| 52 | IFLAGS = -i=$(WXINC) -i=$(WXBASEINC) -i=$(WXDIR)\contrib\fafa -i=$(%watcom)\h;$(%watcom)\h\win |
| 53 | RESFLAGS1 = -r -bt=windows /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa |
| 54 | RESFLAGS2 = -R $(name) /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa |
| 55 | DEBUGINFO = debug all |
| 56 | |
| 57 | #CPPFLAGS = /zw /w1 /zq /d2 /d__WIN386__ /zt4 $(MODEL) /d__WXMSW__ |
| 58 | CPPFLAGS = /zw /w1 /zq /d1 /d__WIN386__ $(MODEL) $(PRECOMP) /d__WXMSW__ $(EXTRACPPFLAGS) |
| 59 | |
| 60 | !endif |
| 61 | #### END WIN386 MODE |
| 62 | |
| 63 | !ifeq MODE windows |
| 64 | |
| 65 | ##### 16-BIT WINDOWS OPTIONS |
| 66 | |
| 67 | # Set LEVEL to 386 if using 32-bit compilation |
| 68 | LEVEL = |
| 69 | CCC = wpp$(LEVEL) |
| 70 | CC = wcc$(LEVEL) |
| 71 | OS_TARGET = windows |
| 72 | MODEL =/ml |
| 73 | LINKOPTION = windows |
| 74 | BINDCOMMAND = echo |
| 75 | WATLIBDIR = $(WATCOMDIR)\lib286\win |
| 76 | MINDATA = |
| 77 | MAXDATA = |
| 78 | STACK = |
| 79 | EXTRALIBS=$(WATLIBDIR)\shell.lib $(WATLIBDIR)\ddeml.lib $(WATLIBDIR)\ctl3d.lib $(WATLIBDIR)\commdlg.lib $(WATLIBDIR)\mmsystem.lib |
| 80 | IFLAGS = -i=$(WXINC) -i=$(WXBASEINC) -i=$(WXDIR)\contrib\fafa |
| 81 | RESFLAGS1 = -r -bt=windows -i=$(WXINC) -i=$(WXDIR)\contrib\fafa |
| 82 | RESFLAGS2 = -R |
| 83 | DEBUGINFO = debug all |
| 84 | |
| 85 | #-i=$(WXDIR)\contrib\itsybits |
| 86 | |
| 87 | # Note: I've added the data threshold (/zt4) for 16-bit operation, |
| 88 | # or we get link failure (TEXT segment overflow). Is this OK for |
| 89 | # 32-bit mode also? -- JACS |
| 90 | # An alternative might be /zc (put string literals in code segment). |
| 91 | #CPPFLAGS = /zw /w1 /zq /d1 /zt4 $(MODEL) /d__WXMSW__ |
| 92 | CPPFLAGS = /zw /w2 /zq /d1 $(MODEL) $(PRECOMP) /d__WXMSW__ $(EXTRACPPFLAGS) |
| 93 | |
| 94 | !endif |
| 95 | #### END WINDOWS MODE |
| 96 | |
| 97 | !ifeq MODE nt |
| 98 | |
| 99 | ##### NT OPTIONS |
| 100 | |
| 101 | LEVEL = 386 |
| 102 | CCC = wpp$(LEVEL) |
| 103 | CC = wcc$(LEVEL) |
| 104 | OS_TARGET = nt_win |
| 105 | MODEL = |
| 106 | # If you use win95, assumptions will be made about Win95 icon format etc. |
| 107 | # so nt_win is probably better for simultaneous Win32s/Win95/NT operation. |
| 108 | LINKOPTION = nt_win # win95 |
| 109 | BINDCOMMAND = wrc |
| 110 | WATLIBDIR = $(WATCOMDIR)\lib386\nt |
| 111 | MINDATA = |
| 112 | MAXDATA = |
| 113 | STACK = option stack=64k |
| 114 | EXTRALIBS = $(WATLIBDIR)\ctl3d32.lib $(WATLIBDIR)\odbc32.lib |
| 115 | IFLAGS = -i=$(WXINC) -i=$(WXBASEINC) -i=$(WXDIR)\contrib\fafa -i=$(%watcom)\h;$(%watcom)\h\nt |
| 116 | RESFLAGS1 = -r -bt=nt /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa |
| 117 | RESFLAGS2 = -R $(name) /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa |
| 118 | DEBUGINFO = debug all # Linking: comment out if operating in a non-debuggable environment |
| 119 | |
| 120 | #-i=$(WXDIR)\contrib\itsybits |
| 121 | |
| 122 | # Here are some possible optimization flags: |
| 123 | # /5r Pentium timings |
| 124 | # /fp5 /fpi87 Inline 80x87 instructions optimized for Pentium: coprocessor must be present |
| 125 | # /ox Standard optimizations |
| 126 | # /or Reordering for Pentium timings (included in /ox) |
| 127 | # The Watcom-recommended flags for optimum Pentium speed are: |
| 128 | # /oneatx /zp4 /5 /fpi87 /fp5 |
| 129 | |
| 130 | OPTFLAGS=/ox /5r # /DWXDEBUG=1 |
| 131 | |
| 132 | # /d1 for line numbers only: anything else produces an enormous wx32.lib |
| 133 | CPPFLAGS = /bt=nt /w1 /D__WIN32__ /zq $(OPTFLAGS) $(MODEL) $(PRECOMP) /d1 /d__WXMSW__ $(EXTRACPPFLAGS) |
| 134 | |
| 135 | !endif |
| 136 | #### END NT MODE |
| 137 | |
| 138 | .cpp.obj: # $< # .AUTODEPEND |
| 139 | *$(CCC) $(CPPFLAGS) $(IFLAGS) $< |
| 140 | |
| 141 | # %create tmp.lbc |
| 142 | # @%append tmp.lbc $(CPPFLAGS) $(IFLAGS) $< |
| 143 | # echo $< |
| 144 | # $(CCC) @tmp.lbc |
| 145 | |
| 146 | .c.obj: # $< # .AUTODEPEND |
| 147 | *$(CC) $(CPPFLAGS) $(IFLAGS) $< |
| 148 | |
| 149 | # This doesn't work for wcc |
| 150 | # %create tmp.lbc |
| 151 | # @%append tmp.lbc $(CPPFLAGS) $(IFLAGS) $< |
| 152 | # echo $< |
| 153 | # $(CC) @tmp.lbc |
| 154 | |
| 155 | dummy: .SYMBOLIC |
| 156 | @echo Please give a target for wxWin makefiles: the usual one is 'all'. |
| 157 | |
| 158 | erasepch: .SYMBOLIC |
| 159 | -erase $(WXDIR)\src\msw\watcom.pch |