make it possible to build in verbose mode using make V=1
[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
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=\"$(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 compiler: ecere ear
216 ifdef CROSS_TARGET
217         @$(call echo,Building 2nd stage compiler (host))
218         cd compiler && $(MAKE) $(XBOOT)
219 endif
220         @$(call echo,Building 2nd stage compiler)
221         cd compiler && $(MAKE)
222
223 prepbinaries: compiler ecerecom
224         @$(call echo,Enabling 2nd stage binaries...)
225 ifdef WINDOWS_TARGET
226         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJBINDIR))
227         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV),$(OBJBINDIR))
228         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJBINDIR))
229 endif
230 ifdef LINUX_TARGET
231         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJLIBDIR))
232         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV),$(OBJLIBDIR))
233         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJLIBDIR))
234         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO).0
235         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO).0
236         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO).0
237         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO)
238         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO)
239         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO)
240 endif
241 ifndef WINDOWS_TARGET
242 ifndef LINUX_TARGET
243         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJLIBDIR))
244         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJLIBDIR))
245         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR))
246 endif
247 endif
248         $(call cpq,ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E),$(OBJBINDIR))
249         $(call cpq,compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E),$(OBJBINDIR))
250         $(call cpq,compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E),$(OBJBINDIR))
251         $(call cpq,compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E),$(OBJBINDIR))
252
253 ifdef CROSS_TARGET
254
255 ifdef WINDOWS_HOST
256         $(call cpq,ecere/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecere$(HOST_SOV),$(XOBJBINDIR))
257         $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecereCOM$(HOST_SOV),$(XOBJBINDIR))
258         $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ec$(HOST_SOV),$(XOBJBINDIR))
259 endif
260 ifdef WINDOWS_HOST
261         $(call cpq,ecere/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecere$(HOST_SOV),$(XOBJLIBDIR))
262         $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecereCOM$(HOST_SOV),$(XOBJLIBDIR))
263         $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ec$(HOST_SOV),$(XOBJLIBDIR))
264         ln -sf $(HOST_LP)ecere$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecere$(HOST_SO).0
265         ln -sf $(HOST_LP)ecereCOM$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecereCOM$(HOST_SO).0
266         ln -sf $(HOST_LP)ec$(HOST_SOV) $(XOBJLIBDIR)$(LP)ec$(HOST_SO).0
267         ln -sf $(HOST_LP)ecere$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecere$(HOST_SO)
268         ln -sf $(HOST_LP)ecereCOM$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecereCOM$(HOST_SO)
269         ln -sf $(HOST_LP)ec$(HOST_SOV) $(XOBJLIBDIR)$(LP)ec$(HOST_SO)
270 endif
271 ifndef WINDOWS_HOST
272 ifndef LINUX_HOST
273         $(call cpq,ecere/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecere$(HOST_SO),$(XOBJLIBDIR))
274         $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ecereCOM$(HOST_SO),$(XOBJLIBDIR))
275         $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(HOST_LP)ec$(HOST_SO),$(XOBJLIBDIR))
276 endif
277 endif
278         $(call cpq,ear/cmd/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(HOST_E),$(XOBJBINDIR))
279         $(call cpq,compiler/ecc/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(HOST_E),$(XOBJBINDIR))
280         $(call cpq,compiler/ecp/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(HOST_E),$(XOBJBINDIR))
281         $(call cpq,compiler/ecs/obj/release.$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(HOST_E),$(XOBJBINDIR))
282
283 endif
284
285 epj2make: prepbinaries
286         @$(call echo,Building epj2make...)
287         cd epj2make && $(MAKE)
288
289 ide: prepbinaries
290         @$(call echo,Building IDE...)
291         cd ide && $(MAKE)
292
293 documentor: prepbinaries
294         @$(call echo,Building Documentor...)
295         cd documentor && $(MAKE)
296
297 codeguard: prepcodeguard
298 ifdef CodeGuard
299         @$(call echo,Building CodeGuard client...)
300         cd codeGuard && $(MAKE)
301 endif
302
303 prepcodeguard: eda
304 ifdef CodeGuard
305 ifdef WINDOWS_TARGET
306         $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJBINDIR))
307 endif
308
309 ifdef LINUX_TARGET
310         $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SOV),$(OBJLIBDIR))
311         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO).0
312         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO)
313 endif
314
315 ifndef WINDOWS_TARGET
316 ifndef LINUX_TARGET
317         $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJLIBDIR))
318 endif
319 endif
320 endif
321
322 eda: prepbinaries
323         @$(call echo,Building EDA...)
324         cd eda && $(MAKE)
325
326 emptyoutput: outputdirs
327         $(call rmq,$(OBJLIBDIR)libecereVanilla$(A))
328         $(call rmq,$(SODESTDIR)$(LP)ecere$(SO))
329         $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO))
330         $(call rmq,$(SODESTDIR)$(LP)ec$(SO))
331         $(call rmq,$(SODESTDIR)$(LP)EDA$(SO))
332         $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO))
333 ifdef EDASQLiteCipher
334         $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO))
335 endif
336 ifdef LINUX_TARGET
337         $(call rmq,$(SODESTDIR)$(LP)ecere$(SO).0)
338         $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO).0)
339         $(call rmq,$(SODESTDIR)$(LP)ec$(SO).0)
340         $(call rmq,$(SODESTDIR)$(LP)EDA$(SO).0)
341         $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO).0)
342 ifdef EDASQLiteCipher
343         $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO).0)
344 endif
345         $(call rmq,$(SODESTDIR)$(LP)ecere$(SOV))
346         $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SOV))
347         $(call rmq,$(SODESTDIR)$(LP)ec$(SOV))
348         $(call rmq,$(SODESTDIR)$(LP)EDA$(SOV))
349         $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SOV))
350 ifdef EDASQLiteCipher
351         $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SOV))
352 endif
353 endif   
354         $(call rmq,$(OBJBINDIR)ear$(E))
355         $(call rmq,$(OBJBINDIR)ecc$(E))
356         $(call rmq,$(OBJBINDIR)ecp$(E))
357         $(call rmq,$(OBJBINDIR)ecs$(E))
358         $(call rmq,$(OBJBINDIR)epj2make$(E))
359         $(call rmq,$(OBJBINDIR)ide$(E))
360         $(call rmq,$(OBJBINDIR)documentor$(E))
361 ifdef EDASQLiteCipher
362         $(call rmq,$(OBJBINDIR)CodeGuard$(E))
363 endif
364
365 clean: emptyoutput
366 ifndef LINUX_TARGET
367         cd deps && $(MAKE) clean
368 endif
369         cd ecere && $(MAKE) clean
370         cd compiler && $(MAKE) clean
371         cd ear && $(MAKE) clean
372         cd epj2make && $(MAKE) clean
373         cd ide && $(MAKE) clean
374         cd documentor && $(MAKE) clean
375 ifdef CodeGuard
376         cd codeGuard && $(MAKE) clean
377 endif
378         cd eda && $(MAKE) clean
379         @$(call echo,Done.)
380
381 realclean: outputdirs
382 ifndef LINUX_TARGET
383         cd deps && $(MAKE) realclean
384 endif
385         cd ecere && $(MAKE) realclean
386         cd compiler && $(MAKE) realclean
387         cd ear && $(MAKE) realclean
388         cd epj2make && $(MAKE) realclean
389         cd ide && $(MAKE) realclean
390         cd documentor && $(MAKE) realclean
391 ifdef CodeGuard
392         cd codeGuard && $(MAKE) realclean
393 endif
394         cd eda && $(MAKE) realclean
395         $(call rmrq,obj/$(PLATFORM)/)
396         @$(call echo,Done.)
397
398 distclean: outputdirs
399 ifndef LINUX_TARGET
400         cd deps && $(MAKE) distclean
401 endif
402         cd ecere && $(MAKE) distclean
403         cd compiler && $(MAKE) distclean
404         cd ear && $(MAKE) distclean
405         cd epj2make && $(MAKE) distclean
406         cd ide && $(MAKE) distclean
407         cd documentor && $(MAKE) distclean
408 ifdef CodeGuard
409         cd codeGuard && $(MAKE) distclean
410 endif
411         cd eda && $(MAKE) distclean
412         $(call rmrq,obj/)
413         @$(call echo,Done.)
414
415 DOC = doc/ecere.eCdoc doc/ecereCOM.eCdoc doc/EDA.eCdoc
416
417 BINARIES = \
418         ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV) \
419         ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV) \
420         ecere/obj/vanilla.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereVanilla$(A) \
421         compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV) \
422         compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E) \
423         compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E) \
424         compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E) \
425         ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E) \
426         epj2make/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/epj2make$(E) \
427         documentor/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/documentor$(E) \
428         ide/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ide$(E) \
429         eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV) \
430         eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV)
431
432 ifdef CodeGuard
433 BINARIES += codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E)
434 endif
435
436 ifdef EDASQLiteCipher
437 BINARIES += eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV)
438 endif
439
440 # Making sure everything is in $(OBJBINDIR) and $(OBJLIBDIR)
441 # Shared Libraries (in $(OBJBINDIR) on Windows and $(OBJLIBDIR) otherwise)
442 # Symlinks for libs on Linux
443 # Binaries (always in $(OBJBINDIR)) and Static Libraries (always in $(OBJLIBDIR))
444 prepinstall: $(DOC) $(BINARIES) outputdirs
445
446 ifdef WINDOWS_TARGET
447         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJBINDIR))
448         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJBINDIR))
449         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJBINDIR))
450         $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJBINDIR))
451         $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJBINDIR))
452 ifdef EDASQLiteCipher
453         $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJBINDIR))
454 endif
455 endif
456
457 ifdef LINUX_TARGET
458         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJLIBDIR))
459         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV),$(OBJLIBDIR))
460         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJLIBDIR))
461         $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV),$(OBJLIBDIR))
462         $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV),$(OBJLIBDIR))
463 ifdef EDASQLiteCipher
464         $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV),$(OBJLIBDIR))
465 endif
466         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO).0
467         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO).0
468         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO).0
469         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO).0
470         ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO).0
471 ifdef EDASQLiteCipher
472         ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO).0
473 endif
474         ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO)
475         ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO)
476         ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO)
477         ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO)
478         ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO)
479 ifdef EDASQLiteCipher
480         ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO)
481 endif
482 endif
483
484 ifndef WINDOWS_TARGET
485 ifndef LINUX_TARGET
486         $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJLIBDIR))
487         $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJLIBDIR))
488         $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR))
489         $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJLIBDIR))
490         $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJLIBDIR))
491 ifdef EDASQLiteCipher
492         $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJLIBDIR))
493 endif
494 endif
495 endif
496
497         $(call cpq,ide/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ide$(E),$(OBJBINDIR))
498         $(call cpq,ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E),$(OBJBINDIR))
499         $(call cpq,compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E),$(OBJBINDIR))
500         $(call cpq,compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E),$(OBJBINDIR))
501         $(call cpq,compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E),$(OBJBINDIR))
502         $(call cpq,epj2make/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/epj2make$(E),$(OBJBINDIR))
503         $(call cpq,documentor/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/documentor$(E),$(OBJBINDIR))
504 ifdef CodeGuard
505         $(call cpq,codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E),$(OBJBINDIR))
506 endif
507         $(call cpq,ecere/obj/vanilla.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereVanilla$(A),$(OBJLIBDIR))
508
509 #TODO: Samples?
510 install: prepinstall actualinstall
511         @$(call echo,The Ecere SDK has been installed.)
512
513 copyonlyinstall: actualinstall
514         @$(call echo,The Ecere SDK has been installed. copyonlyinstall.)
515
516 actualinstall:
517 ifdef WINDOWS_TARGET
518         $(call mkdirq,"$(BINDIR)/")
519         $(call mkdirq,"$(DESTSLIBDIR)/")
520         $(call mkdirq,"$(DOCDIR)/")
521         $(call cpq,$(OBJBINDIR)$(LP)ecere$(SO),"$(DESTLIBDIR)/")
522         $(call cpq,$(OBJBINDIR)$(LP)ecereCOM$(SO),"$(DESTLIBDIR)/")
523         $(call cpq,$(OBJBINDIR)$(LP)ec$(SO),"$(DESTLIBDIR)/")
524         $(call cpq,$(OBJBINDIR)$(LP)EDA$(SO),"$(DESTLIBDIR)/")
525         $(call cpq,$(OBJBINDIR)$(LP)EDASQLite$(SO),"$(DESTLIBDIR)/")
526 ifdef EDASQLiteCipher
527         $(call cpq,$(OBJBINDIR)$(LP)EDASQLiteCipher$(SO),"$(DESTLIBDIR)/")
528 endif
529         $(call cpq,$(OBJBINDIR)ide$(E),"$(BINDIR)/")
530         $(call cpq,$(OBJBINDIR)ear$(E),"$(BINDIR)/")
531         $(call cpq,$(OBJBINDIR)ecc$(E),"$(BINDIR)/")
532         $(call cpq,$(OBJBINDIR)ecp$(E),"$(BINDIR)/")
533         $(call cpq,$(OBJBINDIR)ecs$(E),"$(BINDIR)/")
534         $(call cpq,$(OBJBINDIR)epj2make$(E),"$(BINDIR)/")
535         $(call cpq,$(OBJBINDIR)documentor$(E),"$(BINDIR)/")
536 ifdef CodeGuard
537         $(call cpq,$(OBJBINDIR)CodeGuard$(E),"$(BINDIR)/")
538 endif
539         $(call cpq,$(OBJLIBDIR)libecereVanilla$(A),"$(DESTSLIBDIR)/")
540         $(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"
541         $(call cpq,doc/ecere.eCdoc,"$(DOCDIR)/")
542         $(call cpq,doc/ecereCOM.eCdoc,"$(DOCDIR)/")
543         $(call cpq,doc/EDA.eCdoc,"$(DOCDIR)/")
544 endif
545
546 ifdef OSX_TARGET
547         install $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/
548         install $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/
549         install $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/
550         install $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/
551         install $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/
552 ifdef EDASQLiteCipher
553         install $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/
554 endif
555         install $(OBJBINDIR)ide$(E) $(BINDIR)/
556         install $(OBJBINDIR)ear$(E) $(BINDIR)/
557         install $(OBJBINDIR)ecc$(E) $(BINDIR)/
558         install $(OBJBINDIR)ecp$(E) $(BINDIR)/
559         install $(OBJBINDIR)ecs$(E) $(BINDIR)/
560         install $(OBJBINDIR)epj2make$(E) $(BINDIR)/
561         install $(OBJBINDIR)documentor$(E) $(BINDIR)/
562 ifdef CodeGuard
563         install $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/
564 endif
565         install $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/
566         install -d $(DOCDIR)/
567         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"
568         install doc/ecere.eCdoc $(DOCDIR)/
569         install doc/ecereCOM.eCdoc $(DOCDIR)/
570         install doc/EDA.eCdoc $(DOCDIR)/
571         mkdir -p $(MANDIR)/man1
572         cp -pRf share/man/man1/* $(MANDIR)/man1
573         mkdir -p $(SAMPLESDIR)
574         cp -pRf samples/* $(SAMPLESDIR)
575         find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
576         mkdir -p $(EXTRASDIR)
577         cp -pRf extras/* $(EXTRASDIR)
578         chmod 777 $(EXTRASDIR)/audio
579 endif
580
581 ifndef OSX_TARGET
582 ifndef WINDOWS_TARGET
583 ifdef LINUX_TARGET
584         mkdir -p $(DESTLIBDIR)/ec
585         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SOV)
586         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SOV)
587         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SOV)
588         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SOV)
589         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SOV)
590 ifdef EDASQLiteCipher
591         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SOV)
592 endif
593         ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO).0
594         ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO).0
595         ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO).0
596         ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SO).0
597         ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SO).0
598 ifdef EDASQLiteCipher
599         ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO).0
600 endif
601         ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO)
602         ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
603         ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO)
604         ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SO)
605         ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SO)
606         ln -sf ../$(LP)ecere$(SOV) $(DESTLIBDIR)/ec/$(LP)ecere$(SO)
607         ln -sf ../$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/ec/$(LP)ecereCOM$(SO)
608 ifdef EDASQLiteCipher
609         ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO)
610 endif
611 ifndef BSD_HOST
612         install $(INSTALL_FLAGS) -m 644 share/pixmaps/ecere.png $(DESTDIR)$(prefix)/share/pixmaps/ecere.png
613         install $(INSTALL_FLAGS) -m 644 share/applications/ecere.desktop $(DESTDIR)$(prefix)/share/applications/ecere.desktop
614 endif
615 else
616         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/$(LP)ecere$(SO)
617         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
618         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/$(LP)ec$(SO)
619         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/$(LP)EDA$(SO)
620         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/$(LP)EDASQLite$(SO)
621 ifdef EDASQLiteCipher
622         install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)
623 endif
624 endif
625         install $(INSTALL_FLAGS) $(OBJBINDIR)ide$(E) $(BINDIR)/ide$(E)
626         install $(INSTALL_FLAGS) $(OBJBINDIR)ear$(E) $(BINDIR)/ear$(E)
627         install $(INSTALL_FLAGS) $(OBJBINDIR)ecc$(E) $(BINDIR)/ecc$(E)
628         install $(INSTALL_FLAGS) $(OBJBINDIR)ecp$(E) $(BINDIR)/ecp$(E)
629         install $(INSTALL_FLAGS) $(OBJBINDIR)ecs$(E) $(BINDIR)/ecs$(E)
630         install $(INSTALL_FLAGS) $(OBJBINDIR)epj2make$(E) $(BINDIR)/epj2make$(E)
631         install $(INSTALL_FLAGS) $(OBJBINDIR)documentor$(E) $(BINDIR)/documentor$(E)
632 ifdef CodeGuard
633         install $(INSTALL_FLAGS) $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/CodeGuard$(E)
634 endif
635         install $(INSTALL_FLAGS) $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/libecereVanilla$(A)
636 ifdef BSD_HOST
637         install $(INSTALL_FLAGS) -d $(DOCDIR)
638 endif
639         install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
640         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"
641         install $(INSTALL_FLAGS) -m 644 doc/ecere.eCdoc $(DOCDIR)/ecere.eCdoc
642         install $(INSTALL_FLAGS) -m 644 doc/ecereCOM.eCdoc $(DOCDIR)/ecereCOM.eCdoc
643         install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
644         mkdir -p $(MANDIR)/man1
645         cp -pRf share/man/man1/* $(MANDIR)/man1
646         mkdir -p $(SAMPLESDIR)
647         cp -pRf samples/* $(SAMPLESDIR)
648         find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
649         mkdir -p $(EXTRASDIR)
650         cp $(CPFLAGS) extras/* $(EXTRASDIR)
651         chmod 777 $(EXTRASDIR)/audio
652 ifdef DEBIAN_PACKAGE
653         mkdir -p $(DESTDIR)$(prefix)/share/doc/libecere0
654         install $(INSTALL_FLAG) -m644 NEWS $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
655         gzip -n -f -9 $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
656         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-dev
657         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-dev/
658         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-extras
659         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-extras/
660         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-samples
661         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-samples/
662         mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-sdk
663         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-sdk/
664         mkdir -p $(DESTDIR)$(prefix)/share/doc/libecc0
665         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecc0/
666         mkdir -p $(DESTDIR)$(prefix)/share/doc/libecerecom0
667         cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecerecom0/
668         mkdir -p $(DESTDIR)$(prefix)/share/doc/libeda0
669         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libeda0/
670         mkdir -p $(DESTDIR)$(prefix)/share/doc/libedasqlite0
671         ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libedasqlite0/
672 endif
673 endif
674 endif
675
676 uninstall:
677         $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO)")
678         $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO)")
679         $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO)")
680         $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO)")
681         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO)")
682 ifdef EDASQLiteCipher
683         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)")
684 endif
685         $(call rmq,"$(BINDIR)/ide$(E)")
686         $(call rmq,"$(BINDIR)/ear$(E)")
687         $(call rmq,"$(BINDIR)/ecc$(E)")
688         $(call rmq,"$(BINDIR)/ecp$(E)")
689         $(call rmq,"$(BINDIR)/ecs$(E)")
690         $(call rmq,"$(BINDIR)/epj2make$(E)")
691         $(call rmq,"$(BINDIR)/documentor$(E)")
692 ifdef CodeGuard
693         $(call rmq,"$(BINDIR)/CodeGuard$(E)")
694 endif
695         $(call rmq,"$(DESTSLIBDIR)/libecereVanilla$(A)")
696         $(call rmq,"$(DOCDIR)/Ecere Tao of Programming [work in progress].pdf")
697         $(call rmq,"$(DOCDIR)/ecere.eCdoc")
698         $(call rmq,"$(DOCDIR)/ecereCOM.eCdoc")
699         $(call rmq,"$(DOCDIR)/EDA.eCdoc")
700 ifdef LINUX_TARGET
701         $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO).0")
702         $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO).0")
703         $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO).0")
704         $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO).0")
705         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO).0")
706 ifdef EDASQLiteCipher
707         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO).0")
708 endif
709         $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SOV)")
710         $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SOV)")
711         $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SOV)")
712         $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SOV)")
713         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SOV)")
714 ifdef EDASQLiteCipher
715         $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SOV)")
716 endif
717         $(call rmq,"$(DESTDIR)$(prefix)/share/pixmaps/ecere.png")
718         $(call rmq,"$(DESTDIR)$(prefix)/share/applications/ecere.desktop")
719 endif
720         $(call rmdirq,"$(BINDIR)/")
721         $(call rmdirq,"$(DESTLIBDIR)/")
722         $(call rmdirq,"$(DESTSLIBDIR)/")
723         $(call rmdirq,"$(DOCDIR)/")
724 ifdef WINDOWS_TARGET
725         $(call rmdirq,"$(DESTDIR)/")
726 endif
727         @$(call echo,The Ecere SDK has been uninstalled.)
728
729 troubleshoot:
730         @$(call echo,Printing values of some variables.)
731         @$(call echo,HOST_PLATFORM=$(HOST_PLATFORM))
732         @$(call echo,TARGET_PLATFORM=$(TARGET_PLATFORM))
733         @$(call echo,PLATFORM=$(PLATFORM))
734         @$(call echo,LINUX_HOST=$(LINUX_HOST))
735         @$(call echo,LINUX_TARGET=$(LINUX_TARGET))
736         @$(call echo,OSX_HOST=$(OSX_HOST))
737         @$(call echo,OSX_TARGET=$(OSX_TARGET))
738         @$(call echo,WINDOWS_HOST=$(WINDOWS_HOST))
739         @$(call echo,WINDOWS_TARGET=$(WINDOWS_TARGET))
740         @$(call echo,BSD_HOST=$(BSD_HOST))
741         @$(call echo,BSD_TARGET=$(BSD_TARGET))
742         @$(call echo,CCACHE=$(CCACHE))
743         @$(call echo,CCACHE_COMPILE=$(CCACHE_COMPILE))
744         @$(call echo,CCACHE_PREFIX=$(CCACHE_PREFIX))
745         @$(call echo,DISTCC=$(DISTCC))
746         @$(call echo,GCC_PREFIX=$(GCC_PREFIX))
747         @$(call echo,CC=$(CC))
748         @$(call echo,CPP=$(CPP))
749         @$(call echo,ECP=$(ECP))
750         @$(call echo,ECC=$(ECC))
751         @$(call echo,ECS=$(ECS))
752         @$(call echo,EAR=$(EAR))
753         @$(call echo,AS=$(AS))
754         @$(call echo,LD=$(LD))
755         @$(call echo,AR=$(AR))
756         @$(call echo,STRIP=$(STRIP))
757         @$(call echo,UPX=$(UPX))
758         @$(call echo,TARGET_ARCH=$(TARGET_ARCH))
759         @$(call echo,DESTDIR=$(DESTDIR))
760         @$(call echo,PREFIXLIBDIR=$(PREFIXLIBDIR))
761         @$(call echo,ARCH=$(ARCH))
762         @$(call echo,ARCH_FLAGS=$(ARCH_FLAGS))