Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Henry <luhenry@microsoft.com>2018-03-03 18:21:38 +0300
committerGitHub <noreply@github.com>2018-03-03 18:21:38 +0300
commit43ac34b36e2e23539b67741b480e13aed97b945c (patch)
tree758da20213375a5613672c6d10d4273cfd4012bb /sdks/builds/runtime.mk
parente7ba41d14c7e1dc6e860e6e9c5a3db05686d2c5a (diff)
[sdks] Unify targets to build runtimes (#7394)
* [sdks] Move common targets * [sdks] Have RELEASE be empty when CONFIGURATION != 'release' * [sdks] Create common runtime compilation template * [sdks] Use runtime template for Android * [sdks] Use runtime template for iOS
Diffstat (limited to 'sdks/builds/runtime.mk')
-rw-r--r--sdks/builds/runtime.mk83
1 files changed, 83 insertions, 0 deletions
diff --git a/sdks/builds/runtime.mk b/sdks/builds/runtime.mk
new file mode 100644
index 00000000000..1a3b912e048
--- /dev/null
+++ b/sdks/builds/runtime.mk
@@ -0,0 +1,83 @@
+
+##
+# Parameters:
+# $(1): target
+#
+# Flags:
+# _$(1)_AR
+# _$(1)_AS
+# _$(1)_CC
+# _$(1)_CPP
+# _$(1)_CXX
+# _$(1)_CXXCPP
+# _$(1)_DLLTOOL
+# _$(1)_LD
+# _$(1)_OBJDUMP
+# _$(1)_RANLIB
+# _$(1)_STRIP
+# _$(1)_CFLAGS
+# _$(1)_CXXFLAGS
+# _$(1)_CPPFLAGS
+# _$(1)_LDFLAGS
+# _$(1)_AC_VARS
+# _$(1)_CONFIGURE_FLAGS
+# _$(1)_PATH
+define RuntimeTemplate
+
+__$(1)_CFLAGS=$(if $(RELEASE),-O2 -g,-O0 -ggdb3 -fno-omit-frame-pointer) $$(_$(1)_CFLAGS)
+__$(1)_CXXFLAGS=$(if $(RELEASE),-O2 -g,-O0 -ggdb3 -fno-omit-frame-pointer) $$(_$(1)_CXXFLAGS)
+__$(1)_CPPFLAGS=$(if $(RELEASE),-O2 -g,-O0 -ggdb3 -fno-omit-frame-pointer) $$(_$(1)_CPPFLAGS)
+
+__$(1)_CONFIGURE_ENVIRONMENT = \
+ $(if $$(_$(1)_AR),AR="$$(_$(1)_AR)") \
+ $(if $$(_$(1)_AS),AS="$$(_$(1)_AS)") \
+ $(if $$(_$(1)_CC),CC="$$(_$(1)_CC)") \
+ $(if $$(_$(1)_CPP),CPP="$$(_$(1)_CPP)") \
+ $(if $$(_$(1)_CXX),CXX="$$(_$(1)_CXX)") \
+ $(if $$(_$(1)_CXXCPP),CXXCPP="$$(_$(1)_CXXCPP)") \
+ $(if $$(_$(1)_DLLTOOL),DLLTOOL="$$(_$(1)_DLLTOOL)") \
+ $(if $$(_$(1)_LD),LD="$$(_$(1)_LD)") \
+ $(if $$(_$(1)_OBJDUMP),OBJDUMP="$$(_$(1)_OBJDUMP)") \
+ $(if $$(_$(1)_RANLIB),RANLIB="$$(_$(1)_RANLIB)") \
+ $(if $$(_$(1)_STRIP),STRIP="$$(_$(1)_STRIP)") \
+ CFLAGS="$$(__$(1)_CFLAGS)" \
+ CXXFLAGS="$$(__$(1)_CXXFLAGS)" \
+ CPPFLAGS="$$(__$(1)_CPPFLAGS)" \
+ $(if $$(_$(1)_LDFLAGS),LDFLAGS="$$(_$(1)_LDFLAGS)") \
+ $$(_$(1)_CONFIGURE_ENVIRONMENT)
+
+.stamp-$(1)-$$(CONFIGURATION)-configure: $$(TOP)/configure .stamp-$(1)-toolchain
+ mkdir -p $$(TOP)/sdks/builds/$(1)-$$(CONFIGURATION)
+ cd $$(TOP)/sdks/builds/$(1)-$$(CONFIGURATION) && $(if $$(_$(1)_PATH),PATH="$$$$PATH:$$(_$(1)_PATH)") $$(TOP)/configure $$(_$(1)_AC_VARS) $$(__$(1)_CONFIGURE_ENVIRONMENT) $$(_$(1)_CONFIGURE_FLAGS)
+ touch $$@
+
+.PHONY: .stamp-$(1)-configure
+.stamp-$(1)-configure: .stamp-$(1)-$$(CONFIGURATION)-configure
+
+.PHONY: build-custom-$(1)
+build-custom-$(1):
+ $$(MAKE) -C $(1)-$$(CONFIGURATION)
+
+.PHONY: setup-custom-$(1)
+setup-custom-$(1):
+ mkdir -p $$(TOP)/sdks/out/$(1)-$$(CONFIGURATION)
+
+.PHONY: package-android-$(1)-$$(CONFIGURATION)
+package-android-$(1)-$$(CONFIGURATION)::
+ $$(MAKE) -C $$(TOP)/sdks/builds/android-$(1)-$$(CONFIGURATION)/mono install
+
+.PHONY: package-$(1)
+package-$(1):
+ $$(MAKE) package-$(1)-$$(CONFIGURATION)
+
+.PHONY: clean-$(1)-$$(CONFIGURATION)
+clean-$(1)-$$(CONFIGURATION)::
+ rm -rf .stamp-$(1)-toolchain .stamp-$(1)-$$(CONFIGURATION)-configure $$(TOP)/sdks/builds/toolchains/$(1) $$(TOP)/sdks/builds/$(1)-$$(CONFIGURATION) $$(TOP)/sdks/builds/$(1)-$$(CONFIGURATION).config.cache $$(TOP)/sdks/out/$(1)-$$(CONFIGURATION)
+
+.PHONY: clean-$(1)
+clean-$(1):
+ $$(MAKE) clean-$(1)-$$(CONFIGURATION)
+
+TARGETS += $(1)
+
+endef