;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:51:23 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/progmodes/make-mode.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`make-mode.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\312\313\314\315\306\316\306\317&\207" [provide make-mode custom-declare-group makefile nil "Makefile editing commands for Emacs." :group tools :prefix "makefile-" custom-declare-face makefile-space-face ((((class color)) (:background "hotpink")) (t (:reverse-video t))) "Face to use for highlighting leading spaces in Font-Lock mode." faces makemode] 8)
#@48 *Name of the macro- and target browser buffer.
(custom-declare-variable 'makefile-browser-buffer-name '"*Macros and Targets*" '(#$ . -1049) :type 'string :group 'makefile)
#@108 *String to append to all target names inserted by `makefile-insert-target'.
":" or "::" are common values.
(custom-declare-variable 'makefile-target-colon '":" '(#$ . -1228) :type 'string :group 'makefile)
#@288 *String to append to all macro names inserted by `makefile-insert-macro'.
The normal value should be " = ", since this is what
standard make expects.  However, newer makes such as dmake
allow a larger variety of different macro assignments, so you
might prefer to use " += " or " := " .
(custom-declare-variable 'makefile-macro-assign '" = " '(#$ . -1441) :type 'string :group 'makefile)
#@81 *If non-nil, Makefile mode should install electric keybindings.
Default is nil.
(custom-declare-variable 'makefile-electric-keys 'nil '(#$ . -1835) :type 'boolean :group 'makefile)
#@167 *Controls the style of generated macro references.
Non-nil means macro references should use curly braces, like `${this}'.
nil means use parentheses, like `$(this)'.
(custom-declare-variable 'makefile-use-curly-braces-for-macros-p 'nil '(#$ . -2023) :type 'boolean :group 'makefile)
#@99 *If non-nil, insert a TAB after a target colon.
Otherwise, a space is inserted.
The default is t.
(custom-declare-variable 'makefile-tab-after-target-colon 't '(#$ . -2312) :type 'boolean :group 'makefile)
#@62 *Number of blanks to the left of the browser selection mark.
(custom-declare-variable 'makefile-browser-leftmost-column '10 '(#$ . -2524) :type 'integer :group 'makefile)
#@78 *Column the cursor goes to when it moves up or down in the Makefile browser.
(custom-declare-variable 'makefile-browser-cursor-column '10 '(#$ . -2701) :type 'integer :group 'makefile)
#@67 *Column in which `makefile-backslash-region' inserts backslashes.
(custom-declare-variable 'makefile-backslash-column '48 '(#$ . -2892) :type 'integer :group 'makefile)
#@66 *If non-nil, `makefile-backslash-region' will align backslashes.
(custom-declare-variable 'makefile-backslash-align 't '(#$ . -3067) :type 'boolean :group 'makefile)
#@64 *String used to mark selected entries in the Makefile browser.
(custom-declare-variable 'makefile-browser-selected-mark '"+  " '(#$ . -3239) :type 'string :group 'makefile)
#@66 *String used to mark unselected entries in the Makefile browser.
(custom-declare-variable 'makefile-browser-unselected-mark '"   " '(#$ . -3418) :type 'string :group 'makefile)
#@75 *If non-nil, cursor will move after item is selected in Makefile browser.
(custom-declare-variable 'makefile-browser-auto-advance-after-selection-p 't '(#$ . -3601) :type 'boolean :group 'makefile)
#@167 *If non-nil, `makefile-pickup-everything' picks up filenames as targets.
This means it calls `makefile-pickup-filenames-as-targets'.
Otherwise filenames are omitted.
(custom-declare-variable 'makefile-pickup-everything-picks-up-filenames-p 'nil '(#$ . -3806) :type 'boolean :group 'makefile)
#@313 *If non-nil, automatically clean up continuation lines when saving.
A line is cleaned up by removing all whitespace following a trailing
backslash.  This is done silently.
IMPORTANT: Please note that enabling this option causes Makefile mode
to MODIFY A FILE WITHOUT YOUR CONFIRMATION when "it seems necessary".
(custom-declare-variable 'makefile-cleanup-continuations-p 't '(#$ . -4105) :type 'boolean :group 'makefile)
#@38 *Normal hook run by `makefile-mode'.
(custom-declare-variable 'makefile-mode-hook 'nil '(#$ . -4532) :type 'hook :group 'makefile)
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list makefile-browser-hook boundp nil] 2)
#@165 *List of special targets.
You will be offered to complete on one of those in the minibuffer whenever
you enter a "." at the beginning of a line in `makefile-mode'.
(custom-declare-variable 'makefile-special-targets-list ''(("DEFAULT") ("DONE") ("ERROR") ("EXPORT") ("FAILED") ("GROUPEPILOG") ("GROUPPROLOG") ("IGNORE") ("IMPORT") ("INCLUDE") ("INCLUDEDIRS") ("INIT") ("KEEP_STATE") ("MAKEFILES") ("MAKE_VERSION") ("NO_PARALLEL") ("PARALLEL") ("PHONY") ("PRECIOUS") ("REMOVE") ("SCCS_GET") ("SILENT") ("SOURCE") ("SUFFIXES") ("WAIT") ("c.o") ("C.o") ("m.o") ("el.elc") ("y.c") ("s.o")) '(#$ . -4776) :type '(repeat (list string)) :group 'makefile)
#@239 *List of macros that are resolved by make at runtime.
If you insert a macro reference using `makefile-insert-macro-ref', the name
of the macro is checked against this list.  If it can be found its name will
not be enclosed in { } or ( ).
(custom-declare-variable 'makefile-runtime-macros-list ''(("@") ("&") (">") ("<") ("*") ("^") ("+") ("?") ("%") ("$")) '(#$ . -5430) :type '(repeat (list string)) :group 'makefile)
#@52 Regex used to find dependency lines in a makefile.
(defconst makefile-dependency-regex "^ *\\([^ \n	#:=]+\\([ 	]+\\([^ 	\n#:=]+\\|\\$[({][^ 	\n#})]+[})]\\)\\)*\\)[ 	]*:\\([ 	]*$\\|\\([^=\n].*$\\)\\)" (#$ . 5855))
#@58 Regex used to find macro assignment lines in a makefile.
(defconst makefile-macroassign-regex "^ *\\([^ \n	][^:#= 	\n]*\\)[ 	]*[*:+]?[:?]?=" (#$ . 6074))
#@67 Regex for filenames that will NOT be included in the target list.
(defconst makefile-ignored-files-in-pickup-regex "\\(^\\..*\\)\\|\\(.*~$\\)\\|\\(.*,v$\\)\\|\\(\\.[chy]\\)" (#$ . 6234))
(byte-code "\300\301!\203 \302\301\303\"\210\300\207" [fboundp facemenu-unlisted-faces add-to-list makefile-space-face] 3)
#@64 Face to use for highlighting leading spaces in Font-Lock mode.
(defvar makefile-space-face 'makefile-space-face (#$ . 6551))
(byte-code "\303B	\304\305E\n\304\306E\307\310\311\312\313\314\"\315Q\316\317E\320\321\322\257\303\207" [current-load-list makefile-macroassign-regex makefile-dependency-regex makefile-font-lock-keywords 1 font-lock-variable-name-face font-lock-function-name-face ("\\$[({]\\([-a-zA-Z0-9_.]+\\)[}):]" 1 font-lock-constant-face prepend) ("\\$\\([@%<?^+*]\\)" 1 font-lock-reference-face prepend) "^\\(?: [ 	]*\\)?" regexp-opt ("-include" "-sinclude" "include" "sinclude" "ifeq" "if" "ifneq" "ifdef" "ifndef" "endif" "else") t "\\>[ 	]*\\([^: 	\n#]*\\)" (1 font-lock-keyword-face) (2 font-lock-variable-name-face) ("^[ 	]+$" . makefile-space-face) ("^	+#" 0 makefile-space-face t) ("^\\( +\\)	" 1 makefile-space-face)] 8)
#@78 Imenu generic expression for Makefile mode.  See `imenu-generic-expression'.
(defvar makefile-imenu-generic-expression (byte-code "\302\303E\304	\303ED\207" [makefile-dependency-regex makefile-macroassign-regex "Dependencies" 1 "Macro Assignment"] 4) (#$ . 7405))
#@123 *How to invoke make, for `makefile-query-targets'.
This should identify a `make' command that can handle the `-q' option.
(custom-declare-variable 'makefile-brave-make '"make" '(#$ . -7677) :type 'string :group 'makefile)
#@532 *Function to call to determine whether a make target is up to date.
The function must satisfy this calling convention:

* As its first argument, it must accept the name of the target to
  be checked, as a string.

* As its second argument, it may accept the name of a makefile
  as a string.  Depending on what you're going to do you may
  not need this.

* It must return the integer value 0 (zero) if the given target
  should be considered up-to-date in the context of the given
  makefile, any nonzero integer value otherwise.
(custom-declare-variable 'makefile-query-one-target-method ''makefile-query-by-make-minus-q '(#$ . -7906) :type 'function :group 'makefile)
#@42 *Name of the Up-to-date overview buffer.
(custom-declare-variable 'makefile-up-to-date-buffer-name '"*Makefile Up-to-date overview*" '(#$ . -8583) :type 'string :group 'makefile)
#@42 Abbrev table in use in Makefile buffers.
(defvar makefile-mode-abbrev-table nil (#$ . 8768))
(byte-code "\204	 \301\300\302\"\210\302\207" [makefile-mode-abbrev-table define-abbrev-table nil] 3)
#@43 The keymap that is used in Makefile mode.
(defvar makefile-mode-map nil (#$ . 8970))
(byte-code "\204\215 \302 \303\304\305#\210	\203) \303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210\303\324\325#\210\303\326\327#\210\303\330\331#\210\303\332\333#\210\303\334\335#\210\303\336\337#\210\303\340\341#\210\303\342\343\302\343!B#\210\303\344\345#\210\303\346\347#\210\303\350\351#\210\303\352\353#\210\303\354\355#\210\302\207" [makefile-mode-map makefile-electric-keys make-sparse-keymap define-key ":" makefile-insert-target-ref "$" makefile-insert-macro-ref ":" makefile-electric-colon "=" makefile-electric-equal "." makefile-electric-dot "" makefile-pickup-filenames-as-targets "" makefile-switch-to-browser "" comment-region "" makefile-pickup-everything "" makefile-create-up-to-date-overview "	" makefile-insert-gmake-function "" makefile-backslash-region "\360" makefile-previous-dependency "\356" makefile-next-dependency "	" makefile-complete [menu-bar makefile-mode] "Makefile" [menu-bar makefile-mode browse] ("Pop up Makefile Browser" . makefile-switch-to-browser) [menu-bar makefile-mode complete] ("Complete Target or Macro" . makefile-complete) [menu-bar makefile-mode pickup] ("Find Targets and Macros" . makefile-pickup-everything) [menu-bar makefile-mode prev] ("Move to Previous Dependency" . makefile-previous-dependency) [menu-bar makefile-mode next] ("Move to Next Dependency" . makefile-next-dependency)] 6)
#@59 The keymap that is used in the macro- and target browser.
(defvar makefile-browser-map nil (#$ . 10514))
(byte-code "\204I \303 \304\305\306#\210\304\307\306#\210\304\310\311#\210\304\312\311#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\326#\210\302	B\330\302!\204U \331\n\204\230 \332 \333\334\335\n#\210\333\336\337\n#\210\333\340\341\n#\210\333\342\343\n#\210\333\344\345\n#\210\333\346\347\n#\210\333\350\351\n#\210\333\352\351\n#\210\333\353\354\n#\210\333\355\356\n#\210\331\207" [makefile-browser-map current-load-list makefile-mode-syntax-table make-sparse-keymap define-key "n" makefile-browser-next-line "" "p" makefile-browser-previous-line "" " " makefile-browser-toggle "i" makefile-browser-insert-selection "I" makefile-browser-insert-selection-and-quit "" makefile-browser-insert-continuation "q" makefile-browser-quit "" undefined "" boundp nil make-syntax-table modify-syntax-entry 40 "()    " 41 ")(    " 91 "(]    " 93 ")[    " 123 "(}    " 125 "){    " 39 "\"     " 96 35 "<     " 10 ">     "] 4)
#@50 Table of all target names known for this buffer.
(defvar makefile-target-table nil (#$ . 11629))
#@49 Table of all macro names known for this buffer.
(defvar makefile-macro-table nil (#$ . 11732))
(byte-code "\301B\306\301!\204\f \307\302B\306\302!\204 \310\303B\306\303!\204$ \310\304B\306\304!\2040 \311\305B\306\305!\204< \311\312B\306\312!\204I \310\n\313B\314\310\207" [current-load-list makefile-browser-client makefile-browser-selection-vector makefile-has-prereqs makefile-need-target-pickup makefile-need-macro-pickup boundp "A buffer in Makefile mode that is currently using the browser." nil t makefile-mode-hook makefile-gnumake-functions-alist (("subst" "From" "To" "In") ("patsubst" "Pattern" "Replacement" "In") ("strip" "Text") ("findstring" "Find what" "In") ("filter" "Pattern" "Text") ("filter-out" "Pattern" "Text") ("sort" "List") ("dir" "Names") ("notdir" "Names") ("suffix" "Names") ("basename" "Names") ("addprefix" "Prefix" "Names") ("addsuffix" "Suffix" "Names") ("join" "List 1" "List 2") ("word" "Index" "Text") ("words" "Text") ("firstword" "Text") ("wildcard" "Pattern") ("foreach" "Variable" "List" "Text") ("origin" "Variable") ("shell" "Command"))] 2)
#@2692 Major mode for editing Makefiles.
This function ends by invoking the function(s) `makefile-mode-hook'.

\{makefile-mode-map}

In the browser, use the following keys:

\{makefile-browser-map}

Makefile mode can be configured by modifying the following variables:

makefile-browser-buffer-name:
    Name of the macro- and target browser buffer.

makefile-target-colon:
    The string that gets appended to all target names
    inserted by `makefile-insert-target'.
    ":" or "::" are quite common values.

makefile-macro-assign:
   The string that gets appended to all macro names
   inserted by `makefile-insert-macro'.
   The normal value should be " = ", since this is what
   standard make expects.  However, newer makes such as dmake
   allow a larger variety of different macro assignments, so you
   might prefer to use " += " or " := " .

makefile-tab-after-target-colon:
   If you want a TAB (instead of a space) to be appended after the
   target colon, then set this to a non-nil value.

makefile-browser-leftmost-column:
   Number of blanks to the left of the browser selection mark.

makefile-browser-cursor-column:
   Column in which the cursor is positioned when it moves
   up or down in the browser.

makefile-browser-selected-mark:
   String used to mark selected entries in the browser.

makefile-browser-unselected-mark:
   String used to mark unselected entries in the browser.

makefile-browser-auto-advance-after-selection-p:
   If this variable is set to a non-nil value the cursor
   will automagically advance to the next line after an item
   has been selected in the browser.

makefile-pickup-everything-picks-up-filenames-p:
   If this variable is set to a non-nil value then
   `makefile-pickup-everything' also picks up filenames as targets
   (i.e. it calls `makefile-pickup-filenames-as-targets'), otherwise
   filenames are omitted.

makefile-cleanup-continuations-p:
   If this variable is set to a non-nil value then Makefile mode
   will assure that no line in the file ends with a backslash
   (the continuation character) followed by any whitespace.
   This is done by silently removing the trailing whitespace, leaving
   the backslash itself intact.
   IMPORTANT: Please note that enabling this option causes Makefile mode
   to MODIFY A FILE WITHOUT YOUR CONFIRMATION when "it seems necessary".

makefile-browser-hook:
   A function or list of functions to be called just before the
   browser is entered. This is executed in the makefile buffer.

makefile-special-targets-list:
   List of special targets. You will be offered to complete
   on one of those in the minibuffer whenever you enter a `.'.
   at the beginning of a line in Makefile mode.
(defalias 'makefile-mode #[nil "\306 \210\307\300!\210\310\307\311!\210\307\312!\210\307\313!\210\307\314!\210\307\315!\210\307\301!\210\316\307\302!\210\317\307\304!\210\307\305!\210\320 !\307\321!\210\322\307\323!\210\324\307\325!\210\326\307\327!\210\330\331\"\332#\333$!\210\334%!\210\335&\336\337!\207" [local-write-file-hooks font-lock-defaults add-log-current-defun-function makefile-imenu-generic-expression imenu-generic-expression dabbrev-abbrev-skip-leading-regexp kill-all-local-variables make-local-variable (makefile-cleanup-continuations makefile-warn-suspicious-lines) makefile-target-table makefile-macro-table makefile-has-prereqs makefile-need-target-pickup makefile-need-macro-pickup (makefile-font-lock-keywords nil nil nil backward-paragraph) makefile-add-log-defun "\\$" fill-paragraph-function makefile-fill-paragraph comment-start "#" comment-end "" comment-start-skip "#+[ 	]*" makefile-mode "Makefile" use-local-map set-syntax-table t run-hooks makefile-mode-hook makefile-mode-abbrev-table local-abbrev-table major-mode mode-name makefile-mode-map makefile-mode-syntax-table indent-tabs-mode] 2 (#$ . 12846) nil])
#@58 Move point to the beginning of the next dependency line.
(defalias 'makefile-next-dependency #[nil "`\302\210\303	d\304#\203 \305 \210\304\202 b\210\302)\207" [here makefile-dependency-regex nil re-search-forward t beginning-of-line] 4 (#$ . 16706) nil])
#@62 Move point to the beginning of the previous dependency line.
(defalias 'makefile-previous-dependency #[nil "`\302 \210\303	e\304#\203 \302 \210\304\202 b\210\305)\207" [here makefile-dependency-regex beginning-of-line re-search-backward t nil] 4 (#$ . 16972) nil])
#@136 Prompt for the name of a special target to insert.
Only does electric insertion at beginning of line.
Anywhere else just self-inserts.
(defalias 'makefile-electric-dot #[(arg) "n\203 \301 \207\302!\207" [arg makefile-insert-special-target self-insert-command] 2 (#$ . 17248) "p"])
#@84 Prompt for and insert a special target name.
Uses `makefile-special-targets' list.
(defalias 'makefile-insert-special-target #[nil "\302 \210\303\304\305\211\211%\306	G!?\205 \307	\310\261\210\311 )\207" [makefile-special-targets-list special-target makefile-pickup-targets completing-read "Special target: " nil zerop "." ":" makefile-forward-after-target-colon] 6 (#$ . 17537) nil])
#@126 Prompt for name of a macro to insert.
Only does prompting if point is at beginning of line.
Anywhere else just self-inserts.
(defalias 'makefile-electric-equal #[(arg) "\301 \210n\203 \302\303!\207\304!\207" [arg makefile-pickup-macros call-interactively makefile-insert-macro self-insert-command] 2 (#$ . 17933) "p"])
#@36 Prepare definition of a new macro.
(defalias 'makefile-insert-macro #[(macro-name) "\303 \210\304G!?\205 \305 \210	\261\210\306\307!\207" [macro-name makefile-macro-assign makefile-need-macro-pickup makefile-pickup-macros zerop beginning-of-line t makefile-remember-macro] 2 (#$ . 18260) "sMacro Name: "])
#@72 Complete on a list of known macros, then insert complete ref at point.
(defalias 'makefile-insert-macro-ref #[(macro-name) "\301!\207" [macro-name makefile-do-macro-insertion] 2 (#$ . 18578) (list (progn (makefile-pickup-macros) (completing-read "Refer to macro: " makefile-macro-table nil nil nil)))])
#@55 Prepare definition of a new target (dependency line).
(defalias 'makefile-insert-target #[(target-name) "\303G!?\205 \304 \210	\261\210\305 \210\306\210\307\310!\207" [target-name makefile-target-colon makefile-need-target-pickup zerop beginning-of-line makefile-forward-after-target-colon nil t makefile-remember-target] 2 (#$ . 18888) "sTarget: "])
#@72 Complete on a list of known targets, then insert TARGET-NAME at point.
(defalias 'makefile-insert-target-ref #[(target-name) "\301G!?\205\f \302\261\207" [target-name zerop " "] 2 (#$ . 19252) (list (progn (makefile-pickup-targets) (completing-read "Refer to target: " makefile-target-table nil nil nil)))])
#@110 Prompt for name of new target.
Prompting only happens at beginning of line.
Anywhere else just self-inserts.
(defalias 'makefile-electric-colon #[(arg) "n\203 \301\302!\207\303!\207" [arg call-interactively makefile-insert-target self-insert-command] 2 (#$ . 19570) "p"])
#@53 Notice names of all target definitions in Makefile.
(defalias 'makefile-pickup-targets #[nil "\205  \304\304\304\212eb\210\305d\306#\203 \307 \210\202 )\310\311!\207" [makefile-need-target-pickup makefile-target-table makefile-has-prereqs makefile-dependency-regex nil re-search-forward t makefile-add-this-line-targets message "Read targets OK."] 4 (#$ . 19850) nil])
(defalias 'makefile-add-this-line-targets #[nil "\212\305 \210\306\307e`\"T	?\205C \310\306w\210l\206 \311`f\312\"\211\204\f `\313\306w\210\n`{\314\315!?\316\f\"\203? \317\320#\210+\202\f +\207" [line-number done-with-line start-of-target-name target-name has-prereqs beginning-of-line nil count-lines " 	" char-equal 58 "^ 	:#" looking-at ":[ 	]*$" makefile-remember-target message "Picked up target \"%s\" from line %d"] 4])
#@52 Notice names of all macro definitions in Makefile.
(defalias 'makefile-pickup-macros #[nil "\205! \303\303\212eb\210\304\nd\305#\203 \306 \210\307y\210\202\f )\310\311!\207" [makefile-need-macro-pickup makefile-macro-table makefile-macroassign-regex nil re-search-forward t makefile-add-this-line-macro 1 message "Read macros OK."] 4 (#$ . 20669) nil])
(defalias 'makefile-add-this-line-macro #[nil "\212\303 \210\304\305w\210l?\205) `\306e`\"T\307\305w\210`{\310\n!\205( \311\312\n	#+)\207" [start-of-macro-name line-number macro-name beginning-of-line " 	" nil count-lines "^ 	:#=*" makefile-remember-macro message "Picked up macro \"%s\" from line %d"] 4])
#@98 Notice names of all macros and targets in Makefile.
Prefix arg means force pickups to be redone.
(defalias 'makefile-pickup-everything #[(arg) "\203 \304\304\305 \210\306 \210\205 \307 \207" [arg makefile-need-target-pickup makefile-need-macro-pickup makefile-pickup-everything-picks-up-filenames-p t makefile-pickup-macros makefile-pickup-targets makefile-pickup-filenames-as-targets] 1 (#$ . 21343) "P"])
#@191 Scan the current directory for filenames to use as targets.
Checks each filename against `makefile-ignored-files-in-pickup-regex'
and adds all qualifying names to the list of known targets.
(defalias 'makefile-pickup-filenames-as-targets #[nil "\302\303 !\211\203 \304\305\"\202 \304\305\211\"\306\307	\"*\207" [dir raw-filename-list file-name-directory buffer-file-name file-name-all-completions "" mapcar #[(name) "\302!?\205 \303	\"?\205 \304!\205 \305\306\"\207" [name makefile-ignored-files-in-pickup-regex file-directory-p string-match makefile-remember-target message "Picked up file \"%s\" as target"] 3]] 4 (#$ . 21763) nil])
#@144 Perform completion on Makefile construct preceding point.
Can complete variable and target names.
The context determines which are considered.
(defalias 'makefile-complete #[nil "\212\306\307x\210`)\211`{\307\307\212b\210hn\204B \f\310U\203% \311\202B \f\312U\2041 \f\313U\203B \f\314u\210n\204B h\310U\203B \311*\315\n?\205J  \"!\316	!\"\211\"\311=\203\200 \n\203n \312=\203j \317\202| \320\202| \212b\210n)\203{ \321\202| \322c\202\336 \"\204\217 \323\324	\"\210\325 \202\336 	\"\230\204\307 `|\210\n\204\247 \326\" \"\203\301 \312=\206\257 ##\327\330!\210\331\"!\210\327\332!)\202\336 \"c\202\336 \323\333!\210\334	!\"$\335\220\336$!\221\210)\323\337!.\207" [beg try do-macros paren pc makefile-target-table "^$(){}:#= 	\n" nil 36 t 123 40 -1 append try-completion 125 41 ":" " " message "Can't find completion for \"%s\"" ding assoc delete-backward-char 2 makefile-do-macro-insertion 1 "Making completion list..." all-completions "*Completions*" display-completion-list "Making completion list...done" makefile-macro-table table completion makefile-use-curly-braces-for-macros-p list] 4 (#$ . 22417) nil])
#@467 Insert, align, or delete end-of-line backslashes on the lines in the region.
With no argument, inserts backslashes and aligns existing backslashes.
With an argument, deletes the backslashes.

This function does not modify the last line of the region if the region ends
right at the start of the following line; it does not modify blank lines
at the start of the region.  So you can put the region around an entire macro
definition and conveniently use this command.
(defalias 'makefile-backslash-region #[(from to delete-flag) "\212b\210	\306 \n\f\307\223\210\203Z \2048 `\fW\2038 \307\210h\310U\203- \311u\210\312\307x\210iT]\313y\210\202 \246\314V\203Z \\\311\\\245_\211\315 W\203Y )b\210`\nW\203m l\203m \313y\210\202] `\nW\203\223 \212\313y\210`\nW)\203\223 \204\212 \316!\210\202\215 \317 \210\313y\210\202m \n\307\211\223+\207" [from makefile-backslash-column endmark column to makefile-backslash-align make-marker nil 92 -1 " 	" 1 0 window-width makefile-append-backslash makefile-delete-backslash delete-flag tab-width adjusted] 4 (#$ . 23564) "r\nP"])
(defalias 'makefile-append-backslash #[(column) "\302\210h\303U\203 \304u\210\305 \210\306	?\205 \307\"\207\306	?\205! \307\"\210\310c\207" [column makefile-backslash-align nil 92 -1 delete-horizontal-space indent-to 1 "\\"] 3])
(defalias 'makefile-delete-backslash #[nil "\300\210n\206 \301u\210\302\303!\205 `T\304\300x\210`|\207" [nil -1 looking-at "\\\\" " 	"] 3])
(defalias 'makefile-fill-paragraph #[(arg) "\212\305 \210\306\307!\203 \310\311\224\311\225\"\312\313\312!\210*\202\244 \212\312\210h\314U\206+ \315\210h\314U)\203\203 \312\210\212\311\210h\314U\203B \311\210\2026 \312u\210`)\212h\314U\203T \316\210\202H `)\214\n}\210\317ed\320#\210\312\313\312!\210)\317ed\312#\210db\210\321\312x\311W\203 `d|\210+\202\244 \306\f!\203\244 \214`\212\312\210\312u\210`)}\210\312\313\312!\210)\317ed\312#\210))\320\207" [fill-paragraph-function fill-prefix end beginning makefile-macroassign-regex beginning-of-line looking-at "^#+ " buffer-substring-no-properties 0 nil fill-paragraph 92 -1 2 makefile-backslash-region t "\n"] 4])
(defalias 'makefile-browser-format-target-line #[(target selected) "\306\307\310\"	\203 \n\202 \311Q\f#\207" [makefile-browser-leftmost-column selected makefile-browser-selected-mark makefile-browser-unselected-mark target makefile-target-colon format make-string 32 "%s%s"] 4])
(defalias 'makefile-browser-format-macro-line #[(macro selected) "\305\306\307\"	\203 \n\202 \310\f!Q!\207" [makefile-browser-leftmost-column selected makefile-browser-selected-mark makefile-browser-unselected-mark macro format make-string 32 makefile-format-macro-ref] 5])
(defalias 'makefile-browser-fill #[(targets macros) "\304eb\210\305 \210\306\307	\310#\210\306\311\n\310#\210\312\313ed#\210dSb\210\314\315!\210eb\210u)\207" [inhibit-read-only targets macros makefile-browser-cursor-column t erase-buffer mapconcat #[(item) "\301@\302\"\303\261\207" [item makefile-browser-format-target-line nil "\n"] 3] "" #[(item) "\301@\302\"\303\261\207" [item makefile-browser-format-macro-line nil "\n"] 3] sort-lines nil delete-char 1] 4])
#@53 Move the browser selection cursor to the next line.
(defalias 'makefile-browser-next-line #[nil "\301 ?\205 \302y\210u\207" [makefile-browser-cursor-column makefile-last-line-p 1] 1 (#$ . 26749) nil])
#@57 Move the browser selection cursor to the previous line.
(defalias 'makefile-browser-previous-line #[nil "\301 ?\205 \302y\210u\207" [makefile-browser-cursor-column makefile-first-line-p -1] 1 (#$ . 26958) nil])
#@54 Leave the browser and return to the makefile buffer.
(defalias 'makefile-browser-quit #[nil "\302\303\302!\210\304\305!\210\306	!)\207" [makefile-browser-client my-client nil set-buffer-modified-p quit-window t pop-to-buffer] 2 (#$ . 27177) nil])
#@72 Toggle the selection state of the browser item at the cursor position.
(defalias 'makefile-browser-toggle #[nil "\306e`\"\307]\310!\210\311!\210\312\313 \210\314 \2031 \315 `\316\210`|\210\317\n\320!\"c\210)\202D \321 `\316\210`|\210\322\320!\"c\210))\313 \210\fu\210\205Q \323 )\207" [this-line inhibit-read-only macro-name target-name makefile-browser-cursor-column makefile-browser-auto-advance-after-selection-p count-lines 1 makefile-browser-toggle-state-for-line goto-line t beginning-of-line makefile-browser-on-macro-line-p makefile-browser-this-line-macro-name nil makefile-browser-format-macro-line makefile-browser-get-state-for-line makefile-browser-this-line-target-name makefile-browser-format-target-line makefile-browser-next-line] 4 (#$ . 27433) nil])
#@351 Insert a makefile continuation.
In the makefile buffer, go to (end-of-line), insert a '\'
character, insert a new blank line, go to that line and indent by one TAB.
This is most useful in the process of creating continued lines when copying
large dependencies from the browser to the client buffer.
(point) advances accordingly in the client buffer.
(defalias 'makefile-browser-insert-continuation #[nil "\212q\210\301\210\302c)\207" [makefile-browser-client nil "\\\n	"] 1 (#$ . 28223) nil])
#@99 Insert all selected targets and/or macros in the makefile buffer.
Insertion takes place at point.
(defalias 'makefile-browser-insert-selection #[nil "\212\301\302!\210\302m?\205 \303!\203 \304 \210\302y\210T\202 *\207" [current-line goto-line 1 makefile-browser-get-state-for-line makefile-browser-send-this-line-item] 2 (#$ . 28724) nil])
(defalias 'makefile-browser-insert-selection-and-quit #[nil "\300 \210\301 \207" [makefile-browser-insert-selection makefile-browser-quit] 1 nil nil])
(defalias 'makefile-browser-send-this-line-item #[nil "\303 \203 \212\304 	q\210\305!\306\261*\207\212\307 	q\210\n\306\261*\207" [macro-name makefile-browser-client target-name makefile-browser-on-macro-line-p makefile-browser-this-line-macro-name makefile-format-macro-ref " " makefile-browser-this-line-target-name] 2])
(defalias 'makefile-browser-start-interaction #[nil "\302!\210\303\211\207" [makefile-browser-map buffer-read-only use-local-map t] 2])
(defalias 'makefile-browse #[(targets macros) "\304G	G\\!\203 \305 \210\306\307!\207\310\n!\311!\210\312	\"\210\313 \210\314\315!\316G	G\\\317\"L\210\320 )\207" [targets macros makefile-browser-buffer-name browser-buffer zerop beep message "No macros or targets to browse! Consider running 'makefile-pickup-everything'" get-buffer-create pop-to-buffer makefile-browser-fill shrink-window-if-larger-than-buffer make-local-variable makefile-browser-selection-vector make-vector nil makefile-browser-start-interaction] 4 nil nil])
(defalias 'makefile-switch-to-browser #[nil "\303\304!\210p\305 \210\306 \210\307	\n\"\207" [makefile-browser-client makefile-target-table makefile-macro-table run-hooks makefile-browser-hook makefile-pickup-targets makefile-pickup-macros makefile-browse] 3 nil nil])
#@242 Create a buffer containing an overview of the state of all known targets.
Known targets are targets that are explicitly defined in that makefile;
in other words, all targets that appear on the left hand side of a
dependency in the makefile.
(defalias 'makefile-create-up-to-date-overview #[nil "\306\307!\205\\ p\310	!\311 \312 \210\nq\210\313\314 \210\315\f#\210\316\317 !\203: \320p!\210\321\322!\210q\210\323	!\205Z \324\323	!!\210\325 \210\326\313ed#\210\327\211.\207" [makefile-target-table makefile-up-to-date-buffer-name makefile-has-prereqs prereqs real-targets filename y-or-n-p "Are you sure that the makefile being edited is consistent? " get-buffer-create makefile-save-temporary makefile-pickup-targets nil erase-buffer makefile-query-targets zerop buffer-size kill-buffer message "No overview created!" get-buffer pop-to-buffer shrink-window-if-larger-than-buffer sort-lines t makefile-up-to-date-buffer this-buffer saved-target-table buffer-read-only] 6 (#$ . 30499) nil])
#@59 Create a temporary file from the current makefile buffer.
(defalias 'makefile-save-temporary #[nil "\301 \302ed\303\304%\210)\207" [filename makefile-generate-temporary-filename write-region nil 0] 6 (#$ . 31518)])
#@159 Create a filename suitable for use in `makefile-save-temporary'.
Be careful to allow brain-dead file systems (DOS, SYSV ...) to cope
with the generated name!
(defalias 'makefile-generate-temporary-filename #[nil "\302 \303\304 !\305	G\306V\203 	\307\306O\202 	\310G\306V\203' \307\306O\202( R*\207" [my-uid my-name user-login-name int-to-string user-uid "mktmp" 3 0 "."] 6 (#$ . 31743)])
#@168 Fill the up-to-date overview buffer.
Checks each target in TARGET-TABLE using `makefile-query-one-target-method'
and generates the overview, one line per target name.
(defalias 'makefile-query-targets #[(filename target-table prereq-list) "\302\303\304#c\210eb\210\305	!\207" [target-table filename mapconcat #[(item) "@\211\n\235?\211\206 \f	\"\306\307	\203 \310\202' \203& \311\202' \312#+\207" [item target-name prereq-list no-prereqs makefile-query-one-target-method filename format "	%s%s" "  .. has no prerequisites" "  .. NEEDS REBUILD" "  .. is up to date" needs-rebuild] 5] "\n" delete-file] 4 (#$ . 32145)])
(defalias 'makefile-query-by-make-minus-q #[(target &optional filename) "\303\304\305\211\211\306	\307\n&!?\207" [makefile-brave-make filename target zerop call-process nil "-f" "-q"] 10])
(defalias 'makefile-cleanup-continuations #[nil "\303=\205% 	\205% \n?\205% \212eb\210\304\305d\306#\205$ \307\310\306\211#\210\202 )\207" [major-mode makefile-cleanup-continuations-p buffer-read-only makefile-mode re-search-forward "\\\\[ 	]+$" t replace-match "\\"] 4])
(defalias 'makefile-warn-suspicious-lines #[nil "\301=\205 \212eb\210\302\303\304\305#\205 \306\307\310\311e`\"\"!?)\207" [major-mode makefile-mode re-search-forward "^\\(	+$\\| +	\\)" nil t y-or-n-p format "Suspicious line %d. Save anyway " count-lines] 6])
#@136 Insert a GNU make function call.
Asks for the name of the function to use (with completion).
Then prompts for all required parameters.
(defalias 'makefile-insert-gmake-function #[nil "\303\304\305\306\305%\307	\"A\310	G!?\205\" \311	\312\313	\n\"Q!\312\261*\207" [makefile-gnumake-functions-alist gm-function-name gm-function-prompts completing-read "Function: " nil t assoc zerop makefile-format-macro-ref " " makefile-prompt-for-gmake-funargs] 6 (#$ . 33509) nil])
(defalias 'makefile-prompt-for-gmake-funargs #[(function-name prompt-list) "\301\302\303#\207" [prompt-list mapconcat #[(one-prompt) "\302\303\304	#\305\"\207" [function-name one-prompt read-string format "[%s] %s: " nil] 5] ","] 4])
#@27 Insert a macro reference.
(defalias 'makefile-do-macro-insertion #[(macro-name) "\302G!?\205 \303	\"\203 \304\261\207\305!c\207" [macro-name makefile-runtime-macros-list zerop assoc "$" makefile-format-macro-ref] 3 (#$ . 34223)])
#@74 Remember a given target if it is not already remembered for this buffer.
(defalias 'makefile-remember-target #[(target-name &optional has-prereqs) "\304G!?\205 \305	\"\204 C	B\n\205 B\211\207" [target-name makefile-target-table has-prereqs makefile-has-prereqs zerop assoc] 3 (#$ . 34466)])
#@73 Remember a given macro if it is not already remembered for this buffer.
(defalias 'makefile-remember-macro #[(macro-name) "\302G!?\205 \303	\"?\205 C	B\211\207" [macro-name makefile-macro-table zerop assoc] 3 (#$ . 34773)])
#@142 Move point forward after inserting the terminating colon of a target.
This acts according to the value of `makefile-tab-after-target-colon'.
(defalias 'makefile-forward-after-target-colon #[nil "\203 \301c\207\302c\207" [makefile-tab-after-target-colon "	" " "] 1 (#$ . 35010)])
#@55 Determine if point is on a macro line in the browser.
(defalias 'makefile-browser-on-macro-line-p #[nil "\212\300 \210\301\302\303 \304#)\207" [beginning-of-line re-search-forward "\\$[{(]" makefile-end-of-line-point t] 4 (#$ . 35297)])
#@53 Extract the target name from a line in the browser.
(defalias 'makefile-browser-this-line-target-name #[nil "\212\300\210\301\300x\210`\302 S{)\207" [nil "^ 	" makefile-end-of-line-point] 2 (#$ . 35540)])
#@52 Extract the macro name from a line in the browser.
(defalias 'makefile-browser-this-line-macro-name #[nil "\212\301 \210\302\303\304 \305#\210`\306\307w\210`{*\207" [macro-start beginning-of-line re-search-forward "\\$[{(]" makefile-end-of-line-point t "^})" nil] 4 (#$ . 35752)])
#@74 Format a macro reference.
Uses `makefile-use-curly-braces-for-macros-p'.
(defalias 'makefile-format-macro-ref #[(macro-name) "\302\303\304!\"\204 \302\305\304!\"\203 \306\307\"\207	\203  \306\310\"\207\306\311\"\207" [macro-name makefile-use-curly-braces-for-macros-p char-equal 40 string-to-char 123 format "$%s" "${%s}" "$(%s)"] 4 (#$ . 36041)])
(defalias 'makefile-browser-get-state-for-line #[(n) "	SH\207" [makefile-browser-selection-vector n] 2])
(defalias 'makefile-browser-set-state-for-line #[(n to-state) "	S\nI\207" [makefile-browser-selection-vector n to-state] 3])
(defalias 'makefile-browser-toggle-state-for-line #[(n) "\301\302!?\"\207" [n makefile-browser-set-state-for-line makefile-browser-get-state-for-line] 4])
(defalias 'makefile-beginning-of-line-point #[nil "\212\300 \210`)\207" [beginning-of-line] 1])
(defalias 'makefile-end-of-line-point #[nil "\212\300\210`)\207" [nil] 1])
(defalias 'makefile-last-line-p #[nil "\300 dU\207" [makefile-end-of-line-point] 2])
(defalias 'makefile-first-line-p #[nil "\300 eU\207" [makefile-beginning-of-line-point] 2])
#@96 Return name of target or variable assignment that point is in.
If it isn't in one, return nil.
(defalias 'makefile-add-log-defun #[nil "\212\303\304 \210\204E \305	!\203 \306\307\224\307\225\"\202; \305\n!\203* \306\307\224\307\225\"\202; \305\310!\2035 \311\202; o\203; \311\204 \312y\210\202 ;\205K *\207" [found makefile-macroassign-regex makefile-dependency-regex nil beginning-of-line looking-at buffer-substring-no-properties 1 "$\\|#" bobp -1] 3 (#$ . 37140)])
