# Contributor: William Pitcock # Contributor: Timo Teras # Maintainer: Leonardo Arena global pkgname := 'u-boot' global pkgver := '2017.01' global pkgrel := '2' global pkgdesc := '"u-boot bootloader common files'" global url := '"http://www.denx.de/wiki/U-Boot/'" global arch := '"armhf aarch64'" global license := '"GPL2'" global depends := ''"" global depends_dev := ''"" global makedepends := ""$depends_dev bc dtc python"" global install := ''"" global source := ""ftp://ftp.denx.de/pub/u-boot/u-boot-$(pkgver//_/-).tar.bz2 README.txt update-u-boot "" global _srcdir := ""$srcdir"/u-boot-$(pkgver//_/-)" global builddir := ""$srcdir"/build" matchstr $CARCH { armhf { global board_configs := '" beagleboard:am335x_boneblack cubieboard:Cubieboard,Cubieboard2 cuboxi:mx6cuboxi raspberrypi:rpi,rpi_2,rpi_3_32b wandboard:wandboard '"} aarch64 { global board_configs := '" thunderx:thunderx_88xx '"} } global _allboards := ''"" for board_config in [$board_configs] { global _allboards := ""$_allboards $pkgname-$(board_config%%:*)"" } global subpackages := ""$pkgname-all:_all $_allboards"" proc build { cd $_srcdir touch include/config.h env LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > include/timestamp_autogenerated.h env LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> include/timestamp_autogenerated.h var board_config = '', board = '' for board_config in [$board_configs] { var configs = $(board_config#*:) for board in [$(configs//,/ )] { msg "Building u-boot for $board" export BUILD_DIR="$builddir"/$board mkdir -p $BUILD_DIR make O="$BUILD_DIR" $(board)_config || return 1 make O="$BUILD_DIR" all || return 1 } } } proc package { cd $builddir mkdir -p "$pkgdir"/usr/share/$pkgname "$pkgdir"/usr/sbin install "$srcdir"/README.txt "$pkgdir"/usr/share/$pkgname/README.txt || return 1 install "$srcdir"/update-u-boot "$pkgdir"/usr/sbin || return 1 } proc _all { global pkgdesc := '"u-boot for all boards (meta package)'" global depends := $_allboards mkdir -p "$subpkgdir"/ } proc _split_boards { cd $builddir global pkgdesc := ""u-boot for $1"" global depends := '"u-boot'" shift var board = ''for board in @Argv { msg "Including board $board" mkdir -p "$subpkgdir"/usr/share/$pkgname/$board export BUILD_DIR="$builddir"/$board var ok = 'no' for image in [u-boot-sunxi-with-spl.bin -- MLO SPL u-boot.img -- u-boot.bin] { if test $image = "--" { test $ok = yes && break continue } if test -e "$BUILD_DIR"/$image { cp "$BUILD_DIR"/$image "$subpkgdir"/usr/share/$pkgname/$board \ || return 1 ok := 'yes' } } test $ok = yes || return 1 } } for board_config in [$board_configs] { global _board := $(board_config%%:*) global _configs := $(board_config#*:) eval "$(_board)() { _split_boards $_board $(_configs//,/ ); }" } global sha512sums := '"d24c7d1305d81326a0f18071c073cd80c5ac43fcc8d8495509c56a8207620acc3d3e86afa873f738953841b3f6273e345493aad449f2464673275cc221270527 u-boot-2017.01.tar.bz2 f8c9bb6e84d6f0620c976ac7ad5dd7ec7ff9dfdd4b1d03d2bf6653e7beccf80bdf2debfc92fb1f696dba92fb40287d3c45897e0078951451d0835cb61a5f16d1 README.txt c860f2cd6fe0ad9a462ac12a7df24b621ac53a07ada21a53791fd14f73c08619adb1f70a61507cc0b531c7beb1953ea8224b8dca5585a5d11b8df43d9ee0ac76 update-u-boot'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(u-boot)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2017.01)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(2)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("u-boot bootloader common files"))} spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://www.denx.de/wiki/U-Boot/"))} spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ ("armhf aarch64"))} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (GPL2))} spids:[33])] spids: [33] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[38])] spids: [38] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends_dev) op:Equal rhs:{(DQ )} spids:[42])] spids: [42] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: {(DQ ($ VSub_Name "$depends_dev") (" bc dtc python"))} spids: [46] ) ] spids: [46] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:install) op:Equal rhs:{(DQ )} spids:[52])] spids: [52] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("ftp://ftp.denx.de/pub/u-boot/u-boot-") (BracedVarSub token: suffix_op: (PatSub pat: {(_)} replace: {(-)} do_all: True do_prefix: False do_suffix: False ) spids: [59 66] ) (".tar.bz2\n") ("\tREADME.txt\n") ("\tupdate-u-boot\n") ("\t") ) } spids: [56] ) ] spids: [56] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_srcdir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir")) (/u-boot-) (BracedVarSub token: suffix_op: (PatSub pat: {(_)} replace: {(-)} do_all: True do_prefix: False do_suffix: False ) spids: [79 86] ) } spids: [74] ) ] spids: [74] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir")) (/build)} spids: [88] ) ] spids: [88] ) (Case to_match: {(DQ ($ VSub_Name "$CARCH"))} arms: [ (case_arm pat_list: [{(armhf)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:board_configs) op: Equal rhs: { (DQ ("\n") ("\tbeagleboard:am335x_boneblack\n") ("\tcubieboard:Cubieboard,Cubieboard2\n") ("\tcuboxi:mx6cuboxi\n") ("\traspberrypi:rpi,rpi_2,rpi_3_32b\n") ("\twandboard:wandboard\n") ("\t") ) } spids: [106] ) ] spids: [106] ) ] spids: [103 104 116 -1] ) (case_arm pat_list: [{(aarch64)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:board_configs) op: Equal rhs: {(DQ ("\n") ("\tthunderx:thunderx_88xx\n") ("\t"))} spids: [121] ) ] spids: [121] ) ] spids: [118 119 127 -1] ) ] spids: [95 101 129] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_allboards) op:Equal rhs:{(DQ )} spids:[132])] spids: [132] ) (ForEach iter_name: board_config iter_words: [{($ VSub_Name "$board_configs")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_allboards) op: Equal rhs: { (DQ ($ VSub_Name "$_allboards") (" ") ($ VSub_Name "$pkgname") (-) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(":*")}) spids: [154 158] ) ) } spids: [148] ) ] spids: [148] ) ] spids: [145 161] ) spids: [141 143] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") ("-all:_all ") ($ VSub_Name "$_allboards"))} spids: [163] ) ] spids: [163] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$_srcdir"))}) (C {(touch)} {(include/config.h)}) (SimpleCommand words: [{(date)} {(Lit_Other "+") (SQ <"#define U_BOOT_DATE \"%b %d %C%y\"">)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(include/timestamp_autogenerated.h)} spids: [200] ) ] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[190])] ) (SimpleCommand words: [{(date)} {(Lit_Other "+") (SQ <"#define U_BOOT_TIME \"%T\"">)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(include/timestamp_autogenerated.h)} spids: [215] ) ] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[205])] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:board_config) op:Equal spids:[223]) (assign_pair lhs:(LhsName name:board) op:Equal spids:[225]) ] spids: [221] ) (ForEach iter_name: board_config iter_words: [{($ VSub_Name "$board_configs")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:configs) op: Equal rhs: { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("*:")}) spids: [244 248] ) ) } spids: [242] ) ] spids: [240] ) (ForEach iter_name: board iter_words: [ { (BracedVarSub token: suffix_op: (PatSub pat: {(",")} replace: {(" ")} do_all: True do_prefix: False do_suffix: False ) spids: [258 265] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(msg)} {(DQ ("Building u-boot for ") ($ VSub_Name "$board"))}) (C {(export)} {(Lit_VarLike "BUILD_DIR=") (DQ ($ VSub_Name "$builddir")) (/) ($ VSub_Name "$board") } ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$BUILD_DIR"))}) (AndOr children: [ (C {(make)} {(Lit_VarLike "O=") (DQ ($ VSub_Name "$BUILD_DIR"))} {(${ VSub_Name board) (_config)} ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(make)} {(Lit_VarLike "O=") (DQ ($ VSub_Name "$BUILD_DIR"))} {(all)}) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [268 333] ) spids: [257 266] ) ] spids: [237 336] ) spids: [233 235] ) ] spids: [175] ) spids: [171 174] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/) ($ VSub_Name "$pkgname")} {(DQ ($ VSub_Name "$pkgdir")) (/usr/sbin)} ) (AndOr children: [ (C {(install)} {(DQ ($ VSub_Name "$srcdir")) (/README.txt)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/) ($ VSub_Name "$pkgname") (/README.txt)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(install)} {(DQ ($ VSub_Name "$srcdir")) (/update-u-boot)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/sbin)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [345] ) spids: [341 344] ) (FuncDef name: _all body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("u-boot for all boards (meta package)"))} spids: [420] ) ] spids: [420] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ($ VSub_Name "$_allboards"))} spids: [426] ) ] spids: [426] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/)}) ] spids: [417] ) spids: [413 416] ) (FuncDef name: _split_boards body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("u-boot for ") ($ VSub_Number "$1"))} spids: [459] ) ] spids: [459] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ (u-boot))} spids: [466] ) ] spids: [466] ) (C {(shift)}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:board) op:Equal spids:[477])] spids: [475] ) (ForEach iter_name: board do_arg_iter: True body: (DoGroup children: [ (C {(msg)} {(DQ ("Including board ") ($ VSub_Name "$board"))}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/) ($ VSub_Name "$pkgname") (/) ($ VSub_Name "$board") } ) (C {(export)} {(Lit_VarLike "BUILD_DIR=") (DQ ($ VSub_Name "$builddir")) (/) ($ VSub_Name "$board") } ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:ok) op:Equal rhs:{(no)} spids:[521])] spids: [519] ) (ForEach iter_name: image iter_words: [ {(u-boot-sunxi-with-spl.bin)} {(--)} {(MLO)} {(SPL)} {(u-boot.img)} {(--)} {(u-boot.bin)} ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$image"))} {(Lit_Other "=")} {(DQ (--))} {(Lit_Other "]")} ) terminator: ) ] action: [ (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ok"))} {(Lit_Other "=")} {(yes)} {(Lit_Other "]")} ) (ControlFlow token: ) ] op_id: Op_DAmp ) (ControlFlow token: ) ] spids: [-1 566] ) ] spids: [-1 589] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-e)} {(DQ ($ VSub_Name "$BUILD_DIR")) (/) ($ VSub_Name "$image")} {(Lit_Other "]")} ) terminator: ) ] action: [ (AndOr children: [ (C {(cp)} {(DQ ($ VSub_Name "$BUILD_DIR")) (/) ($ VSub_Name "$image")} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/) ($ VSub_Name "$pkgname") (/) ($ VSub_Name "$board")} ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ok) op: Equal rhs: {(yes)} spids: [635] ) ] spids: [635] ) ] spids: [-1 607] ) ] spids: [-1 639] ) ] spids: [546 642] ) spids: [530 544] ) (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ok"))} {(Lit_Other "=")} {(yes)} {(Lit_Other "]")} ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [485 664] ) spids: [-1 -1] ) ] spids: [449] ) spids: [445 448] ) (ForEach iter_name: board_config iter_words: [{($ VSub_Name "$board_configs")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_board) op: Equal rhs: { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(":*")}) spids: [683 687] ) ) } spids: [681] ) ] spids: [681] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_configs) op: Equal rhs: { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("*:")}) spids: [693 697] ) ) } spids: [691] ) ] spids: [691] ) (C {(eval)} { (DQ (${ VSub_Name _board) ("() { _split_boards ") ($ VSub_Name "$_board") (" ") (BracedVarSub token: suffix_op: (PatSub pat: {(",")} replace: {(" ")} do_all: True do_prefix: False do_suffix: False ) spids: [710 717] ) ("; }") ) } ) ] spids: [678 721] ) spids: [674 676] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "d24c7d1305d81326a0f18071c073cd80c5ac43fcc8d8495509c56a8207620acc3d3e86afa873f738953841b3f6273e345493aad449f2464673275cc221270527 u-boot-2017.01.tar.bz2\n" ) ( "f8c9bb6e84d6f0620c976ac7ad5dd7ec7ff9dfdd4b1d03d2bf6653e7beccf80bdf2debfc92fb1f696dba92fb40287d3c45897e0078951451d0835cb61a5f16d1 README.txt\n" ) ( "c860f2cd6fe0ad9a462ac12a7df24b621ac53a07ada21a53791fd14f73c08619adb1f70a61507cc0b531c7beb1953ea8224b8dca5585a5d11b8df43d9ee0ac76 update-u-boot" ) ) } spids: [724] ) ] spids: [724] ) ] )