7 # $(4): exclude from archive
27 # _$(1)-$(2)_CONFIGURE_FLAGS
29 define RuntimeTemplate
31 _runtime_
$(1)-$(2)_BITNESS
=$$(if
$$(or
$$(findstring i686
,$(3)),$$(findstring i386
,$(3))),-m32
,$$(if
$$(findstring x86_64
,$(3)),-m64
))
33 _runtime_
$(1)-$(2)_CFLAGS
=$(if
$(RELEASE
),-O2
-g
,-O0
-ggdb3
-fno-omit-frame-pointer
) $$(_
$(1)-$(2)_CFLAGS
) $$($(1)-$(2)_CFLAGS
) $$(_runtime_
$(1)-$(2)_BITNESS
)
34 _runtime_
$(1)-$(2)_CXXFLAGS
=$(if
$(RELEASE
),-O2
-g
,-O0
-ggdb3
-fno-omit-frame-pointer
) $$(_
$(1)-$(2)_CXXFLAGS
) $$($(1)-$(2)_CXXFLAGS
) $$(_runtime_
$(1)-$(2)_BITNESS
)
35 _runtime_
$(1)-$(2)_CPPFLAGS
=$(if
$(RELEASE
),-O2
-g
,-O0
-ggdb3
-fno-omit-frame-pointer
) $$(_
$(1)-$(2)_CPPFLAGS
) $$($(1)-$(2)_CPPFLAGS
) $$(_runtime_
$(1)-$(2)_BITNESS
)
36 _runtime_
$(1)-$(2)_CXXCPPFLAGS
=$(if
$(RELEASE
),-O2
-g
,-O0
-ggdb3
-fno-omit-frame-pointer
) $$(_
$(1)-$(2)_CXXCPPFLAGS
) $$($(1)-$(2)_CXXCPPFLAGS
) $$(_runtime_
$(1)-$(2)_BITNESS
)
37 _runtime_
$(1)-$(2)_LDFLAGS
=$$(_
$(1)-$(2)_LDFLAGS
) $$($(1)-$(2)_LDFLAGS
)
39 _runtime_
$(1)-$(2)_AC_VARS
=$$(_
$(1)-$(2)_AC_VARS
) $$($(1)-$(2)_AC_VARS
)
41 _runtime_
$(1)-$(2)_CONFIGURE_ENVIRONMENT
= \
42 $(if
$$(_
$(1)-$(2)_AR
),AR
="$$(_$(1)-$(2)_AR)") \
43 $(if
$$(_
$(1)-$(2)_AS
),AS
="$$(_$(1)-$(2)_AS)") \
44 $(if
$$(_
$(1)-$(2)_CC
),CC
="$$(_$(1)-$(2)_CC)") \
45 $(if
$$(_
$(1)-$(2)_CPP
),CPP
="$$(_$(1)-$(2)_CPP)") \
46 $(if
$$(_
$(1)-$(2)_CXX
),CXX
="$$(_$(1)-$(2)_CXX)") \
47 $(if
$$(_
$(1)-$(2)_CXXCPP
),CXXCPP
="$$(_$(1)-$(2)_CXXCPP)") \
48 $(if
$$(_
$(1)-$(2)_DLLTOOL
),DLLTOOL
="$$(_$(1)-$(2)_DLLTOOL)") \
49 $(if
$$(_
$(1)-$(2)_LD
),LD
="$$(_$(1)-$(2)_LD)") \
50 $(if
$$(_
$(1)-$(2)_OBJDUMP
),OBJDUMP
="$$(_$(1)-$(2)_OBJDUMP)") \
51 $(if
$$(_
$(1)-$(2)_RANLIB
),RANLIB
="$$(_$(1)-$(2)_RANLIB)") \
52 $(if
$$(_
$(1)-$(2)_CMAKE
),CMAKE
="$$(_$(1)-$(2)_CMAKE)") \
53 $(if
$$(_
$(1)-$(2)_STRIP
),STRIP
="$$(_$(1)-$(2)_STRIP)") \
54 CFLAGS
="$$(_runtime_$(1)-$(2)_CFLAGS)" \
55 CXXFLAGS
="$$(_runtime_$(1)-$(2)_CXXFLAGS)" \
56 CPPFLAGS
="$$(_runtime_$(1)-$(2)_CPPFLAGS)" \
57 CXXCPPFLAGS
="$$(_runtime_$(1)-$(2)_CXXCPPFLAGS)" \
58 LDFLAGS
="$$(_runtime_$(1)-$(2)_LDFLAGS)" \
59 $$(_
$(1)-$(2)_CONFIGURE_ENVIRONMENT
) \
60 $$($(1)-$(2)_CONFIGURE_ENVIRONMENT
)
62 _runtime_
$(1)-$(2)_CONFIGURE_FLAGS
= \
63 $$(if
$(3),--host
=$(3)) \
64 --cache-file
=$$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
).config.cache \
65 --prefix=$$(TOP
)/sdks
/out
/$(1)-$(2)-$$(CONFIGURATION
) \
66 $$(if
$$(ENABLE_CXX
),--enable-cxx
) \
67 $$(_cross-runtime_
$(1)-$(2)_CONFIGURE_FLAGS
) \
68 $$(_
$(1)-$(2)_CONFIGURE_FLAGS
) \
69 $$($(1)-$(2)_CONFIGURE_FLAGS
)
71 .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
: $$(TOP
)/configure .stamp-
$(1)-$(2)-toolchain
72 mkdir
-p
$$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
)
73 $(if
$$(_
$(1)-$(2)_PATH
),PATH
="$$$$PATH:$$(_$(1)-$(2)_PATH)") .
/wrap-configure.sh
$$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
) $$(abspath
$$<) $$(_runtime_
$(1)-$(2)_AC_VARS
) $$(_runtime_
$(1)-$(2)_CONFIGURE_ENVIRONMENT
) $$(_runtime_
$(1)-$(2)_CONFIGURE_FLAGS
)
76 .stamp-
$(1)-$(2)-configure
: .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
79 .PHONY
: build-custom-
$(1)-$(2)
80 build-custom-
$(1)-$(2):
81 $$(MAKE
) -C
$(1)-$(2)-$$(CONFIGURATION
)
83 .PHONY
: setup-custom-
$(1)-$(2)
84 setup-custom-
$(1)-$(2):
85 mkdir
-p
$$(TOP
)/sdks
/out
/$(1)-$(2)-$$(CONFIGURATION
)
87 .PHONY
: package-
$(1)-$(2)
89 $$(MAKE
) -C
$$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
)/mono
install
90 $$(MAKE
) -C
$$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
)/support
install
92 .PHONY
: clean-
$(1)-$(2)
94 rm -rf .stamp-
$(1)-$(2)-toolchain .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
$$(TOP
)/sdks
/builds
/toolchains
/$(1)-$(2) $$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
) $$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
).config.cache
$$(TOP
)/sdks
/out
/$(1)-$(2)-$$(CONFIGURATION
)
96 $$(eval
$$(call TargetTemplate
,$(1),$(2)))
98 .PHONY
: configure-
$(1)
99 configure-
$(1): configure-
$(1)-$(2)
102 build-
$(1): build-
$(1)-$(2)
105 package-
$(1): package-
$(1)-$(2) $$(ADDITIONAL_PACKAGE_DEPS
)
108 archive-
$(1): package-
$(1)
111 $(1)_ARCHIVE
+= $(1)-$(2)-$$(CONFIGURATION
)
136 # _$(1)-$(2)_CXXFLAGS
137 # _$(1)-$(2)_CPPFLAGS
140 # _$(1)-$(2)_CONFIGURE_FLAGS
142 define RuntimeTemplateStub
144 .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
: $$(TOP
)/configure .stamp-
$(1)-$(2)-toolchain
147 .stamp-
$(1)-$(2)-configure
: .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
150 .PHONY
: build-custom-
$(1)-$(2)
151 build-custom-
$(1)-$(2):
152 @echo
"TODO: build-custom-$(1)-$(2) on $$(UNAME)"
154 .PHONY
: setup-custom-
$(1)-$(2)
155 setup-custom-
$(1)-$(2):
156 @echo
"TODO: setup-custom-$(1)-$(2) on $$(UNAME)"
158 .PHONY
: package-
$(1)-$(2)
160 @echo
"TODO: package-$(1)-$(2) on $$(UNAME)"
162 .PHONY
: clean-
$(1)-$(2)
164 rm -rf .stamp-
$(1)-$(2)-toolchain .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
$$(TOP
)/sdks
/builds
/toolchains
/$(1)-$(2) $$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
) $$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
).config.cache
$$(TOP
)/sdks
/out
/$(1)-$(2)-$$(CONFIGURATION
)
166 $$(eval
$$(call TargetTemplate
,$(1),$(2)))
168 .PHONY
: configure-
$(1)
169 configure-
$(1): configure-
$(1)-$(2)
172 build-
$(1): build-
$(1)-$(2)
175 archive-
$(1): package-
$(1)-$(2)
186 # $(4): target triple
187 # $(5): device target
189 # $(7): offsets dumper abi
204 # _$(1)-$(2)_CXXFLAGS
205 # _$(1)-$(2)_CPPFLAGS
208 # _$(1)-$(2)_CONFIGURE_FLAGS
210 # _$(1)-$(2)_OFFSETS_DUMPER_ARGS
211 define CrossRuntimeTemplate
213 _cross-runtime_
$(1)-$(2)_CONFIGURE_FLAGS
= \
215 --with-cross-offsets
=$(4).h \
216 --with-llvm
=$$(TOP
)/sdks
/out
/$(6)
218 .stamp-
$(1)-$(2)-toolchain
:
221 .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
: |
$$(if
$$(IGNORE_PROVISION_LLVM
),,provision-
$(6))
223 $$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
)/$(4).h
: .stamp-offsets-tool-py-setup .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure | configure-
$(1)-$(5)
224 .
$(TOP
)/tools
/offsets-tool-py
/offtool
/bin
/activate
&& PYTHONPATH
=$(TOP
)/tools
/offsets-tool-py python3
$(TOP
)/tools
/offsets-tool-py
/offsets-tool.py
--targetdir
="$$(TOP)/sdks/builds/$(1)-$(5)-$$(CONFIGURATION)" --abi
=$(7) --monodir
="$$(TOP)" --outfile
="$$@" $$(_
$(1)-$(2)_OFFSETS_DUMPER_ARGS
)
226 build-
$(1)-$(2): $$(TOP
)/sdks
/builds
/$(1)-$(2)-$$(CONFIGURATION
)/$(4).h
228 $$(eval
$$(call RuntimeTemplate
,$(1),$(2),$(3)))
231 archive-
$(1): provision-
$(6)
237 .stamp-offsets-tool-py-setup
:
238 $(MAKE
) -C
$(TOP
)/tools
/offsets-tool-py setup
246 # $(4): target triple
247 # $(5): device target
249 # $(7): offsets dumper abi
264 # _$(1)-$(2)_CXXFLAGS
265 # _$(1)-$(2)_CPPFLAGS
268 # _$(1)-$(2)_CONFIGURE_FLAGS
270 # _$(1)-$(2)_OFFSETS_DUMPER_ARGS
271 define CrossRuntimeTemplateStub
273 .stamp-
$(1)-$(2)-toolchain
:
276 .stamp-
$(1)-$(2)-$$(CONFIGURATION
)-configure
:
278 $$(eval
$$(call RuntimeTemplateStub
,$(1),$(2),$(3)))