]> git.sur5r.net Git - cc65/blob - src/ld65/make/gcc.mak
New target 'module'
[cc65] / src / ld65 / make / gcc.mak
1 #
2 # gcc Makefile for ld65
3 #
4
5 # Library dir
6 COMMON  = ../common
7
8 # Default for the compiler lib search path as compiler define
9 CDEFS=-DCC65_LIB=\"/usr/lib/cc65/lib/\"
10 CFLAGS = -g -O2 -Wall -W -I$(COMMON) $(CDEFS)
11 CC=gcc
12 EBIND=emxbind
13 LDFLAGS=
14
15 # Perl script for config file conversion
16 CVT=cfg/cvt-cfg.pl
17
18 # -----------------------------------------------------------------------------
19 # List of all object files
20
21 OBJS =  bin.o           \
22         binfmt.o        \
23         condes.o        \
24         config.o        \
25         dbginfo.o       \
26         dbgsyms.o       \
27         error.o         \
28         exports.o       \
29         expr.o          \
30         extsyms.o       \
31         fileinfo.o      \
32         fileio.o        \
33         fragment.o      \
34         global.o        \
35         library.o       \
36         lineinfo.o      \
37         main.o          \
38         mapfile.o       \
39         o65.o           \
40         objdata.o       \
41         objfile.o       \
42         scanner.o       \
43         segments.o      \
44         tgtcfg.o
45
46 # -----------------------------------------------------------------------------
47 # List of all config includes
48
49 INCS =  apple2.inc      \
50         atari.inc       \
51         bbc.inc         \
52         c64.inc         \
53         c128.inc        \
54         cbm510.inc      \
55         cbm610.inc      \
56         geos.inc        \
57         lunix.inc       \
58         module.inc      \
59         none.inc        \
60         pet.inc         \
61         plus4.inc
62
63 # -----------------------------------------------------------------------------
64 #
65
66 LIBS = $(COMMON)/common.a
67
68
69 EXECS = ld65
70
71 .PHONY: all
72 ifeq (.depend,$(wildcard .depend))
73 all : $(EXECS)
74 include .depend
75 else
76 all:    depend
77         @$(MAKE) -f make/gcc.mak all
78 endif
79
80
81
82 ld65:   $(INCS) $(OBJS) $(LIBS)
83         $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
84         @if [ $(OS2_SHELL) ] ;  then $(EBIND) $@ ; fi
85
86 inc:    $(INCS)
87
88 clean:
89         rm -f *~ core *.map
90
91 zap:    clean
92         rm -f *.o $(INCS) $(EXECS) .depend
93
94
95 # ------------------------------------------------------------------------------
96 # Make the dependencies
97
98 .PHONY: depend dep
99 depend dep:     $(OBJS:.o=.c)
100         @echo "Creating dependency information"
101         $(CC) -I$(COMMON) -MM -MG $^ > .depend
102
103 # -----------------------------------------------------------------------------
104 # Rules to make config includes
105
106 apple2.inc:     cfg/apple2.cfg
107         @$(CVT) $< $@ CfgApple2
108
109 atari.inc:      cfg/atari.cfg
110         @$(CVT) $< $@ CfgAtari
111
112 bbc.inc:        cfg/bbc.cfg
113         @$(CVT) $< $@ CfgBBC
114
115 c64.inc:        cfg/c64.cfg
116         @$(CVT) $< $@ CfgC64
117
118 c128.inc:       cfg/c128.cfg
119         @$(CVT) $< $@ CfgC128
120
121 cbm510.inc:     cfg/cbm510.cfg
122         @$(CVT) $< $@ CfgCBM510
123
124 cbm610.inc:     cfg/cbm610.cfg
125         @$(CVT) $< $@ CfgCBM610
126
127 geos.inc:       cfg/geos.cfg
128         @$(CVT) $< $@ CfgGeos
129
130 lunix.inc:      cfg/lunix.cfg
131         @$(CVT) $< $@ CfgLunix
132
133 module.inc:     cfg/module.cfg
134         @$(CVT) $< $@ CfgModule
135
136 none.inc:       cfg/none.cfg
137         @$(CVT) $< $@ CfgNone
138
139 pet.inc:        cfg/pet.cfg
140         @$(CVT) $< $@ CfgPET
141
142 plus4.inc:      cfg/plus4.cfg
143         @$(CVT) $< $@ CfgPlus4
144
145