Remove all references to the GC library, replacing GC_malloc
[fw/sdcc] / Makefile
1 #
2 #
3 #
4
5
6 SHELL           = /bin/sh
7 AUTOCONF        = autoconf
8
9 PRJDIR          = .
10 srcdir          = .
11 include $(srcdir)/Makefile.common
12
13 SDCC_MISC       = debugger/mcs51 sim/ucsim
14 SDCC_LIBS       = support/cpp
15 SDCC_ASLINK     = as/mcs51 as link
16 SDCC_PACKIHX    = packihx
17
18 PKGS            = $(SDCC_MISC) $(SDCC_LIBS) $(SDCC_ASLINK) \
19                   src device/include device/lib $(SDCC_PACKIHX)
20 PKGS_TINI       = $(SDCC_LIBS) $(SDCC_ASLINK) \
21                   src device/include $(SDCC_PACKIHX)
22 PORTS           = mcs51 z80
23
24
25 # Compiling entire program or any subproject
26 # ------------------------------------------
27 all: checkconf sdcc
28
29 tini: checkconf sdcc-tini
30
31 sdcc-libs:
32         for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
33
34 sdcc-cc: sdcc-libs
35         $(MAKE) -C src
36
37 sdcc-aslink:
38         for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done
39
40 sdcc-misc:
41         for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done
42
43 sdcc-packihx:
44         $(MAKE) -C $(SDCC_PACKIHX)
45
46 sdcc-device:
47         $(MAKE) -C device/include
48         $(MAKE) -C device/lib
49
50 sdcc-device-tini:
51         $(MAKE) -C device/include
52         $(MAKE) -C device/lib modelDS390
53
54 sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc-device sdcc-packihx
55         $(MAKE) -f main.mk all
56
57 sdcc-tini: sdcc-cc sdcc-aslink sdcc-device-tini sdcc-packihx
58         $(MAKE) -f main.mk all
59
60 # Some interesting sub rules
61 sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc
62
63 sdcc-base: sdcc-cc sdcc-aslink
64
65 # Compiling and installing everything and runing test
66 # ---------------------------------------------------
67 install:
68         $(MAKE) -f main.mk install
69         @for pkg in $(PKGS); do\
70           $(MAKE) -C $$pkg install ;\
71         done
72
73 install-tini:
74         $(MAKE) -f main.mk install
75         @for pkg in $(PKGS_TINI); do\
76           $(MAKE) -C $$pkg install ;\
77         done
78         $(MAKE) -C device/lib installDS390
79
80
81
82 # Deleting all the installed files
83 # --------------------------------
84 uninstall:
85         $(MAKE) -f main.mk uninstall
86         @for pkg in $(PKGS); do\
87           $(MAKE) -C $$pkg uninstall ;\
88         done
89
90
91 # Deleting all files created by building the program
92 # --------------------------------------------------
93 clean:
94         @echo "+ Cleaning root of the project..."
95         $(MAKE) -f clean.mk clean
96         @echo "+ Cleaning packages in their directories..."
97         for pkg in $(PKGS); do\
98           $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
99         done
100
101
102 # Deleting all files created by configuring or building the program
103 # -----------------------------------------------------------------
104 distclean:
105         @echo "+ DistCleaning root of the project..."
106         $(MAKE) -f clean.mk distclean
107         @echo "+ DistCleaning packages using clean.mk..."
108         for pkg in $(PKGS); do\
109           $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
110         done
111
112
113 # Like clean but some files may still exist
114 # -----------------------------------------
115 mostlyclean: clean
116         $(MAKE) -f clean.mk mostlyclean
117         for pkg in $(PKGS); do\
118           $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\
119         done
120
121
122 # Deleting everything that can reconstructed by this Makefile. It deletes
123 # everything deleted by distclean plus files created by bison, stc.
124 # -----------------------------------------------------------------------
125 realclean: distclean
126         $(MAKE) -f clean.mk realclean
127         for pkg in $(PKGS); do\
128           $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\
129         done
130
131
132 # Creating distribution
133 # ---------------------
134 dist: distclean
135         @if [ -f devel ]; then\
136           rm -f devel; mkdist sdcc; touch devel;\
137         else\
138           mkdist sdcc;\
139         fi
140
141
142 # Performing self-test
143 # --------------------
144 check:
145
146
147 # Performing installation test
148 # ----------------------------
149 installcheck:
150
151
152 # Creating dependencies
153 # ---------------------
154 dep:
155         $(MAKE) -f main.mk dep
156         @for pkg in $(PKGS); do\
157           $(MAKE) -C $$pkg dep ;\
158         done
159
160
161 # My rules
162 # --------
163 newer: distclean
164         @if [ -f start ]; then \
165           tar cvf - \
166             `find . -newer start -type f -print` |\
167           gzip -9c >`date '+%m%d%H%M'`.tgz; \
168         else \
169           echo "start file not found.\n"; \
170           exit 1; \
171         fi
172
173 putcopyright:
174         'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
175
176
177 # Remaking configuration
178 # ----------------------
179 configure: configure.in
180         $(SHELL) $(AUTOCONF)
181
182 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
183         $(SHELL) ./config.status
184
185 Makefiles: makefiles
186
187 makefiles: config.status
188
189 config.status: configure
190         $(SHELL) ./config.status --recheck
191
192 makefiles:
193         $(SHELL) ./config.status
194
195 freshconf: main.mk
196
197 checkconf:
198         @if [ -f devel ]; then\
199           $(MAKE) freshconf;\
200         fi
201
202 # End of Makefile