]> git.sur5r.net Git - cc65/blob - src/cc65/make/watcom.mak
Moved segment name handling into a separate module.
[cc65] / src / cc65 / make / watcom.mak
1 #
2 # CC65 Makefile for the Watcom compiler
3 #
4
5 # ------------------------------------------------------------------------------
6 # Generic stuff
7
8 .AUTODEPEND
9 .SUFFIXES       .ASM .C .CC .CPP
10 .SWAP
11
12 AR      = WLIB
13 LD      = WLINK
14
15 !if !$d(TARGET)
16 !if $d(__OS2__)
17 TARGET = OS2
18 !else
19 TARGET = NT
20 !endif
21 !endif
22
23 # target specific macros.
24 !if $(TARGET)==OS2
25
26 # --------------------- OS2 ---------------------
27 SYSTEM = os2v2
28 CC = WCC386
29 CCCFG  = -bt=$(TARGET) -d1 -onatx -zp4 -5 -zq -w2
30
31 !elif $(TARGET)==DOS32
32
33 # -------------------- DOS4G --------------------
34 SYSTEM = dos4g
35 CC = WCC386
36 CCCFG  = -bt=$(TARGET) -d1 -onatx -zp4 -5 -zq -w2
37
38 !elif $(TARGET)==DOS
39
40 # --------------------- DOS ---------------------
41 SYSTEM = dos
42 CC = WCC
43 CCCFG  = -bt=$(TARGET) -d1 -onatx -zp2 -2 -ml -zq -w2
44
45 !elif $(TARGET)==NT
46
47 # --------------------- NT ----------------------
48 SYSTEM = nt
49 CC = WCC386
50 CCCFG  = -bt=$(TARGET) -d1 -onatx -zp4 -5 -zq -w2
51
52 !else
53 !error
54 !endif
55
56 # Add the include dir
57 CCCFG   = $(CCCFG) -i=..\common
58
59
60 # ------------------------------------------------------------------------------
61 # Implicit rules
62
63 .c.obj:
64   $(CC) $(CCCFG) $<
65
66
67 # ------------------------------------------------------------------------------
68 # All library OBJ files
69
70 OBJS =  anonname.obj    \
71         asmcode.obj     \
72         asmlabel.obj    \
73         asmline.obj     \
74         check.obj       \
75         codegen.obj     \
76         compile.obj     \
77         cpu.obj         \
78         ctrans.obj      \
79         datatype.obj    \
80         declare.obj     \
81         error.obj       \
82         expr.obj        \
83         funcdesc.obj    \
84         function.obj    \
85         global.obj      \
86         goto.obj        \
87         ident.obj       \
88         incpath.obj     \
89         input.obj       \
90         litpool.obj     \
91         locals.obj      \
92         loop.obj        \
93         macrotab.obj    \
94         main.obj        \
95         optimize.obj    \
96         pragma.obj      \
97         preproc.obj     \
98         stmt.obj        \
99         scanner.obj     \
100         segname.obj     \
101         stdfunc.obj     \
102         symentry.obj    \
103         symtab.obj      \
104         util.obj
105
106 LIBS = ..\common\common.lib
107
108 .PRECIOUS $(OBJS:.obj=.c)
109
110 # ------------------------------------------------------------------------------
111 # Main targets
112
113 all:            cc65
114
115 cc65:           cc65.exe
116
117
118 # ------------------------------------------------------------------------------
119 # Other targets
120
121
122 cc65.exe:       $(OBJS) $(LIBS)
123         $(LD) system $(SYSTEM) @&&|
124 DEBUG ALL
125 OPTION QUIET
126 NAME $<
127 FILE anonname.obj
128 FILE asmcode.obj
129 FILE asmlabel.obj
130 FILE asmline.obj
131 FILE check.obj
132 FILE codegen.obj
133 FILE compile.obj
134 FILE cpu.obj
135 FILE ctrans.obj
136 FILE datatype.obj
137 FILE declare.obj
138 FILE error.obj
139 FILE expr.obj
140 FILE funcdesc.obj
141 FILE function.obj
142 FILE global.obj
143 FILE goto.obj
144 FILE ident.obj
145 FILE incpath.obj
146 FILE input.obj
147 FILE litpool.obj
148 FILE locals.obj
149 FILE loop.obj
150 FILE macrotab.obj
151 FILE main.obj
152 FILE optimize.obj
153 FILE pragma.obj
154 FILE preproc.obj
155 FILE stmt.obj
156 FILE scanner.obj
157 FILE segname.obj
158 FILE stdfunc.obj
159 FILE symentry.obj
160 FILE symtab.obj
161 FILE util.obj
162 LIBRARY ..\common\common.lib
163 |
164
165 clean:
166         @if exist *.obj del *.obj
167         @if exist cc65.exe del cc65.exe
168
169 strip:
170         @-wstrip cc65.exe
171
172