123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- 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
- desc=$($GMAKE show=PKGDESC_$xu)
- print "\tprompt \"$xf ${desc:-${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
- dep=$($GMAKE show=CFLINE_$xu) # one free-format line
- [[ -n $dep ]] && print "\t$dep"
- 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 <<EOF
- choice
- prompt "C++ library to use"
- depends on ADK_COMPILE_$dnu
- default ADK_COMPILE_${usecxx}_WITH_STDCXX if ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC
- default ADK_COMPILE_${usecxx}_WITH_UCLIBCXX if ADK_TARGET_LIB_UCLIBC
- config ADK_COMPILE_${usecxx}_WITH_STDCXX
- bool "GNU C++ library"
- select ADK_PACKAGE_LIBSTDCXX
- config ADK_COMPILE_${usecxx}_WITH_UCLIBCXX
- bool "uClibc++ library"
- select ADK_PACKAGE_UCLIBCXX
- endchoice
- EOF
- for pf in $pfl; do # pf: package flavour
- pfd=$($GMAKE show=PKGFD_$pf)
- print
- print config ADK_PACKAGE_${dnu}_$pf
- print "\tbool \"${pfd:-flavour ADK_PACKAGE_${dnu}_$pf}\""
- print \\tdefault n
- print \\tdepends on ADK_COMPILE_$dnu
- print \\thelp
- print "\t flavour ADK_PACKAGE_${dnu}_$pf"
- done
- ) >Config.new
- cd ..
- done
|