]> git.sur5r.net Git - cc65/blob - src/cc65/make/watcom.mak
Moved part of codeopt into coptptrload for better modularization.
[cc65] / src / cc65 / make / watcom.mak
1 #
2 # CC65 Makefile for the Watcom compiler (using GNU make)
3 #
4
5 # ------------------------------------------------------------------------------
6 # Generic stuff
7
8 # Environment variables for the watcom compiler
9 export WATCOM  = c:\\watcom
10 export INCLUDE = $(WATCOM)\\h
11
12 # We will use the windows compiler under linux (define as empty for windows)
13 export WINEDEBUG=fixme-all
14 WINE = wine
15
16 # Programs
17 AR      = $(WINE) WLIB
18 CC      = $(WINE) WCC386
19 LD      = $(WINE) WLINK
20 WSTRIP  = $(WINE) WSTRIP -q
21
22 LNKCFG  = ld.tmp
23
24 # Program arguments
25 CFLAGS  = -d1 -onatx -zp4 -5 -zq -w2 -i=..\\common
26
27 # Target files
28 EXE     = cc65.exe
29
30 # Create NT programs by default
31 ifndef TARGET
32 TARGET = NT
33 endif
34
35 # --------------------- OS2 ---------------------
36 ifeq ($(TARGET),OS2)
37 SYSTEM  = os2v2
38 CFLAGS  += -bt=$(TARGET)
39 endif
40
41 # -------------------- DOS4G --------------------
42 ifeq ($(TARGET),DOS32)
43 SYSTEM  = dos4g
44 CFLAGS  += -bt=$(TARGET)
45 endif
46
47 # --------------------- NT ----------------------
48 ifeq ($(TARGET),NT)
49 SYSTEM  = nt
50 CFLAGS  += -bt=$(TARGET)
51 endif
52
53 # ------------------------------------------------------------------------------
54 # Implicit rules
55
56 %.obj:  %.c
57         $(CC) $(CFLAGS) $^
58
59
60 # ------------------------------------------------------------------------------
61 # All OBJ files
62
63 OBJS =  anonname.obj    \
64         asmcode.obj     \
65         asmlabel.obj    \
66         asmstmt.obj     \
67         assignment.obj  \
68         casenode.obj    \
69         codeent.obj     \
70         codegen.obj     \
71         codelab.obj     \
72         codeinfo.obj    \
73         codeopt.obj     \
74         codeseg.obj     \
75         compile.obj     \
76         coptadd.obj     \
77         coptc02.obj     \
78         coptcmp.obj     \
79         coptind.obj     \
80         coptneg.obj     \
81         coptptrload.obj \
82         coptpush.obj    \
83         coptsize.obj    \
84         coptstop.obj    \
85         coptstore.obj   \
86         coptsub.obj     \
87         copttest.obj    \
88         dataseg.obj     \
89         datatype.obj    \
90         declare.obj     \
91         declattr.obj    \
92         error.obj       \
93         expr.obj        \
94         exprdesc.obj    \
95         funcdesc.obj    \
96         function.obj    \
97         global.obj      \
98         goto.obj        \
99         hexval.obj      \
100         ident.obj       \
101         incpath.obj     \
102         input.obj       \
103         lineinfo.obj    \
104         litpool.obj     \
105         loadexpr.obj    \
106         locals.obj      \
107         loop.obj        \
108         macrotab.obj    \
109         main.obj        \
110         opcodes.obj     \
111         output.obj      \
112         preproc.obj     \
113         pragma.obj      \
114         reginfo.obj     \
115         scanner.obj     \
116         scanstrbuf.obj  \
117         segments.obj    \
118         shiftexpr.obj   \
119         stackptr.obj    \
120         standard.obj    \
121         stdfunc.obj     \
122         stdnames.obj    \
123         stmt.obj        \
124         swstmt.obj      \
125         symentry.obj    \
126         symtab.obj      \
127         testexpr.obj    \
128         textseg.obj     \
129         typecmp.obj     \
130         typeconv.obj    \
131         util.obj
132
133 LIBS = ../common/common.lib
134
135
136 # ------------------------------------------------------------------------------
137 # Main targets
138
139 all:            $(EXE)
140
141
142 # ------------------------------------------------------------------------------
143 # Other targets
144
145
146 $(EXE):         $(OBJS) $(LIBS)
147         @echo "DEBUG ALL" > $(LNKCFG)
148         @echo "OPTION QUIET" >> $(LNKCFG)
149         @echo "NAME $@" >> $(LNKCFG)
150         @for i in $(OBJS); do echo "FILE $${i}"; done >> $(LNKCFG)
151         @for i in $(LIBS); do echo "LIBRARY $${i}"; done >> $(LNKCFG)
152         @$(LD) system $(SYSTEM) @$(LNKCFG)
153         @rm $(LNKCFG)
154
155 clean:
156         @rm -f *~ core
157
158 zap:    clean
159         @rm -f *.obj $(EXE)
160
161 strip:
162         @-$(WSTRIP) $(EXE)
163