home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / etc / bash_completion.d / make < prev    next >
Encoding:
Text File  |  2010-11-16  |  2.5 KB  |  79 lines

  1. # bash completion for GNU make
  2.  
  3. have make || have gmake || have gnumake || have pmake &&
  4. _make()
  5. {
  6.     local file makef makef_dir="." makef_inc cur prev i split=false
  7.  
  8.     COMPREPLY=()
  9.     _get_comp_words_by_ref cur prev
  10.  
  11.     _split_longopt && split=true
  12.  
  13.     case $prev in
  14.         -f|-o|-W|--file|--makefile|--old-file|--new-file|--assume-old|--assume-new|--what-if)
  15.             _filedir
  16.             return 0
  17.             ;;
  18.         -I|-C|--directory|--include-dir)
  19.             _filedir -d
  20.             return 0
  21.             ;;
  22.     esac
  23.  
  24.     $split && return 0
  25.  
  26.     if [[ "$cur" == -* ]]; then
  27.         COMPREPLY=( $( compgen -W '-b -m -B -C -d -e -f -h -i -I\
  28.             -j -l -k -n -o -p -q -r -R - s -S -t -v -w -W \
  29.             --always-make --directory --debug \
  30.             --environment-overrides --file --makefile --help \
  31.             --ignore-errors --include-dir --jobs --load-average \
  32.             --max-load --keep-going --just-print --dry-run \
  33.             --recon --old-file --assume-old --print-data-base \
  34.             --question --no-builtin-rules --no-builtin-variables \
  35.             --silent --quiet --no-keep-goind --stop --touch \
  36.             --version --print-directory --no-print-directory \
  37.             --what-if --new-file --assume-new \
  38.             --warn-undefined-variables' -- "$cur" ) )
  39.     else
  40.         # before we check for makefiles, see if a path was specified
  41.         # with -C/--directory
  42.         for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
  43.             if [[ ${COMP_WORDS[i]} == -@(C|-directory) ]]; then
  44.                 # eval for tilde expansion
  45.                 eval makef_dir=${COMP_WORDS[i+1]}
  46.                 break
  47.             fi
  48.         done
  49.  
  50.         # before we scan for targets, see if a Makefile name was
  51.         # specified with -f/--file/--makefile
  52.         for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
  53.             if [[ ${COMP_WORDS[i]} == -@(f|-?(make)file) ]]; then
  54.                 # eval for tilde expansion
  55.                 eval makef=${COMP_WORDS[i+1]}
  56.                 break
  57.             fi
  58.         done
  59.  
  60.         [ -n "$makef" ] && makef="-f ${makef}"
  61.         [ -n "$makef_dir" ] && makef_dir="-C ${makef_dir}"
  62.  
  63.         COMPREPLY=( $( compgen -W "$( make -qp $makef $makef_dir 2>/dev/null | \
  64.             awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ \
  65.             {split($1,A,/ /);for(i in A)print A[i]}' )" \
  66.             -- "$cur" ) )
  67.  
  68.     fi
  69. } &&
  70. complete -F _make -o filenames make gmake gnumake pmake
  71.  
  72. # Local variables:
  73. # mode: shell-script
  74. # sh-basic-offset: 4
  75. # sh-indent-comment: t
  76. # indent-tabs-mode: nil
  77. # End:
  78. # ex: ts=4 sw=4 et filetype=sh
  79.