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