Browse Source

PKG_{HOST,TARGET}_DEP* handling as wbx@ requested

Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
Thorsten Glaser 15 years ago
parent
commit
4bde99fa31
2 changed files with 74 additions and 1 deletions
  1. 45 1
      package/pkgmaker
  2. 29 0
      target/target.lst

+ 45 - 1
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

+ 29 - 0
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