#!/bin/sh
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi
PKG=$TMP/package-bin
SRC=/devel/manpagesrc
INFO=$PKG/usr/info

if [ ! -d $TMP ]; then
  mkdir -p $TMP # location to build the source
fi
if [ ! -d $PKG ]; then
  mkdir -p $PKG # place for the package to be built
fi

# Explode the package framework:
cd $PKG
explodepkg $CWD/_bin.tar.gz

# Function to handle manpage source:
man2gz () { # $1 is source page name, $2 is target name for preformatted
            # output (full path && name) and $3 is the same, but for the
            # source.
  mkdir -p `dirname $2`
  groff -Tascii -mandoc $1 | gzip -9c > $2
  if [ ! "$3" = "" ]; then
    mkdir -p `dirname $3`
    cat $1 > $3 
  fi 
}

echo "+=========+"
echo "| at-2.9b |"
echo "+=========+"
cd $TMP
tar xzvf $CWD/at-2.9b.tar.gz
cd at
Configure
make
strip at atrun
cat at > $PKG/usr/bin/at
cat atrun > $PKG/usr/lib/atrun
for target in batch.1.gz atq.1.gz atrm.1.gz ; do
  cat batch.1 | gzip -9c > $PKG/usr/man/man1/$target
done
sed -f subs.sed < at.man | gzip -9c > $PKG/usr/man/man1/at.1.gz
sed -f subs.sed < atrun.man | gzip -9c > $PKG/usr/man/man8/atrun.8.gz

echo "+============+"
echo "| hdparm-3.3 |"
echo "+============+"
cd $TMP
tar xzvf $CWD/hdparm-3.3.tar.gz
cd hdparm-3.3
make
strip hdparm
cat hdparm > $PKG/usr/sbin/hdparm
cat hdparm.8 | gzip -9c > $PKG/usr/man/man8/hdparm.8.gz

echo "+==========+"
echo "| lha-1.00 |"
echo "+==========+"
cd $TMP
tar xzvf $CWD/lha-1.00.tar.gz
cd lha-1.00
make
strip src/lha
cat src/lha > $PKG/usr/bin/lha

echo "+============+"
echo "| makewhatis |"
echo "+============+"
cd $TMP
tar xzvf $CWD/makewhatis.tar.gz
cd makewhatis
cat makewhatis > $PKG/usr/sbin/makewhatis
cat makewhatis.1 | gzip -9c > $PKG/usr/man/man1/makewhatis.1.gz

echo "+========+"
echo "| gencat |"
echo "+========+"
cd $TMP
tar xzvf $CWD/gencat.tar.gz
cd gencat
pmake
strip gencat
cat gencat > $PKG/usr/bin/gencat

echo "+==================================+"
echo "| fileutils-3.12+color-ls-3.12.0.3 |"
echo "+==================================+"
cd $TMP
tar xzvf $CWD/fileutils-3.12.tar.gz
cd fileutils-3.12
zcat $CWD/color-ls-3.12.0.3.patch.gz | patch -p1
# Next 3 define ETC_DIR to be /etc 
cd src
zcat $CWD/fileutils-3.12.diff.gz | patch
cd ..
CFLAGS=-O2 LDFLAGS=-s ./configure --prefix=/usr
make
cd src
cat chgrp > $PKG/bin/chgrp
cat chmod > $PKG/bin/chmod
cat chown > $PKG/bin/chown
cat cp > $PKG/bin/cp
cat dd > $PKG/bin/dd
cat df > $PKG/bin/df
cat dircolors > $PKG/bin/dircolors
cat du > $PKG/bin/du
cat ginstall > $PKG/usr/bin/ginstall
cat ln > $PKG/bin/ln
cat ls > $PKG/bin/ls
cat mkdir > $PKG/bin/mkdir
cat mkfifo > $PKG/bin/mkfifo
cat mknod > $PKG/bin/mknod
cat mv > $PKG/bin/mv
cat rm > $PKG/bin/rm
cat rmdir > $PKG/bin/rmdir
cat sync > $PKG/bin/sync
cat touch > $PKG/bin/touch
cd ../man
for page in chgrp.1 chmod.1 chown.1 cp.1 dd.1 df.1 dircolors.1 du.1 install.1 \
ln.1 ls.1 mkdir.1 mkfifo.1 mknod.1 mv.1 rm.1 rmdir.1 touch.1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
done
cat $CWD/sync.8.gz > $PKG/usr/man/man8/sync.8.gz
cd ../doc
mkdir -p $INFO
cat fileutils.info | gzip -9c > $INFO/fileutils.info.gz

echo "+=====+"
echo "| bpe |"
echo "+=====+"
cd $TMP
tar xzvf $CWD/bpe.tar.gz
cd bpe
mklinux
make
strip bpe
cat bpe > $PKG/usr/bin/bpe
cat bpe.1 | gzip -9c > $PKG/usr/man/man1/bpe.1.gz 

echo "+========+"
echo "| ed-0.2 |"
echo "+========+"
cd $TMP
tar xzvf $CWD/ed-0.2.tar.gz
cd ed-0.2
CFLAGS=-O2 LDFLAGS=-s ./configure --prefix=/usr
make
cat ed > $PKG/bin/ed
cat ed.1 | gzip -9c > $PKG/usr/man/man1/ed.1.gz
cat ed.info | gzip -9c > $INFO/ed.info.gz

echo "+==========+"
echo "| compress |"
echo "+==========+"
cd $TMP
tar xzvf $CWD/compress.tar.gz
cd compress
zcat $CWD/compress.diff.gz | patch
make
cat compress > $PKG/usr/bin/compress
cat compress.1 | gzip -9c > $PKG/usr/man/man1/compress.1.gz
echo '.so man1/compress.1' | gzip -9c > $PKG/usr/man/man1/uncompress.1.gz

echo "+=========+"
echo "| banners |"
echo "+=========+"
cd $TMP
tar xzvf $CWD/banners.tar.gz
cd banners
make
cat bban > $PKG/usr/bin/bban
cat sysvbanner > $PKG/usr/bin/sysvbanner

echo "+===========+"
echo "| dcron 2.2 |"
echo "+===========+"
cd $TMP
tar xzvf $CWD/dcron22.tar.gz
cd dcron
zcat $CWD/dcron22.diff.gz | patch
make
cat crond > $PKG/usr/sbin/crond
cat crontab > $PKG/usr/bin/crontab
cat crontab.1 | gzip -9c > $PKG/usr/man/man1/crontab.1.gz
cat crond.8 | gzip -9c > $PKG/usr/man/man8/crond.8.gz

echo "+===========+"
echo "| dosfsck.1 |"
echo "+===========+"
cd $TMP
tar xzvf $CWD/dosfsck.1.tar.gz
cd dosfsck
zcat $CWD/dosfsck.1.diff.gz | patch
make
strip dosfsck
cat dosfsck > $PKG/sbin/dosfsck
cat dosfsck.8 | gzip -9c > $PKG/usr/man/man8/dosfsck.8.gz

echo "+=====================+"
echo "| elvis-1.8pl3.tar.gz |"
echo "+=====================+"
cd $TMP
tar xzvf $CWD/elvis-1.8pl3.tar.gz
cd elvis
zcat $CWD/elvis-1.8pl3.diff.gz | patch
zcat $CWD/elvis-1.8pl3.diff2.gz | patch
make
strip ctags elvis elvprsv elvrec fmt ref
cat ctags > $PKG/usr/bin/ctags
cat elvis > $PKG/usr/bin/elvis
cat elvprsv > $PKG/usr/bin/elvprsv
cat elvrec > $PKG/usr/bin/elvrec
cat fmt > $PKG/usr/bin/fmt
cat ref > $PKG/usr/bin/ref
cd doc
for page in ctags.man elvis.man elvprsv.man elvrec.man fmt.man ref.man ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page .man`.1.gz
done

echo "+===========+"
echo "| file-3.22 |"
echo "+===========+"
cd $TMP
tar xzvf $CWD/file-3.22.tar.gz
cd file-3.22
zcat $CWD/file-3.22.diff.gz | patch
mkdir -p $PKG/usr/doc/file-3.22
cp -a LEGAL.NOTICE README $PKG/usr/doc/file-3.22
chown root.root $PKG/usr/doc/file-3.22/*
chmod 644 $PKG/usr/doc/file-3.22/*
make
strip file
cat file > $PKG/usr/bin/file
cat magic > $PKG/etc/magic
cat file.1 | gzip -9c > $PKG/usr/man/man1/file.1.gz
cat magic.4 | gzip -9c > $PKG/usr/man/man4/magic.4.gz

echo "+==============+"
echo "| indent-1.9.1 |"
echo "+==============+"
cd $TMP
tar xzvf $CWD/indent-1.9.1.tar.gz
cd indent-1.9.1
./configure --prefix=/usr
zcat $CWD/indent-1.9.1.diff.gz | patch
make
cat indent > $PKG/usr/bin/indent
cat indent.1 | gzip -9c > $PKG/usr/man/man1/indent.1.gz
cat indent.info | gzip -9c > $INFO/indent.info.gz

echo "+============+"
echo "| gawk-3.0.3 |"
echo "+============+"
cd $TMP
tar xzvf $CWD/gawk-3.0.3.tar.gz
cd gawk-3.0.3
./configure linux --prefix=/usr
make CC=gcc CFLAGS=-O2 LDFLAGS=-s
strip gawk
cat gawk > $PKG/usr/bin/gawk
cat awklib/igawk > $PKG/usr/bin/igawk
cat awklib/grcat > $PKG/usr/libexec/awk/grcat
cat awklib/pwcat > $PKG/usr/libexec/awk/pwcat
cat doc/gawk.1 | gzip -9c > $PKG/usr/man/man1/gawk.1.gz
cat doc/igawk.1 | gzip -9c > $PKG/usr/man/man1/igawk.1.gz
cat doc/gawk.info | gzip -9c > $PKG/usr/info/gawk.info.gz
mkdir $PKG/usr/doc/gawk-3.0.3
cp -a ACKNOWLEDGMENT COPYING FUTURES INSTALL LIMITATIONS NEWS \
PORTS PROBLEMS README $PKG/usr/doc/gawk-3.0.3
chown -R root.root $PKG/usr/doc/gawk-3.0.3
cd awklib
cp -a *.awk $PKG/usr/share/awk
cd eg/lib
cp -a *.awk $PKG/usr/share/awk
chown root.root $PKG/usr/share/awk/*

echo "+==========+"
echo "| man-1.4i |"
echo "+==========+"
cd $TMP
tar xzvf $CWD/man-1.4i.tar.gz
cd man-1.4i
configure +lang all
make
cd src
cat man > $PKG/usr/bin/man
cat apropos > $PKG/usr/bin/apropos
#cat makewhatis > $PKG/usr/lib/makewhatis
cat mwi > $PKG/usr/bin/mwi
zcat $CWD/man.config.diff.gz | patch
cat man.config > $PKG/usr/lib/man.config
cd ../man/en
for page in apropos.1 man.1 whatis.1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
done
cat man.config.5 | gzip -9c > $PKG/usr/man/man5/man.config.5.gz

echo "+=============+"
echo "| mkdosfs-0.2 |"
echo "+=============+"
cd $TMP
tar xzvf $CWD/mkdosfs-0.2.tar.gz
cd mkdosfs-0.2
zcat $CWD/mkdosfs-0.2.diff.gz | patch
make
cat mkdosfs > $PKG/sbin/mkdosfs
cat mkdosfs.8 | gzip -9c > $PKG/usr/man/man8/mkdosfs.8.gz

echo "+===============+"
echo "| modules-2.0.0 |"
echo "+===============+"
cd $TMP
tar xzvf $CWD/modules-2.0.0.tar.gz
cd modules-2.0.0
mkdir -p $PKG/usr/doc/modules-2.0.0
cp -a COPYING README $PKG/usr/doc/modules-2.0.0
cp -a kerneld/README.kerneld kerneld/README.ppp-slip \
 $PKG/usr/doc/modules-2.0.0
cp -a depmod/README $PKG/usr/doc/modules-2.0.0/README.depmod
cp -a kerneld/GOODIES $PKG/usr/doc/modules-2.0.0/GOODIES
chown -R root.root $PKG/usr/doc/modules-2.0.0
make
strip insmod/insmod genksyms/genksyms depmod/modprobe
for page in */*.1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page`.gz
done
for page in */*.2 ; do
  cat $page | gzip -9c > $PKG/usr/man/man2/`basename $page`.gz
done
for page in */*.8 ; do
  cat $page | gzip -9c > $PKG/usr/man/man8/`basename $page`.gz
done
cd insmod
strip insmod rmmod ksyms
cat insmod > $PKG/sbin/insmod
cat lsmod > $PKG/sbin/lsmod
cat insmod > $PKG/sbin/rmmod
cat insmod > $PKG/sbin/ksyms
cd ../genksyms
cat genksyms > $PKG/sbin/genksyms
cd ../depmod
cat modprobe > $PKG/sbin/modprobe
cat modprobe > $PKG/sbin/depmod
cd ../kerneld
strip kerneld
cat kerneld > $PKG/sbin/kerneld
cat request-route.sh > $PKG/sbin/request-route

echo "+============+"
echo "| patch-2.1b |"
echo "+============+"
cd $TMP
tar xzvf $CWD/patch-2.1b.tar.gz
cd patch-2.1b
configure --prefix=/usr
make CFLAGS=-O2 LDFLAGS=-s
cat patch > $PKG/usr/bin/patch
cat patch.man  | gzip -9c > $PKG/usr/man/man1/patch.1.gz

echo "+==========+"
echo "| sed-2.05 |"
echo "+==========+"
cd $TMP
tar xzvf $CWD/sed-2.05.tar.gz
cd sed-2.05
./configure --prefix=/usr
make CFLAGS=-O2 LDFLAGS=-s
cat sed > $PKG/usr/bin/sed
# Use the sed man page from BSD...
cat $CWD/sed.1.gz > $PKG/usr/man/man1/sed.1.gz

echo "+===============+"
echo "| sharutils-4.1 |"
echo "+===============+"
cd $TMP
tar xzvf $CWD/sharutils-4.1.tar.gz
cd sharutils-4.1
CFLAGS=-O2 LDFLAGS=-s ./configure
make
cat shar > $PKG/usr/bin/shar
cat unshar > $PKG/usr/bin/unshar
cat uuencode > $PKG/usr/bin/uuencode
cat uudecode > $PKG/usr/bin/uudecode
for page in shar.1 unshar.1 uuencode.1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
done
echo '.so man1/uuencode.1' | gzip -9c > $PKG/usr/man/man1/uudecode.1.gz
cat uuencode.5 | gzip -9c > $PKG/usr/man/man5/uuencode.5.gz
cat sharutils.info | gzip -9c > $INFO/sharutils.info.gz

echo "+===============+"
echo "| splitvt-1.6.3 |"
echo "+===============+"
cd $TMP
tar xzvf $CWD/splitvt-1.6.3.tar.gz
cd splitvt-1.6.3
Configure
make
cat splitvt > $PKG/usr/bin/splitvt
cat splitvt.1 | gzip -9c > $PKG/usr/man/man1/splitvt.1.gz
mkdir -p $PKG/usr/doc/splitvt
cp -a examples ANNOUNCE CHANGES NOTES README TODO $PKG/usr/doc/splitvt

echo "+==========+"
echo "| time-1.7 |"
echo "+==========+"
cd $TMP
tar xvzf $CWD/time-1.7.tar.gz
cd time-1.7
configure --prefix=/usr
make CFLAGS=-O2 LDFLAGS=-s
cat time > $PKG/usr/bin/time
cat time.info | gzip -9c > $INFO/time.info.gz

echo "+==========+"
echo "| tput-1.0 |"
echo "+==========+"
cd $TMP
tar xvzf $CWD/tput-1.0.tar.gz
cd tput-1.0
./configure --prefix=/usr
make CFLAGS=-O2 LDFLAGS=-s
cat tput > $PKG/usr/bin/tput
cat tput.info | gzip -9c > $INFO/tput.info.gz

echo "+==========+"
echo "| unarj230 |"
echo "+==========+"
cd $TMP
tar xzvf $CWD/unarj230.tar.gz
cd unarj230
zcat $CWD/unarj230.diff.gz | patch
make
strip unarj
cat unarj > $PKG/usr/bin/unarj

echo "+=======+"
echo "| which |"
echo "+=======+"
cd $TMP
tar xzvf $CWD/which.tar.gz
cd which
make
cat which > $PKG/usr/bin/which
cat which.1 | gzip -9c > $PKG/usr/man/man1/which.1.gz

echo "+==========+"
echo "| zoo-2.10 |"
echo "+==========+"
cd $TMP
tar xzvf $CWD/zoo-2.10.tar.gz
cd zoo-2.10
zcat $CWD/zoo-2.10.diff.gz | patch
make generic
strip fiz
strip zoo
cat fiz > $PKG/usr/bin/fiz
cat zoo > $PKG/usr/bin/zoo
for page in fiz.1 zoo.1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
done

echo "+================+"
echo "| xiafspgm-0.8.1 |"
echo "+================+"
cd $TMP
tar xzvf $CWD/xiafspgm-0.8.1.tar.gz
cd xiafspgm-0.8.1
make xiafspgm
strip mkxfs xfsck
cat mkxfs > $PKG/sbin/mkxfs
cat xfsck > $PKG/sbin/xfsck
for page in mkxfs.8 xfsck.8 ; do
  cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
done

# Strip everything for good measure:

strip $PKG/bin/* $PKG/usr/bin/* $PKG/usr/sbin/*

# Build the package:
cd $PKG
tar czvf $TMP/bin.tgz .

# Warn of zero-length files:
for file in `find . -type f -print` ; do
 if [ "`filesize $file`" = "0" ]; then
  echo "WARNING: zero length file $file"
 fi
 if [ "`filesize $file`" = "20" ]; then
  echo "WARNING: possible empty gzipped file $file"
 fi
done

# Clean up the extra stuff:
if [ "$1" = "--cleanup" ]; then
  rm -rf $TMP/fileutils-3.12
  rm -rf $TMP/pwd
  rm -rf $TMP/ed-0.2
  rm -rf $TMP/at
  rm -rf $TMP/banners
  rm -rf $TMP/bpe
  rm -rf $TMP/dcron
  rm -rf $TMP/dosfsck
  rm -rf $TMP/elvis
  rm -rf $TMP/file-3.22
  rm -rf $TMP/hdparm-3.3
  rm -rf $TMP/indent-1.9.1
  rm -rf $TMP/gawk-3.0.3
  rm -rf $TMP/lha-1.00
  rm -rf $TMP/man-1.4h
  rm -rf $TMP/mkdosfs-0.2
  rm -rf $TMP/modules-2.0.0
  rm -rf $TMP/patch-2.1b
  rm -rf $TMP/sed-2.05
  rm -rf $TMP/sharutils-4.1
  rm -rf $TMP/time-1.7
  rm -rf $TMP/tput-1.0
  rm -rf $TMP/unarj230
  rm -rf $TMP/which
  rm -rf $TMP/zoo-2.10
  rm -rf $TMP/compress
  rm -rf $TMP/splitvt-1.6.3
  rm -rf $TMP/xiafspgm-0.8.1
  rm -rf $PKG
fi
