]> git.sur5r.net Git - cc65/blob - src/ca65/make/watcom.mak
Changes for new WINE version
[cc65] / src / ca65 / make / watcom.mak
1 #
2 # CA65 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     = ca65.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 library OBJ files
61
62 OBJS =  anonname.obj    \
63         asserts.obj     \
64         condasm.obj     \
65         dbginfo.obj     \
66         ea65.obj        \
67         easw16.obj      \
68         enum.obj        \
69         error.obj       \
70         expr.obj        \
71         feature.obj     \
72         filetab.obj     \
73         fragment.obj    \
74         global.obj      \
75         incpath.obj     \
76         instr.obj       \
77         istack.obj      \
78         lineinfo.obj    \
79         listing.obj     \
80         macpack.obj     \
81         macro.obj       \
82         main.obj        \
83         nexttok.obj     \
84         objcode.obj     \
85         objfile.obj     \
86         options.obj     \
87         pseudo.obj      \
88         repeat.obj      \
89         scanner.obj     \
90         segment.obj     \
91         segrange.obj    \
92         sizeof.obj      \
93         spool.obj       \
94         struct.obj      \
95         studyexpr.obj   \
96         symbol.obj      \
97         symentry.obj    \
98         symtab.obj      \
99         toklist.obj     \
100         ulabel.obj
101
102 LIBS = ../common/common.lib
103
104
105 # ------------------------------------------------------------------------------
106 # Main targets
107
108 all:            $(EXE)
109
110
111 # ------------------------------------------------------------------------------
112 # Other targets
113
114
115 $(EXE):         $(OBJS) $(LIBS)
116         @echo "DEBUG ALL" > $(LNKCFG)
117         @echo "OPTION QUIET" >> $(LNKCFG)
118         @echo "NAME $@" >> $(LNKCFG)
119         @for i in $(OBJS); do echo "FILE $${i}"; done >> $(LNKCFG)
120         @for i in $(LIBS); do echo "LIBRARY $${i}"; done >> $(LNKCFG)
121         @$(LD) system $(SYSTEM) @$(LNKCFG)
122         @rm $(LNKCFG)
123
124 clean:
125         @rm -f *~ core
126
127 zap:    clean
128         @rm -f *.obj $(EXE)
129
130 strip:
131         @-$(WSTRIP) $(EXE)
132