diff options
author | Thorsten Glaser <tg@mirbsd.org> | 2009-12-20 19:40:26 +0059 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2009-12-20 19:42:46 +0100 |
commit | 4bde99fa31d105d163e3d519f314af7d9537bfb3 (patch) | |
tree | e0f324a9c25f58a780fe045357ef23e05041fbf9 | |
parent | 584103666c037302ca620197f758e254a2123e4d (diff) |
PKG_{HOST,TARGET}_DEP* handling as wbx@ requested
Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
-rw-r--r-- | package/pkgmaker | 46 | ||||
-rw-r--r-- | target/target.lst | 29 |
2 files changed, 74 insertions, 1 deletions
diff --git a/package/pkgmaker b/package/pkgmaker index 56c1565fc..f8061010d 100644 --- a/package/pkgmaker +++ b/package/pkgmaker @@ -57,10 +57,12 @@ for dn in */Makefile; do # PKGDFLT_*: subpackage 'default {:-n}', by subpackage option # CFLINE_*: one free-format Config.in line per subpackage option # PKGFD_*: flavour description, per package flavour option + # PKG_{HOST,TARGET}_DEPENDS: wbx@’s weird ideas eval $($GMAKE dump="PKG_NAME PKG_FLAVOURS PKG_DESCR PKG_URL PKG_CXX \ ALL_PKGOPTS \$(foreach x,\${ALL_PKGOPTS},PKGNAME_\${x} \ PKGDESC_\${x} PKGDEPS_\${x} PKGDFLT_\${x} CFLINE_\${x}) \ - \$(foreach x,\${PKG_FLAVOURS},PKGFD_\${x})") + \$(foreach x,\${PKG_FLAVOURS},PKGFD_\${x}) \ + PKG_HOST_DEPENDS PKG_TARGET_DEPENDS") # dnu: directory name, uppercase, y/-+/_X/ typeset -u dnu=${dn//-/_} @@ -95,6 +97,46 @@ for dn in */Makefile; do fi print -u4 \\tdefault n + # Handle NOT/ONLY_FOR_PLATFORM alikes + phd= # phd: PKG_HOST_DEPENDS expand. + if [[ -n $PKG_HOST_DEPENDS ]]; then + phd='\tdepends on' + if [[ $PKG_HOST_DEPENDS = *\!* ]]; then + sp=' !' + else + sp=' ' + fi + for x in $PKG_HOST_DEPENDS; do + typeset -u x=${x#!} + phd="$phd${sp}ADK_HOST_$x" + if [[ $PKG_HOST_DEPENDS = *\!* ]]; then + sp=' && !' + else + sp=' || ' + fi + done + fi + ptd= # ptd: PKG_TARGET_DEPENDS exp. + if [[ -n $PKG_TARGET_DEPENDS ]]; then + ptd='\tdepends on' + sp=' ' # local sp: space (or ' || ') + for x in $PKG_TARGET_DEPENDS; do + #XXX cache this with mksh R40+ + found=0 + while read friendlyname sym; do + [[ $friendlyname = $x ]] || continue + found=1 + break + done <../../target/target.lst + if (( !found )); then + print -u2 "$dn: Target '$x' not found!" + exit 1 + fi + ptd="$ptd${sp}$sym" + sp=' || ' + done + fi + # Handle subpackages / multipackages for spcu in $ALL_PKGOPTS; do # spcu: package option, ucase eval sppn=\$PKGNAME_$spcu # sppn: subpackage (ipkg) name @@ -122,6 +164,8 @@ for dn in */Makefile; do fi print -u$h "\tprompt \"$spnf\"" print -u$h \\ttristate + [[ -n $phd ]] && print -u$h "$phd" + [[ -n $ptd ]] && print -u$h "$ptd" print -u$h "\tdefault ${dflt:-n}" for dep in $deps; do # dep: ipkg name of one rundep. # skip dependencies on uclibc++ and libstdcxx iff diff --git a/target/target.lst b/target/target.lst new file mode 100644 index 000000000..224ceaa01 --- /dev/null +++ b/target/target.lst @@ -0,0 +1,29 @@ +native ADK_LINUX_NATIVE +alix1c ADK_LINUX_X86_ALIX1C +alix2d ADK_LINUX_X86_ALIX2D +alix ADK_LINUX_X86_ALIX1C || ADK_LINUX_X86_ALIX2D +wrap ADK_LINUX_X86_WRAP +foxboard ADK_LINUX_CRIS_FOXBOARD +lemote ADK_LINUX_MIPS64_LEMOTE +ag241 ADK_LINUX_MIPS_AG241 +tomtom ADK_LINUX_ARM_TOMTOM +g1 ADK_LINUX_ARM_G1 +zaurus ADK_LINUX_XSCALE_ZAURUS +shuttle ADK_LINUX_X86_64_SHUTTLE +x86_64_rescue ADK_LINUX_X86_64_RESCUE +x86_rescue ADK_LINUX_X86_RESCUE +mipsel_rescue ADK_LINUX_MIPSEL_RESCUE +mips_rescue ADK_LINUX_MIPS_RESCUE +arm_qemu ADK_LINUX_ARM_QEMU +mips_qemu ADK_LINUX_MIPS_QEMU +mipsel_qemu ADK_LINUX_MIPSEL_QEMU +mips64_qemu ADK_LINUX_MIPS64_QEMU +mips64el_qemu ADK_LINUX_MIPS64EL_QEMU +cris_qemu ADK_LINUX_CRIS_QEMU +x86_qemu ADK_LINUX_X86_QEMU +x86_64_qemu ADK_LINUX_X86_64_QEMU +qemu ADK_LINUX_ARM_QEMU || ADK_LINUX_MIPS_QEMU || ADK_LINUX_MIPSEL_QEMU || ADK_LINUX_MIPS64_QEMU || ADK_LINUX_MIPS64EL_QEMU || ADK_LINUX_CRIS_QEMU || ADK_LINUX_X86_QEMU || ADK_LINUX_X86_64_QEMU +rb411 ADK_LINUX_MIPS_RB411 +rb433 ADK_LINUX_MIPS_RB433 +rb532 ADK_LINUX_MIPS_RB532 +routerboard ADK_LINUX_MIPS_RB411 || ADK_LINUX_MIPS_RB433 || ADK_LINUX_MIPS_RB532 |