#! /bin/sh
if [ -z "$1" ]; then
echo "Usage: HEADERS='list' DEFINES='list' mkconfig.sh FILE" >&2
exit 1
fi
output=$1
rm -f ${output}T
if [ "$TARGET_CPU_DEFAULT" != "" ]; then
echo "#define TARGET_CPU_DEFAULT ($TARGET_CPU_DEFAULT)" >> ${output}T
fi
if [ -n "$HEADERS" ]; then
set $HEADERS; first=$1
case $first in auto-* )
echo "#include \"$first\"" >> ${output}T
shift
HEADERS=$*
;;
esac
fi
case $output in
*config.h | *hconfig.h | *tconfig.h)
cat >> ${output}T <<EOF
/* Provide three core typedefs used by everything, if we are compiling
GCC. These used to be found in rtl.h and tree.h, but this is no
longer practical. Providing these here rather that system.h allows
the typedefs to be used everywhere within GCC. */
struct rtx_def;
typedef struct rtx_def *rtx;
struct rtvec_def;
typedef struct rtvec_def *rtvec;
union tree_node;
typedef union tree_node *tree;
EOF
;;
esac
if [ -n "$HEADERS" ]; then
echo ' for file in $HEADERS; do
echo "# include \"$file\"" >> ${output}T
done
echo 'fi
for def in $DEFINES; do
echo "#ifndef $def" | sed 's/=.*//' >> ${output}T
echo "# define $def" | sed 's/=/ /' >> ${output}T
echo "#endif" >> ${output}T
done
case $output in
*tm_p.h)
echo "#include \"tm-preds.h\"" >> ${output}T
;;
*tconfig.h | *hconfig.h)
;;
*)
cat >> ${output}T <<EOF
EOF
;;
esac
if [ -f $output ] && cmp ${output}T $output >/dev/null 2>&1; then
echo $output is unchanged >&2
rm -f ${output}T
else
mv -f ${output}T $output
fi
rm -f cs-$output
echo timestamp > cs-$output