pkgmaker 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. cd "$(dirname "$0")"
  2. export TOPDIR=$(realpath ..)
  3. if gmake --help >/dev/null 2>&1; then
  4. export GMAKE=gmake
  5. else
  6. export GMAKE=make
  7. fi
  8. rm -rf pkglist.d pkgopts.d
  9. mkdir pkglist.d pkgopts.d
  10. for a in */Makefile; do
  11. sd=${a%/*}
  12. cd $sd
  13. pa=$($GMAKE show=ALL_PKGOPTS) # pa: all subpackage options
  14. print -r -- $pa >../pkgopts.d/pa-"$sd"
  15. xa=
  16. for xu in $pa; do # xu: package option uppercase
  17. x=$($GMAKE show=PKGNAME_$xu) # x: subpackage name
  18. print -r -- "$xu" >../pkglist.d/"$x"
  19. xa="$xa $x"
  20. done
  21. print -r -- $xa >../pkgopts.d/xa-"$sd"
  22. cd ..
  23. done
  24. for sd in 6tunnel aiccu alsa-lib bash bc expat mksh; do
  25. cd $sd
  26. pn=$($GMAKE show=PKG_NAME) # pn: package name
  27. pfl=$($GMAKE show=PKG_FLAVOURS) # pfl: all package flavours
  28. typeset -u dnu=${sd//-/_} # dnu: subdir name uppercase
  29. dnu=${dnu//+/X}
  30. pd=$($GMAKE show=PKG_DESCR) # pd: package description
  31. ph=$($GMAKE show=PKG_URL) # ph: package homepage
  32. (
  33. print "config ADK_COMPILE_$dnu"
  34. print \\ttristate
  35. print -n \\tdepends on
  36. sp=' ' # local sp: space (or ' || ')
  37. for xu in $(<../pkgopts.d/pa-"$sd"); do # xu: package option uppercase
  38. print -n "${sp}ADK_PACKAGE_$xu"
  39. sp=' || '
  40. done
  41. print
  42. print \\tdefault n
  43. for x in $(<../pkgopts.d/xa-"$sd"); do # x: subpackage name
  44. xu=$(<../pkglist.d/"$x") # xu: package option uppercase
  45. print \\nconfig ADK_PACKAGE_$xu
  46. xf=$x # xf: subpackage name ........
  47. while (( ${#xf} < 34 )); do
  48. xf=$xf.
  49. done
  50. print "\tprompt \"$xf ${pd:-$pn}\""
  51. print \\ttristate
  52. print \\tdefault n
  53. deps=$($GMAKE show=PKGDEPS_$xu)
  54. for dep in $deps; do
  55. case $dep {
  56. (kmod-*)
  57. typeset -u udep=${dep//-/_}
  58. print "\tselect ADK_KPACKAGE_$udep"
  59. ;;
  60. (*)
  61. print '\tselect' \
  62. ADK_PACKAGE_$(<../pkglist.d/"$dep")
  63. ;;
  64. }
  65. done
  66. print \\tselect ADK_COMPILE_$dnu
  67. if [[ -n $pd$ph ]]; then
  68. print \\thelp
  69. [[ -n $pd ]] && print "\t $pd"
  70. [[ -n $pd && -n $ph ]] && print '\t '
  71. [[ -n $ph ]] && print "\t $ph"
  72. fi
  73. done
  74. for pf in $pfl; do # pf: package flavour
  75. pfd=$($GMAKE show=PKGFD_$pf)
  76. print
  77. print config ADK_PACKAGE_${dnu}_$pf
  78. print "\tbool \"${pfd:-flavour ADK_PACKAGE_${dnu}_$pf}\""
  79. print \\tdefault n
  80. print \\tdepends on ADK_COMPILE_$dnu
  81. print \\thelp
  82. print "\t flavour ADK_PACKAGE_${dnu}_$pf"
  83. done
  84. ) >Config.in
  85. cd ..
  86. done