Coherent4.2.10/i386/bld
# bld - make 386 kernel
#
# requires a running 386 kernel
#
sync
unset TARGET
report_error () {
echo -n bld: $* 1>&2
}
. /usr/lib/shell_lib.sh
source_path $0 "HOME_DIR="
parent_of $HOME_DIR "TOP_DIR="
CONF_PATH=$TOP_DIR/conf:$TOP_DIR/conf/install_conf:$CONF_PATH
export K386LIB=$TOP_DIR/conf/lib
echo "K386LIB=$K386LIB"
GCC=
while [ $# -gt 0 ]
do
ARG=$1
case $ARG in
fha | fva | lambda | gort | ft)
CONFDIR="$TOP_DIR/conf/${ARG}_conf"
TARGET=${TARGET-/tmp/${ARG}_kernel}
;;
gcc) GCC=gcc
;;
sc) CFLAGS=${CFLAGS}" -DGORT"
;;
ticom) # piggy's Tiwanese 4 port card
PATCH="${PATCH} AL_ADDR+8=0x2b0 AL_ADDR+12=0x2b8"
;;
xl) PATCH="${PATCH} ftCon=ftxlcon PHYS_MEM=589824"
;;
-c) shift
CFLAGS="$CFLAGS $1"
;;
--conf) shift
CONFDIR="$TOP_DIR/conf/$1"
;;
-f) FORCE_KERNEL=force_kernel
;;
-o) shift
TARGET=$1
;;
-d|-n) MAKE_SETTINGS="$MAKE_SETTINGS $ARG";
;;
*=*) PATCH="${PATCH} ${ARG}"
;;
*)
echo "Usage: $0 {fha | fva | sc | ticom}"
echo " {-o target} {-conf confdir} {-c cflags} {addr=value}..."
exit 1
;;
esac
shift
done
if [ -f "$TARGET" -a "$FORCE_KERNEL" = force_kernel ]; then
rm $TARGET
fi
make $MAKE_SETTINGS CFLAGS="${CFLAGS}" $GCC || exit 1
TARGET=${TARGET-/at386.test}
CONF_PATH=$CONFDIR:$CONF_PATH
# Locate all of the individual configuration files
find_and_set () {
find_file $1 $CONF_PATH "$2=" \
"report_error File \'$1\' is not found in $CONF_PATH; exit 126"
}
find_and_set mtune MTUNE_FILE
find_and_set stune STUNE_FILE
find_and_set mdevice MDEV_FILE
find_and_set sdevice SDEV_FILE
find_and_set Makefile MAKE_FILE
find_and_set template.mak TEMPL_FILE
find_and_set keeplist KEEP_FILE
(cd ../conf
make TARGET=$TARGET CONFDIR=$CONFDIR CFLAGS="$CFLAGS" \
MTUNE_FILE=$MTUNE_FILE STUNE_FILE=$STUNE_FILE \
MDEV_FILE=$MDEV_FILE SDEV_FILE=$SDEV_FILE \
TEMPL_FILE=$TEMPL_FILE KEEP_FILE=$KEEP_FILE\
FORCE_KERNEL="$FORCE_KERNEL" $GCC) || exit 1
case "$PATCH" in
'') ;;
*) set -x
/conf/patch $TARGET $PATCH || exit 1
;;
esac