getDeps() {
local pkg="$1"
- local deps="$(grep "^# Depends on:" $pkg/Pkgfile | cut -d':' -f2-)"
+ local deps="$(grep "^# Depends on:" $pkg/Pkgfile 2>/dev/null| cut -d':' -f2-)"
echo "${deps# *}"
}
local deps="$(getDeps $pkg)"
if [ -z "$deps" ]; then
case $pkg in
- libgmp|libmpfr|binutils|glibc|gcc)
- # discard these ports
+ # toolchain ports must be in order
+ libgmp|libmpfr|libmpc|binutils|glibc|zlib|gcc)
;;
*)
if [ ! "$(echo $BUILD_ORDER | grep " ${pkg}")" ]; then
for d in ${deps[@]}; do
getRecursiveDeps "$d"
done
- BUILD_ORDER="$BUILD_ORDER $pkg"
+
+ if [ ! "$(echo $BUILD_ORDER | grep " ${pkg}")" ]; then
+ BUILD_ORDER="$BUILD_ORDER $pkg"
+ fi
fi
}
-# global var to store all final deps order
-BUILD_ORDER="libgmp libmpfr binutils glibc gcc"
+ALT_START=0
+
+# check for passed arguments
+if [ $# -ne 0 ]; then
+ # use package as starting point
+ ALT_START=1
+ START_PKG=$1
+ BUILD_ORDER=""
+else
+ # global var to store all final deps order
+ BUILD_ORDER="libgmp libmpfr libmpc binutils glibc zlib gcc"
+fi
-for f in *; do
- [ ! -d "$f" ] && continue
- case $f in
- libgmp|libmpfr|binutils|glibc|gcc) continue ;;
+for i in $(find . -type f -name 'Pkgfile' -exec dirname {} \; | sort); do
+ PKG="$(basename $i)"
+ case $PKG in
+ # toolchain ports must be in order
+ libgmp|libmpfr|libmpc|binutils|glibc|zlib|gcc) continue ;;
esac
- getRecursiveDeps "$f"
+ getRecursiveDeps "$PKG"
done
-echo $BUILD_ORDER
-echo
+if [ $ALT_START -eq 0 ]; then
+ echo $BUILD_ORDER | tr ' ' '\n'
+else
+ echo $BUILD_ORDER | sed "s|.* $START_PKG|$START_PKG|" | tr ' ' '\n'
+fi
# End fo file