Fix minizip compile on Haiku (#16301)
[mono-project.git] / sdks / builds / mac.mk
blob5c30fc6a48f4496c20e8c1bbb09e50ba95b657ff
2 mac_BIN_DIR = $(TOP)/sdks/out/mac-bin
3 mac_PKG_CONFIG_DIR = $(TOP)/sdks/out/mac-pkgconfig
4 mac_LIBS_DIR = $(TOP)/sdks/out/mac-libs
5 mac_TPN_DIR = $(TOP)/sdks/out/mac-tpn
6 mac_MONO_VERSION = $(TOP)/sdks/out/mac-mono-version.txt
8 mac_ARCHIVE += mac-bin mac-pkgconfig mac-libs mac-tpn mac-mono-version.txt
9 ADDITIONAL_PACKAGE_DEPS += $(mac_BIN_DIR) $(mac_PKG_CONFIG_DIR) $(mac_LIBS_DIR) $(mac_TPN_DIR) $(mac_MONO_VERSION)
12 # Parameters
13 # $(1): target
14 # $(2): host arch
15 # $(3): xcode dir
16 define MacTemplate
18 mac_$(1)_PLATFORM_BIN=$(3)/Toolchains/XcodeDefault.xctoolchain/usr/bin
20 _mac-$(1)_CC=$$(CCACHE) $$(mac_$(1)_PLATFORM_BIN)/clang
21 _mac-$(1)_CXX=$$(CCACHE) $$(mac_$(1)_PLATFORM_BIN)/clang++
23 _mac-$(1)_AC_VARS= \
24 ac_cv_func_fstatat=no \
25 ac_cv_func_readlinkat=no \
26 ac_cv_func_futimens=no \
27 ac_cv_func_utimensat=no
29 _mac-$(1)_CFLAGS= \
30 $$(mac-$(1)_SYSROOT) \
31 -arch $(2)
33 _mac-$(1)_CXXFLAGS= \
34 $$(mac-$(1)_SYSROOT) \
35 -arch $(2)
37 _mac-$(1)_CPPFLAGS=
39 _mac-$(1)_LDFLAGS= \
40 -Wl,-no_weak_imports
42 _mac-$(1)_CONFIGURE_FLAGS= \
43 --disable-boehm \
44 --disable-btls \
45 --disable-iconv \
46 --disable-mcs-build \
47 --disable-nls \
48 --enable-maintainer-mode \
49 --with-glib=embedded \
50 --with-mcs-docs=no
52 .stamp-mac-$(1)-toolchain:
53 touch $$@
55 $$(eval $$(call RuntimeTemplate,mac,$(1),$(2)-apple-darwin10,yes))
57 endef
59 mac-mac32_SYSROOT=-isysroot $(XCODE32_DIR)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=$(MACOS_VERSION_MIN)
60 mac-mac64_SYSROOT=-isysroot $(XCODE_DIR)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(MACOS_VERSION).sdk -mmacosx-version-min=$(MACOS_VERSION_MIN)
62 $(eval $(call MacTemplate,mac32,i386,$(XCODE32_DIR)))
63 $(eval $(call MacTemplate,mac64,x86_64,$(XCODE_DIR)))
65 $(eval $(call BclTemplate,mac,xammac xammac_net_4_5,xammac xammac_net_4_5))
67 $(mac_BIN_DIR): package-mac-mac32 package-mac-mac64
68 rm -rf $(mac_BIN_DIR)
69 mkdir -p $(mac_BIN_DIR)
71 cp $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/bin/mono-sgen $(mac_BIN_DIR)/mono-sgen
72 cp $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/bin/mono-sgen $(mac_BIN_DIR)/mono-sgen-32
74 $(mac_PKG_CONFIG_DIR): package-mac-mac64
75 rm -rf $(mac_PKG_CONFIG_DIR)
76 mkdir -p $(mac_PKG_CONFIG_DIR)
78 cp $(TOP)/sdks/builds/mac-mac64-$(CONFIGURATION)/data/mono-2.pc $(mac_PKG_CONFIG_DIR)
80 $(mac_LIBS_DIR): package-mac-mac32 package-mac-mac64
81 rm -rf $(mac_LIBS_DIR)
82 mkdir -p $(mac_LIBS_DIR)
84 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib -create -output $(mac_LIBS_DIR)/libmonosgen-2.0.dylib
85 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libmono-native-compat.dylib $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libmono-native-compat.dylib -create -output $(mac_LIBS_DIR)/libmono-native-compat.dylib
86 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libmono-native-unified.dylib $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libmono-native-unified.dylib -create -output $(mac_LIBS_DIR)/libmono-native-unified.dylib
87 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libMonoPosixHelper.dylib $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libMonoPosixHelper.dylib -create -output $(mac_LIBS_DIR)/libMonoPosixHelper.dylib
88 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libmonosgen-2.0.a $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libmonosgen-2.0.a -create -output $(mac_LIBS_DIR)/libmonosgen-2.0.a
89 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libmono-native-compat.a $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libmono-native-compat.a -create -output $(mac_LIBS_DIR)/libmono-native-compat.a
90 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libmono-native-unified.a $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libmono-native-unified.a -create -output $(mac_LIBS_DIR)/libmono-native-unified.a
91 $(mac_mac64_PLATFORM_BIN)/lipo $(TOP)/sdks/out/mac-mac32-$(CONFIGURATION)/lib/libmono-profiler-log.a $(TOP)/sdks/out/mac-mac64-$(CONFIGURATION)/lib/libmono-profiler-log.a -create -output $(mac_LIBS_DIR)/libmono-profiler-log.a
93 $(mac_mac64_PLATFORM_BIN)/install_name_tool -id @rpath/libmonosgen-2.0.dylib $(mac_LIBS_DIR)/libmonosgen-2.0.dylib
94 $(mac_mac64_PLATFORM_BIN)/install_name_tool -id @rpath/libmono-native-compat.dylib $(mac_LIBS_DIR)/libmono-native-compat.dylib
95 $(mac_mac64_PLATFORM_BIN)/install_name_tool -id @rpath/libmono-native-unified.dylib $(mac_LIBS_DIR)/libmono-native-unified.dylib
96 $(mac_mac64_PLATFORM_BIN)/install_name_tool -id @rpath/libMonoPosixHelper.dylib $(mac_LIBS_DIR)/libMonoPosixHelper.dylib
98 $(mac_MONO_VERSION): $(TOP)/configure.ac
99 mkdir -p $(dir $(mac_MONO_VERSION))
100 grep AC_INIT $(TOP)/configure.ac | sed -e 's/.*\[//' -e 's/\].*//' > $@
102 $(mac_TPN_DIR)/LICENSE:
103 mkdir -p $(mac_TPN_DIR)
104 cd $(TOP) && rsync -r --include='THIRD-PARTY-NOTICES.TXT' --include='license.txt' --include='License.txt' --include='LICENSE' --include='LICENSE.txt' --include='LICENSE.TXT' --include='COPYRIGHT.regex' --include='*/' --exclude="*" --prune-empty-dirs . $(mac_TPN_DIR)
106 $(mac_TPN_DIR): $(mac_TPN_DIR)/LICENSE