buildsystem, ide, tarball; moved some variable definitions from Makefile to crossplat...
[sdk] / Makefile
1 .PHONY: all clean realclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make ide documentor eda prepcodeguard codeguard fixprecompile
2 ifneq "$V" "1"
3 .SILENT:
4 endif
5
6 LIBVER := .0.44
7
8 include crossplatform.mk
9 include default.cf
10
11 ifdef BSD_HOST
12 CPFLAGS := -pRf
13 else
14 CPFLAGS := -dpRf
15 endif
16
17 XBOOT := $(if $(CROSS_TARGET),GCC_PREFIX= TARGET_PLATFORM=$(HOST_PLATFORM) PLATFORM=$(HOST_PLATFORM),)
18
19 ifdef WINDOWS_HOST
20 HOST_SOV := $(HOST_SO)
21 else
22 HOST_SOV := $(HOST_SO)$(LIBVER)
23 endif
24
25 ifdef WINDOWS_TARGET
26
27 ifndef DOCDIR
28 export DOCDIR=$(DESTDIR)$(prefix)/doc
29 endif
30
31 ifndef SAMPLESDIR
32 export SAMPLESDIR=$(DESTDIR)$(prefix)/samples
33 endif
34
35 ifndef EXTRASDIR
36 export EXTRASDIR=$(DESTDIR)$(prefix)/extras
37 endif
38
39 else # WINDOWS_TARGET
40
41 ifndef DOCDIR
42 export DOCDIR=$(DESTDIR)$(prefix)/share/ecere/doc
43 endif
44
45 ifndef MANDIR
46 export MANDIR=$(DESTDIR)$(prefix)/share/man/
47 endif
48
49 export CPPFLAGS
50 CPPFLAGS += -DDEB_HOST_MULTIARCH=\"$(call escspace,$(PREFIXLIBDIR))\"
51
52 ifndef SAMPLESDIR
53 export SAMPLESDIR=$(DESTDIR)$(prefix)/share/ecere/samples
54 endif
55
56 ifndef EXTRASDIR
57 export EXTRASDIR=$(DESTDIR)$(prefix)/share/ecere/extras
58 endif
59
60 endif # WINDOWS_TARGET
61
62
63 OBJDIR := obj$(OBJALT)/
64 OBJBINDIR := $(OBJDIR)$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin/
65 OBJLIBDIR := $(OBJDIR)$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/lib/
66 XOBJDIR := obj$(OBJALT)/
67 XOBJBINDIR := $(OBJDIR)$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin/
68 XOBJLIBDIR := $(OBJDIR)$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/lib/
69
70 all: prepbinaries ide epj2make documentor eda codeguard
71         @$(call echo,The Ecere SDK is fully built.)
72
73 outputdirs:
74         $(if $(wildcard $(OBJDIR)),,$(call mkdirq,$(OBJDIR)))
75         $(if $(wildcard $(OBJBINDIR)),,$(call mkdirq,$(OBJBINDIR)))
76         $(if $(wildcard $(OBJLIBDIR)),,$(call mkdirq,$(OBJLIBDIR)))
77 ifdef CROSS_TARGET
78         $(if $(wildcard $(XOBJDIR)),,$(call mkdirq,$(XOBJDIR)))
79         $(if $(wildcard $(XOBJBINDIR)),,$(call mkdirq,$(XOBJBINDIR)))
80         $(if $(wildcard $(XOBJLIBDIR)),,$(call mkdirq,$(XOBJLIBDIR)))
81 endif
82
83 bootstrap: outputdirs
84         cd compiler && $(MAKE) $(XBOOT) bootstrap
85
86 deps:
87 ifdef CROSS_TARGET
88 ifndef LINUX_HOST
89         @$(call echo,Building dependencies (host)...)
90         cd deps && $(MAKE) $(XBOOT)
91 endif
92 endif
93 ifndef LINUX_TARGET
94         @$(call echo,Building dependencies...)
95         cd deps && $(MAKE)
96 endif
97
98 ecere: bootstrap deps
99 ifdef CROSS_TARGET
100         @$(call echo,Building 2nd stage ecere (host)...)
101 else
102         @$(call echo,Building 2nd stage ecere...)
103 endif
104         cd ecere && $(MAKE) nores $(XBOOT)
105         cd ear && $(MAKE) nores $(XBOOT)
106         cd ecere && $(MAKE) cleaneceretarget
107 ifdef CROSS_TARGET
108         @$(call echo,Building 2nd stage ecere...)
109 endif
110         cd ecere && $(MAKE)
111
112 ecerecom: bootstrap
113 ifdef CROSS_TARGET
114         @$(call echo,Building eC Core Runtime (host)...)
115         cd ecere && $(MAKE) -f Makefile.ecereCOM $(XBOOT)
116 endif
117         @$(call echo,Building eC Core Runtime...)
118         cd ecere && $(MAKE) -f Makefile.ecereCOM
119
120 ecerevanilla: bootstrap
121         @$(call echo,Building Vanilla Ecere...)
122         cd ecere && $(MAKE) -f Makefile.vanilla
123
124 ear: ecere ecerevanilla
125         @$(call echo,Building ear...)
126         cd ear && cd cmd && $(MAKE) cleantarget
127         cd ear && $(MAKE)
128
129 fixprecompile:
130         cd compiler && $(MAKE) fixprecompile
131
132 compiler: ecere ear
133 ifdef CROSS_TARGET
134         @$(call echo,Building 2nd stage compiler (host))
135         cd compiler && $(MAKE) $(XBOOT)
136 endif
137         @$(call echo,Building 2nd stage compiler)
138         cd compiler && $(MAKE)
139
140 prepbinaries: compiler ecerecom
141         @$(call echo,Enabling 2nd stage binaries...)
142 ifdef WINDOWS_TARGET
143         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJBINDIR))
144         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV),$(OBJBINDIR))
145         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJBINDIR))
146 endif
147 ifdef LINUX_TARGET
148         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJLIBDIR))
149         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV),$(OBJLIBDIR))
150         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJLIBDIR))
151         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO).0
152         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO).0
153         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO).0
154         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO)
155         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO)
156         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO)
157 endif
158 ifndef WINDOWS_TARGET
159 ifndef LINUX_TARGET
160         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJLIBDIR))
161         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJLIBDIR))
162         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR))
163 endif
164 endif
165         $(call cpq,ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E),$(OBJBINDIR))
166         $(call cpq,compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E),$(OBJBINDIR))
167         $(call cpq,compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E),$(OBJBINDIR))
168         $(call cpq,compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E),$(OBJBINDIR))
169
170 ifdef CROSS_TARGET
171
172 ifdef WINDOWS_HOST
173         $(call cpq,ecere/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecere$(HOST_SOV),$(XOBJBINDIR))
174         $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecereCOM$(HOST_SOV),$(XOBJBINDIR))
175         $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ec$(HOST_SOV),$(XOBJBINDIR))
176 endif
177 ifdef WINDOWS_HOST
178         $(call cpq,ecere/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecere$(HOST_SOV),$(XOBJLIBDIR))
179         $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecereCOM$(HOST_SOV),$(XOBJLIBDIR))
180         $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ec$(HOST_SOV),$(XOBJLIBDIR))
181         ln -sf $(HOST_LP)ecere$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecere$(HOST_SO).0
182         ln -sf $(HOST_LP)ecereCOM$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecereCOM$(HOST_SO).0
183         ln -sf $(HOST_LP)ec$(HOST_SOV) $(XOBJLIBDIR)$(LP)ec$(HOST_SO).0
184         ln -sf $(HOST_LP)ecere$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecere$(HOST_SO)
185         ln -sf $(HOST_LP)ecereCOM$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecereCOM$(HOST_SO)
186         ln -sf $(HOST_LP)ec$(HOST_SOV) $(XOBJLIBDIR)$(LP)ec$(HOST_SO)
187 endif
188 ifndef WINDOWS_HOST
189 ifndef LINUX_HOST
190         $(call cpq,ecere/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecere$(HOST_SO),$(XOBJLIBDIR))
191         $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecereCOM$(HOST_SO),$(XOBJLIBDIR))
192         $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ec$(HOST_SO),$(XOBJLIBDIR))
193 endif
194 endif
195         $(call cpq,ear/cmd/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(HOST_E),$(XOBJBINDIR))
196         $(call cpq,compiler/ecc/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(HOST_E),$(XOBJBINDIR))
197         $(call cpq,compiler/ecp/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(HOST_E),$(XOBJBINDIR))
198         $(call cpq,compiler/ecs/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(HOST_E),$(XOBJBINDIR))
199
200 endif
201
202 epj2make: prepbinaries
203         @$(call echo,Building epj2make...)
204         cd epj2make && $(MAKE)
205
206 ide: prepbinaries
207         @$(call echo,Building IDE...)
208         cd ide && $(MAKE)
209
210 documentor: prepbinaries
211         @$(call echo,Building Documentor...)
212         cd documentor && $(MAKE)
213
214 codeguard: prepcodeguard
215 ifdef CodeGuard
216         @$(call echo,Building CodeGuard client...)
217         cd codeGuard && $(MAKE)
218 endif
219
220 prepcodeguard: eda
221 ifdef CodeGuard
222 ifdef WINDOWS_TARGET
223         $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJBINDIR))
224 endif
225
226 ifdef LINUX_TARGET
227         $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SOV),$(OBJLIBDIR))
228         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO).0
229         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO)
230 endif
231
232 ifndef WINDOWS_TARGET
233 ifndef LINUX_TARGET
234         $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJLIBDIR))
235 endif
236 endif
237 endif
238
239 eda: prepbinaries
240         @$(call echo,Building EDA...)
241         cd eda && $(MAKE)
242
243 emptyoutput: outputdirs
244         $(call rmq,$(OBJLIBDIR)libecereVanilla$(A))
245         $(call rmq,$(SODESTDIR)$(LP)ecere$(SO))
246         $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO))
247         $(call rmq,$(SODESTDIR)$(LP)ec$(SO))
248         $(call rmq,$(SODESTDIR)$(LP)EDA$(SO))
249         $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO))
250 ifdef EDASQLiteCipher
251         $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO))
252 endif
253 ifdef LINUX_TARGET
254         $(call rmq,$(SODESTDIR)$(LP)ecere$(SO).0)
255         $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO).0)
256         $(call rmq,$(SODESTDIR)$(LP)ec$(SO).0)
257         $(call rmq,$(SODESTDIR)$(LP)EDA$(SO).0)
258         $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO).0)
259 ifdef EDASQLiteCipher
260         $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO).0)
261 endif
262         $(call rmq,$(SODESTDIR)$(LP)ecere$(SOV))
263         $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SOV))
264         $(call rmq,$(SODESTDIR)$(LP)ec$(SOV))
265         $(call rmq,$(SODESTDIR)$(LP)EDA$(SOV))
266         $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SOV))
267 ifdef EDASQLiteCipher
268         $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SOV))
269 endif
270 endif   
271         $(call rmq,$(OBJBINDIR)ear$(E))
272         $(call rmq,$(OBJBINDIR)ecc$(E))
273         $(call rmq,$(OBJBINDIR)ecp$(E))
274         $(call rmq,$(OBJBINDIR)ecs$(E))
275         $(call rmq,$(OBJBINDIR)epj2make$(E))
276         $(call rmq,$(OBJBINDIR)ide$(E))
277         $(call rmq,$(OBJBINDIR)documentor$(E))
278 ifdef EDASQLiteCipher
279         $(call rmq,$(OBJBINDIR)CodeGuard$(E))
280 endif
281
282 clean: emptyoutput
283 ifndef LINUX_TARGET
284         cd deps && $(MAKE) clean
285 endif
286         cd ecere && $(MAKE) clean
287         cd compiler && $(MAKE) clean
288         cd ear && $(MAKE) clean
289         cd epj2make && $(MAKE) clean
290         cd ide && $(MAKE) clean
291         cd documentor && $(MAKE) clean
292 ifdef CodeGuard
293         cd codeGuard && $(MAKE) clean
294 endif
295         cd eda && $(MAKE) clean
296         @$(call echo,Done.)
297
298 realclean: outputdirs
299 ifndef LINUX_TARGET
300         cd deps && $(MAKE) realclean
301 endif
302         cd ecere && $(MAKE) realclean
303         cd compiler && $(MAKE) realclean
304         cd ear && $(MAKE) realclean
305         cd epj2make && $(MAKE) realclean
306         cd ide && $(MAKE) realclean
307         cd documentor && $(MAKE) realclean
308 ifdef CodeGuard
309         cd codeGuard && $(MAKE) realclean
310 endif
311         cd eda && $(MAKE) realclean
312         $(call rmrq,obj/$(PLATFORM)/)
313         @$(call echo,Done.)
314
315 distclean: outputdirs
316 ifndef LINUX_TARGET
317         cd deps && $(MAKE) distclean
318 endif
319         cd ecere && $(MAKE) distclean
320         cd compiler && $(MAKE) distclean
321         cd ear && $(MAKE) distclean
322         cd epj2make && $(MAKE) distclean
323         cd ide && $(MAKE) distclean
324         cd documentor && $(MAKE) distclean
325 ifdef CodeGuard
326         cd codeGuard && $(MAKE) distclean
327 endif
328         cd eda && $(MAKE) distclean
329         $(call rmrq,obj/)
330         @$(call echo,Done.)
331
332 DOC = doc/ecere.eCdoc doc/ecereCOM.eCdoc doc/EDA.eCdoc
333
334 BINARIES = \
335         ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV) \
336         ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV) \
337         ecere/obj/vanilla.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereVanilla$(A) \
338         compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV) \
339         compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E) \
340         compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E) \
341         compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E) \
342         ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E) \
343         epj2make/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/epj2make$(E) \
344         documentor/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/documentor$(E) \
345         ide/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ide$(E) \
346         eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV) \
347         eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV)
348
349 ifdef CodeGuard
350 BINARIES += codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E)
351 endif
352
353 ifdef EDASQLiteCipher
354 BINARIES += eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV)
355 endif
356
357 # Making sure everything is in $(OBJBINDIR) and $(OBJLIBDIR)
358 # Shared Libraries (in $(OBJBINDIR) on Windows and $(OBJLIBDIR) otherwise)
359 # Symlinks for libs on Linux
360 # Binaries (always in $(OBJBINDIR)) and Static Libraries (always in $(OBJLIBDIR))
361 prepinstall: $(DOC) $(BINARIES) outputdirs
362
363 ifdef WINDOWS_TARGET
364         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJBINDIR))
365         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJBINDIR))
366         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJBINDIR))
367         $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJBINDIR))
368         $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJBINDIR))
369 ifdef EDASQLiteCipher
370         $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJBINDIR))
371 endif
372 endif
373
374 ifdef LINUX_TARGET
375         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJLIBDIR))
376         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV),$(OBJLIBDIR))
377         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJLIBDIR))
378         $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV),$(OBJLIBDIR))
379         $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV),$(OBJLIBDIR))
380 ifdef EDASQLiteCipher
381         $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV),$(OBJLIBDIR))
382 endif
383         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO).0
384         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO).0
385         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO).0
386         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO).0
387         ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO).0
388 ifdef EDASQLiteCipher
389         ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO).0
390 endif
391         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO)
392         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO)
393         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO)
394         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO)
395         ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO)
396 ifdef EDASQLiteCipher
397         ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO)
398 endif
399 endif
400
401 ifndef WINDOWS_TARGET
402 ifndef LINUX_TARGET
403         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJLIBDIR))
404         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJLIBDIR))
405         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR))
406         $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJLIBDIR))
407         $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJLIBDIR))
408 ifdef EDASQLiteCipher
409         $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJLIBDIR))
410 endif
411 endif
412 endif
413
414         $(call cpq,ide/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ide$(E),$(OBJBINDIR))
415         $(call cpq,ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E),$(OBJBINDIR))
416         $(call cpq,compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E),$(OBJBINDIR))
417         $(call cpq,compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E),$(OBJBINDIR))
418         $(call cpq,compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E),$(OBJBINDIR))
419         $(call cpq,epj2make/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/epj2make$(E),$(OBJBINDIR))
420         $(call cpq,documentor/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/documentor$(E),$(OBJBINDIR))
421 ifdef CodeGuard
422         $(call cpq,codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E),$(OBJBINDIR))
423 endif
424         $(call cpq,ecere/obj/vanilla.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereVanilla$(A),$(OBJLIBDIR))
425
426 #TODO: Samples?
427 install: prepinstall actualinstall
428         @$(call echo,The Ecere SDK has been installed.)
429
430 copyonlyinstall: actualinstall
431         @$(call echo,The Ecere SDK has been installed. copyonlyinstall.)
432
433 actualinstall:
434 ifdef WINDOWS_TARGET
435         $(call mkdirq,"$(BINDIR)/")
436         $(call mkdirq,"$(DESTSLIBDIR)/")
437         $(call mkdirq,"$(DOCDIR)/")
438         $(call cpq,$(OBJBINDIR)$(LP)ecere$(SO),"$(DESTLIBDIR)/")
439         $(call cpq,$(OBJBINDIR)$(LP)ecereCOM$(SO),"$(DESTLIBDIR)/")
440         $(call cpq,$(OBJBINDIR)$(LP)ec$(SO),"$(DESTLIBDIR)/")
441         $(call cpq,$(OBJBINDIR)$(LP)EDA$(SO),"$(DESTLIBDIR)/")
442         $(call cpq,$(OBJBINDIR)$(LP)EDASQLite$(SO),"$(DESTLIBDIR)/")
443 ifdef EDASQLiteCipher
444         $(call cpq,$(OBJBINDIR)$(LP)EDASQLiteCipher$(SO),"$(DESTLIBDIR)/")
445 endif
446         $(call cpq,$(OBJBINDIR)ide$(E),"$(BINDIR)/")
447         $(call cpq,$(OBJBINDIR)ear$(E),"$(BINDIR)/")
448         $(call cpq,$(OBJBINDIR)ecc$(E),"$(BINDIR)/")
449         $(call cpq,$(OBJBINDIR)ecp$(E),"$(BINDIR)/")
450         $(call cpq,$(OBJBINDIR)ecs$(E),"$(BINDIR)/")
451         $(call cpq,$(OBJBINDIR)epj2make$(E),"$(BINDIR)/")
452         $(call cpq,$(OBJBINDIR)documentor$(E),"$(BINDIR)/")
453 ifdef CodeGuard
454         $(call cpq,$(OBJBINDIR)CodeGuard$(E),"$(BINDIR)/")
455 endif
456         $(call cpq,$(OBJLIBDIR)libecereVanilla$(A),"$(DESTSLIBDIR)/")
457         $(call cpq,doc/tao.pdf,"$(DOCDIR)/Ecere Tao of Programming [work in progress].pdf") || echo "The Ecere Tao of Programming is available at http://ecere.com/tao.pdf"
458         $(call cpq,doc/ecere.eCdoc,"$(DOCDIR)/")
459         $(call cpq,doc/ecereCOM.eCdoc,"$(DOCDIR)/")
460         $(call cpq,doc/EDA.eCdoc,"$(DOCDIR)/")
461 endif
462
463 ifdef OSX_TARGET
464         install $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/
465         install $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/
466         install $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/
467         install $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/
468         install $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/
469 ifdef EDASQLiteCipher
470         install $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/
471 endif
472         install $(OBJBINDIR)ide$(E) $(BINDIR)/
473         install $(OBJBINDIR)ear$(E) $(BINDIR)/
474         install $(OBJBINDIR)ecc$(E) $(BINDIR)/
475         install $(OBJBINDIR)ecp$(E) $(BINDIR)/
476         install $(OBJBINDIR)ecs$(E) $(BINDIR)/
477         install $(OBJBINDIR)epj2make$(E) $(BINDIR)/
478         install $(OBJBINDIR)documentor$(E) $(BINDIR)/
479 ifdef CodeGuard
480         install $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/
481 endif
482         install $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/
483         install -d $(DOCDIR)/
484         install doc/tao.pdf $(DOCDIR)/"Ecere Tao of Programming [work in progress].pdf" >/dev/null 2>&1 || echo "The Ecere Tao of Programming is available at http://ecere.com/tao.pdf"
485         install doc/ecere.eCdoc $(DOCDIR)/
486         install doc/ecereCOM.eCdoc $(DOCDIR)/
487         install doc/EDA.eCdoc $(DOCDIR)/
488         mkdir -p $(MANDIR)/man1
489         cp -pRf share/man/man1/* $(MANDIR)/man1
490         mkdir -p $(SAMPLESDIR)
491         cp -pRf samples/* $(SAMPLESDIR)
492         find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
493         mkdir -p $(EXTRASDIR)
494         cp -pRf extras/* $(EXTRASDIR)
495         chmod 777 $(EXTRASDIR)/audio
496 endif
497
498 ifndef OSX_TARGET
499 ifndef WINDOWS_TARGET
500 ifdef LINUX_TARGET
501         mkdir -p $(DESTLIBDIR)/ec
502         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SOV)
503         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SOV)
504         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SOV)
505         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SOV)
506         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SOV)
507 ifdef EDASQLiteCipher
508         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SOV)
509 endif
510         ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO).0
511         ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO).0
512         ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO).0
513         ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SO).0
514         ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SO).0
515 ifdef EDASQLiteCipher
516         ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO).0
517 endif
518         ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO)
519         ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
520         ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO)
521         ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SO)
522         ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SO)
523         ln -sf ../$(LP)ecere$(SOV) $(DESTLIBDIR)/ec/$(LP)ecere$(SO)
524         ln -sf ../$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/ec/$(LP)ecereCOM$(SO)
525 ifdef EDASQLiteCipher
526         ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO)
527 endif
528 ifndef BSD_HOST
529         install $(INSTALL_FLAGS) -m 644 share/pixmaps/ecere.png $(DESTDIR)$(prefix)/share/pixmaps/ecere.png
530         install $(INSTALL_FLAGS) -m 644 share/applications/ecere.desktop $(DESTDIR)$(prefix)/share/applications/ecere.desktop
531 endif
532 else
533         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/$(LP)ecere$(SO)
534         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
535         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/$(LP)ec$(SO)
536         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/$(LP)EDA$(SO)
537         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/$(LP)EDASQLite$(SO)
538 ifdef EDASQLiteCipher
539         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)
540 endif
541 endif
542         install $(INSTALL_FLAGS) $(OBJBINDIR)ide$(E) $(BINDIR)/ide$(E)
543         install $(INSTALL_FLAGS) $(OBJBINDIR)ear$(E) $(BINDIR)/ear$(E)
544         install $(INSTALL_FLAGS) $(OBJBINDIR)ecc$(E) $(BINDIR)/ecc$(E)
545         install $(INSTALL_FLAGS) $(OBJBINDIR)ecp$(E) $(BINDIR)/ecp$(E)
546         install $(INSTALL_FLAGS) $(OBJBINDIR)ecs$(E) $(BINDIR)/ecs$(E)
547         install $(INSTALL_FLAGS) $(OBJBINDIR)epj2make$(E) $(BINDIR)/epj2make$(E)
548         install $(INSTALL_FLAGS) $(OBJBINDIR)documentor$(E) $(BINDIR)/documentor$(E)
549 ifdef CodeGuard
550         install $(INSTALL_FLAGS) $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/CodeGuard$(E)
551 endif
552         install $(INSTALL_FLAGS) $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/libecereVanilla$(A)
553 ifdef BSD_HOST
554         install $(INSTALL_FLAGS) -d $(DOCDIR)
555 endif
556         install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
557         install $(INSTALL_FLAGS) -m 644 doc/tao.pdf $(DOCDIR)/"Ecere Tao of Programming [work in progress].pdf" >/dev/null 2>&1 || echo "The Ecere Tao of Programming is available at http://ecere.com/tao.pdf"
558         install $(INSTALL_FLAGS) -m 644 doc/ecere.eCdoc $(DOCDIR)/ecere.eCdoc
559         install $(INSTALL_FLAGS) -m 644 doc/ecereCOM.eCdoc $(DOCDIR)/ecereCOM.eCdoc
560         install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
561         mkdir -p $(MANDIR)/man1
562         cp -pRf share/man/man1/* $(MANDIR)/man1
563         mkdir -p $(SAMPLESDIR)
564         cp -pRf samples/* $(SAMPLESDIR)
565         find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
566         mkdir -p $(EXTRASDIR)
567         cp $(CPFLAGS) extras/* $(EXTRASDIR)
568         chmod 777 $(EXTRASDIR)/audio
569 ifdef DEBIAN_PACKAGE
570         mkdir -p $(DESTDIR)$(prefix)/share/doc/libecere0
571         install $(INSTALL_FLAG) -m644 NEWS $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
572         gzip -n -f -9 $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
573         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-dev
574         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-dev/
575         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-extras
576         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-extras/
577         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-samples
578         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-samples/
579         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-sdk
580         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-sdk/
581         mkdir -p $(DESTDIR)$(prefix)/share/doc/libecc0
582         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecc0/
583         mkdir -p $(DESTDIR)$(prefix)/share/doc/libecerecom0
584         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecerecom0/
585         mkdir -p $(DESTDIR)$(prefix)/share/doc/libeda0
586         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libeda0/
587         mkdir -p $(DESTDIR)$(prefix)/share/doc/libedasqlite0
588         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libedasqlite0/
589 endif
590 endif
591 endif
592
593 uninstall:
594         $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO)")
595         $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO)")
596         $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO)")
597         $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO)")
598         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO)")
599 ifdef EDASQLiteCipher
600         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)")
601 endif
602         $(call rmq,"$(BINDIR)/ide$(E)")
603         $(call rmq,"$(BINDIR)/ear$(E)")
604         $(call rmq,"$(BINDIR)/ecc$(E)")
605         $(call rmq,"$(BINDIR)/ecp$(E)")
606         $(call rmq,"$(BINDIR)/ecs$(E)")
607         $(call rmq,"$(BINDIR)/epj2make$(E)")
608         $(call rmq,"$(BINDIR)/documentor$(E)")
609 ifdef CodeGuard
610         $(call rmq,"$(BINDIR)/CodeGuard$(E)")
611 endif
612         $(call rmq,"$(DESTSLIBDIR)/libecereVanilla$(A)")
613         $(call rmq,"$(DOCDIR)/Ecere Tao of Programming [work in progress].pdf")
614         $(call rmq,"$(DOCDIR)/ecere.eCdoc")
615         $(call rmq,"$(DOCDIR)/ecereCOM.eCdoc")
616         $(call rmq,"$(DOCDIR)/EDA.eCdoc")
617 ifdef LINUX_TARGET
618         $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO).0")
619         $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO).0")
620         $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO).0")
621         $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO).0")
622         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO).0")
623 ifdef EDASQLiteCipher
624         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO).0")
625 endif
626         $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SOV)")
627         $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SOV)")
628         $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SOV)")
629         $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SOV)")
630         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SOV)")
631 ifdef EDASQLiteCipher
632         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SOV)")
633 endif
634         $(call rmq,"$(DESTDIR)$(prefix)/share/pixmaps/ecere.png")
635         $(call rmq,"$(DESTDIR)$(prefix)/share/applications/ecere.desktop")
636 endif
637         $(call rmdirq,"$(BINDIR)/")
638         $(call rmdirq,"$(DESTLIBDIR)/")
639         $(call rmdirq,"$(DESTSLIBDIR)/")
640         $(call rmdirq,"$(DOCDIR)/")
641 ifdef WINDOWS_TARGET
642         $(call rmdirq,"$(DESTDIR)/")
643 endif
644         @$(call echo,The Ecere SDK has been uninstalled.)
645
646 troubleshoot:
647         @$(call echo,Printing values of some variables.)
648         @$(call echo,HOST_PLATFORM=$(HOST_PLATFORM))
649         @$(call echo,TARGET_PLATFORM=$(TARGET_PLATFORM))
650         @$(call echo,PLATFORM=$(PLATFORM))
651         @$(call echo,LINUX_HOST=$(LINUX_HOST))
652         @$(call echo,LINUX_TARGET=$(LINUX_TARGET))
653         @$(call echo,OSX_HOST=$(OSX_HOST))
654         @$(call echo,OSX_TARGET=$(OSX_TARGET))
655         @$(call echo,WINDOWS_HOST=$(WINDOWS_HOST))
656         @$(call echo,WINDOWS_TARGET=$(WINDOWS_TARGET))
657         @$(call echo,BSD_HOST=$(BSD_HOST))
658         @$(call echo,BSD_TARGET=$(BSD_TARGET))
659         @$(call echo,CCACHE=$(CCACHE))
660         @$(call echo,CCACHE_COMPILE=$(CCACHE_COMPILE))
661         @$(call echo,CCACHE_PREFIX=$(CCACHE_PREFIX))
662         @$(call echo,DISTCC=$(DISTCC))
663         @$(call echo,GCC_PREFIX=$(GCC_PREFIX))
664         @$(call echo,CC=$(CC))
665         @$(call echo,CPP=$(CPP))
666         @$(call echo,ECP=$(ECP))
667         @$(call echo,ECC=$(ECC))
668         @$(call echo,ECS=$(ECS))
669         @$(call echo,EAR=$(EAR))
670         @$(call echo,AS=$(AS))
671         @$(call echo,LD=$(LD))
672         @$(call echo,AR=$(AR))
673         @$(call echo,STRIP=$(STRIP))
674         @$(call echo,UPX=$(UPX))
675         @$(call echo,TARGET_ARCH=$(TARGET_ARCH))
676         @$(call echo,DESTDIR=$(DESTDIR))
677         @$(call echo,PREFIXLIBDIR=$(PREFIXLIBDIR))
678         @$(call echo,ARCH=$(ARCH))
679         @$(call echo,ARCH_FLAGS=$(ARCH_FLAGS))