2008-01-27 12:00:08 +00:00
|
|
|
#! /bin/sh
|
2008-01-28 21:37:16 +00:00
|
|
|
# source: gatherinfo.sh
|
2016-07-22 06:54:31 +00:00
|
|
|
# Copyright Gerhard Rieger and contributors (see file CHANGES)
|
2008-01-27 12:00:08 +00:00
|
|
|
# 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"
|