makeinc
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:6k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. #!/bin/sh
  2. #
  3. # %Z%%M% %I% %E% Copyright 1998 J. Schilling
  4. ###########################################################################
  5. # Copyright 1998 by J. Schilling
  6. ###########################################################################
  7. #
  8. # Automake script for the Schily (SING) makefile system
  9. #
  10. ###########################################################################
  11. #
  12. # Creates the following files:
  13. #
  14. # ./RULES/os-sunos.id
  15. # ./RULES/os-sunos.def
  16. # ./DEFAULTS/Defaults.sunos
  17. # ./RULES/sun4c-sunos-gcc.rul
  18. #
  19. ###########################################################################
  20. # This program is free software; you can redistribute it and/or modify
  21. # it under the terms of the GNU General Public License as published by
  22. # the Free Software Foundation; either version 2, or (at your option)
  23. # any later version.
  24. #
  25. # This program is distributed in the hope that it will be useful,
  26. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  27. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  28. # GNU General Public License for more details.
  29. #
  30. # You should have received a copy of the GNU General Public License
  31. # along with this program; see the file COPYING.  If not, write to
  32. # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  33. ###########################################################################
  34. MAILADDR=schilling@fokus.gmd.de
  35. ###########################################################################
  36. # Option processing
  37. ###########################################################################
  38. case $1 in
  39. -r)
  40. shift
  41. SRCROOT=$1
  42. shift
  43. ;;
  44. esac
  45. if [ $# -lt 1 ]; then
  46. echo 'Usage: makeinc [-r srcroot] filename'
  47. fi
  48. ###########################################################################
  49. # Find SRCROOT if not specified via option
  50. ###########################################################################
  51. if [ .$SRCROOT = . -a -r RULES ]; then
  52. SRCROOT=.
  53. fi
  54. if [ .$SRCROOT = . -a -r ../RULES ]; then
  55. SRCROOT=..
  56. fi
  57. if [ .$SRCROOT = . -a -r ../../RULES ]; then
  58. SRCROOT=../..
  59. fi
  60. if [ .$SRCROOT = . -a -r ../../../RULES ]; then
  61. SRCROOT=../../..
  62. fi
  63. if [ .$SRCROOT = . -a -r ../../../../RULES ]; then
  64. SRCROOT=../../../..
  65. fi
  66. if [ .$SRCROOT = . -a -r ../../../../../RULES ]; then
  67. SRCROOT=../../../../..
  68. fi
  69. if [ .$SRCROOT = . -a -r ../../../../../../RULES ]; then
  70. SRCROOT=../../../../../..
  71. fi
  72. ###########################################################################
  73. # Real start of automake script
  74. ###########################################################################
  75. echo 'NOTICE: Automake script called'
  76. if [ -r $1 ]; then
  77. echo "WARNING: requested file '$1' already exists"
  78. exit
  79. fi
  80. echo "IMPORTANT: Please report your architecture to $MAILADDR"
  81. echo
  82. echo "Trying to create missing rule file '$1'"
  83. sleep 1
  84. echo
  85. CC=cc
  86. gcc -v 2> /dev/null && CC=gcc
  87. echo "CC: $CC"
  88. MANSTYLE=sysv
  89. if [ -r /usr/man/*man7*/man* ]; then
  90. MANSTYLE=bsd
  91. fi
  92. echo "MANSTYLE: $MANSTYLE"
  93. case $1 in
  94. *os-*.id)
  95. echo $1
  96. OSNAME=`echo $1 | sed -e 's;(.*)os-(.*).id;2;'`
  97. echo '###########################################################################' > $1
  98. echo "# OS specific MACRO definitions for $OSNAME" >> $1
  99. echo "# This file is auto generated and may be wrong" >> $1
  100. echo '###########################################################################' >> $1
  101. echo "O_ARCH= $OSNAME" >> $1 
  102. echo '-O_ARCH= -$(O_ARCH)' >> $1 
  103. ;;
  104. *os-*.def)
  105. echo $1
  106. OSNAME=`echo $1 | sed -e 's;(.*)os-(.*).def;2;'`
  107. echo '###########################################################################' > $1
  108. echo "# Global os definitions for $OSNAME" >> $1
  109. echo "# This file is auto generated and may be wrong" >> $1
  110. echo '###########################################################################' >> $1
  111. echo "MANSTYLE= $MANSTYLE" >> $1 
  112. ;;
  113. *Defaults.*)
  114. echo $1
  115. OSNAME=`echo $1 | sed -e 's;(.*).(.*);2;'`
  116. echo '###########################################################################' > $1
  117. echo "# global definitions for $OSNAME Systems" >> $1
  118. echo "# This file is auto generated and may be wrong" >> $1
  119. echo '###########################################################################' >> $1
  120. if [ $CC = gcc ]; then
  121. cat $SRCROOT/TEMPLATES/Defaults.gcc >> $1
  122. else
  123. cat $SRCROOT/TEMPLATES/Defaults.xcc >> $1
  124. fi
  125. echo >> $1
  126. echo '###########################################################################' >> $1
  127. echo "# Do compilattion with minimal warnings" >> $1
  128. echo '###########################################################################' >> $1
  129. echo "CWARNOPTS=" >> $1
  130. ;;
  131. *-*-*cc.rul)
  132. ARCH=`echo $1 | sed -e 's;(.*)/(.*)-(.*)-(.*).rul;2;'`
  133. OSNAME=`echo $1 | sed -e 's;(.*)/(.*)-(.*)-(.*).rul;3;'`
  134. CCOM=`echo $1 | sed -e 's;(.*)/(.*)-(.*)-(.*).rul;4;'`
  135. DIR=`echo $1 | sed -e "s;(.*)/$ARCH-$OSNAME-$CCOM.rul;1;"`
  136. echo "ARCH: $ARCH"
  137. echo "OSNAME: $OSNAME"
  138. echo "CCOM: $CCOM"
  139. echo "DIR: $DIR"
  140. echo $1
  141. echo "Trying to find similar architecture for '$1'"
  142. similar=`ls $DIR/*-$OSNAME-$CCOM.rul 2>/dev/null| head -1`
  143. SARCH=`echo $similar | sed -e "s;(.*)/(.*)-$OSNAME-$CCOM.rul;2;"`
  144. if [ .$similar != . ]; then
  145. echo 'Found similar architecture             ' "'$similar'"
  146. echo 'creating symlink:' ln -s $SARCH-$OSNAME-$CCOM.rul $1
  147. echo "Please send a mail to $MAILADDR to report whether this works or not"
  148. sleep 10
  149. ln -s $SARCH-$OSNAME-$CCOM.rul $1 || cp $SARCH-$OSNAME-$CCOM.rul $1
  150. exit
  151. else
  152. echo '###########################################################################' > $1
  153. echo "# global definitions for $OSNAME Systems" >> $1
  154. echo "# This file is auto generated and may be wrong" >> $1
  155. echo '###########################################################################' >> $1
  156. if [ $CCOM = gcc ]; then
  157. echo 'Using generic GCC machine configuration file' 
  158. cat $SRCROOT/TEMPLATES/temp-gcc.rul >> $1
  159. else
  160. echo 'Using generic dumb cc machine configuration file' 
  161. cat $SRCROOT/TEMPLATES/temp-xcc.rul >> $1
  162. fi
  163. fi
  164. ;;
  165. *)
  166. echo "Unknown rule to build: '$1'."
  167. exit 1
  168. ;;
  169. esac
  170. echo "Please send a mail to $MAILADDR to report whether this works or not"
  171. sleep 10