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