CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
- Added pkginfo to .gitignore
[pkgutils-cross.git] / pkgmk-cross
index 6db90be2195201e64dd67d45929f8049a8617d01..888bf02dc705d1dba26cdad8748017867a0ba386 100755 (executable)
@@ -1,10 +1,44 @@
-#!/bin/sh
+#!/bin/bash
 
-TOPDIR="$(cd $(dirname $0); pwd)"
+TOPDIR="$(cd $(dirname $(which $0)); pwd)"
+TMP_CONF="$(mktemp)"
 
-PKGMK=$TOPDIR/src/pkgmk
-PKGMK_CONF=$TOPDIR/src/pkgmk.conf
+PKGMK=$TOPDIR/pkgmk
+PKGMK_CONF=$TOPDIR/pkgmk-cross.conf
+PKGMK_ARGS=""
+PKGMK_OPTIMIZE=""
 
-$PKGMK -cf $PKGMK_CONF $@
+while [ "$1" ]; do
+  if [ "$1" != "-o" ]; then
+    PKGMK_ARGS="$PKGMK_ARGS $1"
+  else
+    shift
+    PKGMK_OPTIMIZE="$1"
+  fi
+  shift
+done
+
+if [ ! -z "$PKGMK_OPTIMIZE" ]; then
+  _cflags="$(grep "^${PKGMK_OPTIMIZE}_CFLAGS=" $PKGMK_CONF | cut -d'=' -f2- | sed 's|"||g')"
+  if [ ! -z "$_cflags" ]; then
+    sed '/_CFLAGS=/d' $PKGMK_CONF | sed "s|CFLAGS=.*|CFLAGS=\"$_cflags\"|" > $TMP_CONF
+    PKGMK_CONF="$TMP_CONF"
+  else
+    echo "Error, invalid optimization: '$PKGMK_OPTIMIZE'"
+    exit 1
+  fi
+fi
+
+if [ ! -x $PKGMK ]; then
+  chmod +x $PKGMK
+fi
+
+$PKGMK -cf $PKGMK_CONF $PKGMK_ARGS
+exit_code=$?
+
+rm -f $TMP_CONF
+
+# Pass along the exit code of pkgmk.
+exit $exit_code
 
 # End of file