home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume30 / rc / part07 / cpp < prev   
Text File  |  1992-05-30  |  1KB  |  39 lines

  1. #!/bin/sh
  2.  
  3. # @(#) cpp.sh 1.3 92/01/15 21:53:22
  4.  
  5. # Unprototypeing preprocessor for pre-ANSI C compilers.  On some systems,
  6. # this script can be as simple as:
  7. #
  8. #    /lib/cpp "$@" | unproto
  9. #
  10. # However, some cc(1) drivers specify output file names on the
  11. # preprocessor command line, so this shell script must be prepared to
  12. # intercept them.  Depending on the driver program, the cpp options may
  13. # even go before or after the file name argument(s). The script below
  14. # tries to tackle all these cases.
  15. #
  16. # You may want to add -Ipath_to_stdarg.h_file, -Dvoid=, -Dvolatile=, 
  17. # and even -D__STDC__.
  18.  
  19. ## (This is what I used while testing with the SunOS C compiler.
  20. ## Also, I added "-Qpath ." to CFLAGS so that cpp would be
  21. ## run out of the current directory. --- Byron)
  22. cpp_args="-I/u/byron/lib/sun4 -Dconst= -Dvolatile="
  23.  
  24. while :
  25. do
  26.     case $1 in
  27.     "")    break;;
  28.     -*)    cpp_args="$cpp_args $1";;
  29.      *)    cpp_args="$cpp_args $1"
  30.         case $2 in
  31.         ""|-*)    ;;
  32.             *)    exec 1> $2 || exit 1; shift;;
  33.         esac;;
  34.     esac
  35.     shift
  36. done
  37.  
  38. /lib/cpp $cpp_args | unproto
  39.