aboutsummaryrefslogtreecommitdiff
path: root/depends/packages/native_cctools.mk
diff options
context:
space:
mode:
Diffstat (limited to 'depends/packages/native_cctools.mk')
-rw-r--r--depends/packages/native_cctools.mk80
1 files changed, 80 insertions, 0 deletions
diff --git a/depends/packages/native_cctools.mk b/depends/packages/native_cctools.mk
new file mode 100644
index 0000000000..e3ba9685b4
--- /dev/null
+++ b/depends/packages/native_cctools.mk
@@ -0,0 +1,80 @@
+package=native_cctools
+$(package)_version=809
+$(package)_download_path=http://www.opensource.apple.com/tarballs/cctools
+$(package)_file_name=cctools-$($(package)_version).tar.gz
+$(package)_sha256_hash=03ba62749b843b131c7304a044a98c6ffacd65b1399b921d69add0375f79d8ad
+$(package)_build_subdir=cctools2odcctools/odcctools-$($(package)_version)
+$(package)_dependencies=native_libuuid native_openssl
+$(package)_ld64_download_file=ld64-127.2.tar.gz
+$(package)_ld64_download_path=http://www.opensource.apple.com/tarballs/ld64
+$(package)_ld64_file_name=$($(package)_ld64_download_file)
+$(package)_ld64_sha256_hash=97b75547b2bd761306ab3e15ae297f01e7ab9760b922bc657f4ef72e4e052142
+$(package)_dyld_download_file=dyld-195.5.tar.gz
+$(package)_dyld_download_path=http://www.opensource.apple.com/tarballs/dyld
+$(package)_dyld_file_name=$($(package)_dyld_download_file)
+$(package)_dyld_sha256_hash=2cf0484c87cf79b606b351a7055a247dae84093ae92c747a74e0cde2c8c8f83c
+$(package)_toolchain4_download_file=10cc648683617cca8bcbeae507888099b41b530c.tar.gz
+$(package)_toolchain4_download_path=https://github.com/mingwandroid/toolchain4/archive
+$(package)_toolchain4_file_name=toolchain4-1.tar.gz
+$(package)_toolchain4_sha256_hash=18406961fd4a1ec5c7ea35c91d6a80a2f8bb797a2bd243a610bd75e13eff9aca
+$(package)_clang_download_file=clang+llvm-3.2-x86-linux-ubuntu-12.04.tar.gz
+$(package)_clang_download_path=http://llvm.org/releases/3.2
+$(package)_clang_file_name=clang-llvm-3.2-x86-linux-ubuntu-12.04.tar.gz
+$(package)_clang_sha256_hash=b9d57a88f9514fa1f327a1a703756d0c1c960f4c58494a5bd80313245d13ffff
+
+define $(package)_fetch_cmds
+$(call fetch_file,$(package),$($(package)_download_path)/$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
+$(call fetch_file,$(package),$($(package)_ld64_download_path)/$($(package)_ld64_download_file),$($(package)_ld64_file_name),$($(package)_ld64_sha256_hash)) && \
+$(call fetch_file,$(package),$($(package)_dyld_download_path)/$($(package)_dyld_download_file),$($(package)_dyld_file_name),$($(package)_dyld_sha256_hash)) && \
+$(call fetch_file,$(package),$($(package)_clang_download_path)/$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash)) && \
+$(call fetch_file,$(package),$($(package)_toolchain4_download_path)/$($(package)_toolchain4_download_file),$($(package)_toolchain4_file_name),$($(package)_toolchain4_sha256_hash))
+endef
+
+define $(package)_set_vars
+$(package)_config_opts=--target=$(host) --with-sysroot=$(OSX_SDK)
+$(package)_cflags+=-m32
+$(package)_cxxflags+=-m32
+$(package)_cppflags+=-D__DARWIN_UNIX03 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
+$(package)_ldflags+=-m32 -Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
+$(package)_ldflags+=-L$$(native_cctools_extract_dir)/clang+llvm-3.2-x86-linux-ubuntu-12.04/lib
+endef
+define $(package)_extract_cmds
+ tar --strip-components=1 -xf $(SOURCES_PATH)/$($(package)_toolchain4_file_name) && \
+ ln -sf $($(package)_source) cctools2odcctools/$($(package)_file_name) && \
+ ln -sf $(SOURCES_PATH)/$($(package)_ld64_file_name) cctools2odcctools/$($(package)_ld64_file_name) && \
+ ln -sf $(SOURCES_PATH)/$($(package)_dyld_file_name) cctools2odcctools/$($(package)_dyld_file_name) && \
+ tar xf $(SOURCES_PATH)/$($(package)_clang_file_name) && \
+ mkdir -p $(SDK_PATH) sdks &&\
+ cd sdks; ln -sf $(OSX_SDK) MacOSX$(OSX_SDK_VERSION).sdk
+endef
+
+define $(package)_preprocess_cmds
+ sed -i "s|GCC_DIR|LLVM_CLANG_DIR|g" cctools2odcctools/extract.sh && \
+ sed -i "s|llvmgcc42-2336.1|clang+llvm-3.2-x86-linux-ubuntu-12.04|g" cctools2odcctools/extract.sh && \
+ sed -i "s|/llvmCore/include/llvm-c|/include/llvm-c \$$$${LLVM_CLANG_DIR}/include/llvm |" cctools2odcctools/extract.sh && \
+ sed -i "s|fAC_INIT|AC_INIT|" cctools2odcctools/files/configure.ac && \
+ sed -i 's/\# Dynamically linked LTO/\t ;\&\n\t linux*)\n# Dynamically linked LTO/' cctools2odcctools/files/configure.ac && \
+ cd cctools2odcctools; ./extract.sh --osxver $(OSX_SDK_VERSION) && \
+ sed -i "s|define\tPC|define\tPC_|" odcctools-809/include/architecture/sparc/reg.h
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install && \
+ cd ../../clang+llvm-3.2-x86-linux-ubuntu-12.04 && \
+ mkdir -p $($(package)_staging_prefix_dir)/lib/clang/3.2/include && \
+ mkdir -p $($(package)_staging_prefix_dir)/bin && \
+ cp -P bin/clang bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\
+ cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
+ cp lib/clang/3.2/include/* $($(package)_staging_prefix_dir)/lib/clang/3.2/include/ && \
+ echo "#!/bin/sh" > $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
+ echo "exit 0" >> $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
+ chmod +x $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil
+endef