2 GCC.gxx = $(dir $(GCC.gcc))$(subst gcc,g++,$(notdir $(GCC.gcc)))
4 GCC.strip = $$(if $$(filter none,$$(GCC.g)),1)
27 GCC.args.strip = -Wl,-S
28 GCC.args.dylib = -dynamiclib
29 GCC.args.ML = -fmessage-length=0
32 GCC.args.archs = -arch $(1)
33 GCC.args.vis = -fvisibility=hidden
36 GCC.args.g.min = -gdwarf-2 -g1
37 GCC.args.g.std = -gdwarf-2
38 GCC.args.g.max = -gdwarf-2 -g3
41 GCC.args.O.speed = -O3
44 GCC.args.muldefs = -Wl,--allow-multiple-definition
45 GCC.args.start = -Wl,--start-group
47 GCC.args.f = -framework $(1)
50 GCC.args.end = -Wl,--end-group
52 ###############################################################################
55 $(1).GCC.gcc = $$(GCC.gcc)
56 $(1).GCC.gxx = $$(dir $$($(1).GCC.gcc))$$(subst gcc,g++,$$(notdir $$($(1).GCC.gcc)))
58 $(1).GCC.pipe = $$(GCC.pipe)
59 $(1).GCC.strip = $$(if $$(filter none,$$($(1).GCC.g)),1)
60 $(1).GCC.dylib = $$(GCC.dylib)
61 $(1).GCC.ML = $$(GCC.ML)
62 $(1).GCC.H = $$(GCC.H)
63 $(1).GCC.W = $$(GCC.W)
64 $(1).GCC.archs = $$(GCC.archs)
65 $(1).GCC.vis = $$(GCC.vis)
66 $(1).GCC.pic = $$(GCC.pic)
67 $(1).GCC.g = $$(GCC.g)
68 $(1).GCC.O = $$(GCC.O)
69 $(1).GCC.D = $$(GCC.D)
70 $(1).GCC.I = $$(GCC.I)
71 $(1).GCC.muldefs = $$(GCC.muldefs)
72 $(1).GCC.start = $$(GCC.start)
73 $(1).GCC.a = $$(GCC.a)
74 $(1).GCC.F = $$(GCC.F)
75 $(1).GCC.f = $$(GCC.f)
76 $(1).GCC.L = $$(GCC.L)
77 $(1).GCC.l = $$(GCC.l)
78 $(1).GCC.end = $$(GCC.end)
80 $(1).GCC.args.pipe = $$(GCC.args.pipe)
81 $(1).GCC.args.strip = $$(GCC.args.strip)
82 $(1).GCC.args.dylib = $$(GCC.args.dylib)
83 $(1).GCC.args.ML = $$(GCC.args.ML)
84 $(1).GCC.args.H = $$(GCC.args.H)
85 $(1).GCC.args.W = $$(GCC.args.W)
86 $(1).GCC.args.archs = $$(GCC.args.archs)
87 $(1).GCC.args.vis = $$(GCC.args.vis)
88 $(1).GCC.args.pic = $$(GCC.args.pic)
89 $(1).GCC.args.g.none = $$(GCC.args.g.none)
90 $(1).GCC.args.g.min = $$(GCC.args.g.min)
91 $(1).GCC.args.g.std = $$(GCC.args.g.std)
92 $(1).GCC.args.g.max = $$(GCC.args.g.max )
93 $(1).GCC.args.O.none = $$(GCC.args.O.none)
94 $(1).GCC.args.O.size = $$(GCC.args.O.size)
95 $(1).GCC.args.O.speed = $$(GCC.args.O.speed)
96 $(1).GCC.args.D = $$(GCC.args.D)
97 $(1).GCC.args.I = $$(GCC.args.I)
98 $(1).GCC.args.muldefs = $$(GCC.args.muldefs)
99 $(1).GCC.args.start = $$(GCC.args.start)
100 $(1).GCC.args.F = $$(GCC.args.F)
101 $(1).GCC.args.f = $$(GCC.args.f)
102 $(1).GCC.args.L = $$(GCC.args.L)
103 $(1).GCC.args.l = $$(GCC.args.l)
104 $(1).GCC.args.end = $$(GCC.args.end)
106 ###########################################################################
108 $(1).GCC.c = -c $$(4)
109 $(1).GCC.o = -o $$(3)
111 # FUNCTION: C precompiled headers
112 $(1).GCC.H_O.args = !gcc ?pipe ?ML ?H *W *archs ?vis ?pic .g .O *D *I !c !o
113 $(1).GCC.H_O = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.H_O.args),$$(1),$$(2))
115 # FUNCTION: C compile source
116 $(1).GCC.C_O.args = !gcc ?pipe ?ML ?H *W *archs ?vis ?pic .g .O *D *I !c !o
117 $(1).GCC.C_O = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.C_O.args),$$(1),$$(2))
119 # FUNCTION: C++ precompile headers
120 $(1).GCC.HPP_O.args = !gxx ?pipe ?ML ?H *W *archs ?vis ?pic .g .O *D *I !c !o
121 $(1).GCC.HPP_O = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.HPP_O.args),$$(1),$$(2))
123 # FUNCTION: C++ compile source
124 $(1).GCC.CPP_O.args = !gxx ?pipe ?ML ?H *W *archs ?vis ?pic .g .O *D *I !c !o
125 $(1).GCC.CPP_O = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.CPP_O.args),$$(1),$$(2))
127 ###########################################################################
131 # FUNCTION: C link dynamic-lib
132 $(1).GCC.DYLIB.args = !gcc ?pipe ?strip ?dylib ?ML *W *archs ?vis ?pic .g .O *D *I !o ?muldefs ?start !i *F *f *L *l *i !a ?end
133 $(1).GCC.DYLIB = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.DYLIB.args),$$(1),$$(2))
135 # FUNCTION: C link executable
136 $(1).GCC.EXE.args = !gcc ?pipe ?strip ?ML *W *archs ?vis ?pic .g .O *D *I !o ?muldefs ?start !i *F *f *L *l *i !a ?end
137 $(1).GCC.EXE = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.EXE.args),$$(1),$$(2))
139 # FUNCTION: C++ link dynamic-lib
140 $(1).GCC.DYLIB++.args = !gxx ?pipe ?strip ?dylib ?ML *W *archs ?vis ?pic .g .O *D *I !o ?muldefs ?start !i *F *f *L *l *i !a ?end
141 $(1).GCC.DYLIB++ = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.DYLIB++.args),$$(1),$$(2))
143 # FUNCTION: C++ link executable
144 $(1).GCC.EXE++.args = !gxx ?pipe ?strip ?ML *W *archs ?vis ?pic .g .O *D *I !o ?muldefs ?start !i *F *f *L *l *i !a ?end
145 $(1).GCC.EXE++ = $$(call fn.ARGS,$(1).GCC,$$($(1).GCC.EXE++.args),$$(1),$$(2))