X-Git-Url: http://gitweb/?a=blobdiff_plain;f=pkgmk-cross;h=888bf02dc705d1dba26cdad8748017867a0ba386;hb=refs%2Fheads%2F3.3;hp=f33b86763f77dc910a05f08311ee36943d91a52b;hpb=f49ee1850c34be14edb099153fec4b8f00d60abd;p=pkgutils-cross.git

diff --git a/pkgmk-cross b/pkgmk-cross
old mode 100644
new mode 100755
index f33b867..888bf02
--- a/pkgmk-cross
+++ b/pkgmk-cross
@@ -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=""
 
-echo "$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