#!/bin/sh

if [ ! -d templates ]; then
	echo this script can only run in the .../systems directory!
	exit -1
fi

sysdir=`pwd`

echo making system $1 in $sysdir...

if [ -d $1 ]; then
	echo directory already exists!
	exit -1
fi
mkdir $1
cd $1

if [ -f ../templates/makefiles/$1.init ]; then
	cp ../templates/makefiles/$1.init ./Make.init
	echo copied Make.init
else
	cp ../templates/makefiles/generic.init ./Make.init
	echo no makefile template available for $1, you have to edit Make.init...
fi

if [ -f ../templates/include/$1.h ]; then
	cp ../templates/include/$1.h ./sysdefs.h
	echo copied sysdefs.h
else
	touch sysdefs.h
	echo no sysdefs template available for $1, you have to edit sysdefs.h...
fi

cd $sysdir/$1

echo creating source links...

srcdirs='bslib ipc cbplus cwplus filer pfmt'
libsrcdirs='test'
xmsrcdirs='dlgedit lib rci samples'

for dir in $srcdirs ; do
	if [ -d ../../src/$dir ]; then
		mkdir $dir
		cd $dir
		echo linking sources from $dir
		ln -s ../../../src/$dir/*.C .
		ln -s ../../../src/$dir/*.h .
		ln -s ../../../src/$dir/Makefile .
		cd ..
	fi
done

if [ -d cbplus ]; then
	echo Sorry, no support for commonBase servers in this script.
	echo You have to set up the respective links manually.
fi


if [ -d ../../src/bslib ]; then
	mkdir bslib
	cd bslib
	for dir in $libsrcdirs ; do
		if [ -d ../../../src/bslib/$dir ]; then
			mkdir $dir
			cd $dir
			echo linking sources from bslib/$dir
			ln -s ../../../../src/bslib/$dir/*.C .
			ln -s ../../../../src/bslib/$dir/*.h .
			ln -s ../../../../src/bslib/$dir/Makefile .
			cd ..
		fi
	done
	cd ..
fi

if [ -d ../../src/xmplus ]; then
	mkdir xmplus
	cd xmplus
	ln -s ../../../src/xmplus/Makefile .
	for dir in $xmsrcdirs ; do
		if [ -d ../../../src/xmplus/$dir ]; then
			mkdir $dir
			cd $dir
			echo linking sources from xmplus/$dir
			ln -s ../../../../src/xmplus/$dir/*.C .
			ln -s ../../../../src/xmplus/$dir/Makefile .
			hasfiles=`ls ../../../../src/xmplus/$dir/*.h 2>/dev/null`
			if [ "$hasfiles" ]; then
				ln -s ../../../../src/xmplus/$dir/*.h .
			fi
			hasfiles=`ls ../../../../src/xmplus/$dir/*.c 2>/dev/null`
			if [ "$hasfiles" ]; then
				ln -s ../../../../src/xmplus/$dir/*.c .
			fi
			hasfiles=`ls ../../../../src/xmplus/$dir/*_bitmap 2>/dev/null`
			if [ "$hasfiles" ]; then
				ln -s ../../../../src/xmplus/$dir/*_bitmap .
			fi
			hasfiles=`ls ../../../../src/xmplus/$dir/*.gif 2>/dev/null`
			if [ "$hasfiles" ]; then
				ln -s ../../../../src/xmplus/$dir/*.gif .
			fi
			cd ..
		fi
	done
	cd ..
fi

cd $sysdir/$1

echo checking common directories...

includedirs='bslib ipc cwplus filer pfmt xmplus/lib xmplus/rci'

if [ -d ../../include ]; then
	echo .../include exists...
else
	mkdir ../../include
	echo created .../include
	cd ../../include
	for dir in $includedirs ; do
		if [ -d ../src/$dir ]; then
			ln -s ../src/$dir/*.h .
			echo linking headers from $dir
		fi
	done
fi

cd $sysdir/$1

if [ -d ../../lib ]; then
	echo .../lib exists...
else
	mkdir ../../lib
	echo created .../lib
fi

if [ -d ../../lib/$1 ]; then
	echo .../lib/$1 exists...
	rm -f ../../lib/$1/sysdefs.h
else
	mkdir ../../lib/$1
	echo created .../lib/$1
fi

cd ../../lib/$1
ln -s ../../systems/$1/sysdefs.h .
echo linked sysdefs.h


echo done.


