# Contributor Travis Tilley # Maintainer: Natanael Copa global pkgname := 'clang' # Note: Update together with llvm. global pkgver := '4.0.0' global pkgrel := '0' global _vermajor := $(pkgver%%.*) global pkgdesc := '"A C language family front-end for LLVM'" global arch := '"all'" global url := '"http://llvm.org/'" global license := '"UOI-NCSA'" global makedepends := "" cmake isl-dev libxml2-dev libxml2-utils llvm-dev>=$_vermajor llvm-static>=$_vermajor paxmark python2 "" global depends_dev := ""$pkgname=$pkgver-r$pkgrel"" global subpackages := ""$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs $pkgname-analyzer::noarch"" global source := ""http://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz clang-0001-Add-Alpine-Linux-distro.patch clang-0002-Use-z-relro-on-Alpine-Linux.patch clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch clang-0004-Add-musl-targets.patch clang-0005-Enable-PIE-by-default-for-alpine-linux.patch clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch "" global builddir := ""$srcdir/cfe-$pkgver.src"" proc build { mkdir -p "$builddir"/build cd "$builddir"/build cmake .. -G "Unix Makefiles" -Wno-dev \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_VERBOSE_MAKEFILE=OFF \ -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 \ || return 1 make clang-tblgen || return 1 make } proc check { cd "$builddir"/build ./bin/clang --version ./bin/clang-check --version ./bin/clang-format --version } proc package { cd "$builddir"/build make DESTDIR="$pkgdir" install || return 1 install -m 644 lib/libclang.a "$pkgdir"/usr/lib } proc static { global pkgdesc := '"Static libraries for clang'" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/ } proc analyzer { global pkgdesc := '"Clang source code analysis framework'" global 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/ || return 1 mv usr/libexec/*-analyzer "$subpkgdir"/usr/libexec/ || return 1 mv usr/share/scan-* "$subpkgdir"/usr/share/ } global sha512sums := '"a0d9972ec337a5c105fcbe7abc4076ba1e580f28908a3318f43bbfe59143f446ed5b78dad210f624145d7e5a3d56c15bfead78826c068422b60120fa1cfa482a cfe-4.0.0.src.tar.xz 4014984a187e4d0331d8315727d1b831e573843cd8d113df43424524cb348bc73ce3d12783351d9a14f9fd14111d75ce71d8f2a85d82b6437a61b11d85796cfb clang-0001-Add-Alpine-Linux-distro.patch 53741890ec3805dd0d5a930ed526cb5bac5f75c459c6910c9461017719186383cf54638af4eea7a38eb7f9f423b18086bd5584b11f7e4babf6cd0edf8b4f4f48 clang-0002-Use-z-relro-on-Alpine-Linux.patch f06e351785d5755827459f17d3533415772ba84b4fbd4e49f418bafd20394e98d42b33a94aa34cff2a7b54c79cf06a6f5d382af5a55cba63a81116f0568d4b25 clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch 2998ab2dfbc3d5629dd7e65e7e39dc0ab96f61e24733cb8d2d4faee50a89f0f159ad44d10182ed4c96f060180f4e22510881f4e9eb00ced01278bde99adf3389 clang-0004-Add-musl-targets.patch 6215080a796fa1fc6f7634781ef77fc245037880dbf075a656823aae5f9f4911294dc6d61172db399b063adbe445c38b73cec12fc66dbe16bd9d84dc58035846 clang-0005-Enable-PIE-by-default-for-alpine-linux.patch d151a6ecca470abb1f4dbc06910155db0688322475655e28cdcb9c0b21930c8bcaf166e9df9fc9dca1be654cf497587961e461d91ee2871fdf454bbd33c5fffe clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch f8c46bb64202c9233595362eb54288c30fbd28309308cbcafe1802dc50ffd676c7a70e6cbdbfd73464f872b40a90acd2eb736dcc9622fd434dbd44a5b0005027 clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(clang)} spids:[6])] spids: [6] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(4.0.0)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_vermajor) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(".*")}) spids: [19 23] ) } spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("A C language family front-end for LLVM"))} spids: [25] ) ] spids: [25] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[30])] spids: [30] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://llvm.org/"))} spids: [35] ) ] spids: [35] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (UOI-NCSA))} spids:[40])] spids: [40] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ("\n") ("\tcmake\n") ("\tisl-dev\n") ("\tlibxml2-dev\n") ("\tlibxml2-utils\n") ("\tllvm-dev>=") ($ VSub_Name "$_vermajor") ("\n") ("\tllvm-static>=") ($ VSub_Name "$_vermajor") ("\n") ("\tpaxmark\n") ("\tpython2\n") ("\t") ) } spids: [45] ) ] spids: [45] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends_dev) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel")) } spids: [63] ) ] spids: [63] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-static ") ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-libs\n") ("\t") ($ VSub_Name "$pkgname") ("-analyzer::noarch") ) } spids: [72] ) ] spids: [72] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://llvm.org/releases/") ($ VSub_Name "$pkgver") (/cfe-) ($ VSub_Name "$pkgver") (".src.tar.xz\n") ("\tclang-0001-Add-Alpine-Linux-distro.patch\n") ("\tclang-0002-Use-z-relro-on-Alpine-Linux.patch\n") ("\tclang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch\n") ("\tclang-0004-Add-musl-targets.patch\n") ("\tclang-0005-Enable-PIE-by-default-for-alpine-linux.patch\n") ("\tclang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch\n") ("\tclang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch\n") ("\t") ) } spids: [87] ) ] spids: [87] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/cfe-) ($ VSub_Name "$pkgver") (.src))} spids: [104] ) ] spids: [104] ) (FuncDef name: build body: (BraceGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (AndOr children: [ (C {(cmake)} {(..)} {(-G)} {(DQ ("Unix Makefiles"))} {(-Wno-dev)} {(-DCMAKE_BUILD_TYPE) (Lit_Other "=") (Release)} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other "=") (/usr)} {(-DCMAKE_VERBOSE_MAKEFILE) (Lit_Other "=") (OFF)} {(-DCLANG_BUILD_EXAMPLES) (Lit_Other "=") (OFF)} {(-DCLANG_INCLUDE_DOCS) (Lit_Other "=") (ON)} {(-DCLANG_INCLUDE_TESTS) (Lit_Other "=") (ON)} {(-DCLANG_PLUGIN_SUPPORT) (Lit_Other "=") (ON)} {(-DLIBCLANG_BUILD_STATIC) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_EH) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_RTTI) (Lit_Other "=") (ON)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(make)} {(clang-tblgen)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(make)}) ] spids: [117] ) spids: [113 116] ) (FuncDef name: check body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (C {(./bin/clang)} {(--version)}) (C {(./bin/clang-check)} {(--version)}) (C {(./bin/clang-format)} {(--version)}) ] spids: [241] ) spids: [237 240] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (AndOr children: [ (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(install)} {(-m)} {(644)} {(lib/libclang.a)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib)}) ] spids: [274] ) spids: [270 273] ) (FuncDef name: static body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Static libraries for clang"))} spids: [325] ) ] spids: [325] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/) (Lit_Other "*") (.a)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/)} ) ] spids: [322] ) spids: [318 321] ) (FuncDef name: analyzer body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Clang source code analysis framework"))} spids: [366] ) ] spids: [366] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel") (" perl python2") ) } spids: [372] ) ] spids: [372] ) (C {(cd)} {(DQ ($ VSub_Name "$pkgdir"))}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/libexec)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/)} ) (AndOr children: [ (C {(mv)} {(usr/bin/scan-) (Lit_Other "*")} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(mv)} {(usr/libexec/) (Lit_Other "*") (-analyzer)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/libexec/)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(mv)} {(usr/share/scan-) (Lit_Other "*")} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/)} ) ] spids: [363] ) spids: [359 362] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "a0d9972ec337a5c105fcbe7abc4076ba1e580f28908a3318f43bbfe59143f446ed5b78dad210f624145d7e5a3d56c15bfead78826c068422b60120fa1cfa482a cfe-4.0.0.src.tar.xz\n" ) ( "4014984a187e4d0331d8315727d1b831e573843cd8d113df43424524cb348bc73ce3d12783351d9a14f9fd14111d75ce71d8f2a85d82b6437a61b11d85796cfb clang-0001-Add-Alpine-Linux-distro.patch\n" ) ( "53741890ec3805dd0d5a930ed526cb5bac5f75c459c6910c9461017719186383cf54638af4eea7a38eb7f9f423b18086bd5584b11f7e4babf6cd0edf8b4f4f48 clang-0002-Use-z-relro-on-Alpine-Linux.patch\n" ) ( "f06e351785d5755827459f17d3533415772ba84b4fbd4e49f418bafd20394e98d42b33a94aa34cff2a7b54c79cf06a6f5d382af5a55cba63a81116f0568d4b25 clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch\n" ) ( "2998ab2dfbc3d5629dd7e65e7e39dc0ab96f61e24733cb8d2d4faee50a89f0f159ad44d10182ed4c96f060180f4e22510881f4e9eb00ced01278bde99adf3389 clang-0004-Add-musl-targets.patch\n" ) ( "6215080a796fa1fc6f7634781ef77fc245037880dbf075a656823aae5f9f4911294dc6d61172db399b063adbe445c38b73cec12fc66dbe16bd9d84dc58035846 clang-0005-Enable-PIE-by-default-for-alpine-linux.patch\n" ) ( "d151a6ecca470abb1f4dbc06910155db0688322475655e28cdcb9c0b21930c8bcaf166e9df9fc9dca1be654cf497587961e461d91ee2871fdf454bbd33c5fffe clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch\n" ) ( "f8c46bb64202c9233595362eb54288c30fbd28309308cbcafe1802dc50ffd676c7a70e6cbdbfd73464f872b40a90acd2eb736dcc9622fd434dbd44a5b0005027 clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch" ) ) } spids: [464] ) ] spids: [464] ) ] )