#!/bin/sh

. config/options $1

if [ -z "$1" ]; then
  echo "usage: $0 package_name"
  exit 1
fi

if [ -n "$PKG_ARCH" -a ! "$PKG_ARCH" = "any" ]; then
  echo "$PKG_ARCH" | grep -q "$TARGET_ARCH" || exit 0
  echo "$PKG_ARCH" | grep -q "\-$TARGET_ARCH" && exit 0
fi

unset INSTALL

mkdir -p $STAMPS/$1
STAMP=$STAMPS/$1/build

$SCRIPTS/unpack $1

if [ -f $STAMP -a -f $PKG_DIR/need_build ]; then
  $PKG_DIR/need_build $@
fi

if [ -f $STAMP -a $PKG_DIR/build -nt $STAMP ]; then
  rm -f $STAMP
fi

if [ ! -f $STAMP ]; then
  rm -f $STAMP

  printf "%${INDENT}c BUILD    $1\n" >&$SILENT_OUT
  export INDENT=$((${INDENT:-1}+$INDENT_SIZE))

  for p in $PKG_BUILD_DEPENDS; do
    $SCRIPTS/build $p
  done

  [ -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}`
  [ -d $BUILD/${PKG_NAME}${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}${PKG_VERSION}`
  [ "$PKG_AUTORECONF" = yes ] && $SCRIPTS/autoreconf $1

  if [ -f $PKG_DIR/build ]; then
    $PKG_DIR/build $@ >&$VERBOSE_OUT
    if [ "$DEBUG" = no ]; then
     $STRIP `find $BUILD/$1* -name "*.so"` 2>/dev/null || \
      echo "Information: no *.so libs found"
     $STRIP `find $BUILD/$1* -name "*.so.[0-9]*"` 2>/dev/null ||\
      echo "Information: no *.so.[0-9]* libs found"
    fi
    for i in `find $SYSROOT_PREFIX/usr/lib/ -name "*.la"`; do \
      $SED "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $i; \
    done
  elif [ -f $PKG_BUILD/Makefile ]; then
    $SCRIPTS/build toolchain
    make -C $PKG_BUILD >&$VERBOSE_OUT
    for i in `find $SYSROOT_PREFIX/usr/lib/ -name "*.la"`; do \
      $SED "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $i; \
    done
  elif [ -f $PKG_BUILD/$1.c ]; then
    $SCRIPTS/build toolchain
    make -C $PKG_BUILD $1 >&$VERBOSE_OUT
  fi

  for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do
    eval val=\$$i
    echo "STAMP_$i=\"$val\"" >> $STAMP
  done
fi
