# Contributor Travis Tilley # Maintainer: Natanael Copa pkgname=clang # Note: Update together with llvm. pkgver=5.0.0 pkgrel=0 _llvmver=${pkgver%%.*} pkgdesc="A C language family front-end for LLVM" arch="all" url="http://llvm.org/" license="UOI-NCSA" makedepends=" cmake isl-dev libedit-dev libxml2-dev libxml2-utils llvm-dev>=$_llvmver llvm-static>=$_llvmver llvm-test-utils>=$_llvmver python2 " depends_dev="$pkgname=$pkgver-r$pkgrel" subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs $pkgname-analyzer::noarch" source="https://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz 0001-Add-Alpine-Linux-distro.patch 0002-Use-z-relro-on-Alpine-Linux.patch 0003-Use-hash-style-gnu-for-Alpine-Linux.patch 0004-Add-musl-targets.patch 0005-Enable-PIE-by-default-for-Alpine-Linux.patch 0006-Link-with-z-now-by-default-for-Alpine-Linux.patch 0007-Enable-stack-protector-by-default-for-Alpine-Linux.patch D33852-enable-__declspec-selectany-on-linux.patch " builddir="$srcdir/cfe-$pkgver.src" prepare() { default_prepare # FIXME: fails on 5.0.0 rm "$builddir/test/OpenMP/task_firstprivate_codegen.cpp" } build() { mkdir -p "$builddir"/build cd "$builddir"/build cmake .. -Wno-dev \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_C_FLAGS_MINSIZEREL_INIT="$CFLAGS" \ -DCMAKE_CXX_FLAGS_MINSIZEREL_INIT="$CXXFLAGS" \ -DCMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT="$LDFLAGS" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_VERBOSE_MAKEFILE=OFF \ \ -DCLANG_VENDOR=Alpine \ -DCLANG_BUILD_EXAMPLES=OFF \ -DCLANG_INCLUDE_DOCS=ON \ -DCLANG_INCLUDE_TESTS=ON \ -DCLANG_PLUGIN_SUPPORT=ON \ -DLIBCLANG_BUILD_STATIC=ON \ -DLLVM_ENABLE_EH=ON \ -DLLVM_ENABLE_RTTI=ON make clang-tblgen make } check() { cd "$builddir"/build make check-clang } package() { cd "$builddir"/build make DESTDIR="$pkgdir" install install -m 644 lib/libclang.a "$pkgdir"/usr/lib } static() { pkgdesc="Static libraries for clang" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/ } analyzer() { pkgdesc="Clang source code analysis framework" depends="$pkgname=$pkgver-r$pkgrel perl python2" cd "$pkgdir" mkdir -p "$subpkgdir"/usr/bin \ "$subpkgdir"/usr/libexec \ "$subpkgdir"/usr/share/ mv usr/bin/scan-* "$subpkgdir"/usr/bin/ mv usr/libexec/*-analyzer "$subpkgdir"/usr/libexec/ mv usr/share/scan-* "$subpkgdir"/usr/share/ } sha512sums="14acdd622310122b544c952ee5b932b7006d9d8424319f0e3974f2503d40a0cec4200fdd3d813a32ce0d877bcfbb9a5bd5c36f6142b4330e6c814f113ca2efe8 cfe-5.0.0.src.tar.xz 98ae759832b2f4c41152f8d16c909044c8d5afb1f4ef3ec10fdc8c3419b2ce8a14a21be989d3919f98869a46ee21f702651d59becb1c87b258846e0d81398358 0001-Add-Alpine-Linux-distro.patch a45d766005500736a270204424e3b3ea6e2334f4807c431cfcb79563d34ac8d6f1519291b3b1422152e2888ee243a060733a09120c17c706d310f5e04a7daae9 0002-Use-z-relro-on-Alpine-Linux.patch ca551fb4e8a844424c63e381c4e1e1239ee95548c7561d46d4e8ae01c65b5e46ece7c51021f152ad4aa10dcdd40c0638728b29aed93ddd65d9aeff2af2e878e8 0003-Use-hash-style-gnu-for-Alpine-Linux.patch 0ba4e6cb6d6854ef627f7f6d60f9f6843490e6c8f91dba7e238742574aecf3c07b1f5928850ce755fca9eac07ef3ce814728da58aa1ed9afb03a397ce4c30562 0004-Add-musl-targets.patch 08486325536871346b190b4af3a7b80b58a0066028e6268b06714eb00b29925b3b414ea62fa5ec4ff908763aeec4257536e04275b40c3d55e0a6c5b433625b5c 0005-Enable-PIE-by-default-for-Alpine-Linux.patch fe5927b7851a97a5223d5b698c5dd01a47ef2fa23d9556cfee976aa7bda639af922785cbe34169e121aab79b38bbb1704aebaf11b1f4f41bcd448947f6e9562b 0006-Link-with-z-now-by-default-for-Alpine-Linux.patch 609ebc1c6cbccd43f8b08e6b653e6da996a09cdcf008744a56af7d8846f1e7a9fc6945d3cc68fba0d06071b6f8de796747606a34d1d5008e0dc620dc0812e3e0 0007-Enable-stack-protector-by-default-for-Alpine-Linux.patch 6bd82b3336c141b3f69d0e79c92dd4663c3b29e67a8bae0a32fa029d9f44291275cf8cbcf5db3ef14f70e5a9a15851a9e082bb59a862c11580515ba47d985247 D33852-enable-__declspec-selectany-on-linux.patch"