@@ -2,7 +2,7 @@ ifneq ($(V),1)
2
2
.SILENT :
3
3
endif
4
4
5
- .PHONY : all clean realclean wipeclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make libec2 bgen ide documentor eda prepcodeguard codeguard fixprecompile cleantarget pots installer regenbootstrap updatebootstrap update_ecere update_libec update_ecp update_ecc update_ecs ecereaudio
5
+ .PHONY : all clean realclean wipeclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ecerestatic ear compiler prepbinaries epj2make libec2 bgen ide documentor eda prepcodeguard codeguard fixprecompile cleantarget pots installer regenbootstrap updatebootstrap update_ecere update_libec update_ecp update_ecc update_ecs ecereaudio
6
6
7
7
ROOT_ABSPATH := $(dir $(realpath $(firstword $(MAKEFILE_LIST ) ) ) )
8
8
_CF_DIR = $(ROOT_ABSPATH )
@@ -45,6 +45,15 @@ ifndef DISABLE_EDA_dBASE
45
45
EDAdBASE := defined
46
46
endif
47
47
48
+ ifndef DISABLE_EDA_STATIC
49
+ EDA_STATIC := defined
50
+ endif
51
+
52
+ ifndef DISABLE_ECERE_STATIC
53
+ ECERE_STATIC := defined
54
+ endif
55
+
56
+
48
57
ifdef WINDOWS_HOST
49
58
HOST_SOV := $(HOST_SO )
50
59
else
@@ -259,6 +268,10 @@ ecerevanilla: bootstrap
259
268
@$(call echo,Building Vanilla Ecere...)
260
269
+cd ecere && $(_MAKE ) -f Makefile.vanilla
261
270
271
+ ecerestatic : bootstrap
272
+ @$(call echo,Building Static Ecere...)
273
+ +cd ecere && $(_MAKE ) -f Makefile.static
274
+
262
275
ear : ecere ecerevanilla
263
276
@$(call echo,Building ear...)
264
277
+cd ear && cd cmd && $(_MAKE ) cleantarget
@@ -275,7 +288,7 @@ endif
275
288
@$(call echo,Building 2nd stage compiler)
276
289
+cd compiler && $(_MAKE)
277
290
278
- prepbinaries : compiler libec2 ecerecom
291
+ prepbinaries : compiler libec2 ecerecom ecerestatic
279
292
@$(call echo,Enabling 2nd stage binaries...)
280
293
ifdef WINDOWS_TARGET
281
294
$(call cp,ecere/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ecere$(SOV),$(OBJBINDIR))
@@ -412,15 +425,24 @@ endif
412
425
413
426
emptyoutput : outputdirs
414
427
$(call rm,$(OBJLIBDIR ) libecereVanilla$(A ) )
428
+ ifdef ECERE_STATIC
429
+ $(call rm,$(OBJLIBDIR)libecereStatic$(A))
430
+ endif
415
431
$(call rm,$(SODESTDIR)$(LP)ecere$(SO))
416
432
$(call rm,$(SODESTDIR)$(LP)ecereCOM$(SO))
417
433
$(call rm,$(SODESTDIR)$(LP)ec$(SO))
418
434
$(call rm,$(SODESTDIR)$(LP)EDA$(SO))
435
+ ifdef EDA_STATIC
436
+ $(call rm,$(OBJLIBDIR)libEDAStatic$(A))
437
+ endif
419
438
ifdef EDAdBASE
420
439
$(call rm,$(SODESTDIR)$(LP)EDAdBASE$(SO))
421
440
endif
422
441
ifdef EDASQLite
423
442
$(call rm,$(SODESTDIR)$(LP)EDASQLite$(SO))
443
+ ifdef EDA_STATIC
444
+ $(call rm,$(OBJLIBDIR)libEDASQLiteStatic$(A))
445
+ endif
424
446
endif
425
447
ifdef EDASQLiteCipher
426
448
$(call rm,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO))
@@ -586,12 +608,25 @@ BINARIES = \
586
608
bgen/obj/release.$(PLATFORM )$(COMPILER_SUFFIX )$(DEBUG_SUFFIX ) /bgen$(B32_SFX )$(E ) \
587
609
eda/libeda/obj/release.$(PLATFORM )$(COMPILER_SUFFIX )$(DEBUG_SUFFIX ) /$(LP ) EDA$(SOV )
588
610
611
+ ifdef ECERE_STATIC
612
+ BINARIES += \
613
+ ecere/obj/static.$(PLATFORM )$(COMPILER_SUFFIX )$(DEBUG_SUFFIX ) /libecereStatic$(A )
614
+ endif
615
+
616
+ ifdef EDA_STATIC
617
+ BINARIES += \
618
+ eda/libeda/obj/static.$(PLATFORM )$(COMPILER_SUFFIX )$(DEBUG_SUFFIX ) /libEDAStatic$(A )
619
+ endif
589
620
ifdef EDAdBASE
590
621
BINARIES += eda/drivers/dbase/obj/release.$(PLATFORM )$(COMPILER_SUFFIX )$(DEBUG_SUFFIX ) /$(LP ) EDAdBASE$(SOV )
591
622
endif
592
623
ifdef EDASQLite
593
624
BINARIES += \
594
625
eda/drivers/sqlite/obj/release.$(PLATFORM )$(COMPILER_SUFFIX )$(DEBUG_SUFFIX ) /$(LP ) EDASQLite$(SOV )
626
+ ifdef EDA_STATIC
627
+ BINARIES += \
628
+ eda/drivers/sqlite/obj/static.$(PLATFORM )$(COMPILER_SUFFIX )$(DEBUG_SUFFIX ) /libEDASQLiteStatic$(A )
629
+ endif
595
630
endif
596
631
597
632
ifndef ECERE_PYTHON_PACKAGE
@@ -713,11 +748,17 @@ ifndef LINUX_TARGET
713
748
$(call cp,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR))
714
749
$(call cp,compiler/libec2/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec2$(SO),$(OBJLIBDIR))
715
750
$(call cp,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJLIBDIR))
751
+ ifdef EDA_STATIC
752
+ $(call cp,eda/libeda/obj/static.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libEDAStatic$(A),$(OBJLIBDIR))
753
+ endif
716
754
ifdef EDAdBASE
717
755
$(call cp,eda/drivers/dbase/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDAdBASE$(SO),$(OBJLIBDIR))
718
756
endif
719
757
ifdef EDASQLite
720
758
$(call cp,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJLIBDIR))
759
+ ifdef EDA_STATIC
760
+ $(call cp,eda/drivers/sqlite/obj/static.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libEDASQLiteStatic$(A),$(OBJLIBDIR))
761
+ endif
721
762
endif
722
763
ifneq ($(ECERE_AUDIO ) ,n)
723
764
$(call cp,audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SO),$(OBJLIBDIR))
@@ -742,6 +783,9 @@ ifdef CodeGuard
742
783
$(call cp,codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E),$(OBJBINDIR))
743
784
endif
744
785
$(call cp,ecere/obj/vanilla.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereVanilla$(A),$(OBJLIBDIR))
786
+ ifdef ECERE_STATIC
787
+ $(call cp,ecere/obj/static.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/libecereStatic$(A),$(OBJLIBDIR))
788
+ endif
745
789
746
790
.PHONY : prepinstall32
747
791
prepinstall32 :
@@ -776,11 +820,17 @@ ifdef WINDOWS_TARGET
776
820
$(call cp,$(OBJBINDIR)$(LP)ec$(SO),"$(DESTLIBDIR)/")
777
821
$(call cp,$(OBJBINDIR)$(LP)ec2$(SO),"$(DESTLIBDIR)/")
778
822
$(call cp,$(OBJBINDIR)$(LP)EDA$(SO),"$(DESTLIBDIR)/")
823
+ ifdef EDA_STATIC
824
+ $(call cp,$(OBJLIBDIR)libEDAStatic$(A),"$(DESTSLIBDIR)/")
825
+ endif
779
826
ifdef EDAdBASE
780
827
$(call cp,$(OBJBINDIR)$(LP)EDAdBASE$(SO),"$(DESTLIBDIR)/")
781
828
endif
782
829
ifdef EDASQLite
783
830
$(call cp,$(OBJBINDIR)$(LP)EDASQLite$(SO),"$(DESTLIBDIR)/")
831
+ ifdef EDA_STATIC
832
+ $(call cp,$(OBJLIBDIR)libEDASQLiteStatic$(A),"$(DESTSLIBDIR)/")
833
+ endif
784
834
endif
785
835
ifdef EDASQLiteCipher
786
836
$(call cp,$(OBJBINDIR)$(LP)EDASQLiteCipher$(SO),"$(DESTLIBDIR)/")
@@ -801,6 +851,9 @@ ifdef CodeGuard
801
851
$(call cp,$(OBJBINDIR)CodeGuard$(E),"$(BINDIR)/")
802
852
endif
803
853
$(call cp,$(OBJLIBDIR)libecereVanilla$(A),"$(DESTSLIBDIR)/")
854
+ ifdef ECERE_STATIC
855
+ $(call cp,$(OBJLIBDIR)libecereStatic$(A),"$(DESTSLIBDIR)/")
856
+ endif
804
857
$(call cp,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"
805
858
$(call cpr,$(DOC)/ecereCOM,"$(DOCDIR)/ecereCOM")
806
859
$(call cpr,$(DOC)/ecere,"$(DOCDIR)/ecere")
@@ -813,11 +866,17 @@ ifdef OSX_TARGET
813
866
install $(OBJLIBDIR)$(LP)ec$(SO) $(DESTLIBDIR)/
814
867
install $(OBJLIBDIR)$(LP)ec2$(SO) $(DESTLIBDIR)/
815
868
install $(OBJLIBDIR)$(LP)EDA$(SO) $(DESTLIBDIR)/
869
+ ifdef EDA_STATIC
870
+ install $(OBJLIBDIR)libEDAStatic$(A) $(DESTSLIBDIR)/
871
+ endif
816
872
ifdef EDAdBASE
817
873
install $(OBJLIBDIR)$(LP)EDAdBASE$(SO) $(DESTLIBDIR)/
818
874
endif
819
875
ifdef EDASQLite
820
876
install $(OBJLIBDIR)$(LP)EDASQLite$(SO) $(DESTLIBDIR)/
877
+ ifdef EDA_STATIC
878
+ install $(OBJLIBDIR)libEDASQLiteStatic$(A) $(DESTSLIBDIR)/
879
+ endif
821
880
endif
822
881
ifdef EDASQLiteCipher
823
882
install $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/
@@ -837,6 +896,9 @@ ifdef CodeGuard
837
896
install $(OBJBINDIR)CodeGuard$(E) $(BINDIR)/
838
897
endif
839
898
install $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/
899
+ ifdef ECERE_STATIC
900
+ install $(OBJLIBDIR)libecereStatic$(A) $(DESTSLIBDIR)/
901
+ endif
840
902
install -d $(DOCDIR)/
841
903
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"
842
904
$(call cpr,$(DOC)/ecereCOM,"$(DOCDIR)/ecereCOM")
@@ -862,11 +924,17 @@ ifdef LINUX_TARGET
862
924
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SOV)
863
925
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)ec2$(SOV) $(DESTLIBDIR)/ec/$(LP)ec2$(SOV)
864
926
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDA$(SOV) $(DESTLIBDIR)/ec/$(LP)EDA$(SOV)
927
+ ifdef EDA_STATIC
928
+ install $(INSTALL_FLAGS) $(OBJLIBDIR)libEDAStatic$(A) $(DESTSLIBDIR)/ec/libEDAStatic$(A)
929
+ endif
865
930
ifdef EDAdBASE
866
931
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDAdBASE$(SOV) $(DESTLIBDIR)/ec/$(LP)EDAdBASE$(SOV)
867
932
endif
868
933
ifdef EDASQLite
869
934
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLite$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLite$(SOV)
935
+ ifdef EDA_STATIC
936
+ install $(INSTALL_FLAGS) $(OBJLIBDIR)libEDASQLiteStatic$(A) $(DESTSLIBDIR)/ec/libEDASQLiteStatic$(A)
937
+ endif
870
938
endif
871
939
ifdef EDASQLiteCipher
872
940
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SOV)
@@ -933,13 +1001,15 @@ endif
933
1001
install $(INSTALL_FLAGS) $(OBJBINDIR)bgen$(B32_SFX)$(E) $(BINDIR)/bgen$(B32_SFX)$(E)
934
1002
install $(INSTALL_FLAGS) $(OBJBINDIR)documentor$(B32_SFX)$(E) $(BINDIR)/documentor$(B32_SFX)$(E)
935
1003
install $(INSTALL_FLAGS) $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/libecereVanilla$(A)
1004
+ ifdef ECERE_STATIC
1005
+ install $(INSTALL_FLAGS) $(OBJLIBDIR)libecereStatic$(A) $(DESTSLIBDIR)/libecereStatic$(A)
1006
+ endif
936
1007
ifndef SKIP_ADDITIONAL_FILES
937
1008
ifndef BSD_HOST
938
1009
install $(INSTALL_FLAGS) -m 644 share/pixmaps/ecere.png $(DESTDIR)$(prefix)/share/pixmaps/ecere.png
939
1010
install $(INSTALL_FLAGS) -m 644 share/applications/ecere.desktop $(DESTDIR)$(prefix)/share/applications/ecere.desktop
940
1011
endif
941
1012
endif
942
- install $(INSTALL_FLAGS) $(OBJLIBDIR)libecereVanilla$(A) $(DESTSLIBDIR)/libecereVanilla$(A)
943
1013
ifdef BSD_HOST
944
1014
install $(INSTALL_FLAGS) -d $(DOCDIR)
945
1015
endif
@@ -991,6 +1061,9 @@ uninstall:
991
1061
$(call rm,"$(DESTLIBDIR ) /$(LP ) ec$(SO ) ")
992
1062
$(call rm,"$(DESTLIBDIR ) /$(LP ) ec2$(SO ) ")
993
1063
$(call rm,"$(DESTLIBDIR ) /$(LP ) EDA$(SO ) ")
1064
+ ifdef EDA_STATIC
1065
+ $(call rm,"$(DESTSLIBDIR)/libEDAStatic$(A)")
1066
+ endif
994
1067
ifdef LINUX_TARGET
995
1068
ifdef EDAdBASE
996
1069
$(call rm,"$(DESTLIBDIR)/ec/$(LP)EDAdBASE$(SO)")
@@ -1010,6 +1083,9 @@ ifdef EDAdBASE
1010
1083
endif
1011
1084
ifdef EDASQLite
1012
1085
$(call rm,"$(DESTLIBDIR)/$(LP)EDASQLite$(SO)")
1086
+ ifdef EDA_STATIC
1087
+ $(call rm,"$(DESTSLIBDIR)/libEDASQLiteStatic$(A)")
1088
+ endif
1013
1089
endif
1014
1090
ifdef EDASQLiteCipher
1015
1091
$(call rm,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)")
@@ -1028,6 +1104,9 @@ endif
1028
1104
$(call rm,"$(BINDIR)/documentor$(B32_SFX)$(E)")
1029
1105
ifdef CodeGuard
1030
1106
$(call rm,"$(BINDIR)/CodeGuard$(E)")
1107
+ endif
1108
+ ifdef ECERE_STATIC
1109
+ $(call rm,"$(DESTSLIBDIR)/libecereStatic$(A)")
1031
1110
endif
1032
1111
$(call rm,"$(DESTSLIBDIR)/libecereVanilla$(A)")
1033
1112
$(call rm,"$(DOCDIR)/Ecere Tao of Programming [work in progress].pdf")
0 commit comments