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
4 include crossplatform.mk
15 XBOOT := $(if $(CROSS_TARGET),GCC_PREFIX= TARGET_PLATFORM=$(HOST_PLATFORM) PLATFORM=$(HOST_PLATFORM),)
20 HOST_SOV := $(HOST_SO)
22 HOST_SOV := $(HOST_SO)$(LIBVER)
31 ifeq "$(HOST_ARCH)" "X64"
32 ifeq "$(wildcard $(SystemDrive)/Program Files )" ""
33 export DESTDIR=$(SystemDrive)/Program Files/Ecere SDK
35 export DESTDIR=$(SystemDrive)/Ecere SDK
38 ifdef ProgramFiles(x86)
39 export DESTDIR=${ProgramFiles(x86)}/Ecere SDK
42 export DESTDIR=$(ProgramFiles)/Ecere SDK
44 export DESTDIR=$(SystemDrive)/Ecere SDK
54 export DOCDIR=$(DESTDIR)$(prefix)/doc
58 export BINDIR=$(DESTDIR)$(prefix)/bin
62 export LIBDIR=$(BINDIR)
64 export DESTLIBDIR=$(LIBDIR)
67 export SLIBDIR=$(DESTDIR)$(prefix)/lib
69 export DESTSLIBDIR=$(SLIBDIR)
72 export SAMPLESDIR=$(DESTDIR)$(prefix)/samples
76 export EXTRASDIR=$(DESTDIR)$(prefix)/extras
98 export DOCDIR=$(DESTDIR)$(prefix)/share/ecere/doc
102 export MANDIR=$(DESTDIR)$(prefix)/share/man/
106 export BINDIR=$(DESTDIR)$(prefix)/bin
109 HOSTTYPE := $(shell uname -m)
112 export PREFIXLIBDIR=$(LIBDIR)
115 ifeq "$(HOSTTYPE)" "x86_64"
117 export PREFIXLIBDIR=$(prefix)/lib
119 export PREFIXLIBDIR=$(prefix)/lib32
122 export PREFIXLIBDIR=$(prefix)/lib
127 DESTLIBDIR := $(DESTDIR)$(PREFIXLIBDIR)
129 DESTSLIBDIR := $(DESTDIR)$(SLIBDIR)
131 DESTSLIBDIR := $(DESTLIBDIR)
135 export SAMPLESDIR=$(DESTDIR)$(prefix)/share/ecere/samples
139 export EXTRASDIR=$(DESTDIR)$(prefix)/share/ecere/extras
145 OBJDIR := obj$(OBJALT)/
146 OBJBINDIR := $(OBJDIR)$(PLATFORM)/bin/
147 OBJLIBDIR := $(OBJDIR)$(PLATFORM)/lib/
148 XOBJDIR := obj$(OBJALT)/
149 XOBJBINDIR := $(OBJDIR)$(HOST_PLATFORM)/bin/
150 XOBJLIBDIR := $(OBJDIR)$(HOST_PLATFORM)/lib/
152 all: prepbinaries ide epj2make documentor eda codeguard
153 @$(call echo,The Ecere SDK is fully built.)
156 $(if $(wildcard $(OBJDIR)),,$(call mkdirq,$(OBJDIR)))
157 $(if $(wildcard $(OBJBINDIR)),,$(call mkdirq,$(OBJBINDIR)))
158 $(if $(wildcard $(OBJLIBDIR)),,$(call mkdirq,$(OBJLIBDIR)))
160 $(if $(wildcard $(XOBJDIR)),,$(call mkdirq,$(XOBJDIR)))
161 $(if $(wildcard $(XOBJBINDIR)),,$(call mkdirq,$(XOBJBINDIR)))
162 $(if $(wildcard $(XOBJLIBDIR)),,$(call mkdirq,$(XOBJLIBDIR)))
165 bootstrap: outputdirs
166 cd compiler && $(MAKE) $(XBOOT) bootstrap
170 @$(call echo,Building dependencies (host)...)
171 cd deps && $(MAKE) $(XBOOT)
173 @$(call echo,Building dependencies...)
176 ecere: bootstrap deps
178 @$(call echo,Building 2nd stage ecere (host)...)
180 @$(call echo,Building 2nd stage ecere...)
182 cd ecere && $(MAKE) nores $(XBOOT)
183 cd ear && $(MAKE) nores $(XBOOT)
184 cd ecere && $(MAKE) cleaneceretarget
186 @$(call echo,Building 2nd stage ecere...)
192 @$(call echo,Building eC Core Runtime (host)...)
193 cd ecere && $(MAKE) -f Makefile.ecereCOM $(XBOOT)
195 @$(call echo,Building eC Core Runtime...)
196 cd ecere && $(MAKE) -f Makefile.ecereCOM
198 ecerevanilla: bootstrap
199 @$(call echo,Building Vanilla Ecere...)
200 cd ecere && $(MAKE) -f Makefile.vanilla
202 ear: ecere ecerevanilla
203 @$(call echo,Building ear...)
204 cd ear && cd cmd && $(MAKE) cleantarget
209 @$(call echo,Building 2nd stage compiler (host))
210 cd compiler && $(MAKE) $(XBOOT)
212 @$(call echo,Building 2nd stage compiler)
213 cd compiler && $(MAKE)
215 prepbinaries: compiler ecerecom
216 @$(call echo,Enabling 2nd stage binaries...)
218 $(call cpq,ecere/obj/release.$(PLATFORM)/$(LP)ecere$(SOV),$(OBJBINDIR))
219 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)/$(LP)ecereCOM$(SOV),$(OBJBINDIR))
220 $(call cpq,compiler/libec/obj/release.$(PLATFORM)/$(LP)ec$(SOV),$(OBJBINDIR))
223 $(call cpq,ecere/obj/release.$(PLATFORM)/$(LP)ecere$(SOV),$(OBJLIBDIR))
224 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)/$(LP)ecereCOM$(SOV),$(OBJLIBDIR))
225 $(call cpq,compiler/libec/obj/release.$(PLATFORM)/$(LP)ec$(SOV),$(OBJLIBDIR))
226 ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO).0
227 ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO).0
228 ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO).0
229 ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO)
230 ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO)
231 ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO)
233 ifndef WINDOWS_TARGET
235 $(call cpq,ecere/obj/release.$(PLATFORM)/$(LP)ecere$(SO),$(OBJLIBDIR))
236 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)/$(LP)ecereCOM$(SO),$(OBJLIBDIR))
237 $(call cpq,compiler/libec/obj/release.$(PLATFORM)/$(LP)ec$(SO),$(OBJLIBDIR))
240 $(call cpq,ear/cmd/obj/release.$(PLATFORM)/ear$(E),$(OBJBINDIR))
241 $(call cpq,compiler/ecc/obj/release.$(PLATFORM)/ecc$(E),$(OBJBINDIR))
242 $(call cpq,compiler/ecp/obj/release.$(PLATFORM)/ecp$(E),$(OBJBINDIR))
243 $(call cpq,compiler/ecs/obj/release.$(PLATFORM)/ecs$(E),$(OBJBINDIR))
248 $(call cpq,ecere/obj/release.$(HOST_PLATFORM)/$(HOST_LP)ecere$(HOST_SOV),$(XOBJBINDIR))
249 $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)/$(HOST_LP)ecereCOM$(HOST_SOV),$(XOBJBINDIR))
250 $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)/$(HOST_LP)ec$(HOST_SOV),$(XOBJBINDIR))
253 $(call cpq,ecere/obj/release.$(HOST_PLATFORM)/$(HOST_LP)ecere$(HOST_SOV),$(XOBJLIBDIR))
254 $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)/$(HOST_LP)ecereCOM$(HOST_SOV),$(XOBJLIBDIR))
255 $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)/$(HOST_LP)ec$(HOST_SOV),$(XOBJLIBDIR))
256 ln -sf $(HOST_LP)ecere$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecere$(HOST_SO).0
257 ln -sf $(HOST_LP)ecereCOM$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecereCOM$(HOST_SO).0
258 ln -sf $(HOST_LP)ec$(HOST_SOV) $(XOBJLIBDIR)$(LP)ec$(HOST_SO).0
259 ln -sf $(HOST_LP)ecere$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecere$(HOST_SO)
260 ln -sf $(HOST_LP)ecereCOM$(HOST_SOV) $(XOBJLIBDIR)$(LP)ecereCOM$(HOST_SO)
261 ln -sf $(HOST_LP)ec$(HOST_SOV) $(XOBJLIBDIR)$(LP)ec$(HOST_SO)
265 $(call cpq,ecere/obj/release.$(HOST_PLATFORM)/$(HOST_LP)ecere$(HOST_SO),$(XOBJLIBDIR))
266 $(call cpq,ecere/obj/ecereCOM.release.$(HOST_PLATFORM)/$(HOST_LP)ecereCOM$(HOST_SO),$(XOBJLIBDIR))
267 $(call cpq,compiler/libec/obj/release.$(HOST_PLATFORM)/$(HOST_LP)ec$(HOST_SO),$(XOBJLIBDIR))
270 $(call cpq,ear/cmd/obj/release.$(HOST_PLATFORM)/ear$(HOST_E),$(XOBJBINDIR))
271 $(call cpq,compiler/ecc/obj/release.$(HOST_PLATFORM)/ecc$(HOST_E),$(XOBJBINDIR))
272 $(call cpq,compiler/ecp/obj/release.$(HOST_PLATFORM)/ecp$(HOST_E),$(XOBJBINDIR))
273 $(call cpq,compiler/ecs/obj/release.$(HOST_PLATFORM)/ecs$(HOST_E),$(XOBJBINDIR))
277 epj2make: prepbinaries
278 @$(call echo,Building epj2make...)
279 cd epj2make && $(MAKE)
282 @$(call echo,Building IDE...)
285 documentor: prepbinaries
286 @$(call echo,Building Documentor...)
287 cd documentor && $(MAKE)
289 codeguard: prepcodeguard
291 @$(call echo,Building CodeGuard client...)
292 cd codeGuard && $(MAKE)
298 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJBINDIR))
302 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SOV),$(OBJLIBDIR))
303 ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO).0
304 ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO)
307 ifndef WINDOWS_TARGET
309 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJLIBDIR))
315 @$(call echo,Building EDA...)
318 emptyoutput: outputdirs
319 $(call rmq,$(OBJLIBDIR)libecereVanilla$(A))
320 $(call rmq,$(SODESTDIR)$(LP)ecere$(SO))
321 $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO))
322 $(call rmq,$(SODESTDIR)$(LP)ec$(SO))
323 $(call rmq,$(SODESTDIR)$(LP)EDA$(SO))
324 $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO))
325 ifdef EDASQLiteCipher
326 $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO))
329 $(call rmq,$(SODESTDIR)$(LP)ecere$(SO).0)
330 $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO).0)
331 $(call rmq,$(SODESTDIR)$(LP)ec$(SO).0)
332 $(call rmq,$(SODESTDIR)$(LP)EDA$(SO).0)
333 $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SO).0)
334 ifdef EDASQLiteCipher
335 $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO).0)
337 $(call rmq,$(SODESTDIR)$(LP)ecere$(SOV))
338 $(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SOV))
339 $(call rmq,$(SODESTDIR)$(LP)ec$(SOV))
340 $(call rmq,$(SODESTDIR)$(LP)EDA$(SOV))
341 $(call rmq,$(SODESTDIR)$(LP)EDASQLite$(SOV))
342 ifdef EDASQLiteCipher
343 $(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SOV))
346 $(call rmq,$(OBJBINDIR)ear$(E))
347 $(call rmq,$(OBJBINDIR)ecc$(E))
348 $(call rmq,$(OBJBINDIR)ecp$(E))
349 $(call rmq,$(OBJBINDIR)ecs$(E))
350 $(call rmq,$(OBJBINDIR)epj2make$(E))
351 $(call rmq,$(OBJBINDIR)ide$(E))
352 $(call rmq,$(OBJBINDIR)documentor$(E))
353 ifdef EDASQLiteCipher
354 $(call rmq,$(OBJBINDIR)CodeGuard$(E))
358 cd deps && $(MAKE) clean
359 cd ecere && $(MAKE) clean
360 cd compiler && $(MAKE) clean
361 cd ear && $(MAKE) clean
362 cd epj2make && $(MAKE) clean
363 cd ide && $(MAKE) clean
364 cd documentor && $(MAKE) clean
366 cd codeGuard && $(MAKE) clean
368 cd eda && $(MAKE) clean
371 realclean: outputdirs
372 cd deps && $(MAKE) realclean
373 cd ecere && $(MAKE) realclean
374 cd compiler && $(MAKE) realclean
375 cd ear && $(MAKE) realclean
376 cd epj2make && $(MAKE) realclean
377 cd ide && $(MAKE) realclean
378 cd documentor && $(MAKE) realclean
380 cd codeGuard && $(MAKE) realclean
382 cd eda && $(MAKE) realclean
383 $(call rmrq,obj/$(PLATFORM)/)
386 distclean: outputdirs
387 cd deps && $(MAKE) distclean
388 cd ecere && $(MAKE) distclean
389 cd compiler && $(MAKE) distclean
390 cd ear && $(MAKE) distclean
391 cd epj2make && $(MAKE) distclean
392 cd ide && $(MAKE) distclean
393 cd documentor && $(MAKE) distclean
395 cd codeGuard && $(MAKE) distclean
397 cd eda && $(MAKE) distclean
401 DOC = doc/ecere.eCdoc doc/ecereCOM.eCdoc doc/EDA.eCdoc
404 ecere/obj/release.$(PLATFORM)/$(LP)ecere$(SOV) \
405 ecere/obj/ecereCOM.release.$(PLATFORM)/$(LP)ecereCOM$(SOV) \
406 ecere/obj/vanilla.$(PLATFORM)/libecereVanilla$(A) \
407 compiler/libec/obj/release.$(PLATFORM)/$(LP)ec$(SOV) \
408 compiler/ecp/obj/release.$(PLATFORM)/ecp$(E) \
409 compiler/ecc/obj/release.$(PLATFORM)/ecc$(E) \
410 compiler/ecs/obj/release.$(PLATFORM)/ecs$(E) \
411 ear/cmd/obj/release.$(PLATFORM)/ear$(E) \
412 epj2make/obj/release.$(PLATFORM)/epj2make$(E) \
413 documentor/obj/release.$(PLATFORM)/documentor$(E) \
414 ide/obj/release.$(PLATFORM)/ide$(E) \
415 eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SOV) \
416 eda/drivers/sqlite/obj/release.$(PLATFORM)/$(LP)EDASQLite$(SOV)
419 BINARIES += codeGuard/obj/release.$(PLATFORM)/CodeGuard$(E)
422 ifdef EDASQLiteCipher
423 BINARIES += eda/drivers/sqliteCipher/obj/release.$(PLATFORM)/$(LP)EDASQLiteCipher$(SOV)
426 # Making sure everything is in $(OBJBINDIR) and $(OBJLIBDIR)
427 # Shared Libraries (in $(OBJBINDIR) on Windows and $(OBJLIBDIR) otherwise)
428 # Symlinks for libs on Linux
429 # Binaries (always in $(OBJBINDIR)) and Static Libraries (always in $(OBJLIBDIR))
430 prepinstall: $(DOC) $(BINARIES) outputdirs
433 $(call cpq,ecere/obj/release.$(PLATFORM)/$(LP)ecere$(SO),$(OBJBINDIR))
434 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)/$(LP)ecereCOM$(SO),$(OBJBINDIR))
435 $(call cpq,compiler/libec/obj/release.$(PLATFORM)/$(LP)ec$(SO),$(OBJBINDIR))
436 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJBINDIR))
437 $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)/$(LP)EDASQLite$(SO),$(OBJBINDIR))
438 ifdef EDASQLiteCipher
439 $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)/$(LP)EDASQLiteCipher$(SO),$(OBJBINDIR))
444 $(call cpq,ecere/obj/release.$(PLATFORM)/$(LP)ecere$(SOV),$(OBJLIBDIR))
445 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)/$(LP)ecereCOM$(SOV),$(OBJLIBDIR))
446 $(call cpq,compiler/libec/obj/release.$(PLATFORM)/$(LP)ec$(SOV),$(OBJLIBDIR))
447 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SOV),$(OBJLIBDIR))
448 $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)/$(LP)EDASQLite$(SOV),$(OBJLIBDIR))
449 ifdef EDASQLiteCipher
450 $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)/$(LP)EDASQLiteCipher$(SOV),$(OBJLIBDIR))
452 ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO).0
453 ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO).0
454 ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO).0
455 ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO).0
456 ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO).0
457 ifdef EDASQLiteCipher
458 ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO).0
460 ln -sf $(LP)ecere$(SOV) $(OBJLIBDIR)$(LP)ecere$(SO)
461 ln -sf $(LP)ecereCOM$(SOV) $(OBJLIBDIR)$(LP)ecereCOM$(SO)
462 ln -sf $(LP)ec$(SOV) $(OBJLIBDIR)$(LP)ec$(SO)
463 ln -sf $(LP)EDA$(SOV) $(OBJLIBDIR)$(LP)EDA$(SO)
464 ln -sf $(LP)EDASQLite$(SOV) $(OBJLIBDIR)$(LP)EDASQLite$(SO)
465 ifdef EDASQLiteCipher
466 ln -sf $(LP)EDASQLiteCipher$(SOV) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO)
470 ifndef WINDOWS_TARGET
472 $(call cpq,ecere/obj/release.$(PLATFORM)/$(LP)ecere$(SO),$(OBJLIBDIR))
473 $(call cpq,ecere/obj/ecereCOM.release.$(PLATFORM)/$(LP)ecereCOM$(SO),$(OBJLIBDIR))
474 $(call cpq,compiler/libec/obj/release.$(PLATFORM)/$(LP)ec$(SO),$(OBJLIBDIR))
475 $(call cpq,eda/libeda/obj/release.$(PLATFORM)/$(LP)EDA$(SO),$(OBJLIBDIR))
476 $(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)/$(LP)EDASQLite$(SO),$(OBJLIBDIR))
477 ifdef EDASQLiteCipher
478 $(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)/$(LP)EDASQLiteCipher$(SO),$(OBJLIBDIR))
483 $(call cpq,ide/obj/release.$(PLATFORM)/ide$(E),$(OBJBINDIR))
484 $(call cpq,ear/cmd/obj/release.$(PLATFORM)/ear$(E),$(OBJBINDIR))
485 $(call cpq,compiler/ecc/obj/release.$(PLATFORM)/ecc$(E),$(OBJBINDIR))
486 $(call cpq,compiler/ecp/obj/release.$(PLATFORM)/ecp$(E),$(OBJBINDIR))
487 $(call cpq,compiler/ecs/obj/release.$(PLATFORM)/ecs$(E),$(OBJBINDIR))
488 $(call cpq,epj2make/obj/release.$(PLATFORM)/epj2make$(E),$(OBJBINDIR))
489 $(call cpq,documentor/obj/release.$(PLATFORM)/documentor$(E),$(OBJBINDIR))
491 $(call cpq,codeGuard/obj/release.$(PLATFORM)/CodeGuard$(E),$(OBJBINDIR))
493 $(call cpq,ecere/obj/vanilla.$(PLATFORM)/libecereVanilla$(A),$(OBJLIBDIR))
496 install: prepinstall actualinstall
497 @$(call echo,The Ecere SDK has been installed.)
499 copyonlyinstall: actualinstall
500 @$(call echo,The Ecere SDK has been installed. copyonlyinstall.)
504 $(call mkdirq,"$(BINDIR)/")
505 $(call mkdirq,"$(DESTSLIBDIR)/")
506 $(call mkdirq,"$(DOCDIR)/")
507 $(call cpq,$(OBJBINDIR)$(LP)ecere$(SO),"$(DESTLIBDIR)/")
508 $(call cpq,$(OBJBINDIR)$(LP)ecereCOM$(SO),"$(DESTLIBDIR)/")
509 $(call cpq,$(OBJBINDIR)$(LP)ec$(SO),"$(DESTLIBDIR)/")
510 $(call cpq,$(OBJBINDIR)$(LP)EDA$(SO),"$(DESTLIBDIR)/")
511 $(call cpq,$(OBJBINDIR)$(LP)EDASQLite$(SO),"$(DESTLIBDIR)/")
512 ifdef EDASQLiteCipher
513 $(call cpq,$(OBJBINDIR)$(LP)EDASQLiteCipher$(SO),"$(DESTLIBDIR)/")
515 $(call cpq,$(OBJBINDIR)ide$(E),"$(BINDIR)/")
516 $(call cpq,$(OBJBINDIR)ear$(E),"$(BINDIR)/")
517 $(call cpq,$(OBJBINDIR)ecc$(E),"$(BINDIR)/")
518 $(call cpq,$(OBJBINDIR)ecp$(E),"$(BINDIR)/")
519 $(call cpq,$(OBJBINDIR)ecs$(E),"$(BINDIR)/")
520 $(call cpq,$(OBJBINDIR)epj2make$(E),"$(BINDIR)/")
521 $(call cpq,$(OBJBINDIR)documentor$(E),"$(BINDIR)/")
523 $(call cpq,$(OBJBINDIR)CodeGuard$(E),"$(BINDIR)/")
525 $(call cpq,$(OBJLIBDIR)libecereVanilla$(A),"$(DESTSLIBDIR)/")
526 $(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"
527 $(call cpq,doc/ecere.eCdoc,"$(DOCDIR)/")
528 $(call cpq,doc/ecereCOM.eCdoc,"$(DOCDIR)/")
529 $(call cpq,doc/EDA.eCdoc,"$(DOCDIR)/")
533 install $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/
534 install $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/
535 install $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/
536 install $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/
537 install $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/
538 ifdef EDASQLiteCipher
539 install $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/
541 install $(OBJBINDIR)ide$(E) $(BINDIR)/
542 install $(OBJBINDIR)ear$(E) $(BINDIR)/
543 install $(OBJBINDIR)ecc$(E) $(BINDIR)/
544 install $(OBJBINDIR)ecp$(E) $(BINDIR)/
545 install $(OBJBINDIR)ecs$(E) $(BINDIR)/
546 install $(OBJBINDIR)epj2make$(E) $(BINDIR)/
547 install $(OBJBINDIR)documentor$(E) $(BINDIR)/
549 install $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/
551 install $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/
552 install -d $(DOCDIR)/
553 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"
554 install doc/ecere.eCdoc $(DOCDIR)/
555 install doc/ecereCOM.eCdoc $(DOCDIR)/
556 install doc/EDA.eCdoc $(DOCDIR)/
557 mkdir -p $(MANDIR)/man1
558 cp -pRf share/man/man1/* $(MANDIR)/man1
559 mkdir -p $(SAMPLESDIR)
560 cp -pRf samples/* $(SAMPLESDIR)
561 find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
562 mkdir -p $(EXTRASDIR)
563 cp -pRf extras/* $(EXTRASDIR)
564 chmod 777 $(EXTRASDIR)/audio
568 ifndef WINDOWS_TARGET
570 mkdir -p $(DESTLIBDIR)/ec
571 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SOV)
572 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SOV)
573 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SOV)
574 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SOV) $(DESTLIBDIR)/$(LP)EDA$(SOV)
575 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SOV) $(DESTLIBDIR)/$(LP)EDASQLite$(SOV)
576 ifdef EDASQLiteCipher
577 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SOV)
579 ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO).0
580 ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO).0
581 ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO).0
582 ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/$(LP)EDA$(SO).0
583 ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/$(LP)EDASQLite$(SO).0
584 ifdef EDASQLiteCipher
585 ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO).0
587 ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO)
588 ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
589 ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO)
590 ln -sf $(LP)EDA$(SOV) $(DESTLIBDIR)/$(LP)EDA$(SO)
591 ln -sf $(LP)EDASQLite$(SOV) $(DESTLIBDIR)/$(LP)EDASQLite$(SO)
592 ln -sf $(PREFIXLIBDIR)/$(LP)ecere$(SOV) $(DESTLIBDIR)/ec/$(LP)ecere$(SO)
593 ln -sf $(PREFIXLIBDIR)/$(LP)ecereCOM$(SOV) $(DESTLIBDIR)/ec/$(LP)ecereCOM$(SO)
594 # ln -sf $(PREFIXLIBDIR)/ec/$(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO)
595 ln -sf $(PREFIXLIBDIR)/$(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SO)
596 ln -sf $(PREFIXLIBDIR)/$(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SO)
597 ifdef EDASQLiteCipher
598 ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)
601 install $(INSTALL_FLAGS) -m 644 share/pixmaps/ecere.png $(DESTDIR)$(prefix)/share/pixmaps/ecere.png
602 install $(INSTALL_FLAGS) -m 644 share/applications/ecere.desktop $(DESTDIR)$(prefix)/share/applications/ecere.desktop
605 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecere$(SO) $(DESTLIBDIR)/$(LP)ecere$(SO)
606 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ecereCOM$(SO) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
607 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/$(LP)ec$(SO)
608 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/$(LP)EDA$(SO)
609 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/$(LP)EDASQLite$(SO)
610 ifdef EDASQLiteCipher
611 install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)
614 install $(INSTALL_FLAGS) $(OBJBINDIR)ide$(E) $(BINDIR)/ide$(E)
615 install $(INSTALL_FLAGS) $(OBJBINDIR)ear$(E) $(BINDIR)/ear$(E)
616 install $(INSTALL_FLAGS) $(OBJBINDIR)ecc$(E) $(BINDIR)/ecc$(E)
617 install $(INSTALL_FLAGS) $(OBJBINDIR)ecp$(E) $(BINDIR)/ecp$(E)
618 install $(INSTALL_FLAGS) $(OBJBINDIR)ecs$(E) $(BINDIR)/ecs$(E)
619 install $(INSTALL_FLAGS) $(OBJBINDIR)epj2make$(E) $(BINDIR)/epj2make$(E)
620 install $(INSTALL_FLAGS) $(OBJBINDIR)documentor$(E) $(BINDIR)/documentor$(E)
622 install $(INSTALL_FLAGS) $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/CodeGuard$(E)
624 install $(INSTALL_FLAGS) $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/libecereVanilla$(A)
625 install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
626 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"
627 install $(INSTALL_FLAGS) -m 644 doc/ecere.eCdoc $(DOCDIR)/ecere.eCdoc
628 install $(INSTALL_FLAGS) -m 644 doc/ecereCOM.eCdoc $(DOCDIR)/ecereCOM.eCdoc
629 install $(INSTALL_FLAGS) -m 644 doc/EDA.eCdoc $(DOCDIR)/EDA.eCdoc
630 mkdir -p $(MANDIR)/man1
631 cp -pRf share/man/man1/* $(MANDIR)/man1
632 mkdir -p $(SAMPLESDIR)
633 cp -pRf samples/* $(SAMPLESDIR)
634 find $(SAMPLESDIR) -type d -exec chmod 777 {} \;
635 mkdir -p $(EXTRASDIR)
636 cp $(CPFLAGS) extras/* $(EXTRASDIR)
637 chmod 777 $(EXTRASDIR)/audio
639 mkdir -p $(DESTDIR)$(prefix)/share/doc/libecere0
640 install $(INSTALL_FLAG) -m644 NEWS $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
641 gzip -n -f -9 $(DESTDIR)$(prefix)/share/doc/libecere0/changelog
642 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-dev
643 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-dev/
644 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-extras
645 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-extras/
646 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-samples
647 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-samples/
648 mkdir -p $(DESTDIR)$(prefix)/share/doc/ecere-sdk
649 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/ecere-sdk/
650 mkdir -p $(DESTDIR)$(prefix)/share/doc/libecc0
651 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecc0/
652 mkdir -p $(DESTDIR)$(prefix)/share/doc/libecerecom0
653 cp $(DESTDIR)$(prefix)/share/doc/libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecerecom0/
654 mkdir -p $(DESTDIR)$(prefix)/share/doc/libeda0
655 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libeda0/
656 mkdir -p $(DESTDIR)$(prefix)/share/doc/libedasqlite0
657 ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libedasqlite0/
663 $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO)")
664 $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO)")
665 $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO)")
666 $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO)")
667 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO)")
668 ifdef EDASQLiteCipher
669 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)")
671 $(call rmq,"$(BINDIR)/ide$(E)")
672 $(call rmq,"$(BINDIR)/ear$(E)")
673 $(call rmq,"$(BINDIR)/ecc$(E)")
674 $(call rmq,"$(BINDIR)/ecp$(E)")
675 $(call rmq,"$(BINDIR)/ecs$(E)")
676 $(call rmq,"$(BINDIR)/epj2make$(E)")
677 $(call rmq,"$(BINDIR)/documentor$(E)")
679 $(call rmq,"$(BINDIR)/CodeGuard$(E)")
681 $(call rmq,"$(DESTSLIBDIR)/libecereVanilla$(A)")
682 $(call rmq,"$(DOCDIR)/Ecere Tao of Programming [work in progress].pdf")
683 $(call rmq,"$(DOCDIR)/ecere.eCdoc")
684 $(call rmq,"$(DOCDIR)/ecereCOM.eCdoc")
685 $(call rmq,"$(DOCDIR)/EDA.eCdoc")
687 $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SO).0")
688 $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SO).0")
689 $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SO).0")
690 $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SO).0")
691 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO).0")
692 ifdef EDASQLiteCipher
693 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO).0")
695 $(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SOV)")
696 $(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SOV)")
697 $(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SOV)")
698 $(call rmq,"$(DESTLIBDIR)/$(LP)EDA$(SOV)")
699 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLite$(SOV)")
700 ifdef EDASQLiteCipher
701 $(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SOV)")
703 $(call rmq,"$(DESTDIR)$(prefix)/share/pixmaps/ecere.png")
704 $(call rmq,"$(DESTDIR)$(prefix)/share/applications/ecere.desktop")
706 $(call rmdirq,"$(BINDIR)/")
707 $(call rmdirq,"$(DESTLIBDIR)/")
708 $(call rmdirq,"$(DESTSLIBDIR)/")
709 $(call rmdirq,"$(DOCDIR)/")
711 $(call rmdirq,"$(DESTDIR)/")
713 @$(call echo,The Ecere SDK has been uninstalled.)
716 @$(call echo,Printing values of some variables.)
717 @$(call echo,HOST_PLATFORM=$(HOST_PLATFORM))
718 @$(call echo,TARGET_PLATFORM=$(HOST_PLATFORM))
719 @$(call echo,PLATFORM=$(PLATFORM))
720 @$(call echo,LINUX_HOST=$(LINUX_HOST))
721 @$(call echo,LINUX_TARGET=$(LINUX_TARGET))
722 @$(call echo,OSX_HOST=$(OSX_HOST))
723 @$(call echo,OSX_TARGET=$(OSX_TARGET))
724 @$(call echo,WINDOWS_HOST=$(WINDOWS_HOST))
725 @$(call echo,WINDOWS_TARGET=$(WINDOWS_TARGET))
726 @$(call echo,BSD_HOST=$(BSD_HOST))
727 @$(call echo,BSD_TARGET=$(BSD_TARGET))
728 @$(call echo,CCACHE=$(CCACHE))
729 @$(call echo,CCACHE_COMPILE=$(CCACHE_COMPILE))
730 @$(call echo,CCACHE_PREFIX=$(CCACHE_PREFIX))
731 @$(call echo,DISTCC=$(DISTCC))
732 @$(call echo,GCC_PREFIX=$(GCC_PREFIX))
733 @$(call echo,CC=$(CC))
734 @$(call echo,CPP=$(CPP))
735 @$(call echo,ECP=$(ECP))
736 @$(call echo,ECC=$(ECC))
737 @$(call echo,ECS=$(ECS))
738 @$(call echo,EAR=$(EAR))
739 @$(call echo,AS=$(AS))
740 @$(call echo,LD=$(LD))
741 @$(call echo,AR=$(AR))
742 @$(call echo,STRIP=$(STRIP))
743 @$(call echo,UPX=$(UPX))
744 @$(call echo,HOST_ARCH=$(HOST_ARCH))
745 @$(call echo,DESTDIR=$(DESTDIR))