Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - # LLVM does not provide ABI stability between different versions. For this
 - # reason OE makes it possible to build and install different llvm versions
 - # at the same time.
 - #
 - # This is true for the normal recipes as well as the native ones.
 - #
 - # All regular installation directories are prefixed with 'llvm${LLVM_RELEASE}'
 - # e.g. "${STAGING_BINDIR}/llvm2.5" or "${STAGING_INCDIR}/llvm2.5"
 - #
 - # For your program or library that makes use of llvm you do should not need to
 - # modify anything as long as it uses the results of various llvm-config
 - # invocations. If you need customizations something is wrong and it needs to be
 - # fixed (report bug).
 - #
 - # However the *recipe* for your program/library *must* declare
 - # export WANT_LLVM_RELEASE = "<valid version number>"
 - # The version number is picked up by a generic wrapper script which just calls
 - # the variant of the specified version.
 - DESCRIPTION = "The Low Level Virtual Machine"
 - HOMEPAGE = "http://llvm.org"
 - # 3-clause BSD-like
 - # University of Illinois/NCSA Open Source License
 - LICENSE = "NCSA"
 - LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=d0a3ef0d3e0e8f5cf59e5ffc273ab1f8"
 - DEPENDS = "libffi libxml2-native "
 - inherit perlnative pythonnative autotools
 - LLVM_RELEASE = "${PV}"
 - LLVM_DIR = "llvm${LLVM_RELEASE}"
 - SRC_URI = "http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.gz\
 - http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.gz\
 - http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.gz\
 - "
 - SRC_URI[md5sum] = "40564e1dc390f9844f1711c08b08e391"
 - SRC_URI[sha256sum] = "68766b1e70d05a25e2f502e997a3cb3937187a3296595cf6e0977d5cd6727578"
 - SRC_URI[md5sum] = "8284891e3e311829b8e44ac813d0c9ef"
 - SRC_URI[sha256sum] = "b1b55de4ab3a57d3e0331a83e0284610191c77d924e3446498d9113d08dfb996"
 - SRC_URI[md5sum] = "9c129ce24514467cfe492cf2fed8e2c4"
 - SRC_URI[sha256sum] = "0e2f3180d6316e6c43f064fdd406c5c6515e682c5f31c57c28335b68c7525423"
 - S = "${WORKDIR}/llvm-${PV}.src"
 - LLVM_BUILD_DIR = "${WORKDIR}/llvm-${PV}.build"
 - LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install"
 - EXTRA_OECONF += "--disable-assertions \
 - --prefix=/usr\
 - --enable-debug-runtime \
 - --disable-expensive-checks \
 - --enable-bindings=none \
 - --enable-keep-symbols \
 - --enable-libffi \
 - --enable-optimized \
 - --enable-shared \
 - --enable-targets=x86_64\
 - "
 - EXTRA_OECMAKE_append_class_target = " -DCMAKE_CROSSCOMPILING=True"
 - EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1"
 - do_configure_prepend() {
 - #move clang's and compiler rt directory
 - mkdir -p ${WORKDIR}/llvm-${PV}.src/tools/clang
 - mkdir -p ${WORKDIR}/llvm-${PV}.src/projects/compiler-rt
 - cp -R ${WORKDIR}/cfe-${PV}.src/* ${WORKDIR}/llvm-${PV}.src/tools/clang/
 - cp -R ${WORKDIR}/compiler-rt-${PV}.src/* ${WORKDIR}/llvm-${PV}.src/projects/compiler-rt
 - # Remove RPATHs
 - sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' ${S}/Makefile.rules
 - # Drop "svn" suffix from version string
 - sed -i 's/${PV}svn/${PV}/g' ${S}/configure
 - # Fix paths in llvm-config
 - sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
 - sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp
 - # Fails to build unless using separate directory from source
 - mkdir -p ${LLVM_BUILD_DIR}
 - cd ${LLVM_BUILD_DIR}
 - }
 - do_compile() {
 - cd ${LLVM_BUILD_DIR}
 - oe_runmake \
 - AR="${BUILD_AR}" \
 - CC="${BUILD_CC}" \
 - CFLAGS="${BUILD_CFLAGS}" \
 - CXX="${BUILD_CXX}" \
 - CXXFLAGS="${BUILD_CXXFLAGS}" \
 - CPP="${BUILD_CPP}" \
 - CPPFLAGS="${BUILD_CPPFLAGS}" \
 - NM="${BUILD_NM}" \
 - RANLIB="${BUILD_RANLIB}" \
 - PATH="${STAGING_BINDIR_NATIVE}:$PATH" \
 - cross-compile-build-tools
 - oe_runmake
 - }
 - do_install() {
 - cd ${LLVM_BUILD_DIR}
 - oe_runmake DESTDIR=${LLVM_INSTALL_DIR} install
 - mv ${LLVM_INSTALL_DIR}${bindir}/${HOST_SYS}-llvm-config-host ${LLVM_INSTALL_DIR}/llvm-config-host
 - install -d ${D}${bindir}/${LLVM_DIR}
 - mv ${LLVM_INSTALL_DIR}${bindir}/* ${D}${bindir}/${LLVM_DIR}/
 - install -d ${D}${includedir}/${LLVM_DIR}
 - install -d ${D}{libdir}/clang/${PV}
 - mv ${LLVM_INSTALL_DIR}${includedir}/ ${D}${includedir}/${LLVM_DIR}/
 - install -d ${D}${libdir}/${LLVM_DIR}
 - mv ${LLVM_INSTALL_DIR}${libdir}/* ${D}${libdir}/${LLVM_DIR}/
 - ln -s ${LLVM_DIR}/libLLVM-${PV}.so ${D}${libdir}/libLLVM-${PV}.so
 - install -d ${D}${docdir}/${LLVM_DIR}
 - mv ${LLVM_INSTALL_DIR}${prefix}/docs/llvm/* ${D}${docdir}/${LLVM_DIR}
 - install -d ${D}{libdir}/clang/${PV}
 - cp ${LLVM_BUILD_DIR}/Release/bin/clang ${D}${bindir}
 - cp ${LLVM_BUILD_DIR}/Release/bin/llvm* ${D}${bindir}
 - }
 - SYSROOT_PREPROCESS_FUNCS += "llvm_sysroot_preprocess"
 - llvm_sysroot_preprocess() {
 - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
 - mv ${LLVM_INSTALL_DIR}/llvm-config-host ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
 - }
 - ALLOW_EMPTY_${PN} = "1"
 - ALLOW_EMPTY_${PN}-staticdev = "1"
 - FILES_${PN} = " \
 - ${libdir}/${LLVM_DIR}/libLTO.so\
 - ${libdir}/${LLVM_DIR}/libLLVM-3.3.so\
 - ${libdir}/${LLVM_DIR}/libclang.so\
 - ${libdir}/llvm${PV}/clang/${PV}/include/avxintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/arm_neon.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/bmiintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/mm3dnow.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/module.map\
 - ${libdir}/llvm${PV}/clang/${PV}/include/tgmath.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/__wmmintrin_pclmul.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/stdalign.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/pmmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/varargs.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/f16cintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/immintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/avx2intrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/x86intrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/stdbool.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/lzcntintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/__wmmintrin_aes.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/float.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/unwind.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/rdseedintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/stdarg.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/fmaintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/ammintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/wmmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/smmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/tmmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/popcntintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/emmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/stdnoreturn.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/stdint.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/fma4intrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/bmi2intrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/cpuid.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/prfchwintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/mm_malloc.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/mmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/altivec.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/iso646.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/stddef.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/limits.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/xmmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/nmmintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/xopintrin.h\
 - ${libdir}/llvm${PV}/clang/${PV}/include/rtmintrin.h\
 - ${bindir}/clang-tblgen\
 - ${bindir}/clang-format\
 - ${bindir}/bugpoint\
 - ${bindir}/clang-check\
 - ${bindir}/count\
 - ${bindir}/llvm-dwarfdump\
 - ${bindir}/llvm-tblgen\
 - ${bindir}/llvm-ar\
 - ${bindir}/FileCheck\
 - ${bindir}/clang++\
 - ${bindir}/llvm-lit\
 - ${bindir}/fpcmp\
 - ${bindir}/c-arcmt-test\
 - ${bindir}/llvm-prof\
 - ${bindir}/llvm-link\
 - ${bindir}/macho-dump\
 - ${bindir}/llvm-stress\
 - ${bindir}/llvm-mcmarkup\
 - ${bindir}/not\
 - ${bindir}/c-index-test\
 - ${bindir}/llvm-ranlib\
 - ${bindir}/llvm-bcanalyzer\
 - ${bindir}/llvm-nm\
 - ${bindir}/llvm-objdump\
 - ${bindir}/llvm-config\
 - ${bindir}/llvm-dis\
 - ${bindir}/llvm-PerfectShuffle\
 - ${bindir}/llvm-diff\
 - ${bindir}/llc\
 - ${bindir}/llvm-rtdyld\
 - ${bindir}/llvm-as\
 - ${bindir}/llvm-size\
 - ${bindir}/obj2yaml\
 - ${bindir}/arcmt-test\
 - ${bindir}/llvm-mc\
 - ${bindir}/FileUpdate\
 - ${bindir}/yaml2obj\
 - ${bindir}/llvm-cov\
 - ${bindir}/diagtool\
 - ${bindir}/FileCheck\
 - ${bindir}/llvm-symbolizer\
 - ${bindir}/lli\
 - ${bindir}/opt\
 - ${bindir}/llvm-readobj\
 - ${bindir}/llvm-extract\
 - ${bindir}/clang\
 - ${bindir}/Xl_@H�W@@\
 - "
 - FILES_${PN}-staticdev = "${libdir}/${LLVM_DIR}/libLLVMMCParser.a\
 - ${libdir}/${LLVM_DIR}/libLLVMInstrumentation.a\
 - ${libdir}/${LLVM_DIR}/libLLVMMCJIT.a\
 - ${libdir}/${LLVM_DIR}/libLLVMCore.a\
 - ${libdir}/${LLVM_DIR}/libLLVMObjCARCOpts.a\
 - ${libdir}/${LLVM_DIR}/libLLVMSupport.a\
 - ${libdir}/${LLVM_DIR}/libLLVMX86AsmParser.a\
 - ${libdir}/${LLVM_DIR}/libLLVMAsmPrinter.a\
 - ${libdir}/${LLVM_DIR}/libLLVMAnalysis.a\
 - ${libdir}/${LLVM_DIR}/libprofile_rt.so\
 - ${libdir}/${LLVM_DIR}/libLLVMRuntimeDyld.a\
 - ${libdir}/${LLVM_DIR}/libLTO.a\
 - ${libdir}/${LLVM_DIR}/libLLVMScalarOpts.a\
 - ${libdir}/${LLVM_DIR}/libLLVMX86CodeGen.a\
 - ${libdir}/${LLVM_DIR}/libLLVMLinker.a\
 - ${libdir}/${LLVM_DIR}/libLLVMExecutionEngine.a\
 - ${libdir}/${LLVM_DIR}/libLLVMSelectionDAG.a\
 - ${libdir}/${LLVM_DIR}/libLLVMInterpreter.a\
 - ${libdir}/${LLVM_DIR}/libprofile_rt.a\
 - ${libdir}/${LLVM_DIR}/libLLVMInstCombine.a\
 - ${libdir}/${LLVM_DIR}/libLLVMMCDisassembler\
 - ${libdir}/${LLVM_DIR}/libLLVMArchive.a\
 - ${libdir}/${LLVM_DIR}/libLLVMJIT.a\
 - ${libdir}/${LLVM_DIR}/libLLVMTableGen.a\
 - ${libdir}/${LLVM_DIR}/libLLVMVectorize.a\
 - ${libdir}/${LLVM_DIR}/libLLVMX86Info.a\
 - ${libdir}/${LLVM_DIR}/libLLVMCodeGen.a\
 - ${libdir}/${LLVM_DIR}/libLLVMX86Disassembler.a\
 - ${libdir}/${LLVM_DIR}/libLLVMipa.a\
 - ${libdir}/${LLVM_DIR}/libLLVMTarget.a\
 - ${libdir}/${LLVM_DIR}/libLLVMX86AsmPrinter.a\
 - ${libdir}/${LLVM_DIR}/libLLVMTransformUtils.a\
 - ${libdir}/${LLVM_DIR}/libLLVMX86Utils.a\
 - ${libdir}/${LLVM_DIR}/libLLVMIRReader.a\
 - ${libdir}/${LLVM_DIR}/libLLVMBitReader.a\
 - ${libdir}/${LLVM_DIR}/libLLVMX86Desc.a\
 - ${libdir}/${LLVM_DIR}/libLLVMAsmParser.a\
 - ${libdir}/${LLVM_DIR}/libLLVMMC.a\
 - ${libdir}/${LLVM_DIR}/libLLVMipo.a\
 - ${libdir}/${LLVM_DIR}/libLLVMBitWriter.a\
 - ${libdir}/${LLVM_DIR}/libLLVMObject.a\
 - ${libdir}/${LLVM_DIR}/libLLVMDebugInfo.a\
 - ${libdir}/${LLVM_DIR}/libLLVMOption.a\
 - ${libdir}/${LLVM_DIR}/libLLVMMCDisassembler.a\
 - ${libdir}/${LLVM_DIR}libclangRewriteCore.a\
 - ${libdir}/${LLVM_DIR}/libclangEdit.a\
 - ${libdir}/${LLVM_DIR}/libclangBasic.a\
 - ${libdir}/${LLVM_DIR}/libclangFormat.a\
 - ${libdir}/${LLVM_DIR}/libclangASTMatchers.a\
 - ${libdir}/${LLVM_DIR}/libclangStaticAnalyzerCore.a\
 - ${libdir}/${LLVM_DIR}/libclangFrontendTool.a\
 - ${libdir}/${LLVM_DIR}/libclangLex.a\
 - ${libdir}/${LLVM_DIR}/libclangRewriteFrontend.a\
 - ${libdir}/${LLVM_DIR}/libclangCodeGen.a\
 - ${libdir}/${LLVM_DIR}/libclangAST.a\
 - ${libdir}/${LLVM_DIR}/libclangSerialization.a\
 - ${libdir}/${LLVM_DIR}/libclangStaticAnalyzerCheckers.a\
 - ${libdir}/${LLVM_DIR}/libclangTooling.a\
 - ${libdir}/${LLVM_DIR}/libclang.a\
 - ${libdir}/${LLVM_DIR}/libclangSema.a\
 - ${libdir}/${LLVM_DIR}/libclangDriver.a\
 - ${libdir}/${LLVM_DIR}/libclangStaticAnalyzerFrontend.a\
 - ${libdir}/${LLVM_DIR}/libclangARCMigrate.a\
 - ${libdir}/${LLVM_DIR}/libclangAnalysis.a\
 - ${libdir}/${LLVM_DIR}/libclangFrontend.a\
 - ${libdir}/${LLVM_DIR}/libclangParse.a\
 - ${libdir}/${LLVM_DIR}/libclangRewriteCore.a\
 - "
 - DOTDEBUG-dbg = " ${bindir}/${LLVM_DIR}/.debug \
 - ${bindir}/.debug\
 - ${libdir}/${LLVM_DIR}/.debug/BugpointPasses.so \
 - ${libdir}/${LLVM_DIR}/.debug/LLVMHello.so \
 - /usr/src/debug \
 - ${libdir}/${LLVM_DIR}/.debug/libprofile_rt.so\
 - ${libdir}/${LLVM_DIR}/.debug/libLTO.so\
 - ${libdir}/${LLVM_DIR}/.debug/libLLVM-3.3.so\
 - ${libdir}/${LLVM_DIR}/.debug/libclang.so\
 - ${libdir}/${LLVM_DIR}/.debug/clang-tblgen\
 - ${libdir}/${LLVM_DIR}/.debug/clang-format\
 - ${libdir}/${LLVM_DIR}/.debug/bugpoint\
 - ${libdir}/${LLVM_DIR}/.debug/clang-check\
 - ${libdir}/${LLVM_DIR}/.debug/count\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-dwarfdump\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-tblgen\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-ar\
 - ${libdir}/${LLVM_DIR}/.debug/FileCheck\
 - ${libdir}/${LLVM_DIR}/.debug/clang++\
 - ${libdir}/${LLVM_DIR}/.debug/fpcmp\
 - ${libdir}/${LLVM_DIR}/.debug/c-arcmt-test\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-prof\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-link\
 - ${libdir}/${LLVM_DIR}/.debug/macho-dump\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-stress\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-mcmarkup\
 - ${libdir}/${LLVM_DIR}/.debug/not\
 - ${libdir}/${LLVM_DIR}/.debug/c-index-test\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-ranlib\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-bcanalyzer\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-nm\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-objdump\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-config\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-dis\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-PerfectShuffle\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-diff\
 - ${libdir}/${LLVM_DIR}/.debug/llc\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-rtdyld\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-as\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-size\
 - ${libdir}/${LLVM_DIR}/.debug/obj2yaml\
 - ${libdir}/${LLVM_DIR}/.debug/arcmt-test\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-mc\
 - ${libdir}/${LLVM_DIR}/.debug/FileUpdate\
 - ${libdir}/${LLVM_DIR}/.debug/yaml2obj\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-cov\
 - ${libdir}/${LLVM_DIR}/.debug/diagtool\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-symbolizer\
 - ${libdir}/${LLVM_DIR}/.debug/lli\
 - ${libdir}/${LLVM_DIR}/.debug/opt\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-readobj\
 - ${libdir}/${LLVM_DIR}/.debug/llvm-extract\
 - ${libdir}/${LLVM_DIR}/.debug/clang\
 - "
 - FILES_${PN}-dev = "${bindir}/${LLVM_DIR} \
 - ${includedir}/${LLVM_DIR} \
 - ${libdir}/${LLVM_DIR}/BugpointPasses.so \
 - ${libdir}/${LLVM_DIR}/LLVMHello.so \
 - ${libdir}/${LLVM_DIR}/libLLVMMCParser.a\
 - ${libdir}/libLLVM-3.3.so\
 - "
 - INSANE_SKIP_libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE} += "dev-so"
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment