# Contributor: Jakub Jirutka # Maintainer: Jakub Jirutka # Note: This software is total mess and it seems to be nearly impossible to # create a clean distribution package. global pkgname := 'emscripten' # Keep with sync with pkg emscrypten-fastcomp! global pkgver := '1.37.9' global pkgrel := '3' global pkgdesc := '"An LLVM-to-JavaScript Compiler'" global url := '"https://kripken.github.io/emscripten-site/'" global arch := '"all'" global license := '"MIT UOI-NCSA'" global depends := ""$pkgname-optimizer>=$pkgver emscripten-fastcomp>=$pkgver nodejs python2 node-closurecompiler-externs"" global makedepends := '"binaryen clang cmake'" global checkdepends := '"closure-compiler'" global subpackages := ""$pkgname-optimizer $pkgname-libs-asmjs:libs_asmjs:noarch $pkgname-libs-wasm:libs_wasm:noarch"" global source := ""$pkgname-$pkgver.tar.gz::https://github.com/kripken/$pkgname/archive/$pkgver.tar.gz fix-python-shebang.patch settings_template-paths.patch add-system-level-config.patch move-emcc-txt.patch binaryen-wasm-js-path.patch closurecompiler-externs-path.patch closurecompiler-language_in-es6.patch embuilder-fix-task-all-for-wasm.patch embuilder-omit-provided.patch add-global-cache.patch emscripten.cfg"" global builddir := ""$srcdir/$pkgname-$pkgver"" global _ports := '"Bullet-version_1:bullet FreeType-version_1:freetype libpng-version_1:libpng Ogg-version_1:ogg SDL2-version_13:sdl2 SDL2_image-version_3:sdl2-image SDL2_net-version_2:sdl2-net SDL2_ttf-version_1:sdl2-ttf Vorbis-version_1:vorbis zlib-version_1:zlib '" for _port in [$_ports] { global _port := $(_port%:*) global source := ""$source $pkgname-port-$_port-zip::https://github.com/emscripten-ports/$(_port%-*)/archive/$(_port##*-).zip"" } export EM_CACHE="$srcdir/cache" export EM_CONFIG="$srcdir/.emscripten" export EM_PORTS="$srcdir/ports" proc prepare { default_prepare cd $builddir # This file is read from emcc.py for --help. cp site/build/text/docs/tools_reference/emcc.txt . sed -e "s|/usr/share/emscripten|$builddir|" \ -e "s|/usr/bin/emoptimizer|$builddir/tools/optimizer/optimizer|" \ "$srcdir"/emscripten.cfg > $EM_CONFIG # Symlink fetched ports to the directory where emscripten can find them. mkdir -p $EM_PORTS var port = ''; for port in [$_ports] { ln -s "$srcdir"/$pkgname-port-$(port%:*)-zip "$EM_PORTS"/$(port#*:).zip } # Backup and patch system_libs.py to block fetching ports from internet. cp tools/system_libs.py tools/system_libs.py.orig sed -Ei 's/^(\s+).*\.urlopen\(.*/\1logging.error("fetching disabled in abuild"); exit(1)/' \ tools/system_libs.py } proc build { cd "$builddir"/tools/optimizer msg "Building optimizer..." cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_VERBOSE_MAKEFILE=ON make cd $builddir msg "Building libraries and ports for asm.js..." ./embuilder.py build ALL msg "Building libraries and ports for WebAssembly..." env EMCC_WASM_BACKEND=1 ./embuilder.py build ALL } proc check { cd "$builddir"/tests rm -f hello_world.js* ../emcc -Os --closure 1 -o hello_world.js hello_world.c node hello_world.js } proc package { var destdir = ""$pkgdir/usr/share/$pkgname"" var name = '' mkdir -p $destdir cp -r "$builddir"/* "$destdir"/ cd $destdir # Revert original file without connection blocking. mv tools/system_libs.py.orig tools/system_libs.py find . -name "*.bat" -delete find . -name "*.pyc" -delete # these contain wrong absolute path rm -r docs # there are only few PDFs and TeX sources rm -r media # media for website rm -r site # a website (?) rm -r tests # looks more like a dump of random sources than decent tests rm -r third_party # bundled stuff rm -r tools/optimizer # we've already built it rm AUTHORS LICENSE *.md *.markdown package.json rm system/lib/build_cxx_natively.sh tools/update_libc_symbols.sh # garbage mkdir -p "$pkgdir"/usr/bin for name in [em++ em-config emar embuilder.py emcc emcmake \ emconfigure emlink.py emmake emrun emscons] { ln -s ../share/$pkgname/$name "$pkgdir"/usr/bin/$name } install -D -m 644 "$srcdir"/emscripten.cfg "$pkgdir"/etc/emscripten.cfg mkdir cache # this directory should not exist yet! install -m 644 "$EM_CACHE"/is_vanilla.txt cache/ } proc optimizer { global pkgdesc := '"Emscripten's optimizer for asm.js code'" global depends := ''"" install -D -m 755 "$builddir"/tools/optimizer/optimizer \ "$subpkgdir"/usr/bin/emoptimizer } proc libs_asmjs { global pkgdesc := '"Prebuilt libraries and ports for Emscripten - asm.js'" global depends := ""$pkgname=$pkgver-r$pkgrel"" var destdir = ""$subpkgdir/usr/share/$pkgname/cache/asmjs"" mkdir -p $destdir cp -r "$EM_CACHE"/asmjs/*.bc "$destdir"/ } proc libs_wasm { global pkgdesc := '"Prebuilt libraries and ports for Emscripten - WebAssembly'" global depends := ""$pkgname=$pkgver-r$pkgrel"" var destdir = ""$subpkgdir/usr/share/$pkgname/cache/wasm"" mkdir -p $destdir cp -r "$EM_CACHE"/wasm/*.bc "$destdir"/ } global sha512sums := '"0efd9035d3dce0726025b5b8e30129885eef30f915c502b8957150e4ffc11fd0e9a2b605854cdf69ca3eb05e5102bf34341b7edd2116f5fa29fd170a28e7f07f emscripten-1.37.9.tar.gz a61e172ced6b72adb53a840255a9753905a0c7a1c9f8965345781b9cdcc8a596c4dc88f036e91bd5c05d8b3eb2908bbb7d991c4e1abcf35a46be67b9765e546a fix-python-shebang.patch f190ea32dcd4af2661f455ffd8773cb0f7b30ba4a96d22609e11af7186ed1a5c230f3c379d717f23213e87143bb5601acc4d75799631854d0312ff308cbcc14b settings_template-paths.patch 10a7a545f468a5f71fdf1cca0e0be983db5d21387202b851bd11f811c2a0a74f4e4c8733ae9ff933df4ea49c3f5e8e4e16fc3651bc98bb8c37a0828bb29eca7e add-system-level-config.patch 6613ef4cf41bcf0ecc13a0415cdc847f4ec112f07dd19573000ea6a9a6f2360aee6b2db01f822d117d5022dc58b2421be89fe3421c46fd6857737d07ce489c1e move-emcc-txt.patch a2a2c9b56e8d655b06fdbac2e297e07a0bbcdc3e3df7c913b5caac8ddf20f66b91ed77ac46275adcf8e92baedb5a50cb554c8f3fa59823e17006e17d8d11e820 binaryen-wasm-js-path.patch 1d699aa0ab4b257d58c30ebefd6fbce9a74df964c37f360dcbcaaa6e6c6f4bc8e3f706f32e5855fb6e307d099c7eaca47d07d12a52c83caab43b268fccb606ef closurecompiler-externs-path.patch 5b63f42e4934c7c6d5eedb9e46636a488bc0723618dd0b5d5b720d58cf9d1f6a6e6a768fe1ce1188f86bbb931b6881dfdfc36f8c0584775cb66a9d9e8a2cbb9a closurecompiler-language_in-es6.patch 53bb9b64222dd445e8aefbb5a4b87bc6d562ea578a6f7a04c2605703f0235633583144fe478031e650a7346ba89f6e0aaf6c435aedb8398131fa02940356bc17 embuilder-fix-task-all-for-wasm.patch 3d2fb817ea3e1dd661900df1e27bd135f39076723494b7ffbbe9e1561ae0a0e62a4ed0058301cf3e6b9a13f75adafe58dc902d4a32ade2cb16754a7fd5e542af embuilder-omit-provided.patch 8d02f598df12ecbebab151a9d9e6972164bddf4da586e5a3070f2a5b35248b622a663a513295c1bf79fcf13523940ea5e47f8ab1def86e28b260dba8bfef7bac add-global-cache.patch 42142064f828c39fbeb04e65c13c0eae8d843ee8541e67db361086b2d44ad896604d561220363f71aa8aa9f07ae6c285a39f49d9078f5a56e022879ed987c020 emscripten.cfg 3922486816cf7d99ee02c3c1ef63d94290e8ed304016dd9927137d04206e7674d9df8773a4abb7bb57783d0a5107ad0f893aa87acfb34f7b316eec22ca55a536 emscripten-port-Bullet-version_1-zip 0d0b1280ba0501ad0a23cf1daa1f86821c722218b59432734d3087a89acd22aabd5c3e5e1269700dcd41e87073046e906060f167c032eb91a3ac8c5808a02783 emscripten-port-FreeType-version_1-zip a19ede8a4339f2745a490c22f3893899e1a5eae9d2b270e49d88d3a85239fbbaa26c9a352d0e6fb8bb69b4f45bd00c1ae9eff29b60cf03e79c5df45a4409992f emscripten-port-libpng-version_1-zip 929e8d6003c06ae09593021b83323c8f1f54532b67b8ba189f4aedce52c25dc182bac474de5392c46ad5b0dea5a24928e4ede1492d52f4dd5cd58eea9be4dba7 emscripten-port-Ogg-version_1-zip e7cbcafc1398c337814caa4b91692989d65ed5ffdd8ff1bebb9673a566bba6c16f1e3b72abefaff4b3e390b6571eba678e9ea197cdfd14641648b5282688ef50 emscripten-port-SDL2-version_13-zip 785d6f636b5124dbfc65841fcd5c75df42c8186cb85e5c977e6e321317f0381a7690125a78e6687da1081b1ce6c876040d04083e770e2c8b28e7c2e776287555 emscripten-port-SDL2_image-version_3-zip 317b22ad9b6b2f7b40fac7b7c426da2fa2da1803bbe58d480631f1e5b190d730763f2768c77c72affa806c69a1e703f401b15a1be3ec611cd259950d5ebc3711 emscripten-port-SDL2_net-version_2-zip 6ce426de0411ba51dd307027c4ef00ff3de4ee396018e524265970039132ab20adb29c2d2e61576c393056374f03fd148dd96f0c4abf8dcee51853dd32f0778f emscripten-port-SDL2_ttf-version_1-zip 99bee75beb662f8520bbb18ad6dbf8590d30eb3a7360899f0ac4764ca72fe8013da37c9df21e525f9d2dc5632827d4b4cea558cbc938e7fbed0c41a29a7a2dc5 emscripten-port-Vorbis-version_1-zip 77f7d8f18fe11bb66a57e358325b7422d721f7b506bd63293cfde74079f958864db66ead5a36c311a76dd8c2b089b7659641a5522de650de0f9e6865782a60dd emscripten-port-zlib-version_1-zip'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(emscripten)} spids:[13])] spids: [13] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(1.37.9)} spids:[19])] spids: [19] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(3)} spids:[22])] spids: [22] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("An LLVM-to-JavaScript Compiler"))} spids: [25] ) ] spids: [25] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("https://kripken.github.io/emscripten-site/"))} spids: [30] ) ] spids: [30] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[35])] spids: [35] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:license) op: Equal rhs: {(DQ ("MIT UOI-NCSA"))} spids: [40] ) ] spids: [40] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-optimizer>=") ($ VSub_Name "$pkgver") (" emscripten-fastcomp>=") ($ VSub_Name "$pkgver") ("\n") ("\tnodejs python2 node-closurecompiler-externs") ) } spids: [45] ) ] spids: [45] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: {(DQ ("binaryen clang cmake"))} spids: [56] ) ] spids: [56] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:checkdepends) op: Equal rhs: {(DQ (closure-compiler))} spids: [61] ) ] spids: [61] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-optimizer\n") ("\t") ($ VSub_Name "$pkgname") ("-libs-asmjs:libs_asmjs:noarch\n") ("\t") ($ VSub_Name "$pkgname") ("-libs-wasm:libs_wasm:noarch") ) } spids: [66] ) ] spids: [66] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") (".tar.gz::https://github.com/kripken/") ($ VSub_Name "$pkgname") (/archive/) ($ VSub_Name "$pkgver") (".tar.gz\n") ("\tfix-python-shebang.patch\n") ("\tsettings_template-paths.patch\n") ("\tadd-system-level-config.patch\n") ("\tmove-emcc-txt.patch\n") ("\tbinaryen-wasm-js-path.patch\n") ("\tclosurecompiler-externs-path.patch\n") ("\tclosurecompiler-language_in-es6.patch\n") ("\tembuilder-fix-task-all-for-wasm.patch\n") ("\tembuilder-omit-provided.patch\n") ("\tadd-global-cache.patch\n") ("\temscripten.cfg") ) } spids: [78] ) ] spids: [78] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver"))} spids: [101] ) ] spids: [101] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_ports) op: Equal rhs: { (DQ ("Bullet-version_1:bullet\n") ("\tFreeType-version_1:freetype\n") ("\tlibpng-version_1:libpng\n") ("\tOgg-version_1:ogg\n") ("\tSDL2-version_13:sdl2\n") ("\tSDL2_image-version_3:sdl2-image\n") ("\tSDL2_net-version_2:sdl2-net\n") ("\tSDL2_ttf-version_1:sdl2-ttf\n") ("\tVorbis-version_1:vorbis\n") ("\tzlib-version_1:zlib\n") ("\t") ) } spids: [111] ) ] spids: [111] ) (ForEach iter_name: _port iter_words: [{($ VSub_Name "$_ports")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_port) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(":*")}) spids: [139 143] ) } spids: [138] ) ] spids: [138] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ($ VSub_Name "$source") (" ") ($ VSub_Name "$pkgname") (-port-) ($ VSub_Name "$_port") ("-zip::https://github.com/emscripten-ports/") (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{("-*")}) spids: [154 158] ) (/archive/) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*-")}) spids: [160 164] ) (.zip) ) } spids: [146] ) ] spids: [146] ) ] spids: [135 168] ) spids: [131 133] ) (C {(export)} {(Lit_VarLike "EM_CACHE=") (DQ ($ VSub_Name "$srcdir") (/cache))}) (C {(export)} {(Lit_VarLike "EM_CONFIG=") (DQ ($ VSub_Name "$srcdir") (/.emscripten))}) (C {(export)} {(Lit_VarLike "EM_PORTS=") (DQ ($ VSub_Name "$srcdir") (/ports))}) (FuncDef name: prepare body: (BraceGroup children: [ (C {(default_prepare)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(cp)} {(site/build/text/docs/tools_reference/emcc.txt)} {(.)}) (SimpleCommand words: [ {(sed)} {(-e)} {(DQ ("s|/usr/share/emscripten|") ($ VSub_Name "$builddir") ("|"))} {(-e)} { (DQ ("s|/usr/bin/emoptimizer|") ($ VSub_Name "$builddir") ("/tools/optimizer/optimizer|") ) } {(DQ ($ VSub_Name "$srcdir")) (/emscripten.cfg)} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$EM_CONFIG"))} spids: [254] ) ] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$EM_PORTS"))}) (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:port) op:Equal spids:[277])] spids: [275] ) terminator: ) (ForEach iter_name: port iter_words: [{($ VSub_Name "$_ports")}] do_arg_iter: False body: (DoGroup children: [ (C {(ln)} {(-s)} {(DQ ($ VSub_Name "$srcdir")) (/) ($ VSub_Name "$pkgname") (-port-) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(":*")}) spids: [302 306] ) (-zip) } {(DQ ($ VSub_Name "$EM_PORTS")) (/) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("*:")}) spids: [313 317] ) (.zip) } ) ] spids: [289 321] ) spids: [285 287] ) (C {(cp)} {(tools/system_libs.py)} {(tools/system_libs.py.orig)}) (C {(sed)} {(-Ei)} { (SQ < "s/^(\\s+).*\\.urlopen\\(.*/\\1logging.error(\"fetching disabled in abuild\"); exit(1)/" > ) } {(tools/system_libs.py)} ) ] spids: [200] ) spids: [196 199] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/tools/optimizer)}) (C {(msg)} {(DQ ("Building optimizer..."))}) (C {(cmake)} {(-DCMAKE_BUILD_TYPE) (Lit_Other "=") (Release)} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other "=") (/usr)} {(-DCMAKE_CXX_FLAGS) (Lit_Other "=") (DQ ($ VSub_Name "$CXXFLAGS"))} {(-DCMAKE_C_FLAGS) (Lit_Other "=") (DQ ($ VSub_Name "$CFLAGS"))} {(-DCMAKE_C_COMPILER) (Lit_Other "=") (clang)} {(-DCMAKE_VERBOSE_MAKEFILE) (Lit_Other "=") (ON)} ) (C {(make)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(msg)} {(DQ ("Building libraries and ports for asm.js..."))}) (C {(./embuilder.py)} {(build)} {(ALL)}) (C {(msg)} {(DQ ("Building libraries and ports for WebAssembly..."))}) (SimpleCommand words: [{(./embuilder.py)} {(build)} {(ALL)}] more_env: [(env_pair name:EMCC_WASM_BACKEND val:{(1)} spids:[451])] ) ] spids: [355] ) spids: [351 354] ) (FuncDef name: check body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/tests)}) (C {(rm)} {(-f)} {(hello_world.js) (Lit_Other "*")}) (C {(../emcc)} {(-Os)} {(--closure)} {(1)} {(-o)} {(hello_world.js)} {(hello_world.c)}) (C {(node)} {(hello_world.js)}) ] spids: [467] ) spids: [463 466] ) (FuncDef name: package body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:destdir) op: Equal rhs: {(DQ ($ VSub_Name "$pkgdir") (/usr/share/) ($ VSub_Name "$pkgname"))} spids: [518] ) ] spids: [516] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[528])] spids: [526] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$destdir"))}) (C {(cp)} {(-r)} {(DQ ($ VSub_Name "$builddir")) (/) (Lit_Other "*")} {(DQ ($ VSub_Name "$destdir")) (/)} ) (C {(cd)} {(DQ ($ VSub_Name "$destdir"))}) (C {(mv)} {(tools/system_libs.py.orig)} {(tools/system_libs.py)}) (C {(find)} {(.)} {(-name)} {(DQ ("*.bat"))} {(-delete)}) (C {(find)} {(.)} {(-name)} {(DQ ("*.pyc"))} {(-delete)}) (C {(rm)} {(-r)} {(docs)}) (C {(rm)} {(-r)} {(media)}) (C {(rm)} {(-r)} {(site)}) (C {(rm)} {(-r)} {(tests)}) (C {(rm)} {(-r)} {(third_party)}) (C {(rm)} {(-r)} {(tools/optimizer)}) (C {(rm)} {(AUTHORS)} {(LICENSE)} {(Lit_Other "*") (.md)} {(Lit_Other "*") (.markdown)} {(package.json)} ) (C {(rm)} {(system/lib/build_cxx_natively.sh)} {(tools/update_libc_symbols.sh)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin)}) (ForEach iter_name: name iter_words: [ {(em) (Lit_Other "+") (Lit_Other "+")} {(em-config)} {(emar)} {(embuilder.py)} {(emcc)} {(emcmake)} {(emconfigure)} {(emlink.py)} {(emmake)} {(emrun)} {(emscons)} ] do_arg_iter: False body: (DoGroup children: [ (C {(ln)} {(-s)} {(../share/) ($ VSub_Name "$pkgname") (/) ($ VSub_Name "$name")} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) ($ VSub_Name "$name")} ) ] spids: [736 755] ) spids: [708 -1] ) (C {(install)} {(-D)} {(-m)} {(644)} {(DQ ($ VSub_Name "$srcdir")) (/emscripten.cfg)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/emscripten.cfg)} ) (C {(mkdir)} {(cache)}) (C {(install)} {(-m)} {(644)} {(DQ ($ VSub_Name "$EM_CACHE")) (/is_vanilla.txt)} {(cache/)}) ] spids: [513] ) spids: [509 512] ) (FuncDef name: optimizer body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Emscripten's optimizer for asm.js code"))} spids: [810] ) ] spids: [810] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[816])] spids: [816] ) (C {(install)} {(-D)} {(-m)} {(755)} {(DQ ($ VSub_Name "$builddir")) (/tools/optimizer/optimizer)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/emoptimizer)} ) ] spids: [807] ) spids: [803 806] ) (FuncDef name: libs_asmjs body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Prebuilt libraries and ports for Emscripten - asm.js"))} spids: [852] ) ] spids: [852] ) (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") ) } spids: [858] ) ] spids: [858] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:destdir) op: Equal rhs: { (DQ ($ VSub_Name "$subpkgdir") (/usr/share/) ($ VSub_Name "$pkgname") (/cache/asmjs) ) } spids: [870] ) ] spids: [868] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$destdir"))}) (C {(cp)} {(-r)} {(DQ ($ VSub_Name "$EM_CACHE")) (/asmjs/) (Lit_Other "*") (.bc)} {(DQ ($ VSub_Name "$destdir")) (/)} ) ] spids: [849] ) spids: [845 848] ) (FuncDef name: libs_wasm body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Prebuilt libraries and ports for Emscripten - WebAssembly"))} spids: [915] ) ] spids: [915] ) (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") ) } spids: [921] ) ] spids: [921] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:destdir) op: Equal rhs: { (DQ ($ VSub_Name "$subpkgdir") (/usr/share/) ($ VSub_Name "$pkgname") (/cache/wasm) ) } spids: [933] ) ] spids: [931] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$destdir"))}) (C {(cp)} {(-r)} {(DQ ($ VSub_Name "$EM_CACHE")) (/wasm/) (Lit_Other "*") (.bc)} {(DQ ($ VSub_Name "$destdir")) (/)} ) ] spids: [912] ) spids: [908 911] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "0efd9035d3dce0726025b5b8e30129885eef30f915c502b8957150e4ffc11fd0e9a2b605854cdf69ca3eb05e5102bf34341b7edd2116f5fa29fd170a28e7f07f emscripten-1.37.9.tar.gz\n" ) ( "a61e172ced6b72adb53a840255a9753905a0c7a1c9f8965345781b9cdcc8a596c4dc88f036e91bd5c05d8b3eb2908bbb7d991c4e1abcf35a46be67b9765e546a fix-python-shebang.patch\n" ) ( "f190ea32dcd4af2661f455ffd8773cb0f7b30ba4a96d22609e11af7186ed1a5c230f3c379d717f23213e87143bb5601acc4d75799631854d0312ff308cbcc14b settings_template-paths.patch\n" ) ( "10a7a545f468a5f71fdf1cca0e0be983db5d21387202b851bd11f811c2a0a74f4e4c8733ae9ff933df4ea49c3f5e8e4e16fc3651bc98bb8c37a0828bb29eca7e add-system-level-config.patch\n" ) ( "6613ef4cf41bcf0ecc13a0415cdc847f4ec112f07dd19573000ea6a9a6f2360aee6b2db01f822d117d5022dc58b2421be89fe3421c46fd6857737d07ce489c1e move-emcc-txt.patch\n" ) ( "a2a2c9b56e8d655b06fdbac2e297e07a0bbcdc3e3df7c913b5caac8ddf20f66b91ed77ac46275adcf8e92baedb5a50cb554c8f3fa59823e17006e17d8d11e820 binaryen-wasm-js-path.patch\n" ) ( "1d699aa0ab4b257d58c30ebefd6fbce9a74df964c37f360dcbcaaa6e6c6f4bc8e3f706f32e5855fb6e307d099c7eaca47d07d12a52c83caab43b268fccb606ef closurecompiler-externs-path.patch\n" ) ( "5b63f42e4934c7c6d5eedb9e46636a488bc0723618dd0b5d5b720d58cf9d1f6a6e6a768fe1ce1188f86bbb931b6881dfdfc36f8c0584775cb66a9d9e8a2cbb9a closurecompiler-language_in-es6.patch\n" ) ( "53bb9b64222dd445e8aefbb5a4b87bc6d562ea578a6f7a04c2605703f0235633583144fe478031e650a7346ba89f6e0aaf6c435aedb8398131fa02940356bc17 embuilder-fix-task-all-for-wasm.patch\n" ) ( "3d2fb817ea3e1dd661900df1e27bd135f39076723494b7ffbbe9e1561ae0a0e62a4ed0058301cf3e6b9a13f75adafe58dc902d4a32ade2cb16754a7fd5e542af embuilder-omit-provided.patch\n" ) ( "8d02f598df12ecbebab151a9d9e6972164bddf4da586e5a3070f2a5b35248b622a663a513295c1bf79fcf13523940ea5e47f8ab1def86e28b260dba8bfef7bac add-global-cache.patch\n" ) ( "42142064f828c39fbeb04e65c13c0eae8d843ee8541e67db361086b2d44ad896604d561220363f71aa8aa9f07ae6c285a39f49d9078f5a56e022879ed987c020 emscripten.cfg\n" ) ( "3922486816cf7d99ee02c3c1ef63d94290e8ed304016dd9927137d04206e7674d9df8773a4abb7bb57783d0a5107ad0f893aa87acfb34f7b316eec22ca55a536 emscripten-port-Bullet-version_1-zip\n" ) ( "0d0b1280ba0501ad0a23cf1daa1f86821c722218b59432734d3087a89acd22aabd5c3e5e1269700dcd41e87073046e906060f167c032eb91a3ac8c5808a02783 emscripten-port-FreeType-version_1-zip\n" ) ( "a19ede8a4339f2745a490c22f3893899e1a5eae9d2b270e49d88d3a85239fbbaa26c9a352d0e6fb8bb69b4f45bd00c1ae9eff29b60cf03e79c5df45a4409992f emscripten-port-libpng-version_1-zip\n" ) ( "929e8d6003c06ae09593021b83323c8f1f54532b67b8ba189f4aedce52c25dc182bac474de5392c46ad5b0dea5a24928e4ede1492d52f4dd5cd58eea9be4dba7 emscripten-port-Ogg-version_1-zip\n" ) ( "e7cbcafc1398c337814caa4b91692989d65ed5ffdd8ff1bebb9673a566bba6c16f1e3b72abefaff4b3e390b6571eba678e9ea197cdfd14641648b5282688ef50 emscripten-port-SDL2-version_13-zip\n" ) ( "785d6f636b5124dbfc65841fcd5c75df42c8186cb85e5c977e6e321317f0381a7690125a78e6687da1081b1ce6c876040d04083e770e2c8b28e7c2e776287555 emscripten-port-SDL2_image-version_3-zip\n" ) ( "317b22ad9b6b2f7b40fac7b7c426da2fa2da1803bbe58d480631f1e5b190d730763f2768c77c72affa806c69a1e703f401b15a1be3ec611cd259950d5ebc3711 emscripten-port-SDL2_net-version_2-zip\n" ) ( "6ce426de0411ba51dd307027c4ef00ff3de4ee396018e524265970039132ab20adb29c2d2e61576c393056374f03fd148dd96f0c4abf8dcee51853dd32f0778f emscripten-port-SDL2_ttf-version_1-zip\n" ) ( "99bee75beb662f8520bbb18ad6dbf8590d30eb3a7360899f0ac4764ca72fe8013da37c9df21e525f9d2dc5632827d4b4cea558cbc938e7fbed0c41a29a7a2dc5 emscripten-port-Vorbis-version_1-zip\n" ) ( "77f7d8f18fe11bb66a57e358325b7422d721f7b506bd63293cfde74079f958864db66ead5a36c311a76dd8c2b089b7659641a5522de650de0f9e6865782a60dd emscripten-port-zlib-version_1-zip" ) ) } spids: [971] ) ] spids: [971] ) ] )