#!/bin/sh

version=0.2.96
prefix=/usr
exec_prefix=${prefix}
datadir=${prefix}/share
CC=gcc
shell=@shell@

TEMPLATES_DIR="${prefix}/share/gda/templates"
TMPL_C_FILES="gda-srv-command.c gda-srv-connection.c gda-srv-recordset.c main-srv.c"
TMPL_H_FILES="gda-srv.h"

usage()
{
	cat <<EOF
Usage: gda-buildserver [OPTIONS] -o target -f object_files
Options:
	[-p PROVIDER --skels] Generate server implementation skeletons for PROVIDER
	[--version]           Display script version
EOF

	exit $1
}

buildskels()
{
	for tmpl in ${TMPL_C_FILES} ${TMPL_H_FILES}
	do
		if ! `sed -e "s/<provider-name>/${ARG_PROVIDER}/g" ${TEMPLATES_DIR}/${tmpl}.tmpl > ./${tmpl}`
		then
			echo "$0: error creating file ${tmpl}"
			exit 1
		fi
	done
	mv gda-srv.h gda-${ARG_PROVIDER}.h

	echo The following files have been created:
    echo ${TMPL_C_FILES} gda-${ARG_PROVIDER}.h
    echo
	echo Now fill the gaps commented on these files
}

if test $# -lt 1
then
	usage 1 1>&2
fi

# Read command-line options
while test $# -gt 0
do
	case "$1" in
	-o)
		current_arg=""
		ARG_TARGET=$2
		shift
		;;
	-p)
		current_arg=""
		ARG_PROVIDER=$2
		shift
		echo ${ARG_PROVIDER}
		;;
	-f)
		current_arg="ARG_FILES"
		;;
	-s)
		buildskels
		exit
		;;
	--skels)
		buildskels
		exit
		;;
	--version)
		echo "gda-buildserver version ${version}"
		echo ""
		echo "Copyright (C) The Free Software Foundation, 1998-2001"
		echo "Software developped by Rodrigo Moya <rodrigo@gnome-db.org>"
		echo "                   and Brian Jepson <bjepson@jepstone.net>"
		exit 0
		;;
	*)
		if test "$current_arg" = "ARG_FILES"
		then
			ARG_FILES="$ARG_FILES $1"
		fi
		;;
	esac
	shift
done

# Set variables
INCLUDE_FLAGS="-I/usr/include/glib-1.2 -I/usr/lib/glib/include -D_REENTRANT -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/gnome-xml -I/usr/include/gconf/1 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/orbit-1.0 -I/usr/include/gnome-1.0 -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/gdk-pixbuf-1.0 -I/usr/include/freetype2 -I/usr/include/gnome-xml -I/usr/include -I/usr/include/orbit-1.0"
LIBS_FLAGS="-L/usr/lib -lgthread -lglib -lpthread -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -L/usr/lib -lxml -lz -L/usr/lib -lgconf-1 -loaf -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lglib -lm -rdynamic -L/usr/lib -L/usr/X11R6/lib -lbonobo -loaf -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lbonobox -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgnome -lgnomesupport -lesd -laudiofile -ldb-3 -lgdk_pixbuf -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -lxml -lz"

# Build the server
cmd="$CC ${INCLUDE_FLAGS} -o ${ARG_TARGET} ${INCLUDE_FLAGS} ${ARG_FILES} ${LIBS_FLAGS}"
echo $cmd
if ! `$cmd`
then
	echo "$0: error running $_"
	exit 1
else
	echo "Successfully generated provider ${ARG_TARGET}"
fi

# Clean up
rm -f ${GENERATED_FILES}
exit 0

