#!/bin/sh
#
#	config,v 1.16 1993/04/17 03:52:11 jch Exp
#
# Gated Release 3.0
# Copyright (c) 1990,1991,1992,1993 by Cornell University. All rights reserved.
# Refer to Particulars and other Copyright notices at the end of this file.
#

TMP=/tmp/$$

DCONFIG=Config
CONFIG=${DCONFIG}
CONFIG_SCRIPT=config_script
SED=sed
AWK=awk
CONFIG_AWK=config.awk
FILES=files
CONFIG_FILES=config.files.awk
DEFINES_H=defines.h
UTILDIR=`pwd`/util

case $# in
	0)
		ARCHTYPE=`${UTILDIR}/archtype` ;
		DIRS="obj.`hostname | sed -e 's/\..*//'` obj.${ARCHTYPE} obj" ;
		for dir in ${DIRS}; do
			if [ -r ${dir}/${DCONFIG} ]; then
				CONFIG=${dir}/${DCONFIG} ;
				break ;
			fi
		done
		if [ ! -r ${CONFIG} ]; then
			echo "$0: could not find ${CONFIG} in ${DIRS}" ;
			exit 1;
		fi
		;;
	1)
		CONFIG=$1
		if [ ! -r ${CONFIG} ]; then
			echo "$0: can not read ${CONFIG}" ;
			exit 1;
		fi
		;;
	*)
		echo "usage: $0: [config_file]"
		exit 1;
esac

#	Set default object directory
OBJDIR=`echo ${CONFIG} | ${SED} -e "s/\/${DCONFIG}//"`
case ${OBJDIR} in
	${DCONFIG})
		OBJDIR="obj";;
esac

echo "Parsing ${CONFIG}" ;
${AWK} -f ${UTILDIR}/${CONFIG_AWK} OBJDIR=${OBJDIR} CONFIG_SCRIPT=${TMP}.3 DEFINES_H=${TMP}.4 ${CONFIG} || exit $?
chmod 755 ${TMP}.3

cat > ${TMP}.1 <<EOF
CONFIG_SCRIPT="@(CONFIG_SCRIPT)"
SED="@(SED)"
OBJDIR="@(OBJDIR)"
MAKECMD="@(MAKE)"
TEMPLATE="@(TEMPLATE)"
UTILDIR="@(SRCDIR)/@(UTILDIR)"
EOF
${TMP}.3 < ${TMP}.1 > ${TMP}.2
. ${TMP}.2
rm -r -f ${TMP}.{1,2}

echo "Directory:	${OBJDIR}" ;

if [ -f ${OBJDIR} ]; then
	echo "$0: ${OBJDIR} is not a directory" ;
	exit 1 ;
fi

if [ ! -d ${OBJDIR} ]; then
	echo "Creating object directory ${OBJDIR}" ;
	mkdir ${OBJDIR} || exit $? ;
# XXX - set permissions and stuff
fi

mv ${TMP}.3 ${OBJDIR}/${CONFIG_SCRIPT} || exit $? ;
mv ${TMP}.4 ${OBJDIR}/${DEFINES_H} || exit $? ;
cd ${OBJDIR} || exit $? ;

echo "Building Makefile from ${TEMPLATE}" ;
./${CONFIG_SCRIPT} < ${UTILDIR}/${FILES} > ${TMP}.1
${AWK} -f ${UTILDIR}/${CONFIG_FILES} MAKEFILE=Makefile ${TMP}.1 || exit $?
rm -r -f ${TMP}.1
./${CONFIG_SCRIPT} < ${UTILDIR}/${TEMPLATE} >> Makefile || exit $?

echo "${MAKECMD} cleanall" ;
${MAKECMD} cleanall || exit $?
echo "${MAKECMD} links" ;
${MAKECMD} links || exit $?
echo "${MAKECMD} depend" ;
${MAKECMD} depend || exit $?

echo "done" ;

#
# ------------------------------------------------------------------------
# 
# 	GateD, Release 3
# 
# 	Copyright (c) 1990,1991,1992,1993 by Cornell University
# 	    All rights reserved.
# 
# 	THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY
# 	EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
# 	LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY
# 	AND FITNESS FOR A PARTICULAR PURPOSE.
# 
# 	Royalty-free licenses to redistribute GateD Release
# 	3 in whole or in part may be obtained by writing to:
# 
# 	    GateDaemon Project
# 	    Information Technologies/Network Resources
# 	    200 CCC, Garden Avenue
# 	    Cornell University
# 	    Ithaca, NY  14853-2601  USA
# 
# 	GateD is based on Kirton's EGP, UC Berkeley's routing
# 	daemon	 (routed), and DCN's HELLO routing Protocol.
# 	Development of GateD has been supported in part by the
# 	National Science Foundation.
# 
# 	Please forward bug fixes, enhancements and questions to the
# 	gated mailing list: gated-people@gated.cornell.edu.
# 
# 	Authors:
# 
# 		Jeffrey C Honig <jch@gated.cornell.edu>
# 		Scott W Brim <swb@gated.cornell.edu>
# 
# ------------------------------------------------------------------------
# 
#       Portions of this software may fall under the following
#       copyrights:
# 
# 	Copyright (c) 1988 Regents of the University of California.
# 	All rights reserved.
# 
# 	Redistribution and use in source and binary forms are
# 	permitted provided that the above copyright notice and
# 	this paragraph are duplicated in all such forms and that
# 	any documentation, advertising materials, and other
# 	materials related to such distribution and use
# 	acknowledge that the software was developed by the
# 	University of California, Berkeley.  The name of the
# 	University may not be used to endorse or promote
# 	products derived from this software without specific
# 	prior written permission.  THIS SOFTWARE IS PROVIDED
# 	``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
# 	INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# 	MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
