]> git.sur5r.net Git - cc65/blob - src/ld65/make/gcc.mak
Restructuring the object file format
[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         filepath.o      \
34         fragment.o      \
35         global.o        \
36         library.o       \
37         lineinfo.o      \
38         main.o          \
39         mapfile.o       \
40         o65.o           \
41         objdata.o       \
42         objfile.o       \
43         scanner.o       \
44         segments.o      \
45         spool.o         \
46         tgtcfg.o
47
48 # -----------------------------------------------------------------------------
49 # List of all config includes
50
51 INCS =  apple2.inc      \
52         atari.inc       \
53         atmos.inc       \
54         bbc.inc         \
55         c16.inc         \
56         c64.inc         \
57         c128.inc        \
58         cbm510.inc      \
59         cbm610.inc      \
60         geos.inc        \
61         lunix.inc       \
62         module.inc      \
63         none.inc        \
64         pet.inc         \
65         plus4.inc       \
66         vic20.inc
67
68 # -----------------------------------------------------------------------------
69 #
70
71 LIBS = $(COMMON)/common.a
72
73
74 EXECS = ld65
75
76 .PHONY: all
77 ifeq (.depend,$(wildcard .depend))
78 all : $(EXECS)
79 include .depend
80 else
81 all:    depend
82         @$(MAKE) -f make/gcc.mak all
83 endif
84
85
86
87 ld65:   $(INCS) $(OBJS) $(LIBS)
88         $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
89         @if [ $(OS2_SHELL) ] ;  then $(EBIND) $@ ; fi
90
91 inc:    $(INCS)
92
93 clean:
94         rm -f *~ core *.map
95
96 zap:    clean
97         rm -f *.o $(INCS) $(EXECS) .depend
98
99
100 # ------------------------------------------------------------------------------
101 # Make the dependencies
102
103 .PHONY: depend dep
104 depend dep:     $(OBJS:.o=.c)
105         @echo "Creating dependency information"
106         $(CC) -I$(COMMON) -MM -MG $^ > .depend
107
108 # -----------------------------------------------------------------------------
109 # Rules to make config includes
110
111 apple2.inc:     cfg/apple2.cfg
112         @$(CVT) $< $@ CfgApple2
113
114 atari.inc:      cfg/atari.cfg
115         @$(CVT) $< $@ CfgAtari
116
117 atmos.inc:      cfg/atmos.cfg
118         @$(CVT) $< $@ CfgAtmos
119
120 bbc.inc:        cfg/bbc.cfg
121         @$(CVT) $< $@ CfgBBC
122
123 c16.inc:        cfg/c16.cfg
124         @$(CVT) $< $@ CfgC16
125
126 c64.inc:        cfg/c64.cfg
127         @$(CVT) $< $@ CfgC64
128
129 c128.inc:       cfg/c128.cfg
130         @$(CVT) $< $@ CfgC128
131
132 cbm510.inc:     cfg/cbm510.cfg
133         @$(CVT) $< $@ CfgCBM510
134
135 cbm610.inc:     cfg/cbm610.cfg
136         @$(CVT) $< $@ CfgCBM610
137
138 geos.inc:       cfg/geos.cfg
139         @$(CVT) $< $@ CfgGeos
140
141 lunix.inc:      cfg/lunix.cfg
142         @$(CVT) $< $@ CfgLunix
143
144 module.inc:     cfg/module.cfg
145         @$(CVT) $< $@ CfgModule
146
147 nes.inc:        cfg/nes.cfg
148         @$(CVT) $< $@ CfgNES
149
150 none.inc:       cfg/none.cfg
151         @$(CVT) $< $@ CfgNone
152
153 pet.inc:        cfg/pet.cfg
154         @$(CVT) $< $@ CfgPET
155
156 plus4.inc:      cfg/plus4.cfg
157         @$(CVT) $< $@ CfgPlus4
158
159 vic20.inc:      cfg/vic20.cfg
160         @$(CVT) $< $@ CfgVic20
161
162