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
6 include crossplatform.mk
17 XBOOT := $(if $(CROSS_TARGET),GCC_PREFIX= TARGET_PLATFORM=$(HOST_PLATFORM) PLATFORM=$(HOST_PLATFORM),)
22 HOST_SOV := $(HOST_SO)
24 HOST_SOV := $(HOST_SO)$(LIBVER)
33 ifeq "$(TARGET_ARCH)" "x86_64"
34 ifneq "$(wildcard $(SystemDrive)/Program\ Files )" ""
35 export DESTDIR=$(SystemDrive)/Program Files/Ecere SDK
37 export DESTDIR=$(SystemDrive)/Ecere SDK
40 ifdef ProgramFiles(x86)
41 export DESTDIR=${ProgramFiles(x86)}/Ecere SDK
44 export DESTDIR=$(ProgramFiles)/Ecere SDK
46 export DESTDIR=$(SystemDrive)/Ecere SDK
56 export DOCDIR=$(DESTDIR)$(prefix)/doc
60 export BINDIR=$(DESTDIR)$(prefix)/bin
64 export LIBDIR=$(BINDIR)
66 export DESTLIBDIR=$(LIBDIR)
69 export SLIBDIR=$(DESTDIR)$(prefix)/lib
71 export DESTSLIBDIR=$(SLIBDIR)
74 export SAMPLESDIR=$(DESTDIR)$(prefix)/samples
78 export EXTRASDIR=$(DESTDIR)$(prefix)/extras
100 export DOCDIR=$(DESTDIR)$(prefix)/share/ecere/doc
104 export MANDIR=$(DESTDIR)$(prefix)/share/man/
108 export BINDIR=$(DESTDIR)$(prefix)/bin
112 export PREFIXLIBDIR=$(LIBDIR)
114 export PREFIXLIBDIR=$(prefix)/lib/$(TARGET_ARCH)
116 ifeq "$(wildcard $(prefix)/lib/$(TARGET_ARCH) )" ""
117 export PREFIXLIBDIR=$(prefix)/lib
119 ifeq "$(TARGET_ARCH)" "i386-linux-gnu"
120 ifneq "$(wildcard $(prefix)/lib32 )" ""
121 export PREFIXLIBDIR=$(prefix)/lib32
129 CPPFLAGS += -DDEB_HOST_MULTIARCH=\"$(call escspace,$(PREFIXLIBDIR))\"
131 DESTLIBDIR := $(DESTDIR)$(PREFIXLIBDIR)
133 DESTSLIBDIR := $(DESTDIR)$(SLIBDIR)
135 DESTSLIBDIR := $(DESTLIBDIR)
139 export SAMPLESDIR=$(DESTDIR)$(prefix)/share/ecere/samples
143 export EXTRASDIR=$(DESTDIR)$(prefix)/share/ecere/extras
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/
156 all: prepbinaries ide epj2make documentor eda codeguard
157 @$(call echo,The Ecere SDK is fully built.)
160 $(if $(wildcard $(OBJDIR)),,$(call mkdirq,$(OBJDIR)))
161 $(if $(wildcard $(OBJBINDIR)),,$(call mkdirq,$(OBJBINDIR)))
162 $(if $(wildcard $(OBJLIBDIR)),,$(call mkdirq,$(OBJLIBDIR)))
164 $(if $(wildcard $(XOBJDIR)),,$(call mkdirq,$(XOBJDIR)))
165 $(if $(wildcard $(XOBJBINDIR)),,$(call mkdirq,$(XOBJBINDIR)))
166 $(if $(wildcard $(XOBJLIBDIR)),,$(call mkdirq,$(XOBJLIBDIR)))
169 bootstrap: outputdirs
170 cd compiler && $(MAKE) $(XBOOT) bootstrap
175 @$(call echo,Building dependencies (host)...)
176 cd deps && $(MAKE) $(XBOOT)
180 @$(call echo,Building dependencies...)
184 ecere: bootstrap deps
186 @$(call echo,Building 2nd stage ecere (host)...)
188 @$(call echo,Building 2nd stage ecere...)
190 cd ecere && $(MAKE) nores $(XBOOT)
191 cd ear && $(MAKE) nores $(XBOOT)
192 cd ecere && $(MAKE) cleaneceretarget
194 @$(call echo,Building 2nd stage ecere...)
200 @$(call echo,Building eC Core Runtime (host)...)
201 cd ecere && $(MAKE) -f Makefile.ecereCOM $(XBOOT)
203 @$(call echo,Building eC Core Runtime...)
204 cd ecere && $(MAKE) -f Makefile.ecereCOM
206 ecerevanilla: bootstrap
207 @$(call echo,Building Vanilla Ecere...)
208 cd ecere && $(MAKE) -f Makefile.vanilla
210 ear: ecere ecerevanilla
211 @$(call echo,Building ear...)
212 cd ear && cd cmd && $(MAKE) cleantarget
216 cd compiler && $(MAKE) fixprecompile
220 @$(call echo,Building 2nd stage compiler (host))
221 cd compiler && $(MAKE) $(XBOOT)
223 @$(call echo,Building 2nd stage compiler)
224 cd compiler && $(MAKE)
226 prepbinaries: compiler ecerecom
227 @$(call echo,Enabling 2nd stage binaries...)
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))
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)
244 ifndef WINDOWS_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))
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))
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))
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)
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))
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))
288 epj2make: prepbinaries
289 @$(call echo,Building epj2make...)
290 cd epj2make && $(MAKE)
293 @$(call echo,Building IDE...)
296 documentor: prepbinaries
297 @$(call echo,Building Documentor...)
298 cd documentor && $(MAKE)
300 codeguard: prepcodeguard
302 @$(call echo,Building CodeGuard client...)
303 cd codeGuard && $(MAKE)
309 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJBINDIR))
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)
318 ifndef WINDOWS_TARGET
320 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJLIBDIR))
326 @$(call echo,Building EDA...)
329 emptyoutput: outputdirs
330 $(call rmq,$(OBJLIBDIR)libecereVanilla$(A))
331 $(call rmq,$(SODESTDIR)$(LP)ecere$(SO))
332 $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO))
333 $(call rmq,$(SODESTDIR)$(LP)ec$(SO))
334 $(call rmq,$(SODESTDIR)$(LP)EDA$(SO))
335 $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO))
336 ifdef EDASQLiteCipher
337 $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO))
340 $(call rmq,$(SODESTDIR)$(LP)ecere$(SO).0)
341 $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO).0)
342 $(call rmq,$(SODESTDIR)$(LP)ec$(SO).0)
343 $(call rmq,$(SODESTDIR)$(LP)EDA$(SO).0)
344 $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO).0)
345 ifdef EDASQLiteCipher
346 $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO).0)
348 $(call rmq,$(SODESTDIR)$(LP)ecere$(SOV))
349 $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SOV))
350 $(call rmq,$(SODESTDIR)$(LP)ec$(SOV))
351 $(call rmq,$(SODESTDIR)$(LP)EDA$(SOV))
352 $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SOV))
353 ifdef EDASQLiteCipher
354 $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SOV))
357 $(call rmq,$(OBJBINDIR)ear$(E))
358 $(call rmq,$(OBJBINDIR)ecc$(E))
359 $(call rmq,$(OBJBINDIR)ecp$(E))
360 $(call rmq,$(OBJBINDIR)ecs$(E))
361 $(call rmq,$(OBJBINDIR)epj2make$(E))
362 $(call rmq,$(OBJBINDIR)ide$(E))
363 $(call rmq,$(OBJBINDIR)documentor$(E))
364 ifdef EDASQLiteCipher
365 $(call rmq,$(OBJBINDIR)CodeGuard$(E))
370 cd deps && $(MAKE) clean
372 cd ecere && $(MAKE) clean
373 cd compiler && $(MAKE) clean
374 cd ear && $(MAKE) clean
375 cd epj2make && $(MAKE) clean
376 cd ide && $(MAKE) clean
377 cd documentor && $(MAKE) clean
379 cd codeGuard && $(MAKE) clean
381 cd eda && $(MAKE) clean
384 realclean: outputdirs
386 cd deps && $(MAKE) realclean
388 cd ecere && $(MAKE) realclean
389 cd compiler && $(MAKE) realclean
390 cd ear && $(MAKE) realclean
391 cd epj2make && $(MAKE) realclean
392 cd ide && $(MAKE) realclean
393 cd documentor && $(MAKE) realclean
395 cd codeGuard && $(MAKE) realclean
397 cd eda && $(MAKE) realclean
398 $(call rmrq,obj/$(PLATFORM)/)
401 distclean: outputdirs
403 cd deps && $(MAKE) distclean
405 cd ecere && $(MAKE) distclean
406 cd compiler && $(MAKE) distclean
407 cd ear && $(MAKE) distclean
408 cd epj2make && $(MAKE) distclean
409 cd ide && $(MAKE) distclean
410 cd documentor && $(MAKE) distclean
412 cd codeGuard && $(MAKE) distclean
414 cd eda && $(MAKE) distclean
418 DOC = doc/ecere.eCdoc doc/ecereCOM.eCdoc doc/EDA.eCdoc
421 ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV) \
422 ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV) \
423 ecere/obj/vanilla.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereVanilla$(A) \
424 compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV) \
425 compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E) \
426 compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E) \
427 compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E) \
428 ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E) \
429 epj2make/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/epj2make$(E) \
430 documentor/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/documentor$(E) \
431 ide/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ide$(E) \
432 eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV) \
433 eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV)
436 BINARIES += codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E)
439 ifdef EDASQLiteCipher
440 BINARIES += eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV)
443 # Making sure everything is in $(OBJBINDIR) and $(OBJLIBDIR)
444 # Shared Libraries (in $(OBJBINDIR) on Windows and $(OBJLIBDIR) otherwise)
445 # Symlinks for libs on Linux
446 # Binaries (always in $(OBJBINDIR)) and Static Libraries (always in $(OBJLIBDIR))
447 prepinstall: $(DOC) $(BINARIES) outputdirs
450 $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJBINDIR))
451 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJBINDIR))
452 $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJBINDIR))
453 $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJBINDIR))
454 $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJBINDIR))
455 ifdef EDASQLiteCipher
456 $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJBINDIR))
461 $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJLIBDIR))
462 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SOV),$(OBJLIBDIR))
463 $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJLIBDIR))
464 $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV),$(OBJLIBDIR))
465 $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV),$(OBJLIBDIR))
466 ifdef EDASQLiteCipher
467 $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV),$(OBJLIBDIR))
469 ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO).0
470 ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO).0
471 ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO).0
472 ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO).0
473 ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO).0
474 ifdef EDASQLiteCipher
475 ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO).0
477 ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO)
478 ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO)
479 ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO)
480 ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO)
481 ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO)
482 ifdef EDASQLiteCipher
483 ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO)
487 ifndef WINDOWS_TARGET
489 $(call cpq,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SO),$(OBJLIBDIR))
490 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecereCOM$(SO),$(OBJLIBDIR))
491 $(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR))
492 $(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJLIBDIR))
493 $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJLIBDIR))
494 ifdef EDASQLiteCipher
495 $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJLIBDIR))
500 $(call cpq,ide/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ide$(E),$(OBJBINDIR))
501 $(call cpq,ear/cmd/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ear$(E),$(OBJBINDIR))
502 $(call cpq,compiler/ecc/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E),$(OBJBINDIR))
503 $(call cpq,compiler/ecp/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecp$(E),$(OBJBINDIR))
504 $(call cpq,compiler/ecs/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecs$(E),$(OBJBINDIR))
505 $(call cpq,epj2make/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/epj2make$(E),$(OBJBINDIR))
506 $(call cpq,documentor/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/documentor$(E),$(OBJBINDIR))
508 $(call cpq,codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E),$(OBJBINDIR))
510 $(call cpq,ecere/obj/vanilla.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereVanilla$(A),$(OBJLIBDIR))
513 install: prepinstall actualinstall
514 @$(call echo,The Ecere SDK has been installed.)
516 copyonlyinstall: actualinstall
517 @$(call echo,The Ecere SDK has been installed. copyonlyinstall.)
521 $(call mkdirq,"$(BINDIR)/")
522 $(call mkdirq,"$(DESTSLIBDIR)/")
523 $(call mkdirq,"$(DOCDIR)/")
524 $(call cpq,$(OBJBINDIR)$(LP)ecere$(SO),"$(DESTLIBDIR)/")
525 $(call cpq,$(OBJBINDIR)$(LP)ecereCOM$(SO),"$(DESTLIBDIR)/")
526 $(call cpq,$(OBJBINDIR)$(LP)ec$(SO),"$(DESTLIBDIR)/")
527 $(call cpq,$(OBJBINDIR)$(LP)EDA$(SO),"$(DESTLIBDIR)/")
528 $(call cpq,$(OBJBINDIR)$(LP)EDASQLite$(SO),"$(DESTLIBDIR)/")
529 ifdef EDASQLiteCipher
530 $(call cpq,$(OBJBINDIR)$(LP)EDASQLiteCipher$(SO),"$(DESTLIBDIR)/")
532 $(call cpq,$(OBJBINDIR)ide$(E),"$(BINDIR)/")
533 $(call cpq,$(OBJBINDIR)ear$(E),"$(BINDIR)/")
534 $(call cpq,$(OBJBINDIR)ecc$(E),"$(BINDIR)/")
535 $(call cpq,$(OBJBINDIR)ecp$(E),"$(BINDIR)/")
536 $(call cpq,$(OBJBINDIR)ecs$(E),"$(BINDIR)/")
537 $(call cpq,$(OBJBINDIR)epj2make$(E),"$(BINDIR)/")
538 $(call cpq,$(OBJBINDIR)documentor$(E),"$(BINDIR)/")
540 $(call cpq,$(OBJBINDIR)CodeGuard$(E),"$(BINDIR)/")
542 $(call cpq,$(OBJLIBDIR)libecereVanilla$(A),"$(DESTSLIBDIR)/")
543 $(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"
544 $(call cpq,doc/ecere.eCdoc,"$(DOCDIR)/")
545 $(call cpq,doc/ecereCOM.eCdoc,"$(DOCDIR)/")
546 $(call cpq,doc/EDA.eCdoc,"$(DOCDIR)/")
550 install $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/
551 install $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/
552 install $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/
553 install $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/
554 install $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/
555 ifdef EDASQLiteCipher
556 install $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/
558 install $(OBJBINDIR)ide$(E) $(BINDIR)/
559 install $(OBJBINDIR)ear$(E) $(BINDIR)/
560 install $(OBJBINDIR)ecc$(E) $(BINDIR)/
561 install $(OBJBINDIR)ecp$(E) $(BINDIR)/
562 install $(OBJBINDIR)ecs$(E) $(BINDIR)/
563 install $(OBJBINDIR)epj2make$(E) $(BINDIR)/
564 install $(OBJBINDIR)documentor$(E) $(BINDIR)/
566 install $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/
568 install $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/
569 install -d $(DOCDIR)/
570 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"
571 install doc/ecere.eCdoc $(DOCDIR)/
572 install doc/ecereCOM.eCdoc $(DOCDIR)/
573 install doc/EDA.eCdoc $(DOCDIR)/
574 mkdir -p $(MANDIR)/man1
575 cp -pRf share/man/man1/* $(MANDIR)/man1
576 mkdir -p $(SAMPLESDIR)
577 cp -pRf samples/* $(SAMPLESDIR)
578 find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
579 mkdir -p $(EXTRASDIR)
580 cp -pRf extras/* $(EXTRASDIR)
581 chmod 777 $(EXTRASDIR)/audio
585 ifndef WINDOWS_TARGET
587 mkdir -p $(DESTLIBDIR)/ec
588 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SOV)
589 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SOV)
590 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SOV)
591 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SOV)
592 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SOV)
593 ifdef EDASQLiteCipher
594 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SOV)
596 ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO).0
597 ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO).0
598 ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO).0
599 ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SO).0
600 ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SO).0
601 ifdef EDASQLiteCipher
602 ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO).0
604 ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO)
605 ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
606 ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO)
607 ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SO)
608 ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SO)
609 ln -sf ../$(LP)ecere$(SOV) $(DESTLIBDIR)/ec/$(LP)ecere$(SO)
610 ln -sf ../$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/ec/$(LP)ecereCOM$(SO)
611 ifdef EDASQLiteCipher
612 ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO)
615 install $(INSTALL_FLAGS) -m 644 share/pixmaps/ecere.png $(DESTDIR)$(prefix)/share/pixmaps/ecere.png
616 install $(INSTALL_FLAGS) -m 644 share/applications/ecere.desktop $(DESTDIR)$(prefix)/share/applications/ecere.desktop
619 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/$(LP)ecere$(SO)
620 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
621 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/$(LP)ec$(SO)
622 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/$(LP)EDA$(SO)
623 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/$(LP)EDASQLite$(SO)
624 ifdef EDASQLiteCipher
625 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)
628 install $(INSTALL_FLAGS) $(OBJBINDIR)ide$(E) $(BINDIR)/ide$(E)
629 install $(INSTALL_FLAGS) $(OBJBINDIR)ear$(E) $(BINDIR)/ear$(E)
630 install $(INSTALL_FLAGS) $(OBJBINDIR)ecc$(E) $(BINDIR)/ecc$(E)
631 install $(INSTALL_FLAGS) $(OBJBINDIR)ecp$(E) $(BINDIR)/ecp$(E)
632 install $(INSTALL_FLAGS) $(OBJBINDIR)ecs$(E) $(BINDIR)/ecs$(E)
633 install $(INSTALL_FLAGS) $(OBJBINDIR)epj2make$(E) $(BINDIR)/epj2make$(E)
634 install $(INSTALL_FLAGS) $(OBJBINDIR)documentor$(E) $(BINDIR)/documentor$(E)
636 install $(INSTALL_FLAGS) $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/CodeGuard$(E)
638 install $(INSTALL_FLAGS) $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/libecereVanilla$(A)
640 install $(INSTALL_FLAGS) -d $(DOCDIR)
642 install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
643 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"
644 install $(INSTALL_FLAGS) -m 644 doc/ecere.eCdoc $(DOCDIR)/ecere.eCdoc
645 install $(INSTALL_FLAGS) -m 644 doc/ecereCOM.eCdoc $(DOCDIR)/ecereCOM.eCdoc
646 install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
647 mkdir -p $(MANDIR)/man1
648 cp -pRf share/man/man1/* $(MANDIR)/man1
649 mkdir -p $(SAMPLESDIR)
650 cp -pRf samples/* $(SAMPLESDIR)
651 find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
652 mkdir -p $(EXTRASDIR)
653 cp $(CPFLAGS) extras/* $(EXTRASDIR)
654 chmod 777 $(EXTRASDIR)/audio
656 mkdir -p $(DESTDIR)$(prefix)/share/doc/libecere0
657 install $(INSTALL_FLAG) -m644 NEWS $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
658 gzip -n -f -9 $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
659 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-dev
660 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-dev/
661 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-extras
662 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-extras/
663 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-samples
664 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-samples/
665 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-sdk
666 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-sdk/
667 mkdir -p $(DESTDIR)$(prefix)/share/doc/libecc0
668 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecc0/
669 mkdir -p $(DESTDIR)$(prefix)/share/doc/libecerecom0
670 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecerecom0/
671 mkdir -p $(DESTDIR)$(prefix)/share/doc/libeda0
672 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libeda0/
673 mkdir -p $(DESTDIR)$(prefix)/share/doc/libedasqlite0
674 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libedasqlite0/
680 $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO)")
681 $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO)")
682 $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO)")
683 $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO)")
684 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO)")
685 ifdef EDASQLiteCipher
686 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)")
688 $(call rmq,"$(BINDIR)/ide$(E)")
689 $(call rmq,"$(BINDIR)/ear$(E)")
690 $(call rmq,"$(BINDIR)/ecc$(E)")
691 $(call rmq,"$(BINDIR)/ecp$(E)")
692 $(call rmq,"$(BINDIR)/ecs$(E)")
693 $(call rmq,"$(BINDIR)/epj2make$(E)")
694 $(call rmq,"$(BINDIR)/documentor$(E)")
696 $(call rmq,"$(BINDIR)/CodeGuard$(E)")
698 $(call rmq,"$(DESTSLIBDIR)/libecereVanilla$(A)")
699 $(call rmq,"$(DOCDIR)/Ecere Tao of Programming [work in progress].pdf")
700 $(call rmq,"$(DOCDIR)/ecere.eCdoc")
701 $(call rmq,"$(DOCDIR)/ecereCOM.eCdoc")
702 $(call rmq,"$(DOCDIR)/EDA.eCdoc")
704 $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO).0")
705 $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO).0")
706 $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO).0")
707 $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO).0")
708 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO).0")
709 ifdef EDASQLiteCipher
710 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO).0")
712 $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SOV)")
713 $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SOV)")
714 $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SOV)")
715 $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SOV)")
716 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SOV)")
717 ifdef EDASQLiteCipher
718 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SOV)")
720 $(call rmq,"$(DESTDIR)$(prefix)/share/pixmaps/ecere.png")
721 $(call rmq,"$(DESTDIR)$(prefix)/share/applications/ecere.desktop")
723 $(call rmdirq,"$(BINDIR)/")
724 $(call rmdirq,"$(DESTLIBDIR)/")
725 $(call rmdirq,"$(DESTSLIBDIR)/")
726 $(call rmdirq,"$(DOCDIR)/")
728 $(call rmdirq,"$(DESTDIR)/")
730 @$(call echo,The Ecere SDK has been uninstalled.)
733 @$(call echo,Printing values of some variables.)
734 @$(call echo,HOST_PLATFORM=$(HOST_PLATFORM))
735 @$(call echo,TARGET_PLATFORM=$(TARGET_PLATFORM))
736 @$(call echo,PLATFORM=$(PLATFORM))
737 @$(call echo,LINUX_HOST=$(LINUX_HOST))
738 @$(call echo,LINUX_TARGET=$(LINUX_TARGET))
739 @$(call echo,OSX_HOST=$(OSX_HOST))
740 @$(call echo,OSX_TARGET=$(OSX_TARGET))
741 @$(call echo,WINDOWS_HOST=$(WINDOWS_HOST))
742 @$(call echo,WINDOWS_TARGET=$(WINDOWS_TARGET))
743 @$(call echo,BSD_HOST=$(BSD_HOST))
744 @$(call echo,BSD_TARGET=$(BSD_TARGET))
745 @$(call echo,CCACHE=$(CCACHE))
746 @$(call echo,CCACHE_COMPILE=$(CCACHE_COMPILE))
747 @$(call echo,CCACHE_PREFIX=$(CCACHE_PREFIX))
748 @$(call echo,DISTCC=$(DISTCC))
749 @$(call echo,GCC_PREFIX=$(GCC_PREFIX))
750 @$(call echo,CC=$(CC))
751 @$(call echo,CPP=$(CPP))
752 @$(call echo,ECP=$(ECP))
753 @$(call echo,ECC=$(ECC))
754 @$(call echo,ECS=$(ECS))
755 @$(call echo,EAR=$(EAR))
756 @$(call echo,AS=$(AS))
757 @$(call echo,LD=$(LD))
758 @$(call echo,AR=$(AR))
759 @$(call echo,STRIP=$(STRIP))
760 @$(call echo,UPX=$(UPX))
761 @$(call echo,TARGET_ARCH=$(TARGET_ARCH))
762 @$(call echo,DESTDIR=$(DESTDIR))
763 @$(call echo,PREFIXLIBDIR=$(PREFIXLIBDIR))
764 @$(call echo,ARCH=$(ARCH))
765 @$(call echo,ARCH_FLAGS=$(ARCH_FLAGS))