|
| 1 | + |
| 2 | +maccat_PKG_CONFIG_DIR = $(TOP)/sdks/out/maccat-pkgconfig |
| 3 | +maccat_LIBS_DIR = $(TOP)/sdks/out/maccat-libs |
| 4 | +maccat_TPN_DIR = $(TOP)/sdks/out/maccat-tpn |
| 5 | +maccat_MONO_VERSION = $(TOP)/sdks/out/maccat-mono-version.txt |
| 6 | + |
| 7 | +maccat_ARCHIVE += maccat-pkgconfig maccat-libs maccat-tpn maccat-mono-version.txt |
| 8 | +ADDITIONAL_PACKAGE_DEPS += $(maccat_PKG_CONFIG_DIR) $(maccat_LIBS_DIR) $(maccat_TPN_DIR) $(maccat_MONO_VERSION) |
| 9 | + |
| 10 | +## |
| 11 | +# Parameters |
| 12 | +# $(1): target |
| 13 | +# $(2): host arch |
| 14 | +# $(3): xcode dir |
| 15 | +define MacCatTemplate |
| 16 | + |
| 17 | +maccat_$(1)_PLATFORM_BIN=$(3)/Toolchains/XcodeDefault.xctoolchain/usr/bin |
| 18 | + |
| 19 | +# |
| 20 | +# HACK: fak: The -target is placed in the CC define per the recommendation of |
| 21 | +# libtool who acknowledge that some parameters are just not passed through |
| 22 | +# to the compiler. You can use -Wc, flags, but I failed to get the working appropriately. |
| 23 | +# |
| 24 | +_maccat-$(1)_CC=$$(CCACHE) $$(maccat_$(1)_PLATFORM_BIN)/clang -target $(2)-apple-ios$(MACCAT_IOS_VERSION_MIN)-macabi |
| 25 | +_maccat-$(1)_CXX=$$(CCACHE) $$(maccat_$(1)_PLATFORM_BIN)/clang++ -target $(2)-apple-ios$(MACCAT_IOS_VERSION_MIN)-macabi |
| 26 | + |
| 27 | +_maccat-$(1)_AC_VARS= \ |
| 28 | + ac_cv_func_system=no \ |
| 29 | + ac_cv_c_bigendian=no \ |
| 30 | + ac_cv_func_fstatat=no \ |
| 31 | + ac_cv_func_readlinkat=no \ |
| 32 | + ac_cv_func_getpwuid_r=no \ |
| 33 | + ac_cv_func_posix_getpwuid_r=yes \ |
| 34 | + ac_cv_header_curses_h=no \ |
| 35 | + ac_cv_header_localcharset_h=no \ |
| 36 | + ac_cv_header_sys_user_h=no \ |
| 37 | + ac_cv_func_getentropy=no \ |
| 38 | + ac_cv_func_futimens=no \ |
| 39 | + ac_cv_func_utimensat=no \ |
| 40 | + ac_cv_func_shm_open_working_with_mmap=no \ |
| 41 | + mono_cv_sizeof_sunpath=104 |
| 42 | + |
| 43 | +_maccat-$(1)_CFLAGS= \ |
| 44 | + $$(maccat-$(1)_SYSROOT) \ |
| 45 | + -fexceptions |
| 46 | + |
| 47 | +_maccat-$(1)_CXXFLAGS= \ |
| 48 | + $$(maccat-$(1)_SYSROOT) |
| 49 | + |
| 50 | +_maccat-$(1)_CPPFLAGS= \ |
| 51 | + -DSMALL_CONFIG -D_XOPEN_SOURCE -DHOST_IOS -DHOST_MACCAT -DHAVE_LARGE_FILE_SUPPORT=1 |
| 52 | + |
| 53 | +_maccat-$(1)_LDFLAGS= \ |
| 54 | + -iframework $(XCODE_DIR)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(MACOS_VERSION).sdk/System/iOSSupport/System/Library/Frameworks \ |
| 55 | + -framework CoreFoundation \ |
| 56 | + -lobjc -lc++ |
| 57 | + |
| 58 | +_maccat-$(1)_CONFIGURE_FLAGS= \ |
| 59 | + --disable-boehm \ |
| 60 | + --disable-btls \ |
| 61 | + --disable-executables \ |
| 62 | + --disable-iconv \ |
| 63 | + --disable-mcs-build \ |
| 64 | + --disable-nls \ |
| 65 | + --disable-visibility-hidden \ |
| 66 | + --enable-dtrace=no \ |
| 67 | + --enable-maintainer-mode \ |
| 68 | + --enable-minimal=ssa,com,interpreter,portability,assembly_remapping,attach,verifier,full_messages,appdomains,security,sgen_remset,sgen_marksweep_par,sgen_marksweep_fixed,sgen_marksweep_fixed_par,sgen_copying,logging,remoting,shared_perfcounters,gac \ |
| 69 | + --enable-monotouch \ |
| 70 | + --with-lazy-gc-thread-creation=yes \ |
| 71 | + --with-tls=pthread \ |
| 72 | + --without-ikvm-native \ |
| 73 | + --without-sigaltstack \ |
| 74 | + --disable-cooperative-suspend \ |
| 75 | + --disable-hybrid-suspend \ |
| 76 | + --disable-crash-reporting |
| 77 | + |
| 78 | +.stamp-maccat-$(1)-toolchain: |
| 79 | + touch $$@ |
| 80 | + |
| 81 | +$$(eval $$(call RuntimeTemplate,maccat,$(1),$(2)-apple-darwin10,yes)) |
| 82 | + |
| 83 | +endef |
| 84 | + |
| 85 | +maccat-mac64_SYSROOT=-isysroot $(XCODE_DIR)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(MACOS_VERSION).sdk |
| 86 | + |
| 87 | +$(eval $(call MacCatTemplate,mac64,x86_64,$(XCODE_DIR))) |
| 88 | + |
| 89 | +$(eval $(call BclTemplate,maccat,monotouch,monotouch)) |
| 90 | + |
| 91 | +$(maccat_PKG_CONFIG_DIR): package-maccat-mac64 |
| 92 | + rm -rf $(maccat_PKG_CONFIG_DIR) |
| 93 | + mkdir -p $(maccat_PKG_CONFIG_DIR) |
| 94 | + |
| 95 | + cp $(TOP)/sdks/builds/maccat-mac64-$(CONFIGURATION)/data/mono-2.pc $(maccat_PKG_CONFIG_DIR) |
| 96 | + |
| 97 | +$(maccat_LIBS_DIR): package-maccat-mac64 |
| 98 | + rm -rf $(maccat_LIBS_DIR) |
| 99 | + mkdir -p $(maccat_LIBS_DIR) |
| 100 | + |
| 101 | + cp $(TOP)/sdks/out/maccat-mac64-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib $(maccat_LIBS_DIR)/libmonosgen-2.0.dylib |
| 102 | + cp $(TOP)/sdks/out/maccat-mac64-$(CONFIGURATION)/lib/libmono-native.dylib $(maccat_LIBS_DIR)/libmono-native.dylib |
| 103 | + cp $(TOP)/sdks/out/maccat-mac64-$(CONFIGURATION)/lib/libMonoPosixHelper.dylib $(maccat_LIBS_DIR)/libMonoPosixHelper.dylib |
| 104 | + cp $(TOP)/sdks/out/maccat-mac64-$(CONFIGURATION)/lib/libmonosgen-2.0.a $(maccat_LIBS_DIR)/libmonosgen-2.0.a |
| 105 | + cp $(TOP)/sdks/out/maccat-mac64-$(CONFIGURATION)/lib/libmono-native.a $(maccat_LIBS_DIR)/libmono-native.a |
| 106 | + cp $(TOP)/sdks/out/maccat-mac64-$(CONFIGURATION)/lib/libmono-profiler-log.a $(maccat_LIBS_DIR)/libmono-profiler-log.a |
| 107 | + |
| 108 | + $(maccat_mac64_PLATFORM_BIN)/install_name_tool -id @rpath/libmonosgen-2.0.dylib $(maccat_LIBS_DIR)/libmonosgen-2.0.dylib |
| 109 | + $(maccat_mac64_PLATFORM_BIN)/install_name_tool -id @rpath/libmono-native.dylib $(maccat_LIBS_DIR)/libmono-native.dylib |
| 110 | + $(maccat_mac64_PLATFORM_BIN)/install_name_tool -id @rpath/libMonoPosixHelper.dylib $(maccat_LIBS_DIR)/libMonoPosixHelper.dylib |
| 111 | + |
| 112 | +$(maccat_MONO_VERSION): $(TOP)/configure.ac |
| 113 | + mkdir -p $(dir $(maccat_MONO_VERSION)) |
| 114 | + grep AC_INIT $(TOP)/configure.ac | sed -e 's/.*\[//' -e 's/\].*//' > $@ |
| 115 | + |
| 116 | +$(maccat_TPN_DIR)/LICENSE: |
| 117 | + mkdir -p $(maccat_TPN_DIR) |
| 118 | + 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 . $(maccat_TPN_DIR) |
| 119 | + |
| 120 | +$(maccat_TPN_DIR): $(maccat_TPN_DIR)/LICENSE |
0 commit comments