cd "$(dirname "$0")" export TOPDIR=$(realpath ..) if gmake --help >/dev/null 2>&1; then export GMAKE=gmake else export GMAKE=make fi rm -rf pkglist.d pkgopts.d mkdir pkglist.d pkgopts.d for sd in */Makefile; do sd=${sd%/*} cd $sd pa=$($GMAKE show=ALL_PKGOPTS) # pa: all subpackage options print -r -- $pa >../pkgopts.d/pa-"$sd" xa= for xu in $pa; do # xu: package option uppercase x=$($GMAKE show=PKGNAME_$xu) # x: subpackage name print -r -- "$xu" >../pkglist.d/"$x" xa="$xa $x" done print -r -- $xa >../pkgopts.d/xa-"$sd" cd .. done for sd in */Makefile; do sd=${sd%/*} cd $sd pn=$($GMAKE show=PKG_NAME) # pn: package name pfl=$($GMAKE show=PKG_FLAVOURS) # pfl: all package flavours typeset -u dnu=${sd//-/_} # dnu: subdir name uppercase dnu=${dnu//+/X} pd=$($GMAKE show=PKG_DESCR) # pd: package description ph=$($GMAKE show=PKG_URL) # ph: package homepage usecxx=$($GMAKE show=PKG_CXX) ( print "config ADK_COMPILE_$dnu" print \\ttristate print -n \\tdepends on sp=' ' # local sp: space (or ' || ') for xu in $(<../pkgopts.d/pa-"$sd"); do # xu: package option uppercase print -n "${sp}ADK_PACKAGE_$xu" sp=' || ' done print print \\tdefault n for x in $(<../pkgopts.d/xa-"$sd"); do # x: subpackage name xu=$(<../pkglist.d/"$x") # xu: package option uppercase print \\nconfig ADK_PACKAGE_$xu xf=$x # xf: subpackage name ........ while (( ${#xf} < 34 )); do xf=$xf. done print "\tprompt \"$xf ${pd:-$pn}\"" print \\ttristate print \\tdefault n deps=$($GMAKE show=PKGDEPS_$xu) for dep in $deps; do [[ -n $usecxx && $dep = @(uclibc++|libstdcxx) ]] && \ continue case $dep { (kmod-*) typeset -u udep=${dep//-/_} print "\tselect ADK_KPACKAGE_$udep" ;; (*) print '\tselect' \ ADK_PACKAGE_$(<../pkglist.d/"$dep") ;; } done print \\tselect ADK_COMPILE_$dnu if [[ -n $pd$ph ]]; then print \\thelp [[ -n $pd ]] && print "\t $pd" [[ -n $pd && -n $ph ]] && print '\t ' [[ -n $ph ]] && print "\t $ph" fi done [[ -n $usecxx ]] && cat <Config.new cd .. done