#!/bin/csh -f
# Copyright 1994 Carnegie Mellon University All rights reserved.
#  $Disclaimer: Andrew User Interface System - Binary Distribution 7.5
# 
# Permission to use, copy, modify, and distribute this software for any 
# purpose is hereby granted, provided (a) that no fee is charged for the 
# software, for the medium on which it is distributed, for the 
# distribution process, or for effort involved in making the distribution;  
# (b) that all copyright notices, this permission notice, and the 
# following disclaimer remain in these files and appear in supporting 
# documentation;  (c) that you do not translate, reverse engineer, 
# decompile, or disassemble the software; and (d) that the names of 
# IBM, Carnegie Mellon University, and other copyright holders not 
# be used in advertising or publicity pertaining to distribution of the 
# software.
# 
# CARNEGIE MELLON UNIVERSITY, IBM, AND THE OTHER 
# COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES 
# WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 
# IMPLIED WARRANTIES OF MERCHANTABILITY AND 
# FITNESS.  IN NO EVENT SHALL CARNEGIE MELLON 
# UNIVERSITY, IBM, OR ANY OTHER COPYRIGHT HOLDER 
# BE LIABLE FOR ANY SPECIAL, INDIRECT OR 
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 
# PROFITS, WHETHER IN AN ACTION OF CONTRACT, 
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 
# OUT OF OR IN CONNECTION WITH THE USE OR 
# PERFORMANCE OF THIS SOFTWARE.
#  $
# Output a file defining a main function which registers each
# of the named classes.
# usage: mkdynmain class1 class2 etc....

echo "#include <andrewos.h>"
echo "#include <ATK.H>"

if "$argv[1]" == "-ctor" then
	shift
	if "$argv[1]" == "-main" then	
		shift
		echo "int main() { ; }"
	endif
	echo "class ATKRegisterClass { public:"
	echo "inline ATKRegisterClass(ATKregistryEntry *reg) {"
	echo "	ATK::RegisterClass(reg); }"
	echo "inline ~ATKRegisterClass() { ; }"
	echo "};"
	foreach name ($argv)
		echo "extern ATKregistryEntry ${name}_ATKregistry_;"
		echo "static ATKRegisterClass ${name}$$_(&${name}_ATKregistry_);"
	end
else
if "$argv[1]" == "-" then
	shift
	set main = $argv[1]
	shift
else
	set main = main
endif

foreach name ($argv)
echo "extern ATKregistryEntry ${name}_ATKregistry_;"
end

echo 'extern "C" '"int $main(int argc, char **argv) {"
foreach name($argv)
echo "ATKregister($name);"
end

echo "return 0;"
echo "}"
endif
