#!/bin/sh

[ -z $PREPKG ] && exit 1

PACKAGE=e2fsprogs
VERSION=1.41.4
FILES=$(cd $(dirname $0) ; pwd)

mkdir -p \
  $PREPKG/{install,usr/{doc/$PACKAGE-$VERSION,lib}}/

chown -R root:root .
CFLAGS="-O2 -march=i486 -mtune=i686" \
  ./configure \
  --prefix=/usr \
  --infodir=/usr/info \
  --libdir=/lib \
  --mandir=/usr/man \
  --sbindir=/sbin \
  --sysconfdir=/etc \
  --disable-uuidd \
  --enable-elf-shlibs \
  --build=i486-slackware-linux &> configure.output || exit 1
make $MAKEJOBS &> make.output || exit 1
make DESTDIR=$PREPKG install &> make_install.output || exit 1
make DESTDIR=$PREPKG install-libs &> make_install-libs.output || exit 1

# put a few things where they really belong
mv \
  $PREPKG/etc/mke2fs.conf{,.new}
mv \
  $PREPKG/lib/{pkgconfig/,*.{a,so}} \
  $PREPKG/usr/lib/

# fix dangling symlinks (new from 1.41.1 to 1.41.2)
for SYMLINK in $PREPKG/usr/lib/*.so ; do
  ln -sf /lib/$(readlink $SYMLINK) $SYMLINK
done

# break hardlinked file sets & replace with scripts/symlinks as appropriate
for BASIS in sbin/e2fsck sbin/mke2fs \
sbin/tune2fs usr/man/man3/uuid_generate.3 \
usr/man/man8/e2fsck.8 usr/man/man8/mke2fs.8 ; do
  for MATCH in $(find $PREPKG -inum $(stat -c %i $PREPKG/$BASIS)) ; do
    if [ $MATCH != $PREPKG/$BASIS ] ; then
      rm $MATCH
      # sbin/e2fsck is a special case
      if [ $BASIS = sbin/e2fsck ] ; then
        cat << EOF > $MATCH
#!/bin/sh

exec /sbin/e2fsck -C 0 \$*
EOF
        chmod 0755 $MATCH
      else
        # replace all others with relative symlinks
        ln -sf $(basename $PREPKG/$BASIS) $MATCH
      fi
    fi
  done
done

cp -p \
  ABOUT-NLS COPYING INSTALL* README \
  RELEASE-NOTES SHLIBS e2fsprogs.lsm \
  $PREPKG/usr/doc/$PACKAGE-$VERSION/

for MANPAGE in $(find $PREPKG/usr/man/ ! -type d -name '*.?') ; do
  if [ -L $MANPAGE ] ; then
    ln -sf $(readlink $MANPAGE).gz $MANPAGE.gz
    rm $MANPAGE
  else
    gzip -9 $MANPAGE
  fi
done

cp \
  $FILES/{doinst.sh,slack-desc} \
  $PREPKG/install/

find $PREPKG -exec file {} \; \
  | awk -F : '/ ELF / {print $1}' \
  | xargs strip -p --strip-unneeded
