home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / gdb-4.9 / gdb / munch < prev    next >
Encoding:
Text File  |  1993-05-12  |  1.5 KB  |  50 lines

  1. #!/bin/sh
  2.  
  3. # create an initialization procedure from a list of .o files
  4.  
  5. echo '/* Do not modify this file.  It is created automatically by "munch". */'
  6. echo 'void initialize_all_files () {'
  7.  
  8. NMOPT=""
  9. case $1 in
  10. MUNCH_NM=*)
  11.     MUNCH_NM=`echo $1 | sed 's/MUNCH_NM=//'`; shift ;;
  12. -*)
  13.     NMOPT=$1; shift ;;
  14. esac
  15.  
  16. # make it easy to use a different nm, e.g. for cross-developing
  17.  
  18. MUNCH_NM="${MUNCH_NM-nm} $NMOPT"
  19. if test "`$MUNCH_NM main.o | egrep main | egrep FUNC | egrep GLOB`" != "" ; then
  20.     # System V Release 4 style nm
  21.     $MUNCH_NM $* | egrep '\|__?initialize_' | egrep FUNC | \
  22.       sed -e \
  23.         's/^.*\(_initialize_[a-zA-Z0-9_]*\).*$/  {extern void \1 (); \1 ();}/'\
  24.       | sort -u
  25. elif test "`$MUNCH_NM main.o | egrep '[TD] *_?main$'`" = "" ; then
  26.      if test "`$MUNCH_NM main.o | egrep 'Type    Subspace'`" != "" ; then
  27.     # HP PA RISC compilers don't prepend underscores
  28.     shift;
  29.     $MUNCH_NM $* | egrep '_initialize_.*' | \
  30.       sed -e \
  31.         's/^.*\(_initialize_[a-zA-Z0-9_]*\).*/   {extern void \1 (); \1 ();}/' \
  32.         | sort -u
  33.      else
  34.     # System V style nm
  35.     shift;
  36.     $MUNCH_NM $* | egrep '_initialize_.*' | egrep '\.text'|\
  37.       sed -e \
  38.         's/^.*\(_initialize_[a-zA-Z0-9_]*\).*/  {extern void \1 (); \1 ();}/' \
  39.         | sort -u
  40.      fi
  41. else
  42.     # BSD style nm
  43.     # We now accept either text or data symbols, since the RT/PC uses data.
  44.     $MUNCH_NM -p $* | egrep '[TD] *_?[_.]initialize_' | \
  45.     sed -e 's/^.*\(initialize_.*\)/  {extern void _\1 (); _\1 ();}/' \
  46.     | sort -u
  47. fi
  48.  
  49. echo '}'
  50.