blob: 7c59eabc337624e22a3d67a5c05542af8fea814d [file] [log] [blame]
#! /bin/sh
# source: gatherinfo.sh
# Copyright Gerhard Rieger and contributors (see file CHANGES)
# Published under the GNU General Public License V.2, see file COPYING
#set -vx
# use this script after successful porting
# provide the platform name as argument with no dots, e.g. HPUX-11-0
# it generates the files:
# Config/Makefile.PLATFORM
# Config/config.PLATFORM.h
# Config/socat.PLATFORM.out
#
# Config/config.PLATFORM.log
# Config/compile.PLATFORM.log
# Config/test.PLATFORM.log
VERBOSE=
LOGGING=
INTERACTIVE=
CONFOPTS=
PLATFORM=
OUTPUT='>/dev/null'
# how to echo special characters?
if [ `echo "x\c"` = "x" ]; then E=""
elif [ `echo -e "x\c"` = "x" ]; then E="-e"
fi
while [ -n "$1" ]; do
case "$1" in
-v) VERBOSE=1; shift;; # tell about progress
-d) LOGGING=1; shift;; # show complete output
-i) INTERACTIVE=1; shift;; # diff and ask before overriding old files
-*) CONFOPTS="$CONFOPTS $1"; shift;;
*) PLATFORM="$1"; break;;
esac
done
#if [ -z "$PLATFORM" ]; then
# echo "please specify a configuration name, e.g. `uname -s`-`uname -r|tr '.' '-'`!" >&2; exit 1;
#fi
if [ $# -eq 0 ]; then
echo $E "usage: $0 [-v] [-i] [configure options ...] platform" >&2
echo $E "\t-v\t\tverbose (print actual command)" >&2
echo $E "\t-d\t\tdump command outputs" >&2
echo $E "\t-i\t\tinteractive (ask before overwriting something)" >&2
echo $E "\tconfigure options\toptions for configure script, e.g. --disable-ip6" >&2
echo $E "\tplatform\tdescribe your OS, e.g. `uname -s`-`uname -r|tr '.' '-'`" >&2
exit 1
fi
case "$PLATFORM" in
*.*) echo "platform name must not contain '.'" >&2; exit 1;;
esac
# now, lets begin!
if [ -f Makefile ]; then
COMMAND="make distclean"
[ "$VERBOSE" ] && echo "$COMMAND"
$COMMAND >/dev/null 2>&1 || echo "*** failed: $COMMAND" 1>&2
fi
# implicitly generates Makefile, config.h, config.log
COMMAND="./configure $CONFOPTS"
LOGFILE="compile.log"
[ "$VERBOSE" ] && echo "$COMMAND"
if [ "$LOGGING" ]; then
{ $COMMAND; echo "$?" >socat.rc; } 2>&1 |tee $LOGFILE;
if [ `cat socat.rc` -ne 0 ]; then echo "*** failed: $COMMAND" 1>&2; exit 1; fi
else
$COMMAND >$LOGFILE 2>&1 || { echo "*** failed: $COMMAND" 1>&2; exit 1; }
fi
COMMAND="make -k"
LOGFILE="compile.log"
[ "$VERBOSE" ] && echo "$COMMAND"
if [ "$LOGGING" ]; then
{ $COMMAND; echo "$?" >socat.rc; } 2>&1 |tee -a $LOGFILE;
if [ `cat socat.rc` -ne 0 ]; then echo "*** failed: $COMMAND" 1>&2; exit 1; fi
else
$COMMAND >>$LOGFILE 2>&1 || { echo "*** failed: $COMMAND" 1>&2; exit 1; }
fi
# generates socat.out
COMMAND="make info"
[ "$VERBOSE" ] && echo "$COMMAND"
$COMMAND >/dev/null || echo "*** failed: $COMMAND" 1>&2
COMMAND="./test.sh"
LOGFILE="test.log"
[ "$VERBOSE" ] && echo "$COMMAND"
if [ "$LOGGING" ]; then
{ $COMMAND; echo "$?" >socat.rc; } 2>&1 |tee $LOGFILE;
if [ `cat socat.rc` -ne 0 ]; then
echo "*** failed: $COMMAND" 1>&2
if [ `cat socat.rc` -ge 128 ]; then
exit 1
fi
fi
else
$COMMAND >$LOGFILE 2>&1 || echo "*** failed: $COMMAND" 1>&2
fi
FILES=
b=Makefile; e=; f=$b; p=Config/$b.$PLATFORM
if [ "$INTERACTIVE" -a -f $p ]; then
if ! diff $p $f; then
cp -pi $f $p
fi
else
cp -p $f $p
fi
FILES="$p"
b=config; e=h; f=$b.$e; p=Config/$b.$PLATFORM.$e
if [ "$INTERACTIVE" -a -f $p ]; then
if ! diff $p $f; then
cp -pi $f $p
fi
else
cp -p $f $p
fi
FILES="$FILES $p"
b=socat; e=out; f=$b.$e; p=Config/$b.$PLATFORM.$e
if [ "$INTERACTIVE" -a -f $p ]; then
if ! diff $p $f; then
cp -pi $f $p
fi
else
cp -p $f $p
fi
FILES="$FILES $p"
b=config; e=log; f=$b.$e; p=Config/$b.$PLATFORM.$e
if [ "$INTERACTIVE" -a -f $p ]; then
if ! diff $p $f; then
cp -pi $f $p
fi
else
cp -p $f $p
fi
FILES="$FILES $p"
b=compile; e=log; f=$b.$e; p=Config/$b.$PLATFORM.$e
if [ "$INTERACTIVE" -a -f $p ]; then
if ! diff $p $f; then
cp -pi $f $p
fi
else
cp -p $f $p
fi
FILES="$FILES $p"
b=test; e=log; f=$b.$e; p=Config/$b.$PLATFORM.$e
if [ "$INTERACTIVE" -a -f $p ]; then
if ! diff $p $f; then
cp -pi $f $p
fi
else
cp -p $f $p
fi
FILES="$FILES $p"
echo "output files:"
echo "$FILES"