home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / bin / lorder < prev    next >
Encoding:
Text File  |  2010-06-17  |  2.7 KB  |  82 lines

  1. #!/bin/sh -
  2. #    $OpenBSD: lorder.sh,v 1.14 2003/07/02 00:21:16 avsm Exp $
  3. #    $NetBSD: lorder.sh.gnm,v 1.3 1995/12/20 04:45:11 cgd Exp $
  4. #
  5. # Copyright (c) 1990, 1993
  6. #    The Regents of the University of California.  All rights reserved.
  7. #
  8. # Redistribution and use in source and binary forms, with or without
  9. # modification, are permitted provided that the following conditions
  10. # are met:
  11. # 1. Redistributions of source code must retain the above copyright
  12. #    notice, this list of conditions and the following disclaimer.
  13. # 2. Redistributions in binary form must reproduce the above copyright
  14. #    notice, this list of conditions and the following disclaimer in the
  15. #    documentation and/or other materials provided with the distribution.
  16. # 3. Neither the name of the University nor the names of its contributors
  17. #    may be used to endorse or promote products derived from this software
  18. #    without specific prior written permission.
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  21. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  24. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30. # SUCH DAMAGE.
  31. #
  32. #    @(#)lorder.sh    8.1 (Berkeley) 6/6/93
  33. #
  34.  
  35. # one argument can be optimized: put out the filename twice
  36. case $# in
  37.     0)
  38.         echo "usage: lorder file ...";
  39.         exit ;;
  40.     1)
  41.         echo $1 $1;
  42.         exit ;;
  43. esac
  44.  
  45. # temporary files
  46. R=`mktemp /tmp/_referenceXXXXXXXXXX` || exit 1
  47. S=`mktemp /tmp/_symbolXXXXXXXXXX` || {
  48.     rm -f ${R}
  49.     exit 1
  50. }
  51.  
  52. # remove temporary files on HUP, INT, QUIT, PIPE, TERM
  53. trap "rm -f $R $S; exit 0" 0
  54. trap "rm -f $R $S; exit 1" HUP INT QUIT PIPE TERM
  55.  
  56. # make sure files depend on themselves
  57. for file in "$@"; do echo "$file $file" ; done
  58. # if the line has " T ", " D ", " G ", " R ",  it's a globally defined 
  59. # symbol, put it into the symbol file.
  60. #
  61. # if the line has " U " it's a globally undefined symbol, put it into
  62. # the reference file.
  63. ${NM:-nm} -go "$@" | sed "
  64.     / [TDGR] / {
  65.         s/:.* [TDGR] / /
  66.         w $S
  67.         d
  68.     }
  69.     / U / {
  70.         s/:.* U / /
  71.         w $R
  72.     }
  73.     d
  74. "
  75.  
  76. # sort symbols and references on the first field (the symbol)
  77. # join on that field, and print out the file names (dependencies).
  78. sort -k 2 $R -o $R
  79. sort -k 2 $S -o $S
  80. join -j 2 -o 1.1 2.1 $R $S
  81. rm -f $R $S
  82.