#!/bin/sh

source defs

PRO="# EPOS Family Makefile\n#\n# Author: Guto\n\ninclude \$(EPOS)/makedefs\n"
ALL="all:\t\t\$(LIBSYS) \$(LIBDATA) \$(LIBINIT)\n"
SYS="\$(LIBSYS):\tmembers\n\t\t\$(AR) \$(ARFLAGS) \$@ \$^\n"
DAT="\$(LIBDATA):\tmembers\n\t\t\$(AR) \$(ARFLAGS) \$@ \$^\n"
INI="\$(LIBINIT):\tmembers\n\t\t\$(AR) \$(ARFLAGS) \$@ \$^\n"
TST="test:\t\tmembers\n"
PRN="print:\n\t\t\$(PRINT) \$(INCLUDE)/family.h"
PRN2="\t\t\$(PRINT) \$(INCLUDE)/system/types/family/member.h member.cc"

CLN="clean:\n\t\t\$(CLEAN) *.o *_test\n"

if (( $# < 2 )); then
    echo "usage: `basename $0` <type> <family> <member> [<member>]"
    exit 1
fi

type=$1
family=$2
shift 2
members="$*"

#echo "Family: "$family", Type: "$type", Members: "$members

echo -e "`echo "$PRO" | rep Family "$family"`"
echo -e "`echo "$ALL" | rep members "$members"`"
for member in $members; do
    sys="$sys$member"".o "
    dat="$dat$member""_data.o "
    ini="$ini$member""_init.o "
    tst="$tst$member""_test "
done    
echo -e "`echo "$SYS" | rep members "$sys"`" 
echo -e "`echo "$DAT" | rep members "$dat"`" 
echo -e "`echo "$INI" | rep members "$ini"`" 
echo -e "`echo "$TST" | rep members "$tst"`" 
echo -e "`echo "$PRN" | rep family "$family"`" 
for member in $members; do
    echo -e "`echo "$PRN2" | rep type "$type" | rep family "$family"\
	|  rep member "$member"`" 
done    
echo 
echo -e "$CLN" 

exit 0
