#! /bin/sh
#
# install
# Greg Hankins, 30 September 1995
#

CleanUp() {
    rm -f /tmp/sgml2html /tmp/sgml2info /tmp/sgml2latex /tmp/sgml2txt /tmp/sgml2rtf /tmp/sgml2lyx /tmp/sgmlcheck /tmp/genertoc
}
 
trap "CleanUp" 0 1 2 3 9 15

prefix=/usr/local
LINUXDOCBIN=$prefix/bin
LINUXDOCLIB=$prefix/lib/linuxdoc-sgml
LINUXDOCDOC=$prefix/doc/linuxdoc-sgml
LINUXDOCMAN=$prefix/man/man1
PERL=$prefix/bin/perl
OPTIMIZE=-O

echo "Installing Linuxdoc-SGML:"
echo "Where do you want the Linuxdoc-SGML binaries?"
echo -n "[$LINUXDOCBIN] "
read linuxdocbin
if [ ! -z "$linuxdocbin" ]; then
    LINUXDOCBIN="$linuxdocbin"	
fi

echo "Where do you want the Linuxdoc-SGML library and support files?"
echo -n "[$LINUXDOCLIB] "
read linuxdoclib
if [ ! -z "$linuxdoclib" ]; then
    LINUXDOCLIB="$linuxdoclib"	
fi

echo "Where do you want the Linuxdoc-SGML documentation?"
echo -n "[$LINUXDOCDOC] "
read linuxdocdoc
if [ ! -z "$linuxdocdoc" ]; then
    LINUXDOCDOC="$linuxdocdoc"
fi

echo "Where do you want the Linuxdoc-SGML man pages?"
echo -n "[$LINUXDOCMAN] "
read linuxdocman
if [ ! -z "$linuxdocman" ]; then
    LINUXDOCMAN="$linuxdocman"
fi

echo "Where is perl?"
echo -n "[$PERL] "
read perl
if [ ! -z "$perl" ]; then
    PERL="$perl"
fi

echo "What optimization flags would you like to use?"
echo -n "[$OPTIMIZE] "
read optimize
if [ ! -z "$optimize" ]; then
    OPTIMIZE=$optimize
fi

sed -e "s!linuxdocbin!$LINUXDOCBIN!1" -e "s!linuxdoclib!$LINUXDOCLIB!1" < bin/sgml2html > /tmp/sgml2html	
sed -e "s!linuxdocbin!$LINUXDOCBIN!1" -e "s!linuxdoclib!$LINUXDOCLIB!1" < bin/sgml2info > /tmp/sgml2info	
sed -e "s!linuxdocbin!$LINUXDOCBIN!1" -e "s!linuxdoclib!$LINUXDOCLIB!1" < bin/sgml2latex > /tmp/sgml2latex	
sed -e "s!linuxdocbin!$LINUXDOCBIN!1" -e "s!linuxdoclib!$LINUXDOCLIB!1" < bin/sgml2txt > /tmp/sgml2txt	
sed -e "s!linuxdocbin!$LINUXDOCBIN!1" -e "s!linuxdoclib!$LINUXDOCLIB!1" < bin/sgml2rtf > /tmp/sgml2rtf	
sed -e "s!linuxdocbin!$LINUXDOCBIN!1" -e "s!linuxdoclib!$LINUXDOCLIB!1" < bin/sgml2lyx > /tmp/sgml2lyx	
sed -e "s!linuxdocbin!$LINUXDOCBIN!1" -e "s!linuxdoclib!$LINUXDOCLIB!1" < bin/sgmlcheck > /tmp/sgmlcheck
sed -e "s|perl|\#\!$PERL|1" < bin/genertoc > /tmp/genertoc

echo "Compiling the SGML parsing tools (in sgmls-1.1/)..."
cd sgmls-1.1
make config.h OPTIMIZE="$OPTIMIZE"
if [ ! $? = 0 ]; then
    echo "make failed"
    exit -1
fi
make OPTIMIZE="$OPTIMIZE"
if [ ! $? = 0 ]; then
    echo "make failed"
    exit -1
fi

echo "Compiling HTML conversion tools (in html-fix/)..."
cd ../html-fix
make CFLAGS="$OPTIMIZE"
if [ ! $? = 0 ]; then
    echo "make failed"
    exit -1
fi
cd ..

echo "Compiling RTF conversion tools (in rtf-fix/)..."
cd rtf-fix
make CFLAGS="$OPTIMIZE"
if [ ! $? = 0 ]; then
    echo "make failed"
    exit -1
fi
cd ..

echo "Installing binaries in $LINUXDOCBIN..."
if [ ! -d $LINUXDOCBIN ]; then
    mkdir -p $LINUXDOCBIN
    if [ $? -ne 0 ]; then
        echo "$0: Cannot create bin directory $LINUXDOCBIN"
        exit 2
    fi
    chmod 755 $LINUXDOCBIN
fi

# remove old versions
rm -f $LINUXDOCBIN/sgmls
rm -f $LINUXDOCBIN/sgmlsasp
rm -f $LINUXDOCBIN/fixref
rm -f $LINUXDOCBIN/html2html
rm -f $LINUXDOCBIN/rtf2rtf
rm -f $LINUXDOCBIN/sgml2html
rm -f $LINUXDOCBIN/sgml2info
rm -f $LINUXDOCBIN/sgml2latex
rm -f $LINUXDOCBIN/sgml2txt
rm -f $LINUXDOCBIN/sgml2rtf
rm -f $LINUXDOCBIN/sgml2lyx
rm -f $LINUXDOCBIN/sgmlcheck
rm -f $LINUXDOCBIN/genertoc
# and copy in new ones
cp sgmls-1.1/sgmls sgmls-1.1/sgmlsasp $LINUXDOCBIN
cp html-fix/fixref html-fix/html2html rtf-fix/rtf2rtf $LINUXDOCBIN
mv /tmp/sgml2html $LINUXDOCBIN
mv /tmp/sgml2info $LINUXDOCBIN
mv /tmp/sgml2latex $LINUXDOCBIN
mv /tmp/sgml2txt $LINUXDOCBIN
mv /tmp/sgml2rtf $LINUXDOCBIN
mv /tmp/sgml2lyx $LINUXDOCBIN
mv /tmp/sgmlcheck $LINUXDOCBIN
mv /tmp/genertoc $LINUXDOCBIN

echo "Installing library and support files in $LINUXDOCLIB..."
if [ ! -d $LINUXDOCLIB ]; then
    mkdir -p $LINUXDOCLIB
    if [ $? -ne 0 ]; then
        echo "$0: Cannot create lib directory $LINUXDOCLIB"
        exit 2
    fi
    chmod 755 $LINUXDOCLIB
fi
cd lib
cp -r ./* $LINUXDOCLIB
cd ..

echo "Installing documentation in $LINUXDOCDOC..."
if [ ! -d $LINUXDOCDOC ]; then
    mkdir -p $LINUXDOCDOC
    if [ $? -ne 0 ]; then
        echo "$0: Cannot create doc directory $LINUXDOCDOC"
        exit 2
    fi
    chmod 755 $LINUXDOCDOC
fi
cd doc
cp -r ./* $LINUXDOCDOC 
cd ..  

echo "Installing man pages in $LINUXDOCMAN..." 
if [ ! -d $LINUXDOCMAN ]; then mkdir -p $LINUXDOCMAN
    if [ $? -ne 0 ]; then
        echo "$0: Cannot create man directory $LINUXDOCMAN"
        exit 2
    fi
    chmod 755 $LINUXDOCMAN
fi
cd man
cp -r ./* $LINUXDOCMAN
cd ..

# fix permissions
cd $LINUXDOCDOC
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
cd $LINUXDOCLIB
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

# don't use wildcards, there are probably other man pages around
cd $LINUXDOCMAN
chmod 644 sgml2html.1 sgml2latex.1 sgml2rtf.1 sgmls.1 sgml2info.1 \
          sgml2lyx.1 sgml2txt.1 sgmlsasp.1

# don't use wildcards, there could be other things in $LINUXDOCBIN!
#
# chmod bin files after lib and doc files, because they could be in the same 
# directory, and that would make them 644
#
chmod 755 $LINUXDOCBIN/sgmls $LINUXDOCBIN/sgmlsasp
chmod 755 $LINUXDOCBIN/fixref $LINUXDOCBIN/html2html $LINUXDOCBIN/rtf2rtf
chmod 755 $LINUXDOCBIN/sgml2html $LINUXDOCBIN/sgml2info $LINUXDOCBIN/sgml2latex $LINUXDOCBIN/sgml2txt $LINUXDOCBIN/sgml2rtf $LINUXDOCBIN/sgml2lyx $LINUXDOCBIN/sgmlcheck $LINUXDOCBIN/genertoc

echo "Done!  Read the guide in $LINUXDOCDOC next."
exit 0
