]> git.sur5r.net Git - cc65/blob - src/cc65/make/watcom.mak
Fixed two compiler warnings.
[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 -obeilr -zp4 -5 -zq -w2 -i=..\\common
26
27 # Target files
28 EXE     = cc65.exe
29
30 # Determine the svn version number if possible
31 ifneq "$(shell which svnversion 2>/dev/null)" ""
32 SVNVERSION=$(shell svnversion)
33 ifeq "$(SVNVERSION)" "exported"
34 SVNVERSION=unknown
35 endif
36 ifeq "$(SVNVERSION)" "Unversioned directory"
37 SVNVERSION=unknown
38 endif
39 else
40 SVNVERSION=unknown
41 endif
42
43 # Create NT programs by default
44 ifndef TARGET
45 TARGET = NT
46 endif
47
48 # --------------------- OS2 ---------------------
49 ifeq ($(TARGET),OS2)
50 SYSTEM  = os2v2
51 CFLAGS  += -bt=$(TARGET)
52 endif
53
54 # -------------------- DOS4G --------------------
55 ifeq ($(TARGET),DOS32)
56 SYSTEM  = dos4g
57 CFLAGS  += -bt=$(TARGET)
58 endif
59
60 # --------------------- NT ----------------------
61 ifeq ($(TARGET),NT)
62 SYSTEM  = nt
63 CFLAGS  += -bt=$(TARGET)
64 endif
65
66 # ------------------------------------------------------------------------------
67 # Implicit rules
68
69 %.obj:  %.c
70         $(CC) $(CFLAGS) -fo=$@ $^
71
72
73 # ------------------------------------------------------------------------------
74 # All OBJ files
75
76 OBJS =  anonname.obj    \
77         asmcode.obj     \
78         asmlabel.obj    \
79         asmstmt.obj     \
80         assignment.obj  \
81         casenode.obj    \
82         codeent.obj     \
83         codegen.obj     \
84         codelab.obj     \
85         codeinfo.obj    \
86         codeopt.obj     \
87         codeseg.obj     \
88         compile.obj     \
89         coptadd.obj     \
90         coptc02.obj     \
91         coptcmp.obj     \
92         coptind.obj     \
93         coptneg.obj     \
94         coptptrload.obj \
95         coptpush.obj    \
96         coptsize.obj    \
97         coptstop.obj    \
98         coptstore.obj   \
99         coptsub.obj     \
100         copttest.obj    \
101         dataseg.obj     \
102         datatype.obj    \
103         declare.obj     \
104         declattr.obj    \
105         error.obj       \
106         expr.obj        \
107         exprdesc.obj    \
108         funcdesc.obj    \
109         function.obj    \
110         global.obj      \
111         goto.obj        \
112         hexval.obj      \
113         ident.obj       \
114         incpath.obj     \
115         input.obj       \
116         lineinfo.obj    \
117         litpool.obj     \
118         loadexpr.obj    \
119         locals.obj      \
120         loop.obj        \
121         macrotab.obj    \
122         main.obj        \
123         opcodes.obj     \
124         output.obj      \
125         preproc.obj     \
126         pragma.obj      \
127         reginfo.obj     \
128         scanner.obj     \
129         scanstrbuf.obj  \
130         segments.obj    \
131         shiftexpr.obj   \
132         stackptr.obj    \
133         standard.obj    \
134         stdfunc.obj     \
135         stdnames.obj    \
136         stmt.obj        \
137         svnversion.obj  \
138         swstmt.obj      \
139         symentry.obj    \
140         symtab.obj      \
141         testexpr.obj    \
142         textseg.obj     \
143         typecmp.obj     \
144         typeconv.obj    \
145         util.obj
146
147 LIBS = ../common/common.lib
148
149
150 # ------------------------------------------------------------------------------
151 # Main targets
152
153 all:            svnversion $(EXE)
154
155
156 # ------------------------------------------------------------------------------
157 # Other targets
158
159
160 $(EXE):         $(OBJS) $(LIBS)
161         @echo "DEBUG ALL" > $(LNKCFG)
162         @echo "OPTION QUIET" >> $(LNKCFG)
163         @echo "OPTION MAP" >> $(LNKCFG)
164         @echo "OPTION STACK=65536" >> $(LNKCFG)
165         @echo "NAME $@" >> $(LNKCFG)
166         @for i in $(OBJS); do echo "FILE $${i}"; done >> $(LNKCFG)
167         @for i in $(LIBS); do echo "LIBRARY $${i}"; done >> $(LNKCFG)
168         @$(LD) system $(SYSTEM) @$(LNKCFG)
169         @rm $(LNKCFG)
170
171 .PHONY: svnversion
172 svnversion:
173         @$(RM) svnversion.c
174         @echo "/* This file is auto-generated - do not modify! */" >> svnversion.c
175         @echo "" >> svnversion.c
176         @echo "const char SVNVersion[] = \"$(SVNVERSION)\";" >> svnversion.c
177
178 svnversion.c:   svnversion
179
180 clean:
181         @rm -f *~ core
182
183 zap:    clean
184         @rm -f $(OBJS) $(EXE) $(EXE:.exe=.map) svnversion.c
185
186 strip:
187         @-$(WSTRIP) $(EXE)
188