#!/bin/sh # This file is a part of Julia. License is MIT: https://julialang.org/license # Script to compile Windows Julia, using binary dependencies from nightlies. # Should work in MSYS assuming 7zip is installed and on the path, # or Cygwin or Linux assuming make, curl, p7zip, and mingw64-$ARCH-gcc-g++ # are installed # Run in top-level Julia directory cd $[dirname $0]/../.. # Stop on error set -e # Make sure stdin exists (not true on appveyor msys2) exec < /dev/null global curlflags := '"curl --retry 10 -k -L -y 5'" proc checksum_download { # checksum_download filename url global f := $1 global url := $2 if test -e $f { deps/tools/jlchecksum $f !2 > /dev/null && return echo "Checksum for '$f' changed, download again." > !2 } echo "Downloading '$f'" $curlflags -O $url deps/tools/jlchecksum $f } # If ARCH environment variable not set, choose based on uname -m if test -z $ARCH -a -z $XC_HOST { export ARCH=$[uname -m] } elif test -z $ARCH { global ARCH := $[echo $XC_HOST | sed 's/-w64-mingw32//] } echo "" > Make.user echo "" > get-deps.log # set MARCH for consistency with how binaries get built if test $ARCH = x86_64 { global bits := '64' global archsuffix := '64' global exc := 'seh' echo "override MARCH = x86-64" >> Make.user echo 'USE_BLAS64 = 1' >> Make.user echo 'LIBBLAS = -L$(JULIAHOME)/usr/bin -lopenblas64_' >> Make.user echo 'LIBBLASNAME = libopenblas64_' >> Make.user } else { global bits := '32' global archsuffix := '86' global exc := 'sjlj' echo "override MARCH = pentium4" >> Make.user echo 'LIBBLAS = -L$(JULIAHOME)/usr/bin -lopenblas' >> Make.user echo 'LIBBLASNAME = libopenblas' >> Make.user } # Set XC_HOST if in Cygwin or Linux matchstr $[uname] { CYGWIN* { if test -z $XC_HOST { global XC_HOST := ""$ARCH-w64-mingw32"" echo "XC_HOST = $XC_HOST" >> Make.user } global CROSS_COMPILE := ""$XC_HOST-"" # Set BUILD_MACHINE and HOSTCC in case we don't have Cygwin gcc installed echo "override BUILD_MACHINE = $ARCH-pc-cygwin" >> Make.user if test -z $[which gcc !2 >/dev/null] { echo 'override HOSTCC = $(CROSS_COMPILE)gcc' >> Make.user } global SEVENZIP := '"7z'" } Linux { if test -z $XC_HOST { global XC_HOST := ""$ARCH-w64-mingw32"" echo "XC_HOST = $XC_HOST" >> Make.user } global CROSS_COMPILE := ""$XC_HOST-"" make win-extras >> get-deps.log global SEVENZIP := '"wine dist-extras/7z.exe'" } * { global CROSS_COMPILE := ''"" global SEVENZIP := '"7z'" } } # Download most recent Julia binary for dependencies if ! test -e julia-installer.exe { global f := "julia-latest-win$bits.exe" echo "Downloading $f" $curlflags -O https://julialangnightlies-s3.julialang.org/bin/winnt/x$archsuffix/$f echo "Extracting $f" $SEVENZIP x -y $f >> get-deps.log } mkdir -p usr for i in [bin/*.dll] { $SEVENZIP e -y julia-installer.exe $i \ -ousr'\'$[dirname $i | sed -e 's|/julia||' -e 's|/|\\\\|g] >> get-deps.log } for i in [share/julia/base/pcre_h.jl] { $SEVENZIP e -y julia-installer.exe $i -obase >> get-deps.log } echo "override PCRE_INCL_PATH =" >> Make.user # Remove libjulia.dll if it was copied from downloaded binary rm -f usr/bin/libjulia.dll rm -f usr/bin/libjulia-debug.dll rm -f usr/bin/libgcc_s_s*-1.dll rm -f usr/bin/libgfortran-3.dll rm -f usr/bin/libquadmath-0.dll rm -f usr/bin/libssp-0.dll rm -f usr/bin/libstdc++-6.dll if test -z $USEMSVC { if test -z $[which $(CROSS_COMPILE)gcc !2 >/dev/null] { global f := "$ARCH-4.9.2-release-win32-$exc-rt_v4-rev3.7z" checksum_download \ $f "https://bintray.com/artifact/download/tkelman/generic/$f" echo "Extracting $f" $SEVENZIP x -y $f >> get-deps.log export PATH=$PWD/mingw$bits/bin:$PATH # If there is a version of make.exe here, it is mingw32-make which won't work rm -f mingw$bits/bin/make.exe } export AR=$(CROSS_COMPILE)ar global f := "llvm-3.9.1-$ARCH-w64-mingw32-juliadeps-r07.7z" } else { echo "override USEMSVC = 1" >> Make.user echo "override ARCH = $ARCH" >> Make.user echo "override XC_HOST = " >> Make.user export CC="$PWD/deps/srccache/libuv/compile cl -nologo -MD -Z7" export AR="$PWD/deps/srccache/libuv/ar-lib lib" export LD="$PWD/linkld link" echo "override CC = $CC" >> Make.user echo 'override CXX = $(CC) -EHsc' >> Make.user echo "override AR = $AR" >> Make.user echo "override LD = $LD -DEBUG" >> Make.user global f := "llvm-3.3-$ARCH-msvc12-juliadeps.7z" } checksum_download \ $f "https://bintray.com/artifact/download/tkelman/generic/$f" echo "Extracting $f" $SEVENZIP x -y $f >> get-deps.log if test -z $[which make !2 >/dev/null] { if test -n $[uname | grep CYGWIN] { echo "Install the Cygwin package for 'make' and try again." exit 1 } global f := '"/make/make-3.81-2/make-3.81-2-msys-1.0.11-bin.tar'" if ! test -e $[basename $f.lzma] { echo "Downloading $[basename $f]" $curlflags -O http://sourceforge.net/projects/mingw/files/MSYS/Base$f.lzma } $SEVENZIP x -y $[basename $f.lzma] >> get-deps.log tar -xf $[basename $f] export PATH=$PWD/bin:$PATH } if ! test -e usr/bin/busybox.exe { global f := 'busybox-w32-FRP-875-gc6ec14a.exe' echo "Downloading $f" $curlflags -o usr/bin/busybox.exe http://frippery.org/files/busybox/$f } chmod +x usr/bin/* usr/tools/* for lib in [SUITESPARSE ARPACK BLAS LAPACK \ GMP MPFR PCRE LIBUNWIND] { echo "USE_SYSTEM_$lib = 1" >> Make.user } echo 'override LIBLAPACK = $(LIBBLAS)' >> Make.user echo 'override LIBLAPACKNAME = $(LIBBLASNAME)' >> Make.user # Remaining dependencies: # libuv since its static lib is no longer included in the binaries # openlibm since we need it as a static library to work properly # utf8proc since its headers are not in the binary download echo 'override DEP_LIBS = libuv utf8proc' >> Make.user if test -n $USEMSVC { # Openlibm doesn't build well with MSVC right now echo 'USE_SYSTEM_OPENLIBM = 1' >> Make.user # Since we don't have a static library for openlibm echo 'override UNTRUSTED_SYSTEM_LIBM = 0' >> Make.user # Compile libuv and utf8proc without -TP first, then add -TP make -C deps install-libuv install-utf8proc cp usr/lib/uv.lib usr/lib/libuv.a echo 'override CC += -TP' >> Make.user echo 'override DEP_LIBS += dsfmt' >> Make.user # Create a modified version of compile for wrapping link sed -e 's/-link//' -e 's/cl/link/g' -e 's/ -Fe/ -OUT:/' \ -e 's|$dir/$lib|$dir/lib$lib|g' deps/srccache/libuv/compile > linkld chmod +x linkld } else { echo 'override DEP_LIBS += openlibm' >> Make.user make check-whitespace make VERBOSE=1 -C base version_git.jl.phony echo 'NO_GIT = 1' >> Make.user } echo 'FORCE_ASSERTIONS = 1' >> Make.user cat Make.user make -j3 VERBOSE=1 all make -j3 VERBOSE=1 install make VERBOSE=1 -C examples cp usr/bin/busybox.exe julia-*/bin make build-stats (CommandList children: [ (C {(cd)} { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Number "$0"))})]) left_token: spids: [25 31] ) (/../..) } ) (C {(set)} {(-e)}) (SimpleCommand words: [{(exec)}] redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(/dev/null)} spids:[46])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:curlflags) op: Equal rhs: {(DQ ("curl --retry 10 -k -L -y 5"))} spids: [51] ) ] spids: [51] ) (FuncDef name: checksum_download body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: {($ VSub_Number "$1")} spids: [67] ) ] spids: [67] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {($ VSub_Number "$2")} spids: [71] ) ] spids: [71] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-e)} {(DQ ($ VSub_Name "$f"))} {(Lit_Other "]")}) terminator: ) ] action: [ (AndOr children: [ (SimpleCommand words: [{(deps/tools/jlchecksum)} {(DQ ($ VSub_Name "$f"))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [97] ) ] ) (ControlFlow token:) ] op_id: Op_DAmp ) (SimpleCommand words: [ {(echo)} {(DQ ("Checksum for '") ($ VSub_Name "$f") ("' changed, download again."))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[114])] ) ] spids: [-1 88] ) ] spids: [-1 118] ) (C {(echo)} {(DQ ("Downloading '") ($ VSub_Name "$f") ("'"))}) (C {($ VSub_Name "$curlflags")} {(-O)} {(DQ ($ VSub_Name "$url"))}) (C {(deps/tools/jlchecksum)} {(DQ ($ VSub_Name "$f"))}) ] spids: [60] ) spids: [56 59] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$ARCH"))} {(-a)} {(-z)} {(DQ ($ VSub_Name "$XC_HOST"))} {(Lit_Other "]")} ) terminator: ) ] action: [ (C {(export)} {(Lit_VarLike "ARCH=") (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-m)})]) left_token: spids: [178 182] ) } ) ] spids: [-1 172] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$ARCH"))} {(Lit_Other "]")}) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARCH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name "$XC_HOST")}) (C {(sed)} {(SQ )}) ] negated: False ) ] ) left_token: spids: [201 213] ) } spids: [200] ) ] spids: [200] ) ] spids: [184 197] ) ] spids: [-1 215] ) (SimpleCommand words: [{(echo)} {(DQ )}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(Make.user)} spids:[223])] ) (SimpleCommand words: [{(echo)} {(DQ )}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(get-deps.log)} spids:[232])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ARCH"))} {(Lit_Other "=")} {(x86_64)} {(Lit_Other "]")} ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:bits) op:Equal rhs:{(64)} spids:[257])] spids: [257] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:archsuffix) op:Equal rhs:{(64)} spids:[261])] spids: [261] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exc) op:Equal rhs:{(seh)} spids:[265])] spids: [265] ) (SimpleCommand words: [{(echo)} {(DQ ("override MARCH = x86-64"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[275])] ) (SimpleCommand words: [{(echo)} {(SQ <"USE_BLAS64 = 1">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[286])] ) (SimpleCommand words: [{(echo)} {(SQ <"LIBBLAS = -L$(JULIAHOME)/usr/bin -lopenblas64_">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[297])] ) (SimpleCommand words: [{(echo)} {(SQ <"LIBBLASNAME = libopenblas64_">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[308])] ) ] spids: [-1 254] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:bits) op:Equal rhs:{(32)} spids:[315])] spids: [315] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:archsuffix) op:Equal rhs:{(86)} spids:[319])] spids: [319] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exc) op:Equal rhs:{(sjlj)} spids:[323])] spids: [323] ) (SimpleCommand words: [{(echo)} {(DQ ("override MARCH = pentium4"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[333])] ) (SimpleCommand words: [{(echo)} {(SQ <"LIBBLAS = -L$(JULIAHOME)/usr/bin -lopenblas">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[344])] ) (SimpleCommand words: [{(echo)} {(SQ <"LIBBLASNAME = libopenblas">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[355])] ) ] spids: [312 359] ) (Case to_match: { (CommandSubPart command_list: (CommandList children:[(C {(uname)})]) left_token: spids: [367 369] ) } arms: [ (case_arm pat_list: [{(CYGWIN) (Lit_Other "*")}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$XC_HOST"))} {(Lit_Other "]")}) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XC_HOST) op: Equal rhs: {(DQ ($ VSub_Name "$ARCH") (-w64-mingw32))} spids: [395] ) ] spids: [395] ) (SimpleCommand words: [{(echo)} {(DQ ("XC_HOST = ") ($ VSub_Name "$XC_HOST"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[409])] ) ] spids: [-1 392] ) ] spids: [-1 414] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CROSS_COMPILE) op: Equal rhs: {(DQ ($ VSub_Name "$XC_HOST") (-))} spids: [417] ) ] spids: [417] ) (SimpleCommand words: [{(echo)} {(DQ ("override BUILD_MACHINE = ") ($ VSub_Name "$ARCH") (-pc-cygwin))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[436])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(which)} {(gcc)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [453] ) ] ) ] ) left_token: spids: [448 455] ) ) } {(Lit_Other "]")} ) terminator: ) ] action: [ (SimpleCommand words: [{(echo)} {(SQ <"override HOSTCC = $(CROSS_COMPILE)gcc">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[470])] ) ] spids: [-1 461] ) ] spids: [-1 475] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SEVENZIP) op:Equal rhs:{(DQ (7z))} spids:[478])] spids: [478] ) ] spids: [374 376 484 -1] ) (case_arm pat_list: [{(Linux)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$XC_HOST"))} {(Lit_Other "]")}) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XC_HOST) op: Equal rhs: {(DQ ($ VSub_Name "$ARCH") (-w64-mingw32))} spids: [507] ) ] spids: [507] ) (SimpleCommand words: [{(echo)} {(DQ ("XC_HOST = ") ($ VSub_Name "$XC_HOST"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[521])] ) ] spids: [-1 504] ) ] spids: [-1 526] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CROSS_COMPILE) op: Equal rhs: {(DQ ($ VSub_Name "$XC_HOST") (-))} spids: [529] ) ] spids: [529] ) (SimpleCommand words: [{(make)} {(win-extras)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(get-deps.log)} spids:[540])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SEVENZIP) op: Equal rhs: {(DQ ("wine dist-extras/7z.exe"))} spids: [545] ) ] spids: [545] ) ] spids: [487 488 551 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CROSS_COMPILE) op:Equal rhs:{(DQ )} spids:[558])] spids: [558] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SEVENZIP) op:Equal rhs:{(DQ (7z))} spids:[563])] spids: [563] ) ] spids: [554 555 569 -1] ) ] spids: [365 371 571] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(Lit_Other "[")} {(-e)} {(julia-installer.exe)} {(Lit_Other "]")})] negated: True ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: {(julia-latest-win) ($ VSub_Name "$bits") (.exe)} spids: [593] ) ] spids: [593] ) (C {(echo)} {(DQ ("Downloading ") ($ VSub_Name "$f"))}) (C {($ VSub_Name "$curlflags")} {(-O)} {(https) (Lit_Other ":") (//julialangnightlies-s3.julialang.org/bin/winnt/x) ($ VSub_Name "$archsuffix") (/) ($ VSub_Name "$f") } ) (C {(echo)} {(DQ ("Extracting ") ($ VSub_Name "$f"))}) (SimpleCommand words: [{($ VSub_Name "$SEVENZIP")} {(x)} {(-y)} {($ VSub_Name "$f")}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(get-deps.log)} spids:[635])] ) ] spids: [-1 590] ) ] spids: [-1 639] ) (C {(mkdir)} {(-p)} {(usr)}) (ForEach iter_name: i iter_words: [{(bin/) (Lit_Other "*") (.dll)}] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [ {($ VSub_Name "$SEVENZIP")} {(e)} {(-y)} {(julia-installer.exe)} {(DQ ($ VSub_Name "$i"))} {(-ousr) (EscapedLiteralPart token:) (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(dirname)} {($ VSub_Name "$i")}) (C {(sed)} {(-e)} {(SQ <"s|/julia||">)} {(-e)} {(SQ <"s|/|\\\\\\\\|g">)}) ] negated: False ) ] ) left_token: spids: [677 697] ) } ] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(get-deps.log)} spids:[699])] ) ] spids: [658 703] ) spids: [652 656] ) (ForEach iter_name: i iter_words: [{(share/julia/base/pcre_h.jl)}] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [ {($ VSub_Name "$SEVENZIP")} {(e)} {(-y)} {(julia-installer.exe)} {(DQ ($ VSub_Name "$i"))} {(-obase)} ] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(get-deps.log)} spids:[731])] ) ] spids: [714 735] ) spids: [710 712] ) (SimpleCommand words: [{(echo)} {(DQ ("override PCRE_INCL_PATH ="))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[743])] ) (C {(rm)} {(-f)} {(usr/bin/libjulia.dll)}) (C {(rm)} {(-f)} {(usr/bin/libjulia-debug.dll)}) (C {(rm)} {(-f)} {(usr/bin/libgcc_s_s) (Lit_Other "*") (-1.dll)}) (C {(rm)} {(-f)} {(usr/bin/libgfortran-3.dll)}) (C {(rm)} {(-f)} {(usr/bin/libquadmath-0.dll)}) (C {(rm)} {(-f)} {(usr/bin/libssp-0.dll)}) (C {(rm)} {(-f)} {(usr/bin/libstdc) (Lit_Other "+") (Lit_Other "+") (-6.dll)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$USEMSVC"))} {(Lit_Other "]")}) terminator: ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(which)} {(${ VSub_Name CROSS_COMPILE) (gcc)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [829] ) ] ) ] ) left_token: spids: [821 831] ) ) } {(Lit_Other "]")} ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: {($ VSub_Name "$ARCH") (-4.9.2-release-win32-) ($ VSub_Name "$exc") (-rt_v4-rev3.7z) } spids: [840] ) ] spids: [840] ) (C {(checksum_download)} {(DQ ($ VSub_Name "$f"))} { (DQ ("https://bintray.com/artifact/download/tkelman/generic/") ($ VSub_Name "$f") ) } ) (C {(echo)} {(DQ ("Extracting ") ($ VSub_Name "$f"))}) (SimpleCommand words: [{($ VSub_Name "$SEVENZIP")} {(x)} {(-y)} {($ VSub_Name "$f")}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(get-deps.log)} spids: [877] ) ] ) (C {(export)} {(Lit_VarLike "PATH=") ($ VSub_Name "$PWD") (/mingw) ($ VSub_Name "$bits") (/bin) (Lit_Other ":") ($ VSub_Name "$PATH") } ) (C {(rm)} {(-f)} {(mingw) ($ VSub_Name "$bits") (/bin/make.exe)}) ] spids: [-1 837] ) ] spids: [-1 906] ) (C {(export)} {(Lit_VarLike "AR=") (${ VSub_Name CROSS_COMPILE) (ar)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: {(llvm-3.9.1-) ($ VSub_Name "$ARCH") (-w64-mingw32-juliadeps-r07.7z)} spids: [919] ) ] spids: [919] ) ] spids: [-1 811] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ ("override USEMSVC = 1"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[933])] ) (SimpleCommand words: [{(echo)} {(DQ ("override ARCH = ") ($ VSub_Name "$ARCH"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[945])] ) (SimpleCommand words: [{(echo)} {(DQ ("override XC_HOST = "))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[956])] ) (C {(export)} {(Lit_VarLike "CC=") (DQ ($ VSub_Name "$PWD") ("/deps/srccache/libuv/compile cl -nologo -MD -Z7")) } ) (C {(export)} {(Lit_VarLike "AR=") (DQ ($ VSub_Name "$PWD") ("/deps/srccache/libuv/ar-lib lib"))} ) (C {(export)} {(Lit_VarLike "LD=") (DQ ($ VSub_Name "$PWD") ("/linkld link"))}) (SimpleCommand words: [{(echo)} {(DQ ("override CC = ") ($ VSub_Name "$CC"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[995])] ) (SimpleCommand words: [{(echo)} {(SQ <"override CXX = $(CC) -EHsc">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1006])] ) (SimpleCommand words: [{(echo)} {(DQ ("override AR = ") ($ VSub_Name "$AR"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1018])] ) (SimpleCommand words: [{(echo)} {(DQ ("override LD = ") ($ VSub_Name "$LD") (" -DEBUG"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1031])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: {(llvm-3.3-) ($ VSub_Name "$ARCH") (-msvc12-juliadeps.7z)} spids: [1037] ) ] spids: [1037] ) ] spids: [924 1042] ) (C {(checksum_download)} {(DQ ($ VSub_Name "$f"))} {(DQ ("https://bintray.com/artifact/download/tkelman/generic/") ($ VSub_Name "$f"))} ) (C {(echo)} {(DQ ("Extracting ") ($ VSub_Name "$f"))}) (SimpleCommand words: [{($ VSub_Name "$SEVENZIP")} {(x)} {(-y)} {($ VSub_Name "$f")}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(get-deps.log)} spids:[1073])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(which)} {(make)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1090] ) ] ) ] ) left_token: spids: [1085 1092] ) ) } {(Lit_Other "]")} ) terminator: ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(uname)}) (C {(grep)} {(CYGWIN)})] negated: False ) ] ) left_token: spids: [1108 1116] ) ) } {(Lit_Other "]")} ) terminator: ) ] action: [ (C {(echo)} {(DQ ("Install the Cygwin package for 'make' and try again."))}) (C {(exit)} {(1)}) ] spids: [-1 1122] ) ] spids: [-1 1137] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: {(DQ (/make/make-3.81-2/make-3.81-2-msys-1.0.11-bin.tar))} spids: [1140] ) ] spids: [1140] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other "[")} {(-e)} { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name "$f") (.lzma)})] ) left_token: spids: [1154 1159] ) } {(Lit_Other "]")} ) ] negated: True ) terminator: ) ] action: [ (C {(echo)} { (DQ ("Downloading ") (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name "$f")})] ) left_token: spids: [1171 1175] ) ) } ) (C {($ VSub_Name "$curlflags")} {(-O)} {(http) (Lit_Other ":") (//sourceforge.net/projects/mingw/files/MSYS/Base) ($ VSub_Name "$f") (.lzma) } ) ] spids: [-1 1164] ) ] spids: [-1 1190] ) (SimpleCommand words: [ {($ VSub_Name "$SEVENZIP")} {(x)} {(-y)} { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name "$f") (.lzma)})] ) left_token: spids: [1199 1204] ) } ] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(get-deps.log)} spids:[1206])] ) (C {(tar)} {(-xf)} { (CommandSubPart command_list: (CommandList children:[(C {(basename)} {($ VSub_Name "$f")})]) left_token: spids: [1215 1219] ) } ) (C {(export)} {(Lit_VarLike "PATH=") ($ VSub_Name "$PWD") (/bin) (Lit_Other ":") ($ VSub_Name "$PATH")} ) ] spids: [-1 1098] ) ] spids: [-1 1230] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(Lit_Other "[")} {(-e)} {(usr/bin/busybox.exe)} {(Lit_Other "]")})] negated: True ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:f) op: Equal rhs: {(busybox-w32-FRP-875-gc6ec14a.exe)} spids: [1249] ) ] spids: [1249] ) (C {(echo)} {(DQ ("Downloading ") ($ VSub_Name "$f"))}) (C {($ VSub_Name "$curlflags")} {(-o)} {(usr/bin/busybox.exe)} {(http) (Lit_Other ":") (//frippery.org/files/busybox/) ($ VSub_Name "$f")} ) ] spids: [-1 1246] ) ] spids: [-1 1272] ) (C {(chmod)} {(Lit_Other "+") (x)} {(usr/bin/) (Lit_Other "*")} {(usr/tools/) (Lit_Other "*")}) (ForEach iter_name: lib iter_words: [{(SUITESPARSE)} {(ARPACK)} {(BLAS)} {(LAPACK)} {(GMP)} {(MPFR)} {(PCRE)} {(LIBUNWIND)}] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (USE_SYSTEM_) ($ VSub_Name "$lib") (" = 1"))}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1322])] ) ] spids: [1311 1326] ) spids: [1291 1309] ) (SimpleCommand words: [{(echo)} {(SQ <"override LIBLAPACK = $(LIBBLAS)">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1334])] ) (SimpleCommand words: [{(echo)} {(SQ <"override LIBLAPACKNAME = $(LIBBLASNAME)">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1344])] ) (SimpleCommand words: [{(echo)} {(SQ <"override DEP_LIBS = libuv utf8proc">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1367])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$USEMSVC"))} {(Lit_Other "]")}) terminator: ) ] action: [ (SimpleCommand words: [{(echo)} {(SQ <"USE_SYSTEM_OPENLIBM = 1">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1398])] ) (SimpleCommand words: [{(echo)} {(SQ <"override UNTRUSTED_SYSTEM_LIBM = 0">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1413])] ) (C {(make)} {(-C)} {(deps)} {(install-libuv)} {(install-utf8proc)}) (C {(cp)} {(usr/lib/uv.lib)} {(usr/lib/libuv.a)}) (SimpleCommand words: [{(echo)} {(SQ <"override CC += -TP">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1447])] ) (SimpleCommand words: [{(echo)} {(SQ <"override DEP_LIBS += dsfmt">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1458])] ) (SimpleCommand words: [ {(sed)} {(-e)} {(SQ )} {(-e)} {(SQ )} {(-e)} {(SQ <"s/ -Fe/ -OUT:/">)} {(-e)} {(SQ <"s|$dir/$lib|$dir/lib$lib|g">)} {(deps/srccache/libuv/compile)} ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(linkld)} spids:[1498])] ) (C {(chmod)} {(Lit_Other "+") (x)} {(linkld)}) ] spids: [-1 1385] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(SQ <"override DEP_LIBS += openlibm">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1519])] ) (C {(make)} {(check-whitespace)}) (C {(make)} {(Lit_VarLike "VERBOSE=") (1)} {(-C)} {(base)} {(version_git.jl.phony)}) (SimpleCommand words: [{(echo)} {(SQ <"NO_GIT = 1">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1547])] ) ] spids: [1510 1551] ) (SimpleCommand words: [{(echo)} {(SQ <"FORCE_ASSERTIONS = 1">)}] redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(Make.user)} spids:[1559])] ) (C {(cat)} {(Make.user)}) (C {(make)} {(-j3)} {(Lit_VarLike "VERBOSE=") (1)} {(all)}) (C {(make)} {(-j3)} {(Lit_VarLike "VERBOSE=") (1)} {(install)}) (C {(make)} {(Lit_VarLike "VERBOSE=") (1)} {(-C)} {(examples)}) (C {(cp)} {(usr/bin/busybox.exe)} {(julia-) (Lit_Other "*") (/bin)}) (C {(make)} {(build-stats)}) ] )