summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Glaser <tg@mirbsd.org>2009-12-20 19:40:26 +0059
committerWaldemar Brodkorb <wbx@openadk.org>2009-12-20 19:42:46 +0100
commit4bde99fa31d105d163e3d519f314af7d9537bfb3 (patch)
treee0f324a9c25f58a780fe045357ef23e05041fbf9
parent584103666c037302ca620197f758e254a2123e4d (diff)
PKG_{HOST,TARGET}_DEP* handling as wbx@ requested
Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
-rw-r--r--package/pkgmaker46
-rw-r--r--target/target.lst29
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