#!/bin/sh
#
# @(#)makeinc 1.3 02/12/16 Copyright 1998 J. Schilling
###########################################################################
# Copyright 1998 by J. Schilling
###########################################################################
#
# Automake script for the Schily (SING) makefile system
#
###########################################################################
#
# Creates the following files:
#
# ./RULES/os-sunos.id
# ./RULES/os-sunos.def
# ./DEFAULTS/Defaults.sunos
# ./RULES/sun4c-sunos-gcc.rul
#
###########################################################################
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
###########################################################################
MAILADDR=schilling@fokus.fhg.de
###########################################################################
# Option processing
###########################################################################
case $1 in
-r)
shift
SRCROOT=$1
shift
;;
esac
if [ $# -lt 1 ]; then
echo 'Usage: makeinc [-r srcroot] filename'
fi
###########################################################################
# Find SRCROOT if not specified via option
###########################################################################
if [ .$SRCROOT = . -a -r RULES ]; then
SRCROOT=.
fi
if [ .$SRCROOT = . -a -r ../RULES ]; then
SRCROOT=..
fi
if [ .$SRCROOT = . -a -r ../../RULES ]; then
SRCROOT=../..
fi
if [ .$SRCROOT = . -a -r ../../../RULES ]; then
SRCROOT=../../..
fi
if [ .$SRCROOT = . -a -r ../../../../RULES ]; then
SRCROOT=../../../..
fi
if [ .$SRCROOT = . -a -r ../../../../../RULES ]; then
SRCROOT=../../../../..
fi
if [ .$SRCROOT = . -a -r ../../../../../../RULES ]; then
SRCROOT=../../../../../..
fi
###########################################################################
# Real start of automake script
###########################################################################
echo 'NOTICE: Automake script called'
if [ -r $1 ]; then
echo "WARNING: requested file '$1' already exists"
exit
fi
echo "IMPORTANT: Please report your architecture to $MAILADDR"
echo
echo "Trying to create missing rule file '$1'"
sleep 1
echo
CC=cc
gcc -v 2> /dev/null && CC=gcc
echo "CC: $CC"
MANSTYLE=sysv
if [ -r /usr/man/*man7*/man* -o -r /usr/share/man/*man7*/man* \
-o -r /usr/man/*man7*/ascii* -o -r /usr/share/man/*man7*/ascii* ]; then
MANSTYLE=bsd
fi
echo "MANSTYLE: $MANSTYLE"
case $1 in
*os-*.id)
echo $1
OSNAME=`echo $1 | sed -e 's;\(.*\)os-\(.*\)\.id;\2;'`
echo '###########################################################################' > $1
echo "# OS specific MACRO definitions for $OSNAME" >> $1
echo "# This file is auto generated and may be wrong" >> $1
echo '###########################################################################' >> $1
echo "O_ARCH= $OSNAME" >> $1
echo '-O_ARCH= -$(O_ARCH)' >> $1
;;
*os-*.def)
echo $1
OSNAME=`echo $1 | sed -e 's;\(.*\)os-\(.*\)\.def;\2;'`
echo '###########################################################################' > $1
echo "# Global os definitions for $OSNAME" >> $1
echo "# This file is auto generated and may be wrong" >> $1
echo '###########################################################################' >> $1
echo "MANSTYLE= $MANSTYLE" >> $1
;;
*Defaults.*)
echo $1
OSNAME=`echo $1 | sed -e 's;\(.*\)\.\(.*\);\2;'`
echo '###########################################################################' > $1
echo "# global definitions for $OSNAME Systems" >> $1
echo "# This file is auto generated and may be wrong" >> $1
echo '###########################################################################' >> $1
if [ $CC = gcc ]; then
cat $SRCROOT/TEMPLATES/Defaults.gcc >> $1
else
cat $SRCROOT/TEMPLATES/Defaults.xcc >> $1
fi
echo >> $1
echo '###########################################################################' >> $1
echo "# Do compilattion with minimal warnings" >> $1
echo '###########################################################################' >> $1
echo "CWARNOPTS=" >> $1
;;
*-*-*cc.rul)
ARCH=`echo $1 | sed -e 's;\(.*\)/\(.*\)-\(.*\)-\(.*\).rul;\2;'`
OSNAME=`echo $1 | sed -e 's;\(.*\)/\(.*\)-\(.*\)-\(.*\).rul;\3;'`
CCOM=`echo $1 | sed -e 's;\(.*\)/\(.*\)-\(.*\)-\(.*\).rul;\4;'`
DIR=`echo $1 | sed -e "s;\(.*\)/$ARCH-$OSNAME-$CCOM.rul;\1;"`
echo "ARCH: $ARCH"
echo "OSNAME: $OSNAME"
echo "CCOM: $CCOM"
echo "DIR: $DIR"
echo $1
echo "Trying to find similar architecture for '$1'"
similar=`ls $DIR/*-$OSNAME-$CCOM.rul 2>/dev/null| head -1`
SARCH=`echo $similar | sed -e "s;\(.*\)/\(.*\)-$OSNAME-$CCOM.rul;\2;"`
if [ .$similar != . ]; then
echo 'Found similar architecture ' "'$similar'"
echo 'creating symlink:' ln -s $SARCH-$OSNAME-$CCOM.rul $1
echo "Please send a mail to $MAILADDR to report whether this works or not"
sleep 10
ln -s $SARCH-$OSNAME-$CCOM.rul $1 || cp $SARCH-$OSNAME-$CCOM.rul $1
exit
else
echo '###########################################################################' > $1
echo "# global definitions for $OSNAME Systems" >> $1
echo "# This file is auto generated and may be wrong" >> $1
echo '###########################################################################' >> $1
if [ $CCOM = gcc ]; then
echo 'Using generic GCC machine configuration file'
cat $SRCROOT/TEMPLATES/temp-gcc.rul >> $1
else
echo 'Using generic dumb cc machine configuration file'
cat $SRCROOT/TEMPLATES/temp-xcc.rul >> $1
fi
fi
;;
#######################################################################
# This entry is not really needed...
#######################################################################
*TARGETS/Targetdirs*)
echo "Linking $1 to $SRCROOT/TARGETS/Targetdirs"
ln -s Targetdirs $1
;;
*)
echo "Unknown rule to build: '$1'."
exit 1
;;
esac
echo "Please send a mail to $MAILADDR to report whether this works or not"
sleep 10
syntax highlighted by Code2HTML, v. 0.9.1